Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(386)

Side by Side Diff: src/debug.cc

Issue 352173006: Clean up the global object naming madness. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Addressed comments Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/builtins.cc ('k') | src/execution.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/v8.h" 5 #include "src/v8.h"
6 6
7 #include "src/api.h" 7 #include "src/api.h"
8 #include "src/arguments.h" 8 #include "src/arguments.h"
9 #include "src/bootstrapper.h" 9 #include "src/bootstrapper.h"
10 #include "src/code-stubs.h" 10 #include "src/code-stubs.h"
(...skipping 741 matching lines...) Expand 10 before | Expand all | Expand 10 after
752 return false; 752 return false;
753 } 753 }
754 754
755 // Execute the shared function in the debugger context. 755 // Execute the shared function in the debugger context.
756 Handle<JSFunction> function = 756 Handle<JSFunction> function =
757 factory->NewFunctionFromSharedFunctionInfo(function_info, context); 757 factory->NewFunctionFromSharedFunctionInfo(function_info, context);
758 758
759 Handle<Object> exception; 759 Handle<Object> exception;
760 MaybeHandle<Object> result = 760 MaybeHandle<Object> result =
761 Execution::TryCall(function, 761 Execution::TryCall(function,
762 Handle<Object>(context->global_object(), isolate), 762 handle(context->global_proxy()),
763 0, 763 0,
764 NULL, 764 NULL,
765 &exception); 765 &exception);
766 766
767 // Check for caught exceptions. 767 // Check for caught exceptions.
768 if (result.is_null()) { 768 if (result.is_null()) {
769 ASSERT(!isolate->has_pending_exception()); 769 ASSERT(!isolate->has_pending_exception());
770 MessageLocation computed_location; 770 MessageLocation computed_location;
771 isolate->ComputeLocation(&computed_location); 771 isolate->ComputeLocation(&computed_location);
772 Handle<Object> message = MessageHandler::MakeMessageObject( 772 Handle<Object> message = MessageHandler::MakeMessageObject(
(...skipping 27 matching lines...) Expand all
800 // Disable breakpoints and interrupts while compiling and running the 800 // Disable breakpoints and interrupts while compiling and running the
801 // debugger scripts including the context creation code. 801 // debugger scripts including the context creation code.
802 DisableBreak disable(this, true); 802 DisableBreak disable(this, true);
803 PostponeInterruptsScope postpone(isolate_); 803 PostponeInterruptsScope postpone(isolate_);
804 804
805 // Create the debugger context. 805 // Create the debugger context.
806 HandleScope scope(isolate_); 806 HandleScope scope(isolate_);
807 ExtensionConfiguration no_extensions; 807 ExtensionConfiguration no_extensions;
808 Handle<Context> context = 808 Handle<Context> context =
809 isolate_->bootstrapper()->CreateEnvironment( 809 isolate_->bootstrapper()->CreateEnvironment(
810 Handle<Object>::null(), 810 MaybeHandle<JSGlobalProxy>(),
811 v8::Handle<ObjectTemplate>(), 811 v8::Handle<ObjectTemplate>(),
812 &no_extensions); 812 &no_extensions);
813 813
814 // Fail if no context could be created. 814 // Fail if no context could be created.
815 if (context.is_null()) return false; 815 if (context.is_null()) return false;
816 816
817 // Use the debugger context. 817 // Use the debugger context.
818 SaveContext save(isolate_); 818 SaveContext save(isolate_);
819 isolate_->set_context(*context); 819 isolate_->set_context(*context);
820 820
(...skipping 1618 matching lines...) Expand 10 before | Expand all | Expand 10 after
2439 bool Debug::IsDebugGlobal(GlobalObject* global) { 2439 bool Debug::IsDebugGlobal(GlobalObject* global) {
2440 return is_loaded() && global == debug_context()->global_object(); 2440 return is_loaded() && global == debug_context()->global_object();
2441 } 2441 }
2442 2442
2443 2443
2444 void Debug::ClearMirrorCache() { 2444 void Debug::ClearMirrorCache() {
2445 PostponeInterruptsScope postpone(isolate_); 2445 PostponeInterruptsScope postpone(isolate_);
2446 HandleScope scope(isolate_); 2446 HandleScope scope(isolate_);
2447 AssertDebugContext(); 2447 AssertDebugContext();
2448 Factory* factory = isolate_->factory(); 2448 Factory* factory = isolate_->factory();
2449 JSObject::SetProperty(isolate_->global_object(), 2449 Handle<GlobalObject> global(isolate_->global_object());
2450 JSObject::SetProperty(global,
2450 factory->NewStringFromAsciiChecked("next_handle_"), 2451 factory->NewStringFromAsciiChecked("next_handle_"),
2451 handle(Smi::FromInt(0), isolate_), 2452 handle(Smi::FromInt(0), isolate_),
2452 NONE, 2453 NONE,
2453 SLOPPY).Check(); 2454 SLOPPY).Check();
2454 JSObject::SetProperty(isolate_->global_object(), 2455 JSObject::SetProperty(global,
2455 factory->NewStringFromAsciiChecked("mirror_cache_"), 2456 factory->NewStringFromAsciiChecked("mirror_cache_"),
2456 factory->NewJSArray(0, FAST_ELEMENTS), 2457 factory->NewJSArray(0, FAST_ELEMENTS),
2457 NONE, 2458 NONE,
2458 SLOPPY).Check(); 2459 SLOPPY).Check();
2459 } 2460 }
2460 2461
2461 2462
2462 Handle<FixedArray> Debug::GetLoadedScripts() { 2463 Handle<FixedArray> Debug::GetLoadedScripts() {
2463 // Create and fill the script cache when the loaded scripts is requested for 2464 // Create and fill the script cache when the loaded scripts is requested for
2464 // the first time. 2465 // the first time.
(...skipping 22 matching lines...) Expand all
2487 script->set_eval_from_instructions_offset(Smi::FromInt(offset)); 2488 script->set_eval_from_instructions_offset(Smi::FromInt(offset));
2488 } 2489 }
2489 } 2490 }
2490 2491
2491 2492
2492 MaybeHandle<Object> Debug::MakeJSObject(const char* constructor_name, 2493 MaybeHandle<Object> Debug::MakeJSObject(const char* constructor_name,
2493 int argc, 2494 int argc,
2494 Handle<Object> argv[]) { 2495 Handle<Object> argv[]) {
2495 AssertDebugContext(); 2496 AssertDebugContext();
2496 // Create the execution state object. 2497 // Create the execution state object.
2498 Handle<GlobalObject> global(isolate_->global_object());
2497 Handle<Object> constructor = Object::GetProperty( 2499 Handle<Object> constructor = Object::GetProperty(
2498 isolate_, isolate_->global_object(), constructor_name).ToHandleChecked(); 2500 isolate_, global, constructor_name).ToHandleChecked();
2499 ASSERT(constructor->IsJSFunction()); 2501 ASSERT(constructor->IsJSFunction());
2500 if (!constructor->IsJSFunction()) return MaybeHandle<Object>(); 2502 if (!constructor->IsJSFunction()) return MaybeHandle<Object>();
2501 // We do not handle interrupts here. In particular, termination interrupts. 2503 // We do not handle interrupts here. In particular, termination interrupts.
2502 PostponeInterruptsScope no_interrupts(isolate_); 2504 PostponeInterruptsScope no_interrupts(isolate_);
2503 return Execution::TryCall(Handle<JSFunction>::cast(constructor), 2505 return Execution::TryCall(Handle<JSFunction>::cast(constructor),
2504 Handle<JSObject>(debug_context()->global_object()), 2506 handle(debug_context()->global_proxy()),
2505 argc, 2507 argc,
2506 argv); 2508 argv);
2507 } 2509 }
2508 2510
2509 2511
2510 MaybeHandle<Object> Debug::MakeExecutionState() { 2512 MaybeHandle<Object> Debug::MakeExecutionState() {
2511 // Create the execution state object. 2513 // Create the execution state object.
2512 Handle<Object> argv[] = { isolate_->factory()->NewNumberFromInt(break_id()) }; 2514 Handle<Object> argv[] = { isolate_->factory()->NewNumberFromInt(break_id()) };
2513 return MakeJSObject("MakeExecutionState", ARRAY_SIZE(argv), argv); 2515 return MakeJSObject("MakeExecutionState", ARRAY_SIZE(argv), argv);
2514 } 2516 }
(...skipping 229 matching lines...) Expand 10 before | Expand all | Expand 10 after
2744 client_data); 2746 client_data);
2745 callback(event_details); 2747 callback(event_details);
2746 ASSERT(!isolate_->has_scheduled_exception()); 2748 ASSERT(!isolate_->has_scheduled_exception());
2747 } else { 2749 } else {
2748 // Invoke the JavaScript debug event listener. 2750 // Invoke the JavaScript debug event listener.
2749 ASSERT(event_listener_->IsJSFunction()); 2751 ASSERT(event_listener_->IsJSFunction());
2750 Handle<Object> argv[] = { Handle<Object>(Smi::FromInt(event), isolate_), 2752 Handle<Object> argv[] = { Handle<Object>(Smi::FromInt(event), isolate_),
2751 exec_state, 2753 exec_state,
2752 event_data, 2754 event_data,
2753 event_listener_data_ }; 2755 event_listener_data_ };
2756 Handle<JSReceiver> global(isolate_->global_proxy());
2754 Execution::TryCall(Handle<JSFunction>::cast(event_listener_), 2757 Execution::TryCall(Handle<JSFunction>::cast(event_listener_),
2755 isolate_->global_object(), 2758 global, ARRAY_SIZE(argv), argv);
2756 ARRAY_SIZE(argv),
2757 argv);
2758 } 2759 }
2759 } 2760 }
2760 2761
2761 2762
2762 Handle<Context> Debug::GetDebugContext() { 2763 Handle<Context> Debug::GetDebugContext() {
2763 DebugScope debug_scope(this); 2764 DebugScope debug_scope(this);
2764 // The global handle may be destroyed soon after. Return it reboxed. 2765 // The global handle may be destroyed soon after. Return it reboxed.
2765 return handle(*debug_context(), isolate_); 2766 return handle(*debug_context(), isolate_);
2766 } 2767 }
2767 2768
(...skipping 576 matching lines...) Expand 10 before | Expand all | Expand 10 after
3344 logger_->DebugEvent("Put", message.text()); 3345 logger_->DebugEvent("Put", message.text());
3345 } 3346 }
3346 3347
3347 3348
3348 void LockingCommandMessageQueue::Clear() { 3349 void LockingCommandMessageQueue::Clear() {
3349 LockGuard<Mutex> lock_guard(&mutex_); 3350 LockGuard<Mutex> lock_guard(&mutex_);
3350 queue_.Clear(); 3351 queue_.Clear();
3351 } 3352 }
3352 3353
3353 } } // namespace v8::internal 3354 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/builtins.cc ('k') | src/execution.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698