OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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 "execution.h" | 5 #include "execution.h" |
6 | 6 |
7 #include "bootstrapper.h" | 7 #include "bootstrapper.h" |
8 #include "codegen.h" | 8 #include "codegen.h" |
9 #include "deoptimizer.h" | 9 #include "deoptimizer.h" |
10 #include "isolate-inl.h" | 10 #include "isolate-inl.h" |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
47 // Entering JavaScript. | 47 // Entering JavaScript. |
48 VMState<JS> state(isolate); | 48 VMState<JS> state(isolate); |
49 CHECK(AllowJavascriptExecution::IsAllowed(isolate)); | 49 CHECK(AllowJavascriptExecution::IsAllowed(isolate)); |
50 if (!ThrowOnJavascriptExecution::IsAllowed(isolate)) { | 50 if (!ThrowOnJavascriptExecution::IsAllowed(isolate)) { |
51 isolate->ThrowIllegalOperation(); | 51 isolate->ThrowIllegalOperation(); |
52 isolate->ReportPendingMessages(); | 52 isolate->ReportPendingMessages(); |
53 return MaybeHandle<Object>(); | 53 return MaybeHandle<Object>(); |
54 } | 54 } |
55 | 55 |
56 // Placeholder for return value. | 56 // Placeholder for return value. |
57 MaybeObject* value = reinterpret_cast<Object*>(kZapValue); | 57 Object* value = NULL; |
58 | 58 |
59 typedef Object* (*JSEntryFunction)(byte* entry, | 59 typedef Object* (*JSEntryFunction)(byte* entry, |
60 Object* function, | 60 Object* function, |
61 Object* receiver, | 61 Object* receiver, |
62 int argc, | 62 int argc, |
63 Object*** args); | 63 Object*** args); |
64 | 64 |
65 Handle<Code> code = is_construct | 65 Handle<Code> code = is_construct |
66 ? isolate->factory()->js_construct_entry_code() | 66 ? isolate->factory()->js_construct_entry_code() |
67 : isolate->factory()->js_entry_code(); | 67 : isolate->factory()->js_entry_code(); |
(...skipping 866 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
934 return; | 934 return; |
935 } | 935 } |
936 | 936 |
937 // Notify the debug event listeners. Indicate auto continue if the break was | 937 // Notify the debug event listeners. Indicate auto continue if the break was |
938 // a debug command break. | 938 // a debug command break. |
939 isolate->debugger()->OnDebugBreak(isolate->factory()->undefined_value(), | 939 isolate->debugger()->OnDebugBreak(isolate->factory()->undefined_value(), |
940 debug_command_only); | 940 debug_command_only); |
941 } | 941 } |
942 #endif | 942 #endif |
943 | 943 |
944 MaybeObject* Execution::HandleStackGuardInterrupt(Isolate* isolate) { | 944 Object* Execution::HandleStackGuardInterrupt(Isolate* isolate) { |
945 StackGuard* stack_guard = isolate->stack_guard(); | 945 StackGuard* stack_guard = isolate->stack_guard(); |
946 if (stack_guard->ShouldPostponeInterrupts()) { | 946 if (stack_guard->ShouldPostponeInterrupts()) { |
947 return isolate->heap()->undefined_value(); | 947 return isolate->heap()->undefined_value(); |
948 } | 948 } |
949 | 949 |
950 if (stack_guard->IsAPIInterrupt()) { | 950 if (stack_guard->IsAPIInterrupt()) { |
951 stack_guard->InvokeInterruptCallback(); | 951 stack_guard->InvokeInterruptCallback(); |
952 stack_guard->Continue(API_INTERRUPT); | 952 stack_guard->Continue(API_INTERRUPT); |
953 } | 953 } |
954 | 954 |
(...skipping 30 matching lines...) Expand all Loading... |
985 if (stack_guard->IsInstallCodeRequest()) { | 985 if (stack_guard->IsInstallCodeRequest()) { |
986 ASSERT(isolate->concurrent_recompilation_enabled()); | 986 ASSERT(isolate->concurrent_recompilation_enabled()); |
987 stack_guard->Continue(INSTALL_CODE); | 987 stack_guard->Continue(INSTALL_CODE); |
988 isolate->optimizing_compiler_thread()->InstallOptimizedFunctions(); | 988 isolate->optimizing_compiler_thread()->InstallOptimizedFunctions(); |
989 } | 989 } |
990 isolate->runtime_profiler()->OptimizeNow(); | 990 isolate->runtime_profiler()->OptimizeNow(); |
991 return isolate->heap()->undefined_value(); | 991 return isolate->heap()->undefined_value(); |
992 } | 992 } |
993 | 993 |
994 } } // namespace v8::internal | 994 } } // namespace v8::internal |
OLD | NEW |