| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| (...skipping 1109 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1120 Handle<JSFunction> check_break_point = | 1120 Handle<JSFunction> check_break_point = |
| 1121 Handle<JSFunction>::cast(Object::GetProperty( | 1121 Handle<JSFunction>::cast(Object::GetProperty( |
| 1122 debug_global, is_break_point_triggered_string).ToHandleChecked()); | 1122 debug_global, is_break_point_triggered_string).ToHandleChecked()); |
| 1123 | 1123 |
| 1124 // Get the break id as an object. | 1124 // Get the break id as an object. |
| 1125 Handle<Object> break_id = factory->NewNumberFromInt(Debug::break_id()); | 1125 Handle<Object> break_id = factory->NewNumberFromInt(Debug::break_id()); |
| 1126 | 1126 |
| 1127 // Call HandleBreakPointx. | 1127 // Call HandleBreakPointx. |
| 1128 Handle<Object> argv[] = { break_id, break_point_object }; | 1128 Handle<Object> argv[] = { break_id, break_point_object }; |
| 1129 Handle<Object> result; | 1129 Handle<Object> result; |
| 1130 ASSIGN_RETURN_ON_EXCEPTION_VALUE( | 1130 if (!Execution::TryCall(check_break_point, |
| 1131 isolate_, result, | 1131 isolate_->js_builtins_object(), |
| 1132 Execution::TryCall(check_break_point, | 1132 ARRAY_SIZE(argv), |
| 1133 isolate_->js_builtins_object(), | 1133 argv).ToHandle(&result)) { |
| 1134 ARRAY_SIZE(argv), | 1134 return false; |
| 1135 argv), | 1135 } |
| 1136 false); | |
| 1137 | 1136 |
| 1138 // Return whether the break point is triggered. | 1137 // Return whether the break point is triggered. |
| 1139 return result->IsTrue(); | 1138 return result->IsTrue(); |
| 1140 } | 1139 } |
| 1141 | 1140 |
| 1142 | 1141 |
| 1143 // Check whether the function has debug information. | 1142 // Check whether the function has debug information. |
| 1144 bool Debug::HasDebugInfo(Handle<SharedFunctionInfo> shared) { | 1143 bool Debug::HasDebugInfo(Handle<SharedFunctionInfo> shared) { |
| 1145 return !shared->debug_info()->IsUndefined(); | 1144 return !shared->debug_info()->IsUndefined(); |
| 1146 } | 1145 } |
| (...skipping 1466 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2613 // Create the execution state object. | 2612 // Create the execution state object. |
| 2614 Handle<Object> break_id = isolate_->factory()->NewNumberFromInt( | 2613 Handle<Object> break_id = isolate_->factory()->NewNumberFromInt( |
| 2615 isolate_->debug()->break_id()); | 2614 isolate_->debug()->break_id()); |
| 2616 Handle<Object> argv[] = { break_id }; | 2615 Handle<Object> argv[] = { break_id }; |
| 2617 return MakeJSObject(CStrVector("MakeExecutionState"), ARRAY_SIZE(argv), argv); | 2616 return MakeJSObject(CStrVector("MakeExecutionState"), ARRAY_SIZE(argv), argv); |
| 2618 } | 2617 } |
| 2619 | 2618 |
| 2620 | 2619 |
| 2621 MaybeHandle<Object> Debugger::MakeBreakEvent(Handle<Object> break_points_hit) { | 2620 MaybeHandle<Object> Debugger::MakeBreakEvent(Handle<Object> break_points_hit) { |
| 2622 Handle<Object> exec_state; | 2621 Handle<Object> exec_state; |
| 2623 ASSIGN_RETURN_ON_EXCEPTION( | 2622 if (!MakeExecutionState().ToHandle(&exec_state)) return MaybeHandle<Object>(); |
| 2624 isolate_, exec_state, MakeExecutionState(), Object); | |
| 2625 // Create the new break event object. | 2623 // Create the new break event object. |
| 2626 Handle<Object> argv[] = { exec_state, break_points_hit }; | 2624 Handle<Object> argv[] = { exec_state, break_points_hit }; |
| 2627 return MakeJSObject(CStrVector("MakeBreakEvent"), ARRAY_SIZE(argv), argv); | 2625 return MakeJSObject(CStrVector("MakeBreakEvent"), ARRAY_SIZE(argv), argv); |
| 2628 } | 2626 } |
| 2629 | 2627 |
| 2630 | 2628 |
| 2631 MaybeHandle<Object> Debugger::MakeExceptionEvent(Handle<Object> exception, | 2629 MaybeHandle<Object> Debugger::MakeExceptionEvent(Handle<Object> exception, |
| 2632 bool uncaught) { | 2630 bool uncaught) { |
| 2633 Handle<Object> exec_state; | 2631 Handle<Object> exec_state; |
| 2634 ASSIGN_RETURN_ON_EXCEPTION( | 2632 if (!MakeExecutionState().ToHandle(&exec_state)) return MaybeHandle<Object>(); |
| 2635 isolate_, exec_state, MakeExecutionState(), Object); | |
| 2636 // Create the new exception event object. | 2633 // Create the new exception event object. |
| 2637 Handle<Object> argv[] = { exec_state, | 2634 Handle<Object> argv[] = { exec_state, |
| 2638 exception, | 2635 exception, |
| 2639 isolate_->factory()->ToBoolean(uncaught) }; | 2636 isolate_->factory()->ToBoolean(uncaught) }; |
| 2640 return MakeJSObject(CStrVector("MakeExceptionEvent"), ARRAY_SIZE(argv), argv); | 2637 return MakeJSObject(CStrVector("MakeExceptionEvent"), ARRAY_SIZE(argv), argv); |
| 2641 } | 2638 } |
| 2642 | 2639 |
| 2643 | 2640 |
| 2644 MaybeHandle<Object> Debugger::MakeCompileEvent(Handle<Script> script, | 2641 MaybeHandle<Object> Debugger::MakeCompileEvent(Handle<Script> script, |
| 2645 bool before) { | 2642 bool before) { |
| 2646 Factory* factory = isolate_->factory(); | 2643 Handle<Object> exec_state; |
| 2644 if (!MakeExecutionState().ToHandle(&exec_state)) return MaybeHandle<Object>(); |
| 2647 // Create the compile event object. | 2645 // Create the compile event object. |
| 2648 Handle<Object> exec_state; | |
| 2649 ASSIGN_RETURN_ON_EXCEPTION( | |
| 2650 isolate_, exec_state, MakeExecutionState(), Object); | |
| 2651 Handle<Object> script_wrapper = GetScriptWrapper(script); | 2646 Handle<Object> script_wrapper = GetScriptWrapper(script); |
| 2652 Handle<Object> argv[] = { exec_state, | 2647 Handle<Object> argv[] = { exec_state, |
| 2653 script_wrapper, | 2648 script_wrapper, |
| 2654 factory->ToBoolean(before) }; | 2649 isolate_->factory()->ToBoolean(before) }; |
| 2655 return MakeJSObject(CStrVector("MakeCompileEvent"), ARRAY_SIZE(argv), argv); | 2650 return MakeJSObject(CStrVector("MakeCompileEvent"), ARRAY_SIZE(argv), argv); |
| 2656 } | 2651 } |
| 2657 | 2652 |
| 2658 | 2653 |
| 2659 MaybeHandle<Object> Debugger::MakeScriptCollectedEvent(int id) { | 2654 MaybeHandle<Object> Debugger::MakeScriptCollectedEvent(int id) { |
| 2655 Handle<Object> exec_state; |
| 2656 if (!MakeExecutionState().ToHandle(&exec_state)) return MaybeHandle<Object>(); |
| 2660 // Create the script collected event object. | 2657 // Create the script collected event object. |
| 2661 Handle<Object> exec_state; | |
| 2662 ASSIGN_RETURN_ON_EXCEPTION( | |
| 2663 isolate_, exec_state, MakeExecutionState(), Object); | |
| 2664 Handle<Object> id_object = Handle<Smi>(Smi::FromInt(id), isolate_); | 2658 Handle<Object> id_object = Handle<Smi>(Smi::FromInt(id), isolate_); |
| 2665 Handle<Object> argv[] = { exec_state, id_object }; | 2659 Handle<Object> argv[] = { exec_state, id_object }; |
| 2666 | 2660 |
| 2667 return MakeJSObject( | 2661 return MakeJSObject( |
| 2668 CStrVector("MakeScriptCollectedEvent"), ARRAY_SIZE(argv), argv); | 2662 CStrVector("MakeScriptCollectedEvent"), ARRAY_SIZE(argv), argv); |
| 2669 } | 2663 } |
| 2670 | 2664 |
| 2671 | 2665 |
| 2672 void Debugger::OnException(Handle<Object> exception, bool uncaught) { | 2666 void Debugger::OnException(Handle<Object> exception, bool uncaught) { |
| 2673 HandleScope scope(isolate_); | 2667 HandleScope scope(isolate_); |
| (...skipping 15 matching lines...) Expand all Loading... |
| 2689 | 2683 |
| 2690 // Enter the debugger. | 2684 // Enter the debugger. |
| 2691 EnterDebugger debugger(isolate_); | 2685 EnterDebugger debugger(isolate_); |
| 2692 if (debugger.FailedToEnter()) return; | 2686 if (debugger.FailedToEnter()) return; |
| 2693 | 2687 |
| 2694 // Clear all current stepping setup. | 2688 // Clear all current stepping setup. |
| 2695 debug->ClearStepping(); | 2689 debug->ClearStepping(); |
| 2696 // Create the event data object. | 2690 // Create the event data object. |
| 2697 Handle<Object> event_data; | 2691 Handle<Object> event_data; |
| 2698 // Bail out and don't call debugger if exception. | 2692 // Bail out and don't call debugger if exception. |
| 2699 ASSIGN_RETURN_ON_EXCEPTION_VALUE( | 2693 if (!MakeExceptionEvent(exception, uncaught).ToHandle(&event_data)) return; |
| 2700 isolate_, event_data, MakeExceptionEvent(exception, uncaught), | |
| 2701 /* void */ ;); | |
| 2702 | 2694 |
| 2703 // Process debug event. | 2695 // Process debug event. |
| 2704 ProcessDebugEvent(v8::Exception, Handle<JSObject>::cast(event_data), false); | 2696 ProcessDebugEvent(v8::Exception, Handle<JSObject>::cast(event_data), false); |
| 2705 // Return to continue execution from where the exception was thrown. | 2697 // Return to continue execution from where the exception was thrown. |
| 2706 } | 2698 } |
| 2707 | 2699 |
| 2708 | 2700 |
| 2709 void Debugger::OnDebugBreak(Handle<Object> break_points_hit, | 2701 void Debugger::OnDebugBreak(Handle<Object> break_points_hit, |
| 2710 bool auto_continue) { | 2702 bool auto_continue) { |
| 2711 HandleScope scope(isolate_); | 2703 HandleScope scope(isolate_); |
| 2712 | 2704 |
| 2713 // Debugger has already been entered by caller. | 2705 // Debugger has already been entered by caller. |
| 2714 ASSERT(isolate_->context() == *isolate_->debug()->debug_context()); | 2706 ASSERT(isolate_->context() == *isolate_->debug()->debug_context()); |
| 2715 | 2707 |
| 2716 // Bail out if there is no listener for this event | 2708 // Bail out if there is no listener for this event |
| 2717 if (!Debugger::EventActive(v8::Break)) return; | 2709 if (!Debugger::EventActive(v8::Break)) return; |
| 2718 | 2710 |
| 2719 // Debugger must be entered in advance. | 2711 // Debugger must be entered in advance. |
| 2720 ASSERT(isolate_->context() == *isolate_->debug()->debug_context()); | 2712 ASSERT(isolate_->context() == *isolate_->debug()->debug_context()); |
| 2721 | 2713 |
| 2722 // Create the event data object. | 2714 // Create the event data object. |
| 2723 Handle<Object> event_data; | 2715 Handle<Object> event_data; |
| 2724 // Bail out and don't call debugger if exception. | 2716 // Bail out and don't call debugger if exception. |
| 2725 ASSIGN_RETURN_ON_EXCEPTION_VALUE( | 2717 if (!MakeBreakEvent(break_points_hit).ToHandle(&event_data)) return; |
| 2726 isolate_, event_data, MakeBreakEvent(break_points_hit), /* void */ ;); | |
| 2727 | 2718 |
| 2728 // Process debug event. | 2719 // Process debug event. |
| 2729 ProcessDebugEvent(v8::Break, | 2720 ProcessDebugEvent(v8::Break, |
| 2730 Handle<JSObject>::cast(event_data), | 2721 Handle<JSObject>::cast(event_data), |
| 2731 auto_continue); | 2722 auto_continue); |
| 2732 } | 2723 } |
| 2733 | 2724 |
| 2734 | 2725 |
| 2735 void Debugger::OnBeforeCompile(Handle<Script> script) { | 2726 void Debugger::OnBeforeCompile(Handle<Script> script) { |
| 2736 HandleScope scope(isolate_); | 2727 HandleScope scope(isolate_); |
| 2737 | 2728 |
| 2738 // Bail out based on state or if there is no listener for this event | 2729 // Bail out based on state or if there is no listener for this event |
| 2739 if (isolate_->debug()->InDebugger()) return; | 2730 if (isolate_->debug()->InDebugger()) return; |
| 2740 if (compiling_natives()) return; | 2731 if (compiling_natives()) return; |
| 2741 if (!EventActive(v8::BeforeCompile)) return; | 2732 if (!EventActive(v8::BeforeCompile)) return; |
| 2742 | 2733 |
| 2743 // Enter the debugger. | 2734 // Enter the debugger. |
| 2744 EnterDebugger debugger(isolate_); | 2735 EnterDebugger debugger(isolate_); |
| 2745 if (debugger.FailedToEnter()) return; | 2736 if (debugger.FailedToEnter()) return; |
| 2746 | 2737 |
| 2747 // Create the event data object. | 2738 // Create the event data object. |
| 2748 Handle<Object> event_data; | 2739 Handle<Object> event_data; |
| 2749 // Bail out and don't call debugger if exception. | 2740 // Bail out and don't call debugger if exception. |
| 2750 ASSIGN_RETURN_ON_EXCEPTION_VALUE( | 2741 if (!MakeCompileEvent(script, true).ToHandle(&event_data)) return; |
| 2751 isolate_, event_data, MakeCompileEvent(script, true), /* void */ ;); | |
| 2752 | 2742 |
| 2753 // Process debug event. | 2743 // Process debug event. |
| 2754 ProcessDebugEvent(v8::BeforeCompile, | 2744 ProcessDebugEvent(v8::BeforeCompile, |
| 2755 Handle<JSObject>::cast(event_data), | 2745 Handle<JSObject>::cast(event_data), |
| 2756 true); | 2746 true); |
| 2757 } | 2747 } |
| 2758 | 2748 |
| 2759 | 2749 |
| 2760 // Handle debugger actions when a new script is compiled. | 2750 // Handle debugger actions when a new script is compiled. |
| 2761 void Debugger::OnAfterCompile(Handle<Script> script, | 2751 void Debugger::OnAfterCompile(Handle<Script> script, |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2807 argv).is_null()) { | 2797 argv).is_null()) { |
| 2808 return; | 2798 return; |
| 2809 } | 2799 } |
| 2810 // Bail out based on state or if there is no listener for this event | 2800 // Bail out based on state or if there is no listener for this event |
| 2811 if (in_debugger && (after_compile_flags & SEND_WHEN_DEBUGGING) == 0) return; | 2801 if (in_debugger && (after_compile_flags & SEND_WHEN_DEBUGGING) == 0) return; |
| 2812 if (!Debugger::EventActive(v8::AfterCompile)) return; | 2802 if (!Debugger::EventActive(v8::AfterCompile)) return; |
| 2813 | 2803 |
| 2814 // Create the compile state object. | 2804 // Create the compile state object. |
| 2815 Handle<Object> event_data; | 2805 Handle<Object> event_data; |
| 2816 // Bail out and don't call debugger if exception. | 2806 // Bail out and don't call debugger if exception. |
| 2817 ASSIGN_RETURN_ON_EXCEPTION_VALUE( | 2807 if (!MakeCompileEvent(script, false).ToHandle(&event_data)) return; |
| 2818 isolate_, event_data, MakeCompileEvent(script, false), /* void */ ;); | |
| 2819 | 2808 |
| 2820 // Process debug event. | 2809 // Process debug event. |
| 2821 ProcessDebugEvent(v8::AfterCompile, Handle<JSObject>::cast(event_data), true); | 2810 ProcessDebugEvent(v8::AfterCompile, Handle<JSObject>::cast(event_data), true); |
| 2822 } | 2811 } |
| 2823 | 2812 |
| 2824 | 2813 |
| 2825 void Debugger::OnScriptCollected(int id) { | 2814 void Debugger::OnScriptCollected(int id) { |
| 2826 HandleScope scope(isolate_); | 2815 HandleScope scope(isolate_); |
| 2827 | 2816 |
| 2828 // No more to do if not debugging. | 2817 // No more to do if not debugging. |
| 2829 if (isolate_->debug()->InDebugger()) return; | 2818 if (isolate_->debug()->InDebugger()) return; |
| 2830 if (!IsDebuggerActive()) return; | 2819 if (!IsDebuggerActive()) return; |
| 2831 if (!Debugger::EventActive(v8::ScriptCollected)) return; | 2820 if (!Debugger::EventActive(v8::ScriptCollected)) return; |
| 2832 | 2821 |
| 2833 // Enter the debugger. | 2822 // Enter the debugger. |
| 2834 EnterDebugger debugger(isolate_); | 2823 EnterDebugger debugger(isolate_); |
| 2835 if (debugger.FailedToEnter()) return; | 2824 if (debugger.FailedToEnter()) return; |
| 2836 | 2825 |
| 2837 // Create the script collected state object. | 2826 // Create the script collected state object. |
| 2838 Handle<Object> event_data; | 2827 Handle<Object> event_data; |
| 2839 // Bail out and don't call debugger if exception. | 2828 // Bail out and don't call debugger if exception. |
| 2840 ASSIGN_RETURN_ON_EXCEPTION_VALUE( | 2829 if (!MakeScriptCollectedEvent(id).ToHandle(&event_data)) return; |
| 2841 isolate_, event_data, MakeScriptCollectedEvent(id), /* void */ ;); | |
| 2842 | 2830 |
| 2843 // Process debug event. | 2831 // Process debug event. |
| 2844 ProcessDebugEvent(v8::ScriptCollected, | 2832 ProcessDebugEvent(v8::ScriptCollected, |
| 2845 Handle<JSObject>::cast(event_data), | 2833 Handle<JSObject>::cast(event_data), |
| 2846 true); | 2834 true); |
| 2847 } | 2835 } |
| 2848 | 2836 |
| 2849 | 2837 |
| 2850 void Debugger::ProcessDebugEvent(v8::DebugEvent event, | 2838 void Debugger::ProcessDebugEvent(v8::DebugEvent event, |
| 2851 Handle<JSObject> event_data, | 2839 Handle<JSObject> event_data, |
| 2852 bool auto_continue) { | 2840 bool auto_continue) { |
| 2853 HandleScope scope(isolate_); | 2841 HandleScope scope(isolate_); |
| 2854 | 2842 |
| 2855 // Clear any pending debug break if this is a real break. | 2843 // Clear any pending debug break if this is a real break. |
| 2856 if (!auto_continue) { | 2844 if (!auto_continue) { |
| 2857 isolate_->debug()->clear_interrupt_pending(DEBUGBREAK); | 2845 isolate_->debug()->clear_interrupt_pending(DEBUGBREAK); |
| 2858 } | 2846 } |
| 2859 | 2847 |
| 2860 // Create the execution state. | 2848 // Create the execution state. |
| 2861 Handle<Object> exec_state; | 2849 Handle<Object> exec_state; |
| 2862 // Bail out and don't call debugger if exception. | 2850 // Bail out and don't call debugger if exception. |
| 2863 ASSIGN_RETURN_ON_EXCEPTION_VALUE( | 2851 if (!MakeExecutionState().ToHandle(&exec_state)) return; |
| 2864 isolate_, exec_state, MakeExecutionState(), /* void */ ;); | 2852 |
| 2865 // First notify the message handler if any. | 2853 // First notify the message handler if any. |
| 2866 if (message_handler_ != NULL) { | 2854 if (message_handler_ != NULL) { |
| 2867 NotifyMessageHandler(event, | 2855 NotifyMessageHandler(event, |
| 2868 Handle<JSObject>::cast(exec_state), | 2856 Handle<JSObject>::cast(exec_state), |
| 2869 event_data, | 2857 event_data, |
| 2870 auto_continue); | 2858 auto_continue); |
| 2871 } | 2859 } |
| 2872 // Notify registered debug event listener. This can be either a C or | 2860 // Notify registered debug event listener. This can be either a C or |
| 2873 // a JavaScript function. Don't call event listener for v8::Break | 2861 // a JavaScript function. Don't call event listener for v8::Break |
| 2874 // here, if it's only a debug command -- they will be processed later. | 2862 // here, if it's only a debug command -- they will be processed later. |
| (...skipping 420 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3295 Debugger::never_unload_debugger_ = true; | 3283 Debugger::never_unload_debugger_ = true; |
| 3296 | 3284 |
| 3297 // Enter the debugger. | 3285 // Enter the debugger. |
| 3298 EnterDebugger debugger(isolate_); | 3286 EnterDebugger debugger(isolate_); |
| 3299 if (debugger.FailedToEnter()) { | 3287 if (debugger.FailedToEnter()) { |
| 3300 return isolate_->factory()->undefined_value(); | 3288 return isolate_->factory()->undefined_value(); |
| 3301 } | 3289 } |
| 3302 | 3290 |
| 3303 // Create the execution state. | 3291 // Create the execution state. |
| 3304 Handle<Object> exec_state; | 3292 Handle<Object> exec_state; |
| 3305 ASSIGN_RETURN_ON_EXCEPTION_VALUE( | 3293 if (!MakeExecutionState().ToHandle(&exec_state)) { |
| 3306 isolate_, exec_state, | 3294 return isolate_->factory()->undefined_value(); |
| 3307 MakeExecutionState(), | 3295 } |
| 3308 isolate_->factory()->undefined_value()); | |
| 3309 | 3296 |
| 3310 Handle<Object> argv[] = { exec_state, data }; | 3297 Handle<Object> argv[] = { exec_state, data }; |
| 3311 return Execution::Call( | 3298 return Execution::Call( |
| 3312 isolate_, | 3299 isolate_, |
| 3313 fun, | 3300 fun, |
| 3314 Handle<Object>(isolate_->debug()->debug_context_->global_proxy(), | 3301 Handle<Object>(isolate_->debug()->debug_context_->global_proxy(), |
| 3315 isolate_), | 3302 isolate_), |
| 3316 ARRAY_SIZE(argv), | 3303 ARRAY_SIZE(argv), |
| 3317 argv); | 3304 argv); |
| 3318 } | 3305 } |
| (...skipping 429 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3748 { | 3735 { |
| 3749 Locker locker(reinterpret_cast<v8::Isolate*>(isolate_)); | 3736 Locker locker(reinterpret_cast<v8::Isolate*>(isolate_)); |
| 3750 isolate_->debugger()->CallMessageDispatchHandler(); | 3737 isolate_->debugger()->CallMessageDispatchHandler(); |
| 3751 } | 3738 } |
| 3752 } | 3739 } |
| 3753 } | 3740 } |
| 3754 | 3741 |
| 3755 #endif // ENABLE_DEBUGGER_SUPPORT | 3742 #endif // ENABLE_DEBUGGER_SUPPORT |
| 3756 | 3743 |
| 3757 } } // namespace v8::internal | 3744 } } // namespace v8::internal |
| OLD | NEW |