 Chromium Code Reviews
 Chromium Code Reviews| Index: src/ast.h | 
| diff --git a/src/ast.h b/src/ast.h | 
| index b7331388fd9744954519b8ea8c91fdfa7667682b..2b0b009ab30104c0c6468296d74e3e50b212205a 100644 | 
| --- a/src/ast.h | 
| +++ b/src/ast.h | 
| @@ -1964,27 +1964,41 @@ class Yield: public Expression { | 
| public: | 
| DECLARE_NODE_TYPE(Yield) | 
| + enum Kind { | 
| + // The initial yield that returns the unboxed generator object. | 
| + INITIAL, | 
| 
Michael Starzinger
2013/04/17 13:43:48
nit: Can we compact this enum a bit (e.g. by movin
 | 
| + | 
| + // A normal yield: { value: VALUE, done: false } | 
| + SUSPEND, | 
| + | 
| + // A yield*. | 
| + DELEGATING, | 
| + | 
| + // A return: { value: VALUE, done: true } | 
| + FINAL | 
| + }; | 
| + | 
| Expression* generator_object() const { return generator_object_; } | 
| Expression* expression() const { return expression_; } | 
| - bool is_delegating_yield() const { return is_delegating_yield_; } | 
| + Kind kind() const { return kind_; } | 
| 
Michael Starzinger
2013/04/17 13:43:48
nit: There are so many "kinds" in V8 already, can
 | 
| virtual int position() const { return pos_; } | 
| protected: | 
| Yield(Isolate* isolate, | 
| Expression* generator_object, | 
| Expression* expression, | 
| - bool is_delegating_yield, | 
| + Kind kind, | 
| int pos) | 
| : Expression(isolate), | 
| generator_object_(generator_object), | 
| expression_(expression), | 
| - is_delegating_yield_(is_delegating_yield), | 
| + kind_(kind), | 
| pos_(pos) { } | 
| private: | 
| Expression* generator_object_; | 
| Expression* expression_; | 
| - bool is_delegating_yield_; | 
| + Kind kind_; | 
| int pos_; | 
| }; | 
| @@ -2966,10 +2980,10 @@ class AstNodeFactory BASE_EMBEDDED { | 
| Yield* NewYield(Expression *generator_object, | 
| Expression* expression, | 
| - bool is_delegating_yield, | 
| + Yield::Kind kind, | 
| int pos) { | 
| Yield* yield = new(zone_) Yield( | 
| - isolate_, generator_object, expression, is_delegating_yield, pos); | 
| + isolate_, generator_object, expression, kind, pos); | 
| VISIT_AND_RETURN(Yield, yield) | 
| } |