| Index: runtime/vm/ast.h
|
| diff --git a/runtime/vm/ast.h b/runtime/vm/ast.h
|
| index 95865d083b03d7b71ced72a08e0c5ce42ce02e23..45c4c49f0711bb983c07d5c6087fb847677948b4 100644
|
| --- a/runtime/vm/ast.h
|
| +++ b/runtime/vm/ast.h
|
| @@ -958,7 +958,8 @@ class WhileNode : public AstNode {
|
| : AstNode(token_pos),
|
| label_(label),
|
| condition_(condition),
|
| - body_(body) {
|
| + body_(body),
|
| + condition_preamble_(NULL) {
|
| ASSERT(label_ != NULL);
|
| ASSERT(condition_ != NULL);
|
| ASSERT(body_ != NULL);
|
| @@ -967,8 +968,16 @@ class WhileNode : public AstNode {
|
| SourceLabel* label() const { return label_; }
|
| AstNode* condition() const { return condition_; }
|
| SequenceNode* body() const { return body_; }
|
| + SequenceNode* condition_preamble() const { return condition_preamble_; }
|
| +
|
| + void set_condition_preamble(SequenceNode* condition_preamble) {
|
| + condition_preamble_ = condition_preamble;
|
| + }
|
|
|
| virtual void VisitChildren(AstNodeVisitor* visitor) const {
|
| + if (condition_preamble() != NULL) {
|
| + condition_preamble()->Visit(visitor);
|
| + }
|
| condition()->Visit(visitor);
|
| body()->Visit(visitor);
|
| }
|
| @@ -979,6 +988,7 @@ class WhileNode : public AstNode {
|
| SourceLabel* label_;
|
| AstNode* condition_;
|
| SequenceNode* body_;
|
| + SequenceNode* condition_preamble_;
|
|
|
| DISALLOW_IMPLICIT_CONSTRUCTORS(WhileNode);
|
| };
|
|
|