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.h28
1 files changed, 23 insertions, 5 deletions
diff --git a/deps/v8/src/debug/debug-evaluate.h b/deps/v8/src/debug/debug-evaluate.h
index 49a7fce3ee..c0b1f027d1 100644
--- a/deps/v8/src/debug/debug-evaluate.h
+++ b/deps/v8/src/debug/debug-evaluate.h
@@ -15,7 +15,7 @@ class DebugEvaluate : public AllStatic {
public:
static MaybeHandle<Object> Global(Isolate* isolate, Handle<String> source,
bool disable_break,
- Handle<Object> context_extension);
+ Handle<HeapObject> context_extension);
// Evaluate a piece of JavaScript in the context of a stack frame for
// debugging. Things that need special attention are:
@@ -25,7 +25,7 @@ class DebugEvaluate : public AllStatic {
static MaybeHandle<Object> Local(Isolate* isolate, StackFrame::Id frame_id,
int inlined_jsframe_index,
Handle<String> source, bool disable_break,
- Handle<Object> context_extension);
+ Handle<HeapObject> context_extension);
private:
// This class builds a context chain for evaluation of expressions
@@ -54,6 +54,7 @@ class DebugEvaluate : public AllStatic {
void UpdateValues();
Handle<Context> innermost_context() const { return innermost_context_; }
+ Handle<Context> native_context() const { return native_context_; }
Handle<SharedFunctionInfo> outer_info() const { return outer_info_; }
private:
@@ -74,12 +75,29 @@ class DebugEvaluate : public AllStatic {
void MaterializeArgumentsObject(Handle<JSObject> target,
Handle<JSFunction> function);
- Handle<Context> MaterializeReceiver(Handle<Context> target,
- Handle<JSFunction> function);
+ void MaterializeContextChain(Handle<JSObject> target,
+ Handle<Context> context);
+
+ void UpdateContextChainFromMaterializedObject(Handle<JSObject> source,
+ Handle<Context> context);
+
+ Handle<Context> MaterializeReceiver(Handle<Context> parent_context,
+ Handle<Context> lookup_context,
+ Handle<JSFunction> local_function,
+ Handle<JSFunction> global_function,
+ bool this_is_non_local);
+
+ MaybeHandle<Object> LoadFromContext(Handle<Context> context,
+ Handle<String> name, bool* global);
+
+ void StoreToContext(Handle<Context> context, Handle<String> name,
+ Handle<Object> value);
Handle<SharedFunctionInfo> outer_info_;
Handle<Context> innermost_context_;
+ Handle<Context> native_context_;
List<ContextChainElement> context_chain_;
+ List<Handle<String> > non_locals_;
Isolate* isolate_;
JavaScriptFrame* frame_;
int inlined_jsframe_index_;
@@ -88,7 +106,7 @@ class DebugEvaluate : public AllStatic {
static MaybeHandle<Object> Evaluate(Isolate* isolate,
Handle<SharedFunctionInfo> outer_info,
Handle<Context> context,
- Handle<Object> context_extension,
+ Handle<HeapObject> context_extension,
Handle<Object> receiver,
Handle<String> source);
};