Index: src/parser.h |
diff --git a/src/parser.h b/src/parser.h |
index 333aaf55c16c244f3fe8c51de80bfa8232c363db..4febdc87696f1b667e4f240991703d3ee42b9cf9 100644 |
--- a/src/parser.h |
+++ b/src/parser.h |
@@ -490,6 +490,11 @@ class ParserTraits { |
static void CheckAssigningFunctionLiteralToProperty(Expression* left, |
Expression* right); |
+ // Keep track of eval() calls since they disable all local variable |
+ // optimizations. This checks if expression is an eval call, and if yes, |
+ // forwards the information to scope. |
+ void CheckPossibleEvalCall(Expression* expression, Scope* scope); |
+ |
// Determine if the expression is a variable proxy and mark it as being used |
// in an assignment or with a increment/decrement operator. This is currently |
// used on for the statically checking assignments to harmony const bindings. |
@@ -497,7 +502,7 @@ class ParserTraits { |
// Checks LHS expression for assignment and prefix/postfix increment/decrement |
// in strict mode. |
- void CheckStrictModeLValue(Expression*expression, bool* ok); |
+ void CheckStrictModeLValue(Expression* expression, bool* ok); |
// Returns true if we have a binary expression between two numeric |
// literals. In that case, *x will be changed to an expression which is the |
@@ -584,7 +589,7 @@ class ParserTraits { |
int function_token_position, |
FunctionLiteral::FunctionType type, |
bool* ok); |
- Expression* ParseLeftHandSideExpression(bool* ok); |
+ Expression* ParseMemberWithNewPrefixesExpression(bool* ok); |
private: |
Parser* parser_; |
@@ -622,11 +627,6 @@ class Parser : public ParserBase<ParserTraits> { |
// https://codereview.chromium.org/7003030/ ). |
static const int kMaxNumFunctionLocals = 4194303; // 2^22-1 |
- enum Mode { |
- PARSE_LAZILY, |
- PARSE_EAGERLY |
- }; |
- |
enum VariableDeclarationContext { |
kModuleElement, |
kBlockElement, |
@@ -640,22 +640,6 @@ class Parser : public ParserBase<ParserTraits> { |
kHasNoInitializers |
}; |
- class ParsingModeScope BASE_EMBEDDED { |
- public: |
- ParsingModeScope(Parser* parser, Mode mode) |
- : parser_(parser), |
- old_mode_(parser->mode()) { |
- parser_->mode_ = mode; |
- } |
- ~ParsingModeScope() { |
- parser_->mode_ = old_mode_; |
- } |
- |
- private: |
- Parser* parser_; |
- Mode old_mode_; |
- }; |
- |
// Returns NULL if parsing failed. |
FunctionLiteral* ParseProgram(); |
@@ -685,7 +669,6 @@ class Parser : public ParserBase<ParserTraits> { |
} |
bool inside_with() const { return scope_->inside_with(); } |
- Mode mode() const { return mode_; } |
ScriptDataImpl** cached_data() const { return cached_data_; } |
CachedDataMode cached_data_mode() const { return cached_data_mode_; } |
Scope* DeclarationScope(VariableMode mode) { |
@@ -742,14 +725,10 @@ class Parser : public ParserBase<ParserTraits> { |
// Support for hamony block scoped bindings. |
Block* ParseScopedBlock(ZoneStringList* labels, bool* ok); |
- Expression* ParseUnaryExpression(bool* ok); |
- Expression* ParseLeftHandSideExpression(bool* ok); |
Expression* ParseMemberWithNewPrefixesExpression(bool* ok); |
Expression* ParseMemberExpression(bool* ok); |
Expression* ParseMemberExpressionContinuation(Expression* expression, |
bool* ok); |
- Expression* ParseObjectLiteral(bool* ok); |
- |
// Initialize the components of a for-in / for-of statement. |
void InitializeForEachStatement(ForEachStatement* stmt, |
Expression* each, |
@@ -835,8 +814,6 @@ class Parser : public ParserBase<ParserTraits> { |
ScriptDataImpl** cached_data_; |
CachedDataMode cached_data_mode_; |
- Mode mode_; |
- |
CompilationInfo* info_; |
}; |