Index: src/preparser.h |
diff --git a/src/preparser.h b/src/preparser.h |
index 7048c161e1282878714f0e439e6c00be058505d5..a060c03d171fce32e434ddc0ee8a3ce17dfe7641 100644 |
--- a/src/preparser.h |
+++ b/src/preparser.h |
@@ -394,7 +394,6 @@ class ParserBase : public Traits { |
ExpressionT ParseYieldExpression(bool* ok); |
ExpressionT ParseConditionalExpression(bool accept_IN, bool* ok); |
ExpressionT ParseBinaryExpression(int prec, bool accept_IN, bool* ok); |
- ExpressionT ParseUnaryExpression(bool* ok); |
// Used to detect duplicates in object literals. Each of the values |
// kGetterProperty, kSetterProperty and kValueProperty represents |
@@ -743,13 +742,6 @@ class PreParserFactory { |
int pos) { |
return PreParserExpression::Default(); |
} |
- |
- PreParserExpression NewCountOperation(Token::Value op, |
- bool is_prefix, |
- PreParserExpression expression, |
- int pos) { |
- return PreParserExpression::Default(); |
- } |
}; |
@@ -802,10 +794,6 @@ class PreParserTraits { |
return expression.IsThisProperty(); |
} |
- static bool IsIdentifier(PreParserExpression expression) { |
- return expression.IsIdentifier(); |
- } |
- |
static bool IsBoilerplateProperty(PreParserExpression property) { |
// PreParser doesn't count boilerplate properties. |
return false; |
@@ -853,12 +841,6 @@ class PreParserTraits { |
return false; |
} |
- PreParserExpression BuildUnaryExpression(PreParserExpression expression, |
- Token::Value op, int pos, |
- PreParserFactory* factory) { |
- return PreParserExpression::Default(); |
- } |
- |
// Reporting errors. |
void ReportMessageAt(Scanner::Location location, |
const char* message, |
@@ -940,7 +922,7 @@ class PreParserTraits { |
int function_token_position, |
FunctionLiteral::FunctionType type, |
bool* ok); |
- PreParserExpression ParsePostfixExpression(bool* ok); |
+ PreParserExpression ParseUnaryExpression(bool* ok); |
private: |
PreParser* pre_parser_; |
@@ -1104,6 +1086,7 @@ class PreParser : public ParserBase<PreParserTraits> { |
Statement ParseTryStatement(bool* ok); |
Statement ParseDebuggerStatement(bool* ok); |
Expression ParseConditionalExpression(bool accept_IN, bool* ok); |
+ Expression ParseUnaryExpression(bool* ok); |
Expression ParsePostfixExpression(bool* ok); |
Expression ParseLeftHandSideExpression(bool* ok); |
Expression ParseMemberExpression(bool* ok); |
@@ -1795,64 +1778,6 @@ ParserBase<Traits>::ParseBinaryExpression(int prec, bool accept_IN, bool* ok) { |
} |
-template <class Traits> |
-typename ParserBase<Traits>::ExpressionT |
-ParserBase<Traits>::ParseUnaryExpression(bool* ok) { |
- // UnaryExpression :: |
- // PostfixExpression |
- // 'delete' UnaryExpression |
- // 'void' UnaryExpression |
- // 'typeof' UnaryExpression |
- // '++' UnaryExpression |
- // '--' UnaryExpression |
- // '+' UnaryExpression |
- // '-' UnaryExpression |
- // '~' UnaryExpression |
- // '!' UnaryExpression |
- |
- Token::Value op = peek(); |
- if (Token::IsUnaryOp(op)) { |
- op = Next(); |
- int pos = position(); |
- ExpressionT expression = ParseUnaryExpression(CHECK_OK); |
- |
- // "delete identifier" is a syntax error in strict mode. |
- if (op == Token::DELETE && strict_mode() == STRICT && |
- this->IsIdentifier(expression)) { |
- ReportMessage("strict_delete", Vector<const char*>::empty()); |
- *ok = false; |
- return this->EmptyExpression(); |
- } |
- |
- // Allow Traits do rewrite the expression. |
- return BuildUnaryExpression(expression, op, pos, factory()); |
- } else if (Token::IsCountOp(op)) { |
- op = Next(); |
- Scanner::Location lhs_location = scanner()->peek_location(); |
- ExpressionT expression = ParseUnaryExpression(CHECK_OK); |
- if (!this->IsValidLeftHandSide(expression)) { |
- ReportMessageAt(lhs_location, "invalid_lhs_in_prefix_op", true); |
- *ok = false; |
- return this->EmptyExpression(); |
- } |
- |
- if (strict_mode() == STRICT) { |
- // Prefix expression operand in strict mode may not be eval or arguments. |
- CheckStrictModeLValue(expression, CHECK_OK); |
- } |
- MarkExpressionAsLValue(expression); |
- |
- return factory()->NewCountOperation(op, |
- true /* prefix */, |
- expression, |
- position()); |
- |
- } else { |
- return this->ParsePostfixExpression(ok); |
- } |
-} |
- |
- |
#undef CHECK_OK |
#undef CHECK_OK_CUSTOM |