Index: src/parsing/parser-base.h |
diff --git a/src/parsing/parser-base.h b/src/parsing/parser-base.h |
index 1ebbee4959e8f22f230a563e7e32716264f24561..04fb448f40a077b8ab402b8804da019df3cf37ec 100644 |
--- a/src/parsing/parser-base.h |
+++ b/src/parsing/parser-base.h |
@@ -200,7 +200,10 @@ class ParserBase { |
allow_harmony_async_await_(false), |
allow_harmony_restrictive_generators_(false), |
allow_harmony_trailing_commas_(false), |
- allow_harmony_class_fields_(false) {} |
+ allow_harmony_class_fields_(false), |
+ will_serialize_(false), |
+ serializer_enabled_(false), |
+ is_debug_(false) {} |
#define ALLOW_ACCESSORS(name) \ |
bool allow_##name() const { return allow_##name##_; } \ |
@@ -224,26 +227,30 @@ class ParserBase { |
void set_stack_limit(uintptr_t stack_limit) { stack_limit_ = stack_limit; } |
+ bool will_serialize() const { return will_serialize_; } |
+ void set_will_serialize(bool will_serialize) { |
+ will_serialize_ = will_serialize; |
+ } |
+ bool serializer_enabled() const { return serializer_enabled_; } |
+ void set_serializer_enabled(bool serializer_enabled) { |
+ serializer_enabled_ = serializer_enabled; |
+ } |
+ bool is_debug() const { return is_debug_; } |
+ void set_is_debug(bool is_debug) { is_debug_ = is_debug; } |
+ |
Zone* zone() const { return zone_; } |
protected: |
friend class v8::internal::ExpressionClassifier<ParserTypes<Impl>>; |
- // clang-format off |
jochen (gone - plz use gerrit)
2016/10/06 11:30:15
we shouldn't randomly disable clang-format, but st
|
enum AllowRestrictedIdentifiers { |
kAllowRestrictedIdentifiers, |
kDontAllowRestrictedIdentifiers |
}; |
- enum Mode { |
- PARSE_LAZILY, |
- PARSE_EAGERLY |
- }; |
+ enum Mode { PARSE_LAZILY, PARSE_EAGERLY }; |
- enum LazyParsingResult { |
- kLazyParsingComplete, |
- kLazyParsingAborted |
- }; |
+ enum LazyParsingResult { kLazyParsingComplete, kLazyParsingAborted }; |
enum VariableDeclarationContext { |
kStatementListItem, |
@@ -251,11 +258,7 @@ class ParserBase { |
kForStatement |
}; |
- enum class FunctionBodyType { |
- kNormal, |
- kSingleExpression |
- }; |
- // clang-format on |
+ enum class FunctionBodyType { kNormal, kSingleExpression }; |
class Checkpoint; |
class ClassLiteralChecker; |
@@ -1456,6 +1459,10 @@ class ParserBase { |
bool allow_harmony_trailing_commas_; |
bool allow_harmony_class_fields_; |
+ bool will_serialize_; |
+ bool serializer_enabled_; |
marja
2016/10/06 11:53:06
Seems unnecessary to need these bools in ParserBas
jochen (gone - plz use gerrit)
2016/10/06 15:05:04
allow_lazy is for native scripts for example - we
|
+ bool is_debug_; |
+ |
friend class DiscardableZoneScope; |
}; |
@@ -2291,6 +2298,9 @@ ParserBase<Impl>::ParseClassFieldForInitializer(bool has_initializer, |
FunctionLiteral::kAnonymousExpression, |
FunctionLiteral::kShouldLazyCompile, initializer_scope->start_position()); |
function_literal->set_is_class_field_initializer(true); |
+ if (impl()->ShouldCompileLazily(function_literal)) { |
+ initializer_scope->SetShouldCompileLazily(true); |
+ } |
return function_literal; |
} |
@@ -4043,6 +4053,10 @@ ParserBase<Impl>::ParseArrowFunctionLiteral( |
impl()->AddFunctionForNameInference(function_literal); |
+ if (impl()->ShouldCompileLazily(function_literal)) { |
+ formal_parameters.scope->SetShouldCompileLazily(true); |
+ } |
+ |
return function_literal; |
} |
@@ -4693,7 +4707,7 @@ ParserBase<Impl>::ParseExpressionOrLabelledStatement( |
// Identifier ':' Statement |
// |
// ExpressionStatement[Yield] : |
- // [lookahead ∉ {{, function, class, let [}] Expression[In, ?Yield] ; |
+ // [lookahead notin {{, function, class, let [}] Expression[In, ?Yield] ; |
jochen (gone - plz use gerrit)
2016/10/06 11:30:14
clang-format.py can't deal with this character..
|
int pos = peek_position(); |