// Parse a list of variable declarations. void ParseVar(ref StructList <AstVarDef> declarations, bool isFor, VariableKind kind) { for (;;) { var startLocation = Start; var id = ParseVarId(kind); AstNode init = null; if (Eat(TokenType.Eq)) { init = ParseMaybeAssign(isFor); } else if (kind == VariableKind.Const && !(Type == TokenType.In || Options.EcmaVersion >= 6 && IsContextual("of"))) { Raise(Start, "Unexpected token"); } else if (!(id is AstSymbol) && !(isFor && (Type == TokenType.In || IsContextual("of")))) { Raise(_lastTokEnd, "Complex binding patterns require an initialization value"); } var decl = new AstVarDef(this, startLocation, _lastTokEnd, id, init); declarations.Add(decl); if (!Eat(TokenType.Comma)) { break; } } }
public VariableDefinition(AstBlock parentBlock, AstNode parent, AstVar astVar, AstVarDef astVarDef, bool canMoveInitialization, int originalIndexInVar) { ParentBlock = parentBlock; Parent = parent; AstVar = astVar; CanMoveInitialization = canMoveInitialization; OriginalIndexInVar = originalIndexInVar; AstVarDef = astVarDef; }