| Index: src/ast.cc
|
| diff --git a/src/ast.cc b/src/ast.cc
|
| index 1df668ddf7ea90ede64991a9a0d175c1c546199e..26bc491557aa9d3d4c37f9aa7a972e4fb56e5dab 100644
|
| --- a/src/ast.cc
|
| +++ b/src/ast.cc
|
| @@ -61,9 +61,9 @@ bool Expression::IsUndefinedLiteral(Isolate* isolate) const {
|
|
|
| VariableProxy::VariableProxy(Zone* zone, Variable* var, int position)
|
| : Expression(zone, position),
|
| - is_this_(var->is_this()),
|
| - is_assigned_(false),
|
| - is_resolved_(false),
|
| + bit_field_(IsThisField::encode(var->is_this()) |
|
| + IsAssignedField::encode(false) |
|
| + IsResolvedField::encode(false)),
|
| variable_feedback_slot_(FeedbackVectorICSlot::Invalid()),
|
| raw_name_(var->raw_name()),
|
| interface_(var->interface()) {
|
| @@ -74,9 +74,8 @@ VariableProxy::VariableProxy(Zone* zone, Variable* var, int position)
|
| VariableProxy::VariableProxy(Zone* zone, const AstRawString* name, bool is_this,
|
| Interface* interface, int position)
|
| : Expression(zone, position),
|
| - is_this_(is_this),
|
| - is_assigned_(false),
|
| - is_resolved_(false),
|
| + bit_field_(IsThisField::encode(is_this) | IsAssignedField::encode(false) |
|
| + IsResolvedField::encode(false)),
|
| variable_feedback_slot_(FeedbackVectorICSlot::Invalid()),
|
| raw_name_(name),
|
| interface_(interface) {}
|
| @@ -99,17 +98,17 @@ void VariableProxy::BindTo(Variable* var) {
|
| Assignment::Assignment(Zone* zone, Token::Value op, Expression* target,
|
| Expression* value, int pos)
|
| : Expression(zone, pos),
|
| - is_uninitialized_(false),
|
| - key_type_(ELEMENT),
|
| - store_mode_(STANDARD_STORE),
|
| - op_(op),
|
| + bit_field_(IsUninitializedField::encode(false) |
|
| + KeyTypeField::encode(ELEMENT) |
|
| + StoreModeField::encode(STANDARD_STORE) |
|
| + TokenField::encode(op)),
|
| target_(target),
|
| value_(value),
|
| binary_operation_(NULL) {}
|
|
|
|
|
| Token::Value Assignment::binary_op() const {
|
| - switch (op_) {
|
| + switch (op()) {
|
| case Token::ASSIGN_BIT_OR: return Token::BIT_OR;
|
| case Token::ASSIGN_BIT_XOR: return Token::BIT_XOR;
|
| case Token::ASSIGN_BIT_AND: return Token::BIT_AND;
|
|
|