| Index: src/parsing/parser-base.h
|
| diff --git a/src/parsing/parser-base.h b/src/parsing/parser-base.h
|
| index 524b76652858d14f569ab8d06a29b9c0ffd3269f..20ffc0a79ba19462062bb51eff7ebe5c99b5023a 100644
|
| --- a/src/parsing/parser-base.h
|
| +++ b/src/parsing/parser-base.h
|
| @@ -198,7 +198,6 @@ class ParserBase {
|
| fni_(nullptr),
|
| ast_value_factory_(ast_value_factory),
|
| ast_node_factory_(ast_value_factory),
|
| - mode_(PARSE_EAGERLY), // Lazy mode must be set explicitly.
|
| parsing_module_(false),
|
| stack_limit_(stack_limit),
|
| zone_(zone),
|
| @@ -255,8 +254,6 @@ class ParserBase {
|
| kDontAllowRestrictedIdentifiers
|
| };
|
|
|
| - enum Mode { PARSE_LAZILY, PARSE_EAGERLY };
|
| -
|
| enum LazyParsingResult { kLazyParsingComplete, kLazyParsingAborted };
|
|
|
| enum VariableDeclarationContext {
|
| @@ -591,22 +588,6 @@ class ParserBase {
|
| int expected_property_count_;
|
| };
|
|
|
| - class ParsingModeScope BASE_EMBEDDED {
|
| - public:
|
| - ParsingModeScope(ParserBase* parser, Mode mode)
|
| - : parser_(parser),
|
| - old_mode_(parser->mode()) {
|
| - parser_->mode_ = mode;
|
| - }
|
| - ~ParsingModeScope() {
|
| - parser_->mode_ = old_mode_;
|
| - }
|
| -
|
| - private:
|
| - ParserBase* parser_;
|
| - Mode old_mode_;
|
| - };
|
| -
|
| struct DeclarationDescriptor {
|
| enum Kind { NORMAL, PARAMETER };
|
| Scope* scope;
|
| @@ -753,7 +734,6 @@ class ParserBase {
|
| int peek_position() const { return scanner_->peek_location().beg_pos; }
|
| bool stack_overflow() const { return stack_overflow_; }
|
| void set_stack_overflow() { stack_overflow_ = true; }
|
| - Mode mode() const { return mode_; }
|
|
|
| INLINE(Token::Value peek()) {
|
| if (stack_overflow_) return Token::ILLEGAL;
|
| @@ -1440,7 +1420,6 @@ class ParserBase {
|
| FuncNameInferrer* fni_;
|
| AstValueFactory* ast_value_factory_; // Not owned.
|
| typename Types::Factory ast_node_factory_;
|
| - Mode mode_;
|
| bool parsing_module_;
|
| uintptr_t stack_limit_;
|
|
|
| @@ -3924,7 +3903,7 @@ ParserBase<Impl>::ParseArrowFunctionLiteral(
|
| FunctionKind kind = formal_parameters.scope->function_kind();
|
| FunctionLiteral::EagerCompileHint eager_compile_hint =
|
| default_eager_compile_hint_;
|
| - bool can_preparse = mode() == PARSE_LAZILY &&
|
| + bool can_preparse = impl()->parse_lazily() &&
|
| eager_compile_hint == FunctionLiteral::kShouldLazyCompile;
|
| // TODO(marja): consider lazy-parsing inner arrow functions too. is_this
|
| // handling in Scope::ResolveVariable needs to change.
|
| @@ -4405,11 +4384,6 @@ ParserBase<Impl>::ParseStatementList(StatementListT body, int end_token,
|
| *ok = false;
|
| return kLazyParsingComplete;
|
| }
|
| - // Because declarations in strict eval code don't leak into the scope
|
| - // of the eval call, it is likely that functions declared in strict
|
| - // eval code will be used within the eval code, so lazy parsing is
|
| - // probably not a win.
|
| - if (scope()->is_eval_scope()) mode_ = PARSE_EAGERLY;
|
| } else if (impl()->IsUseAsmDirective(stat) &&
|
| token_loc.end_pos - token_loc.beg_pos ==
|
| sizeof("use asm") + 1) {
|
|
|