Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(690)

Unified Diff: src/parser.cc

Issue 918203002: Get rid of PreParserIdentifier. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: . Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/parser.h ('k') | src/preparser.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/parser.cc
diff --git a/src/parser.cc b/src/parser.cc
index c1e6815b002af688d7be6266384c1e561f3df94f..6309e19bd0bc040ba7f2337b835d9d985a085d3c 100644
--- a/src/parser.cc
+++ b/src/parser.cc
@@ -392,22 +392,6 @@ class TargetScope BASE_EMBEDDED {
// ----------------------------------------------------------------------------
// Implementation of Parser
-bool ParserTraits::IsEvalOrArguments(const AstRawString* identifier) const {
- return identifier == parser_->ast_value_factory()->eval_string() ||
- identifier == parser_->ast_value_factory()->arguments_string();
-}
-
-
-bool ParserTraits::IsPrototype(const AstRawString* identifier) const {
- return identifier == parser_->ast_value_factory()->prototype_string();
-}
-
-
-bool ParserTraits::IsConstructor(const AstRawString* identifier) const {
- return identifier == parser_->ast_value_factory()->constructor_string();
-}
-
-
bool ParserTraits::IsThisProperty(Expression* expression) {
DCHECK(expression != NULL);
Property* property = expression->AsProperty();
@@ -654,28 +638,6 @@ void ParserTraits::ReportMessageAt(Scanner::Location source_location,
}
-const AstRawString* ParserTraits::GetSymbol(Scanner* scanner) {
- const AstRawString* result =
- parser_->scanner()->CurrentSymbol(parser_->ast_value_factory());
- DCHECK(result != NULL);
- return result;
-}
-
-
-const AstRawString* ParserTraits::GetNumberAsSymbol(Scanner* scanner) {
- double double_value = parser_->scanner()->DoubleValue();
- char array[100];
- const char* string =
- DoubleToCString(double_value, Vector<char>(array, arraysize(array)));
- return parser_->ast_value_factory()->GetOneByteString(string);
-}
-
-
-const AstRawString* ParserTraits::GetNextSymbol(Scanner* scanner) {
- return parser_->scanner()->NextSymbol(parser_->ast_value_factory());
-}
-
-
Expression* ParserTraits::ThisExpression(Scope* scope, AstNodeFactory* factory,
int pos) {
return factory->NewVariableProxy(scope->receiver(), pos);
@@ -739,7 +701,7 @@ Expression* ParserTraits::ExpressionFromIdentifier(const AstRawString* name,
Expression* ParserTraits::ExpressionFromString(int pos, Scanner* scanner,
AstNodeFactory* factory) {
- const AstRawString* symbol = GetSymbol(scanner);
+ const AstRawString* symbol = parser_->GetSymbol(scanner);
if (parser_->fni_ != NULL) parser_->fni_->PushLiteralName(symbol);
return factory->NewStringLiteral(symbol, pos);
}
@@ -3502,7 +3464,8 @@ Handle<FixedArray> CompileTimeValue::GetElements(Handle<FixedArray> value) {
}
-bool CheckAndDeclareArrowParameter(ParserTraits* traits, Expression* expression,
+bool CheckAndDeclareArrowParameter(AstValueFactory* ast_value_factory,
+ Scanner* scanner, Expression* expression,
Scope* scope, int* num_params,
Scanner::Location* dupe_loc) {
// Case for empty parameter lists:
@@ -3520,8 +3483,9 @@ bool CheckAndDeclareArrowParameter(ParserTraits* traits, Expression* expression,
if (expression->AsVariableProxy()->is_this()) return false;
const AstRawString* raw_name = expression->AsVariableProxy()->raw_name();
- if (traits->IsEvalOrArguments(raw_name) ||
- traits->IsFutureStrictReserved(raw_name))
+ if (raw_name == ast_value_factory->eval_string() ||
+ raw_name == ast_value_factory->arguments_string() ||
+ scanner->IdentifierIsFutureStrictReserved(raw_name))
return false;
if (scope->IsDeclared(raw_name)) {
@@ -3543,10 +3507,12 @@ bool CheckAndDeclareArrowParameter(ParserTraits* traits, Expression* expression,
binop->right()->is_parenthesized())
return false;
- return CheckAndDeclareArrowParameter(traits, binop->left(), scope,
- num_params, dupe_loc) &&
- CheckAndDeclareArrowParameter(traits, binop->right(), scope,
- num_params, dupe_loc);
+ return CheckAndDeclareArrowParameter(ast_value_factory, scanner,
+ binop->left(), scope, num_params,
+ dupe_loc) &&
+ CheckAndDeclareArrowParameter(ast_value_factory, scanner,
+ binop->right(), scope, num_params,
+ dupe_loc);
}
// Any other kind of expression is not a valid parameter list.
@@ -3562,8 +3528,9 @@ int ParserTraits::DeclareArrowParametersFromExpression(
// parsed as arrow function parameter list, becauseonly top-level functions
// are parsed lazily.
parser_->parsing_lazy_arrow_parameters_ = false;
- *ok = CheckAndDeclareArrowParameter(this, expression, scope, &num_params,
- dupe_loc);
+ *ok = CheckAndDeclareArrowParameter(parser_->ast_value_factory(),
+ parser_->scanner(), expression, scope,
+ &num_params, dupe_loc);
return num_params;
}
« no previous file with comments | « src/parser.h ('k') | src/preparser.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698