Index: src/messages.h |
diff --git a/src/messages.h b/src/messages.h |
index 6c6210529bca1c602fad9dbe3ef3ec0640649158..cbec757d6fca31b252804beb053d68fc0a01978e 100644 |
--- a/src/messages.h |
+++ b/src/messages.h |
@@ -56,7 +56,7 @@ class StackFrameBase { |
virtual Handle<Object> GetScriptNameOrSourceUrl() = 0; |
virtual Handle<Object> GetMethodName() = 0; |
virtual Handle<Object> GetTypeName() = 0; |
- virtual Handle<Object> GetEvalOrigin() = 0; |
+ virtual Handle<Object> GetEvalOrigin(); |
virtual int GetPosition() const = 0; |
// Return 1-based line number, including line offset. |
@@ -66,11 +66,20 @@ class StackFrameBase { |
virtual bool IsNative() = 0; |
virtual bool IsToplevel() = 0; |
- virtual bool IsEval() = 0; |
+ virtual bool IsEval(); |
virtual bool IsConstructor() = 0; |
virtual bool IsStrict() const = 0; |
virtual MaybeHandle<String> ToString() = 0; |
+ |
+ protected: |
+ StackFrameBase() {} |
+ explicit StackFrameBase(Isolate* isolate) : isolate_(isolate) {} |
+ Isolate* isolate_; |
+ |
+ private: |
+ virtual bool HasScript() const = 0; |
+ virtual Handle<Script> GetScript() const = 0; |
}; |
class JSStackFrame : public StackFrameBase { |
@@ -88,7 +97,6 @@ class JSStackFrame : public StackFrameBase { |
Handle<Object> GetScriptNameOrSourceUrl() override; |
Handle<Object> GetMethodName() override; |
Handle<Object> GetTypeName() override; |
- Handle<Object> GetEvalOrigin() override; |
int GetPosition() const override; |
int GetLineNumber() override; |
@@ -96,7 +104,6 @@ class JSStackFrame : public StackFrameBase { |
bool IsNative() override; |
bool IsToplevel() override; |
- bool IsEval() override; |
bool IsConstructor() override; |
bool IsStrict() const override { return is_strict_; } |
@@ -106,10 +113,8 @@ class JSStackFrame : public StackFrameBase { |
JSStackFrame(); |
void FromFrameArray(Isolate* isolate, Handle<FrameArray> array, int frame_ix); |
- bool HasScript() const; |
- Handle<Script> GetScript() const; |
- |
- Isolate* isolate_; |
+ bool HasScript() const override; |
+ Handle<Script> GetScript() const override; |
Handle<Object> receiver_; |
Handle<JSFunction> function_; |
@@ -134,7 +139,6 @@ class WasmStackFrame : public StackFrameBase { |
Handle<Object> GetScriptNameOrSourceUrl() override { return Null(); } |
Handle<Object> GetMethodName() override { return Null(); } |
Handle<Object> GetTypeName() override { return Null(); } |
- Handle<Object> GetEvalOrigin() override { return Null(); } |
int GetPosition() const override; |
int GetLineNumber() override { return wasm_func_index_; } |
@@ -142,7 +146,6 @@ class WasmStackFrame : public StackFrameBase { |
bool IsNative() override { return false; } |
bool IsToplevel() override { return false; } |
- bool IsEval() override { return false; } |
bool IsConstructor() override { return false; } |
bool IsStrict() const override { return false; } |
@@ -151,7 +154,8 @@ class WasmStackFrame : public StackFrameBase { |
protected: |
Handle<Object> Null() const; |
- Isolate* isolate_; |
+ bool HasScript() const override; |
+ Handle<Script> GetScript() const override; |
// TODO(wasm): Use proper typing. |
Handle<Object> wasm_instance_; |
@@ -160,6 +164,7 @@ class WasmStackFrame : public StackFrameBase { |
int offset_; |
private: |
+ WasmStackFrame(); |
void FromFrameArray(Isolate* isolate, Handle<FrameArray> array, int frame_ix); |
friend class FrameArrayIterator; |
@@ -184,6 +189,7 @@ class AsmJsWasmStackFrame : public WasmStackFrame { |
private: |
friend class FrameArrayIterator; |
+ AsmJsWasmStackFrame(); |
void FromFrameArray(Isolate* isolate, Handle<FrameArray> array, int frame_ix); |
bool is_at_number_conversion_; |