Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(440)

Side by Side Diff: src/preparser.h

Issue 1033823002: [es6] emit error when for-in loop declarations are initialized in strict mode (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: delete decl_props Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/parser.cc ('k') | src/preparser.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_PREPARSER_H 5 #ifndef V8_PREPARSER_H
6 #define V8_PREPARSER_H 6 #define V8_PREPARSER_H
7 7
8 #include "src/v8.h" 8 #include "src/v8.h"
9 9
10 #include "src/bailout-reason.h" 10 #include "src/bailout-reason.h"
(...skipping 144 matching lines...) Expand 10 before | Expand all | Expand 10 after
155 PARSE_LAZILY, 155 PARSE_LAZILY,
156 PARSE_EAGERLY 156 PARSE_EAGERLY
157 }; 157 };
158 158
159 enum VariableDeclarationContext { 159 enum VariableDeclarationContext {
160 kStatementListItem, 160 kStatementListItem,
161 kStatement, 161 kStatement,
162 kForStatement 162 kForStatement
163 }; 163 };
164 164
165 // If a list of variable declarations includes any initializers.
166 enum VariableDeclarationProperties { kHasInitializers, kHasNoInitializers };
167
168 class Checkpoint; 165 class Checkpoint;
169 class ObjectLiteralCheckerBase; 166 class ObjectLiteralCheckerBase;
170 167
171 // --------------------------------------------------------------------------- 168 // ---------------------------------------------------------------------------
172 // FunctionState and BlockState together implement the parser's scope stack. 169 // FunctionState and BlockState together implement the parser's scope stack.
173 // The parser's current scope is in scope_. BlockState and FunctionState 170 // The parser's current scope is in scope_. BlockState and FunctionState
174 // constructors push on the scope stack and the destructors pop. They are also 171 // constructors push on the scope stack and the destructors pop. They are also
175 // used to hold the parser's per-function and per-block state. 172 // used to hold the parser's per-function and per-block state.
176 class BlockState BASE_EMBEDDED { 173 class BlockState BASE_EMBEDDED {
177 public: 174 public:
(...skipping 1403 matching lines...) Expand 10 before | Expand all | Expand 10 after
1581 Statement ParseStatementListItem(bool* ok); 1578 Statement ParseStatementListItem(bool* ok);
1582 void ParseStatementList(int end_token, bool* ok); 1579 void ParseStatementList(int end_token, bool* ok);
1583 Statement ParseStatement(bool* ok); 1580 Statement ParseStatement(bool* ok);
1584 Statement ParseSubStatement(bool* ok); 1581 Statement ParseSubStatement(bool* ok);
1585 Statement ParseFunctionDeclaration(bool* ok); 1582 Statement ParseFunctionDeclaration(bool* ok);
1586 Statement ParseClassDeclaration(bool* ok); 1583 Statement ParseClassDeclaration(bool* ok);
1587 Statement ParseBlock(bool* ok); 1584 Statement ParseBlock(bool* ok);
1588 Statement ParseVariableStatement(VariableDeclarationContext var_context, 1585 Statement ParseVariableStatement(VariableDeclarationContext var_context,
1589 bool* ok); 1586 bool* ok);
1590 Statement ParseVariableDeclarations(VariableDeclarationContext var_context, 1587 Statement ParseVariableDeclarations(VariableDeclarationContext var_context,
1591 VariableDeclarationProperties* decl_props,
1592 int* num_decl, 1588 int* num_decl,
1589 Scanner::Location* first_initializer_loc,
1593 bool* ok); 1590 bool* ok);
1594 Statement ParseExpressionOrLabelledStatement(bool* ok); 1591 Statement ParseExpressionOrLabelledStatement(bool* ok);
1595 Statement ParseIfStatement(bool* ok); 1592 Statement ParseIfStatement(bool* ok);
1596 Statement ParseContinueStatement(bool* ok); 1593 Statement ParseContinueStatement(bool* ok);
1597 Statement ParseBreakStatement(bool* ok); 1594 Statement ParseBreakStatement(bool* ok);
1598 Statement ParseReturnStatement(bool* ok); 1595 Statement ParseReturnStatement(bool* ok);
1599 Statement ParseWithStatement(bool* ok); 1596 Statement ParseWithStatement(bool* ok);
1600 Statement ParseSwitchStatement(bool* ok); 1597 Statement ParseSwitchStatement(bool* ok);
1601 Statement ParseDoWhileStatement(bool* ok); 1598 Statement ParseDoWhileStatement(bool* ok);
1602 Statement ParseWhileStatement(bool* ok); 1599 Statement ParseWhileStatement(bool* ok);
(...skipping 1554 matching lines...) Expand 10 before | Expand all | Expand 10 after
3157 *ok = false; 3154 *ok = false;
3158 return; 3155 return;
3159 } 3156 }
3160 has_seen_constructor_ = true; 3157 has_seen_constructor_ = true;
3161 return; 3158 return;
3162 } 3159 }
3163 } 3160 }
3164 } } // v8::internal 3161 } } // v8::internal
3165 3162
3166 #endif // V8_PREPARSER_H 3163 #endif // V8_PREPARSER_H
OLDNEW
« no previous file with comments | « src/parser.cc ('k') | src/preparser.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698