| Index: src/ast/ast.h
|
| diff --git a/src/ast/ast.h b/src/ast/ast.h
|
| index fa462f01d65fef171d6eb30954b03005b4ceddf2..b27b7ca0fed67cb922bea46a434d46b886053efd 100644
|
| --- a/src/ast/ast.h
|
| +++ b/src/ast/ast.h
|
| @@ -2668,7 +2668,7 @@ class FunctionLiteral final : public Expression {
|
| FunctionType function_type() const {
|
| return FunctionTypeBits::decode(bit_field_);
|
| }
|
| - FunctionKind kind() const { return FunctionKindBits::decode(bit_field_); }
|
| + FunctionKind kind() const;
|
|
|
| int ast_node_count() { return ast_properties_.node_count(); }
|
| AstProperties::Flags flags() const { return ast_properties_.flags(); }
|
| @@ -2680,10 +2680,10 @@ class FunctionLiteral final : public Expression {
|
| }
|
| bool dont_optimize() { return dont_optimize_reason() != kNoReason; }
|
| BailoutReason dont_optimize_reason() {
|
| - return DontOptimizeReasonField::decode(bit_field_2_);
|
| + return DontOptimizeReasonField::decode(bit_field_);
|
| }
|
| void set_dont_optimize_reason(BailoutReason reason) {
|
| - bit_field_2_ = DontOptimizeReasonField::update(bit_field_2_, reason);
|
| + bit_field_ = DontOptimizeReasonField::update(bit_field_, reason);
|
| }
|
|
|
| bool IsAnonymousFunctionDefinition() const {
|
| @@ -2701,11 +2701,11 @@ class FunctionLiteral final : public Expression {
|
| RequiresClassFieldInit::update(bit_field_, requires_class_field_init);
|
| }
|
| bool is_class_field_initializer() {
|
| - return IsClassFieldInitializer::decode(bit_field_2_);
|
| + return IsClassFieldInitializer::decode(bit_field_);
|
| }
|
| void set_is_class_field_initializer(bool is_class_field_initializer) {
|
| - bit_field_ = IsClassFieldInitializer::update(bit_field_2_,
|
| - is_class_field_initializer);
|
| + bit_field_ =
|
| + IsClassFieldInitializer::update(bit_field_, is_class_field_initializer);
|
| }
|
|
|
| private:
|
| @@ -2717,8 +2717,8 @@ class FunctionLiteral final : public Expression {
|
| int expected_property_count, int parameter_count,
|
| FunctionType function_type,
|
| ParameterFlag has_duplicate_parameters,
|
| - EagerCompileHint eager_compile_hint, FunctionKind kind,
|
| - int position, bool is_function)
|
| + EagerCompileHint eager_compile_hint, int position,
|
| + bool is_function)
|
| : Expression(position, kFunctionLiteral),
|
| materialized_literal_count_(materialized_literal_count),
|
| expected_property_count_(expected_property_count),
|
| @@ -2736,13 +2736,10 @@ class FunctionLiteral final : public Expression {
|
| kHasDuplicateParameters) |
|
| IsFunction::encode(is_function) |
|
| ShouldEagerCompile::encode(eager_compile_hint == kShouldEagerCompile) |
|
| - FunctionKindBits::encode(kind) | RequiresClassFieldInit::encode(false) |
|
| - ShouldNotBeUsedOnceHintField::encode(false);
|
| -
|
| - bit_field_2_ = DontOptimizeReasonField::encode(kNoReason) |
|
| - IsClassFieldInitializer::encode(false);
|
| -
|
| - DCHECK(IsValidFunctionKind(kind));
|
| + RequiresClassFieldInit::encode(false) |
|
| + ShouldNotBeUsedOnceHintField::encode(false) |
|
| + DontOptimizeReasonField::encode(kNoReason) |
|
| + IsClassFieldInitializer::encode(false);
|
| }
|
|
|
| class FunctionTypeBits
|
| @@ -2751,16 +2748,12 @@ class FunctionLiteral final : public Expression {
|
| class HasDuplicateParameters : public BitField<bool, Pretenure::kNext, 1> {};
|
| class IsFunction : public BitField<bool, HasDuplicateParameters::kNext, 1> {};
|
| class ShouldEagerCompile : public BitField<bool, IsFunction::kNext, 1> {};
|
| - class FunctionKindBits
|
| - : public BitField<FunctionKind, ShouldEagerCompile::kNext, 9> {};
|
| class ShouldNotBeUsedOnceHintField
|
| - : public BitField<bool, FunctionKindBits::kNext, 1> {};
|
| + : public BitField<bool, ShouldEagerCompile::kNext, 1> {};
|
| class RequiresClassFieldInit
|
| : public BitField<bool, ShouldNotBeUsedOnceHintField::kNext, 1> {};
|
| -
|
| - uint32_t bit_field_2_;
|
| -
|
| - class IsClassFieldInitializer : public BitField<bool, 0, 1> {};
|
| + class IsClassFieldInitializer
|
| + : public BitField<bool, RequiresClassFieldInit::kNext, 1> {};
|
| class DontOptimizeReasonField
|
| : public BitField<BailoutReason, IsClassFieldInitializer::kNext, 8> {};
|
|
|
| @@ -3469,13 +3462,12 @@ class AstNodeFactory final BASE_EMBEDDED {
|
| int expected_property_count, int parameter_count,
|
| FunctionLiteral::ParameterFlag has_duplicate_parameters,
|
| FunctionLiteral::FunctionType function_type,
|
| - FunctionLiteral::EagerCompileHint eager_compile_hint, FunctionKind kind,
|
| - int position) {
|
| - return new (zone_) FunctionLiteral(
|
| - zone_, name, ast_value_factory_, scope, body,
|
| - materialized_literal_count, expected_property_count, parameter_count,
|
| - function_type, has_duplicate_parameters, eager_compile_hint, kind,
|
| - position, true);
|
| + FunctionLiteral::EagerCompileHint eager_compile_hint, int position) {
|
| + return new (zone_) FunctionLiteral(zone_, name, ast_value_factory_, scope,
|
| + body, materialized_literal_count,
|
| + expected_property_count, parameter_count,
|
| + function_type, has_duplicate_parameters,
|
| + eager_compile_hint, position, true);
|
| }
|
|
|
| // Creates a FunctionLiteral representing a top-level script, the
|
| @@ -3490,8 +3482,7 @@ class AstNodeFactory final BASE_EMBEDDED {
|
| body, materialized_literal_count, expected_property_count,
|
| parameter_count, FunctionLiteral::kAnonymousExpression,
|
| FunctionLiteral::kNoDuplicateParameters,
|
| - FunctionLiteral::kShouldLazyCompile, FunctionKind::kNormalFunction, 0,
|
| - false);
|
| + FunctionLiteral::kShouldLazyCompile, 0, false);
|
| }
|
|
|
| ClassLiteral::Property* NewClassLiteralProperty(
|
|
|