Index: src/deoptimizer.h |
diff --git a/src/deoptimizer.h b/src/deoptimizer.h |
index 284676c36eeef1152ef3731d716240b5058aeb25..bee0209c74a597f244b6677b06840c4b649e57f7 100644 |
--- a/src/deoptimizer.h |
+++ b/src/deoptimizer.h |
@@ -119,6 +119,9 @@ class Deoptimizer : public Malloced { |
int output_count() const { return output_count_; } |
+ // Number of created JS frames. Not all created frames are necessarily JS. |
+ int jsframes_count() const { return jsframes_count_; } |
+ |
static Deoptimizer* New(JSFunction* function, |
BailoutType type, |
unsigned bailout_id, |
@@ -272,6 +275,8 @@ class Deoptimizer : public Malloced { |
void DoComputeOutputFrames(); |
void DoComputeOsrOutputFrame(); |
void DoComputeFrame(TranslationIterator* iterator, int frame_index); |
+ void DoComputeArgumentsAdaptorFrame(TranslationIterator* iterator, |
+ int frame_index); |
void DoTranslateCommand(TranslationIterator* iterator, |
int frame_index, |
unsigned output_offset); |
@@ -319,6 +324,8 @@ class Deoptimizer : public Malloced { |
FrameDescription* input_; |
// Number of output frames. |
int output_count_; |
+ // Number of output js frames. |
+ int jsframes_count_; |
// Array of output frame descriptions. |
FrameDescription** output_; |
@@ -542,6 +549,7 @@ class Translation BASE_EMBEDDED { |
enum Opcode { |
BEGIN, |
FRAME, |
+ ARGUMENTS_ADAPTOR_FRAME, |
REGISTER, |
INT32_REGISTER, |
DOUBLE_REGISTER, |
@@ -567,6 +575,7 @@ class Translation BASE_EMBEDDED { |
// Commands. |
void BeginFrame(int node_id, int literal_id, unsigned height); |
+ void BeginArgumentsAdaptorFrame(int literal_id, unsigned height); |
void StoreRegister(Register reg); |
void StoreInt32Register(Register reg); |
void StoreDoubleRegister(DoubleRegister reg); |