summaryrefslogtreecommitdiff
path: root/deps/v8/src/debug/debug-evaluate.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/debug/debug-evaluate.h')
-rw-r--r--deps/v8/src/debug/debug-evaluate.h20
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