Index: src/deoptimizer.h |
diff --git a/src/deoptimizer.h b/src/deoptimizer.h |
index 1c6d9e190a871db5d2c7ce0054e2becbb8b87dee..5789a504d47251a92165c8414e3faa9ea08c9142 100644 |
--- a/src/deoptimizer.h |
+++ b/src/deoptimizer.h |
@@ -112,6 +112,7 @@ class TranslatedFrame { |
public: |
enum Kind { |
kFunction, |
+ kInterpretedFunction, |
kGetter, |
kSetter, |
kArgumentsAdaptor, |
@@ -172,6 +173,9 @@ class TranslatedFrame { |
// Constructor static methods. |
static TranslatedFrame JSFrame(BailoutId node_id, |
SharedFunctionInfo* shared_info, int height); |
+ static TranslatedFrame InterpretedFrame(BailoutId bytecode_offset, |
+ SharedFunctionInfo* shared_info, |
+ int height); |
static TranslatedFrame AccessorFrame(Kind kind, |
SharedFunctionInfo* shared_info); |
static TranslatedFrame ArgumentsAdaptorFrame(SharedFunctionInfo* shared_info, |
@@ -588,6 +592,7 @@ class Deoptimizer : public Malloced { |
void DoComputeOutputFrames(); |
void DoComputeJSFrame(int frame_index); |
+ void DoComputeInterpretedFrame(int frame_index); |
void DoComputeArgumentsAdaptorFrame(int frame_index); |
void DoComputeConstructStubFrame(int frame_index); |
void DoComputeAccessorStubFrame(int frame_index, bool is_setter_stub_frame); |
@@ -605,7 +610,7 @@ class Deoptimizer : public Malloced { |
const char* debug_hint_string); |
unsigned ComputeInputFrameSize() const; |
- unsigned ComputeFixedSize(JSFunction* function) const; |
+ unsigned ComputeFixedSize(JSFunction* function, StackFrame::Type type) const; |
unsigned ComputeIncomingArgumentSize(JSFunction* function) const; |
static unsigned ComputeOutgoingArgumentSize(Code* code, unsigned bailout_id); |
@@ -950,6 +955,7 @@ class TranslationIterator BASE_EMBEDDED { |
#define TRANSLATION_OPCODE_LIST(V) \ |
V(BEGIN) \ |
V(JS_FRAME) \ |
+ V(INTERPRETED_FRAME) \ |
V(CONSTRUCT_STUB_FRAME) \ |
V(GETTER_STUB_FRAME) \ |
V(SETTER_STUB_FRAME) \ |
@@ -995,6 +1001,8 @@ class Translation BASE_EMBEDDED { |
// Commands. |
void BeginJSFrame(BailoutId node_id, int literal_id, unsigned height); |
+ void BeginInterpretedFrame(BailoutId bytecode_offset, int literal_id, |
+ unsigned height); |
void BeginCompiledStubFrame(int height); |
void BeginArgumentsAdaptorFrame(int literal_id, unsigned height); |
void BeginConstructStubFrame(int literal_id, unsigned height); |