| Index: src/deoptimizer.h
|
| diff --git a/src/deoptimizer.h b/src/deoptimizer.h
|
| index 8f368b44ad687c8440825c4c34e06375ac27a289..27ff8ddcce51679f070cce934d820f9e79775dca 100644
|
| --- a/src/deoptimizer.h
|
| +++ b/src/deoptimizer.h
|
| @@ -400,6 +400,12 @@ class FrameDescription {
|
| void SetKind(Code::Kind kind) { kind_ = kind; }
|
| #endif
|
|
|
| + // Get the incoming arguments count.
|
| + int ComputeParametersCount();
|
| +
|
| + // Get a parameter value for an unoptimized frame.
|
| + Object* GetParameter(Deoptimizer* deoptimizer, int index);
|
| +
|
| // Get the expression stack height for a unoptimized frame.
|
| unsigned GetExpressionCount(Deoptimizer* deoptimizer);
|
|
|
| @@ -662,6 +668,9 @@ class DeoptimizedFrameInfo : public Malloced {
|
| // GC support.
|
| void Iterate(ObjectVisitor* v);
|
|
|
| + // Return the number of incoming arguments.
|
| + int parameters_count() { return parameters_count_; }
|
| +
|
| // Return the height of the expression stack.
|
| int expression_count() { return expression_count_; }
|
|
|
| @@ -670,6 +679,12 @@ class DeoptimizedFrameInfo : public Malloced {
|
| return function_;
|
| }
|
|
|
| + // Get an incoming argument.
|
| + Object* GetParameter(int index) {
|
| + ASSERT(0 <= index && index < parameters_count());
|
| + return parameters_[index];
|
| + }
|
| +
|
| // Get an expression from the expression stack.
|
| Object* GetExpression(int index) {
|
| ASSERT(0 <= index && index < expression_count());
|
| @@ -682,6 +697,12 @@ class DeoptimizedFrameInfo : public Malloced {
|
| function_ = function;
|
| }
|
|
|
| + // Set an incoming argument.
|
| + void SetParameter(int index, Object* obj) {
|
| + ASSERT(0 <= index && index < parameters_count());
|
| + parameters_[index] = obj;
|
| + }
|
| +
|
| // Set an expression on the expression stack.
|
| void SetExpression(int index, Object* obj) {
|
| ASSERT(0 <= index && index < expression_count());
|
| @@ -689,7 +710,9 @@ class DeoptimizedFrameInfo : public Malloced {
|
| }
|
|
|
| JSFunction* function_;
|
| + int parameters_count_;
|
| int expression_count_;
|
| + Object** parameters_;
|
| Object** expression_stack_;
|
|
|
| friend class Deoptimizer;
|
|
|