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

Side by Side Diff: src/parsing/parser-base.h

Issue 1995863002: Improve strictness of Annex B 3.3 for generators and async functions (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: fix mixed duplicates Created 4 years, 6 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/parsing/parser.cc ('k') | test/cctest/test-parsing.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_PARSING_PARSER_BASE_H 5 #ifndef V8_PARSING_PARSER_BASE_H
6 #define V8_PARSING_PARSER_BASE_H 6 #define V8_PARSING_PARSER_BASE_H
7 7
8 #include "src/ast/scopes.h" 8 #include "src/ast/scopes.h"
9 #include "src/bailout-reason.h" 9 #include "src/bailout-reason.h"
10 #include "src/hashmap.h" 10 #include "src/hashmap.h"
(...skipping 180 matching lines...) Expand 10 before | Expand all | Expand 10 after
191 scanner_(scanner), 191 scanner_(scanner),
192 stack_overflow_(false), 192 stack_overflow_(false),
193 allow_lazy_(false), 193 allow_lazy_(false),
194 allow_natives_(false), 194 allow_natives_(false),
195 allow_tailcalls_(false), 195 allow_tailcalls_(false),
196 allow_harmony_restrictive_declarations_(false), 196 allow_harmony_restrictive_declarations_(false),
197 allow_harmony_do_expressions_(false), 197 allow_harmony_do_expressions_(false),
198 allow_harmony_for_in_(false), 198 allow_harmony_for_in_(false),
199 allow_harmony_function_name_(false), 199 allow_harmony_function_name_(false),
200 allow_harmony_function_sent_(false), 200 allow_harmony_function_sent_(false),
201 allow_harmony_async_await_(false) {} 201 allow_harmony_async_await_(false),
202 allow_harmony_restrictive_generators_(false) {}
202 203
203 #define ALLOW_ACCESSORS(name) \ 204 #define ALLOW_ACCESSORS(name) \
204 bool allow_##name() const { return allow_##name##_; } \ 205 bool allow_##name() const { return allow_##name##_; } \
205 void set_allow_##name(bool allow) { allow_##name##_ = allow; } 206 void set_allow_##name(bool allow) { allow_##name##_ = allow; }
206 207
207 #define SCANNER_ACCESSORS(name) \ 208 #define SCANNER_ACCESSORS(name) \
208 bool allow_##name() const { return scanner_->allow_##name(); } \ 209 bool allow_##name() const { return scanner_->allow_##name(); } \
209 void set_allow_##name(bool allow) { \ 210 void set_allow_##name(bool allow) { \
210 return scanner_->set_allow_##name(allow); \ 211 return scanner_->set_allow_##name(allow); \
211 } 212 }
212 213
213 ALLOW_ACCESSORS(lazy); 214 ALLOW_ACCESSORS(lazy);
214 ALLOW_ACCESSORS(natives); 215 ALLOW_ACCESSORS(natives);
215 ALLOW_ACCESSORS(tailcalls); 216 ALLOW_ACCESSORS(tailcalls);
216 ALLOW_ACCESSORS(harmony_restrictive_declarations); 217 ALLOW_ACCESSORS(harmony_restrictive_declarations);
217 ALLOW_ACCESSORS(harmony_do_expressions); 218 ALLOW_ACCESSORS(harmony_do_expressions);
218 ALLOW_ACCESSORS(harmony_for_in); 219 ALLOW_ACCESSORS(harmony_for_in);
219 ALLOW_ACCESSORS(harmony_function_name); 220 ALLOW_ACCESSORS(harmony_function_name);
220 ALLOW_ACCESSORS(harmony_function_sent); 221 ALLOW_ACCESSORS(harmony_function_sent);
221 ALLOW_ACCESSORS(harmony_async_await); 222 ALLOW_ACCESSORS(harmony_async_await);
223 ALLOW_ACCESSORS(harmony_restrictive_generators);
222 SCANNER_ACCESSORS(harmony_exponentiation_operator); 224 SCANNER_ACCESSORS(harmony_exponentiation_operator);
223 225
224 #undef SCANNER_ACCESSORS 226 #undef SCANNER_ACCESSORS
225 #undef ALLOW_ACCESSORS 227 #undef ALLOW_ACCESSORS
226 228
227 uintptr_t stack_limit() const { return stack_limit_; } 229 uintptr_t stack_limit() const { return stack_limit_; }
228 230
229 protected: 231 protected:
230 enum AllowRestrictedIdentifiers { 232 enum AllowRestrictedIdentifiers {
231 kAllowRestrictedIdentifiers, 233 kAllowRestrictedIdentifiers,
(...skipping 937 matching lines...) Expand 10 before | Expand all | Expand 10 after
1169 1171
1170 bool allow_lazy_; 1172 bool allow_lazy_;
1171 bool allow_natives_; 1173 bool allow_natives_;
1172 bool allow_tailcalls_; 1174 bool allow_tailcalls_;
1173 bool allow_harmony_restrictive_declarations_; 1175 bool allow_harmony_restrictive_declarations_;
1174 bool allow_harmony_do_expressions_; 1176 bool allow_harmony_do_expressions_;
1175 bool allow_harmony_for_in_; 1177 bool allow_harmony_for_in_;
1176 bool allow_harmony_function_name_; 1178 bool allow_harmony_function_name_;
1177 bool allow_harmony_function_sent_; 1179 bool allow_harmony_function_sent_;
1178 bool allow_harmony_async_await_; 1180 bool allow_harmony_async_await_;
1181 bool allow_harmony_restrictive_generators_;
1179 }; 1182 };
1180 1183
1181 template <class Traits> 1184 template <class Traits>
1182 ParserBase<Traits>::FunctionState::FunctionState( 1185 ParserBase<Traits>::FunctionState::FunctionState(
1183 FunctionState** function_state_stack, Scope** scope_stack, Scope* scope, 1186 FunctionState** function_state_stack, Scope** scope_stack, Scope* scope,
1184 FunctionKind kind, typename Traits::Type::Factory* factory) 1187 FunctionKind kind, typename Traits::Type::Factory* factory)
1185 : next_materialized_literal_index_(0), 1188 : next_materialized_literal_index_(0),
1186 expected_property_count_(0), 1189 expected_property_count_(0),
1187 this_location_(Scanner::Location::invalid()), 1190 this_location_(Scanner::Location::invalid()),
1188 return_location_(Scanner::Location::invalid()), 1191 return_location_(Scanner::Location::invalid()),
(...skipping 2404 matching lines...) Expand 10 before | Expand all | Expand 10 after
3593 has_seen_constructor_ = true; 3596 has_seen_constructor_ = true;
3594 return; 3597 return;
3595 } 3598 }
3596 } 3599 }
3597 3600
3598 3601
3599 } // namespace internal 3602 } // namespace internal
3600 } // namespace v8 3603 } // namespace v8
3601 3604
3602 #endif // V8_PARSING_PARSER_BASE_H 3605 #endif // V8_PARSING_PARSER_BASE_H
OLDNEW
« no previous file with comments | « src/parsing/parser.cc ('k') | test/cctest/test-parsing.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698