| Index: src/ast.h
|
| ===================================================================
|
| --- src/ast.h (revision 805)
|
| +++ src/ast.h (working copy)
|
| @@ -864,13 +864,20 @@
|
|
|
| class Call: public Expression {
|
| public:
|
| + enum EvalType {
|
| + ALIASED, // Either not eval or an aliased eval.
|
| + POTENTIALLY_DIRECT // Looks like a direct eval at codegen time.
|
| + // Needs to be determined at runtime whether the
|
| + // eval is direct.
|
| + };
|
| +
|
| Call(Expression* expression,
|
| ZoneList<Expression*>* arguments,
|
| - bool is_eval,
|
| + EvalType eval_type,
|
| int pos)
|
| : expression_(expression),
|
| arguments_(arguments),
|
| - is_eval_(is_eval),
|
| + eval_type_(eval_type),
|
| pos_(pos) { }
|
|
|
| virtual void Accept(Visitor* v);
|
| @@ -880,7 +887,7 @@
|
|
|
| Expression* expression() const { return expression_; }
|
| ZoneList<Expression*>* arguments() const { return arguments_; }
|
| - bool is_eval() { return is_eval_; }
|
| + EvalType eval_type() { return eval_type_; }
|
| int position() { return pos_; }
|
|
|
| static Call* sentinel() { return &sentinel_; }
|
| @@ -888,7 +895,7 @@
|
| private:
|
| Expression* expression_;
|
| ZoneList<Expression*>* arguments_;
|
| - bool is_eval_;
|
| + EvalType eval_type_;
|
| int pos_;
|
|
|
| static Call sentinel_;
|
| @@ -898,7 +905,7 @@
|
| class CallNew: public Call {
|
| public:
|
| CallNew(Expression* expression, ZoneList<Expression*>* arguments, int pos)
|
| - : Call(expression, arguments, false, pos) { }
|
| + : Call(expression, arguments, ALIASED, pos) { }
|
|
|
| virtual void Accept(Visitor* v);
|
| };
|
|
|