Index: src/parsing/preparser.h |
diff --git a/src/parsing/preparser.h b/src/parsing/preparser.h |
index 3f268ee14ad00ce1029df3b425da5864f21f1773..8df87fb16b478785a675954cac95a6fbfa308502 100644 |
--- a/src/parsing/preparser.h |
+++ b/src/parsing/preparser.h |
@@ -624,104 +624,6 @@ class ParserBaseTraits<PreParser> { |
return reinterpret_cast<const PreParser*>(this); |
} |
- // Helper functions for recursive descent. |
- bool IsEval(PreParserIdentifier identifier) const { |
- return identifier.IsEval(); |
- } |
- |
- bool IsArguments(PreParserIdentifier identifier) const { |
- return identifier.IsArguments(); |
- } |
- |
- bool IsEvalOrArguments(PreParserIdentifier identifier) const { |
- return identifier.IsEvalOrArguments(); |
- } |
- |
- bool IsUndefined(PreParserIdentifier identifier) const { |
- return identifier.IsUndefined(); |
- } |
- |
- bool IsAwait(PreParserIdentifier identifier) const { |
- return identifier.IsAwait(); |
- } |
- |
- bool IsFutureStrictReserved(PreParserIdentifier identifier) const { |
- return identifier.IsFutureStrictReserved(); |
- } |
- |
- // Returns true if the expression is of type "this.foo". |
- static bool IsThisProperty(PreParserExpression expression) { |
- return expression.IsThisProperty(); |
- } |
- |
- static bool IsIdentifier(PreParserExpression expression) { |
- return expression.IsIdentifier(); |
- } |
- |
- static PreParserIdentifier AsIdentifier(PreParserExpression expression) { |
- return expression.AsIdentifier(); |
- } |
- |
- bool IsPrototype(PreParserIdentifier identifier) const { |
- return identifier.IsPrototype(); |
- } |
- |
- bool IsConstructor(PreParserIdentifier identifier) const { |
- return identifier.IsConstructor(); |
- } |
- |
- bool IsDirectEvalCall(PreParserExpression expression) const { |
- return expression.IsDirectEvalCall(); |
- } |
- |
- static bool IsBoilerplateProperty(PreParserExpression property) { |
- // PreParser doesn't count boilerplate properties. |
- return false; |
- } |
- |
- static bool IsArrayIndex(PreParserIdentifier string, uint32_t* index) { |
- return false; |
- } |
- |
- static PreParserExpression GetPropertyValue(PreParserExpression property) { |
- return PreParserExpression::Default(); |
- } |
- |
- // Functions for encapsulating the differences between parsing and preparsing; |
- // operations interleaved with the recursive descent. |
- static void PushLiteralName(FuncNameInferrer* fni, PreParserIdentifier id) { |
- // PreParser should not use FuncNameInferrer. |
- UNREACHABLE(); |
- } |
- |
- void PushPropertyName(FuncNameInferrer* fni, PreParserExpression expression) { |
- // PreParser should not use FuncNameInferrer. |
- UNREACHABLE(); |
- } |
- |
- static void InferFunctionName(FuncNameInferrer* fni, |
- PreParserExpression expression) { |
- // PreParser should not use FuncNameInferrer. |
- UNREACHABLE(); |
- } |
- |
- static void CheckAssigningFunctionLiteralToProperty( |
- PreParserExpression left, PreParserExpression right) {} |
- |
- static PreParserExpression MarkExpressionAsAssigned( |
- PreParserExpression expression) { |
- // TODO(marja): To be able to produce the same errors, the preparser needs |
- // to start tracking which expressions are variables and which are assigned. |
- return expression; |
- } |
- |
- bool ShortcutNumericLiteralBinaryExpression(PreParserExpression* x, |
- PreParserExpression y, |
- Token::Value op, int pos, |
- PreParserFactory* factory) { |
- return false; |
- } |
- |
PreParserExpression BuildUnaryExpression(PreParserExpression expression, |
Token::Value op, int pos, |
PreParserFactory* factory) { |
@@ -1136,6 +1038,111 @@ class PreParser : public ParserBase<PreParser> { |
V8_INLINE void QueueNonPatternForRewriting(PreParserExpression expr, |
bool* ok) {} |
+ // Helper functions for recursive descent. |
+ V8_INLINE bool IsEval(PreParserIdentifier identifier) const { |
+ return identifier.IsEval(); |
+ } |
+ |
+ V8_INLINE bool IsArguments(PreParserIdentifier identifier) const { |
+ return identifier.IsArguments(); |
+ } |
+ |
+ V8_INLINE bool IsEvalOrArguments(PreParserIdentifier identifier) const { |
+ return identifier.IsEvalOrArguments(); |
+ } |
+ |
+ V8_INLINE bool IsUndefined(PreParserIdentifier identifier) const { |
+ return identifier.IsUndefined(); |
+ } |
+ |
+ V8_INLINE bool IsAwait(PreParserIdentifier identifier) const { |
+ return identifier.IsAwait(); |
+ } |
+ |
+ V8_INLINE bool IsFutureStrictReserved(PreParserIdentifier identifier) const { |
+ return identifier.IsFutureStrictReserved(); |
+ } |
+ |
+ // Returns true if the expression is of type "this.foo". |
+ V8_INLINE static bool IsThisProperty(PreParserExpression expression) { |
+ return expression.IsThisProperty(); |
+ } |
+ |
+ V8_INLINE static bool IsIdentifier(PreParserExpression expression) { |
+ return expression.IsIdentifier(); |
+ } |
+ |
+ V8_INLINE static PreParserIdentifier AsIdentifier( |
+ PreParserExpression expression) { |
+ return expression.AsIdentifier(); |
+ } |
+ |
+ V8_INLINE bool IsPrototype(PreParserIdentifier identifier) const { |
+ return identifier.IsPrototype(); |
+ } |
+ |
+ V8_INLINE bool IsConstructor(PreParserIdentifier identifier) const { |
+ return identifier.IsConstructor(); |
+ } |
+ |
+ V8_INLINE bool IsDirectEvalCall(PreParserExpression expression) const { |
+ return expression.IsDirectEvalCall(); |
+ } |
+ |
+ V8_INLINE static bool IsBoilerplateProperty(PreParserExpression property) { |
+ // PreParser doesn't count boilerplate properties. |
+ return false; |
+ } |
+ |
+ V8_INLINE static bool IsArrayIndex(PreParserIdentifier string, |
+ uint32_t* index) { |
+ return false; |
+ } |
+ |
+ V8_INLINE static PreParserExpression GetPropertyValue( |
+ PreParserExpression property) { |
+ return PreParserExpression::Default(); |
+ } |
+ |
+ // Functions for encapsulating the differences between parsing and preparsing; |
+ // operations interleaved with the recursive descent. |
+ V8_INLINE static void PushLiteralName(FuncNameInferrer* fni, |
+ PreParserIdentifier id) { |
+ // PreParser should not use FuncNameInferrer. |
+ UNREACHABLE(); |
+ } |
+ |
+ V8_INLINE void PushPropertyName(FuncNameInferrer* fni, |
+ PreParserExpression expression) { |
+ // PreParser should not use FuncNameInferrer. |
+ UNREACHABLE(); |
+ } |
+ |
+ V8_INLINE static void InferFunctionName(FuncNameInferrer* fni, |
+ PreParserExpression expression) { |
+ // PreParser should not use FuncNameInferrer. |
+ UNREACHABLE(); |
+ } |
+ |
+ V8_INLINE static void CheckAssigningFunctionLiteralToProperty( |
+ PreParserExpression left, PreParserExpression right) {} |
+ |
+ V8_INLINE static PreParserExpression MarkExpressionAsAssigned( |
+ PreParserExpression expression) { |
+ // TODO(marja): To be able to produce the same errors, the preparser needs |
+ // to start tracking which expressions are variables and which are assigned. |
+ return expression; |
+ } |
+ |
+ V8_INLINE bool ShortcutNumericLiteralBinaryExpression(PreParserExpression* x, |
+ PreParserExpression y, |
+ Token::Value op, |
+ int pos) { |
+ return false; |
+ } |
+ |
+ // Preparser's private field members. |
+ |
int* use_counts_; |
}; |