| Index: src/parsing/parser.cc
|
| diff --git a/src/parsing/parser.cc b/src/parsing/parser.cc
|
| index a47a0b48d27243352c9a7a189735614f8674755e..0e9b79d20313dcd19c87f873392a4d81ef77c9f1 100644
|
| --- a/src/parsing/parser.cc
|
| +++ b/src/parsing/parser.cc
|
| @@ -297,76 +297,9 @@ class TargetScope BASE_EMBEDDED {
|
| // ----------------------------------------------------------------------------
|
| // Implementation of Parser
|
|
|
| -bool ParserBaseTraits<Parser>::IsEval(const AstRawString* identifier) const {
|
| - return identifier == delegate()->ast_value_factory()->eval_string();
|
| -}
|
| -
|
| -bool ParserBaseTraits<Parser>::IsArguments(
|
| - const AstRawString* identifier) const {
|
| - return identifier == delegate()->ast_value_factory()->arguments_string();
|
| -}
|
| -
|
| -bool ParserBaseTraits<Parser>::IsEvalOrArguments(
|
| - const AstRawString* identifier) const {
|
| - return IsEval(identifier) || IsArguments(identifier);
|
| -}
|
| -
|
| -bool ParserBaseTraits<Parser>::IsUndefined(
|
| - const AstRawString* identifier) const {
|
| - return identifier == delegate()->ast_value_factory()->undefined_string();
|
| -}
|
| -
|
| -bool ParserBaseTraits<Parser>::IsPrototype(
|
| - const AstRawString* identifier) const {
|
| - return identifier == delegate()->ast_value_factory()->prototype_string();
|
| -}
|
| -
|
| -bool ParserBaseTraits<Parser>::IsConstructor(
|
| - const AstRawString* identifier) const {
|
| - return identifier == delegate()->ast_value_factory()->constructor_string();
|
| -}
|
| -
|
| -bool ParserBaseTraits<Parser>::IsThisProperty(Expression* expression) {
|
| - DCHECK(expression != NULL);
|
| - Property* property = expression->AsProperty();
|
| - return property != NULL && property->obj()->IsVariableProxy() &&
|
| - property->obj()->AsVariableProxy()->is_this();
|
| -}
|
| -
|
| -bool ParserBaseTraits<Parser>::IsIdentifier(Expression* expression) {
|
| - VariableProxy* operand = expression->AsVariableProxy();
|
| - return operand != NULL && !operand->is_this();
|
| -}
|
| -
|
| -void ParserBaseTraits<Parser>::PushPropertyName(FuncNameInferrer* fni,
|
| - Expression* expression) {
|
| - if (expression->IsPropertyName()) {
|
| - fni->PushLiteralName(expression->AsLiteral()->AsRawPropertyName());
|
| - } else {
|
| - fni->PushLiteralName(
|
| - delegate()->ast_value_factory()->anonymous_function_string());
|
| - }
|
| -}
|
| -
|
| -void ParserBaseTraits<Parser>::CheckAssigningFunctionLiteralToProperty(
|
| - Expression* left, Expression* right) {
|
| - DCHECK(left != NULL);
|
| - if (left->IsProperty() && right->IsFunctionLiteral()) {
|
| - right->AsFunctionLiteral()->set_pretenure();
|
| - }
|
| -}
|
| -
|
| -Expression* ParserBaseTraits<Parser>::MarkExpressionAsAssigned(
|
| - Expression* expression) {
|
| - VariableProxy* proxy =
|
| - expression != NULL ? expression->AsVariableProxy() : NULL;
|
| - if (proxy != NULL) proxy->set_is_assigned();
|
| - return expression;
|
| -}
|
| -
|
| -bool ParserBaseTraits<Parser>::ShortcutNumericLiteralBinaryExpression(
|
| - Expression** x, Expression* y, Token::Value op, int pos,
|
| - AstNodeFactory* factory) {
|
| +bool Parser::ShortcutNumericLiteralBinaryExpression(Expression** x,
|
| + Expression* y,
|
| + Token::Value op, int pos) {
|
| if ((*x)->AsLiteral() && (*x)->AsLiteral()->raw_value()->IsNumber() &&
|
| y->AsLiteral() && y->AsLiteral()->raw_value()->IsNumber()) {
|
| double x_val = (*x)->AsLiteral()->raw_value()->AsNumber();
|
| @@ -376,53 +309,53 @@ bool ParserBaseTraits<Parser>::ShortcutNumericLiteralBinaryExpression(
|
| bool has_dot = x_has_dot || y_has_dot;
|
| switch (op) {
|
| case Token::ADD:
|
| - *x = factory->NewNumberLiteral(x_val + y_val, pos, has_dot);
|
| + *x = factory()->NewNumberLiteral(x_val + y_val, pos, has_dot);
|
| return true;
|
| case Token::SUB:
|
| - *x = factory->NewNumberLiteral(x_val - y_val, pos, has_dot);
|
| + *x = factory()->NewNumberLiteral(x_val - y_val, pos, has_dot);
|
| return true;
|
| case Token::MUL:
|
| - *x = factory->NewNumberLiteral(x_val * y_val, pos, has_dot);
|
| + *x = factory()->NewNumberLiteral(x_val * y_val, pos, has_dot);
|
| return true;
|
| case Token::DIV:
|
| - *x = factory->NewNumberLiteral(x_val / y_val, pos, has_dot);
|
| + *x = factory()->NewNumberLiteral(x_val / y_val, pos, has_dot);
|
| return true;
|
| case Token::BIT_OR: {
|
| int value = DoubleToInt32(x_val) | DoubleToInt32(y_val);
|
| - *x = factory->NewNumberLiteral(value, pos, has_dot);
|
| + *x = factory()->NewNumberLiteral(value, pos, has_dot);
|
| return true;
|
| }
|
| case Token::BIT_AND: {
|
| int value = DoubleToInt32(x_val) & DoubleToInt32(y_val);
|
| - *x = factory->NewNumberLiteral(value, pos, has_dot);
|
| + *x = factory()->NewNumberLiteral(value, pos, has_dot);
|
| return true;
|
| }
|
| case Token::BIT_XOR: {
|
| int value = DoubleToInt32(x_val) ^ DoubleToInt32(y_val);
|
| - *x = factory->NewNumberLiteral(value, pos, has_dot);
|
| + *x = factory()->NewNumberLiteral(value, pos, has_dot);
|
| return true;
|
| }
|
| case Token::SHL: {
|
| int value = DoubleToInt32(x_val) << (DoubleToInt32(y_val) & 0x1f);
|
| - *x = factory->NewNumberLiteral(value, pos, has_dot);
|
| + *x = factory()->NewNumberLiteral(value, pos, has_dot);
|
| return true;
|
| }
|
| case Token::SHR: {
|
| uint32_t shift = DoubleToInt32(y_val) & 0x1f;
|
| uint32_t value = DoubleToUint32(x_val) >> shift;
|
| - *x = factory->NewNumberLiteral(value, pos, has_dot);
|
| + *x = factory()->NewNumberLiteral(value, pos, has_dot);
|
| return true;
|
| }
|
| case Token::SAR: {
|
| uint32_t shift = DoubleToInt32(y_val) & 0x1f;
|
| int value = ArithmeticShiftRight(DoubleToInt32(x_val), shift);
|
| - *x = factory->NewNumberLiteral(value, pos, has_dot);
|
| + *x = factory()->NewNumberLiteral(value, pos, has_dot);
|
| return true;
|
| }
|
| case Token::EXP: {
|
| double value = Pow(x_val, y_val);
|
| int int_value = static_cast<int>(value);
|
| - *x = factory->NewNumberLiteral(
|
| + *x = factory()->NewNumberLiteral(
|
| int_value == value && value != -0.0 ? int_value : value, pos,
|
| has_dot);
|
| return true;
|
|
|