diff options
Diffstat (limited to 'deps/v8/src/debug/debug-evaluate.h')
-rw-r--r-- | deps/v8/src/debug/debug-evaluate.h | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/deps/v8/src/debug/debug-evaluate.h b/deps/v8/src/debug/debug-evaluate.h index fbe747d024..6cfa5a2e1d 100644 --- a/deps/v8/src/debug/debug-evaluate.h +++ b/deps/v8/src/debug/debug-evaluate.h @@ -18,7 +18,8 @@ class FrameInspector; class DebugEvaluate : public AllStatic { public: - static MaybeHandle<Object> Global(Isolate* isolate, Handle<String> source); + static MaybeHandle<Object> Global(Isolate* isolate, Handle<String> source, + bool throw_on_side_effect); // Evaluate a piece of JavaScript in the context of a stack frame for // debugging. Things that need special attention are: @@ -30,8 +31,21 @@ class DebugEvaluate : public AllStatic { Handle<String> source, bool throw_on_side_effect); - static bool FunctionHasNoSideEffect(Handle<SharedFunctionInfo> info); - static bool CallbackHasNoSideEffect(Address function_addr); + // This is used for break-at-entry for builtins and API functions. + // Evaluate a piece of JavaScript in the native context, but with the + // materialized arguments object and receiver of the current call. + static MaybeHandle<Object> WithTopmostArguments(Isolate* isolate, + Handle<String> source); + + enum SideEffectState { + kHasSideEffects, + kRequiresRuntimeChecks, + kHasNoSideEffect + }; + static SideEffectState FunctionGetSideEffectState( + Handle<SharedFunctionInfo> info); + static bool CallbackHasNoSideEffect(Object* callback_info); + static void ApplySideEffectChecks(Handle<BytecodeArray> bytecode_array); private: // This class builds a context chain for evaluation of expressions |