| Index: src/ast.h
|
| diff --git a/src/ast.h b/src/ast.h
|
| index 30355c29a3a12eb20efb9c2a82763c52bce33721..12c755b6c4c3334cbf46381356ded3625d0cdc42 100644
|
| --- a/src/ast.h
|
| +++ b/src/ast.h
|
| @@ -440,7 +440,6 @@ class IterationStatement: public BreakableStatement {
|
| IterationStatement(Isolate* isolate, ZoneStringList* labels)
|
| : BreakableStatement(isolate, labels, TARGET_FOR_ANONYMOUS),
|
| body_(NULL),
|
| - continue_target_(),
|
| osr_entry_id_(GetNextId(isolate)) {
|
| }
|
|
|
| @@ -1647,25 +1646,26 @@ class FunctionLiteral: public Expression {
|
| int expected_property_count,
|
| bool has_only_simple_this_property_assignments,
|
| Handle<FixedArray> this_property_assignments,
|
| - int num_parameters,
|
| + int parameter_count,
|
| Type type,
|
| bool has_duplicate_parameters)
|
| : Expression(isolate),
|
| name_(name),
|
| scope_(scope),
|
| body_(body),
|
| + this_property_assignments_(this_property_assignments),
|
| + inferred_name_(isolate->factory()->empty_string()),
|
| materialized_literal_count_(materialized_literal_count),
|
| expected_property_count_(expected_property_count),
|
| - has_only_simple_this_property_assignments_(
|
| - has_only_simple_this_property_assignments),
|
| - this_property_assignments_(this_property_assignments),
|
| - num_parameters_(num_parameters),
|
| - function_token_position_(RelocInfo::kNoPosition),
|
| - inferred_name_(HEAP->empty_string()),
|
| - is_expression_(type != DECLARATION),
|
| - is_anonymous_(type == ANONYMOUS_EXPRESSION),
|
| - pretenure_(false),
|
| - has_duplicate_parameters_(has_duplicate_parameters) {
|
| + parameter_count_(parameter_count),
|
| + function_token_position_(RelocInfo::kNoPosition) {
|
| + bitfield_ =
|
| + HasOnlySimpleThisPropertyAssignments::encode(
|
| + has_only_simple_this_property_assignments) |
|
| + IsExpression::encode(type != DECLARATION) |
|
| + IsAnonymous::encode(type == ANONYMOUS_EXPRESSION) |
|
| + Pretenure::encode(false) |
|
| + HasDuplicateParameters::encode(has_duplicate_parameters);
|
| }
|
|
|
| DECLARE_NODE_TYPE(FunctionLiteral)
|
| @@ -1677,20 +1677,20 @@ class FunctionLiteral: public Expression {
|
| int function_token_position() const { return function_token_position_; }
|
| int start_position() const;
|
| int end_position() const;
|
| - bool is_expression() const { return is_expression_; }
|
| - bool is_anonymous() const { return is_anonymous_; }
|
| + bool is_expression() const { return IsExpression::decode(bitfield_); }
|
| + bool is_anonymous() const { return IsAnonymous::decode(bitfield_); }
|
| bool strict_mode() const { return strict_mode_flag() == kStrictMode; }
|
| StrictModeFlag strict_mode_flag() const;
|
|
|
| int materialized_literal_count() { return materialized_literal_count_; }
|
| int expected_property_count() { return expected_property_count_; }
|
| bool has_only_simple_this_property_assignments() {
|
| - return has_only_simple_this_property_assignments_;
|
| + return HasOnlySimpleThisPropertyAssignments::decode(bitfield_);
|
| }
|
| Handle<FixedArray> this_property_assignments() {
|
| return this_property_assignments_;
|
| }
|
| - int num_parameters() { return num_parameters_; }
|
| + int parameter_count() { return parameter_count_; }
|
|
|
| bool AllowsLazyCompilation();
|
|
|
| @@ -1704,29 +1704,32 @@ class FunctionLiteral: public Expression {
|
| inferred_name_ = inferred_name;
|
| }
|
|
|
| - bool pretenure() { return pretenure_; }
|
| - void set_pretenure(bool value) { pretenure_ = value; }
|
| + bool pretenure() { return Pretenure::decode(bitfield_); }
|
| + void set_pretenure() { bitfield_ |= Pretenure::encode(true); }
|
| virtual bool IsInlineable() const;
|
|
|
| - bool has_duplicate_parameters() { return has_duplicate_parameters_; }
|
| + bool has_duplicate_parameters() {
|
| + return HasDuplicateParameters::decode(bitfield_);
|
| + }
|
|
|
| private:
|
| Handle<String> name_;
|
| Scope* scope_;
|
| ZoneList<Statement*>* body_;
|
| + Handle<FixedArray> this_property_assignments_;
|
| + Handle<String> inferred_name_;
|
| +
|
| int materialized_literal_count_;
|
| int expected_property_count_;
|
| - bool has_only_simple_this_property_assignments_;
|
| - Handle<FixedArray> this_property_assignments_;
|
| - int num_parameters_;
|
| - int start_position_;
|
| - int end_position_;
|
| + int parameter_count_;
|
| int function_token_position_;
|
| - Handle<String> inferred_name_;
|
| - bool is_expression_;
|
| - bool is_anonymous_;
|
| - bool pretenure_;
|
| - bool has_duplicate_parameters_;
|
| +
|
| + unsigned bitfield_;
|
| + class HasOnlySimpleThisPropertyAssignments: public BitField<bool, 0, 1> {};
|
| + class IsExpression: public BitField<bool, 1, 1> {};
|
| + class IsAnonymous: public BitField<bool, 2, 1> {};
|
| + class Pretenure: public BitField<bool, 3, 1> {};
|
| + class HasDuplicateParameters: public BitField<bool, 4, 1> {};
|
| };
|
|
|
|
|
|
|