diff options
Diffstat (limited to 'deps/v8/src/parser.h')
-rw-r--r-- | deps/v8/src/parser.h | 35 |
1 files changed, 30 insertions, 5 deletions
diff --git a/deps/v8/src/parser.h b/deps/v8/src/parser.h index 70d0e18fdb..0613a8de99 100644 --- a/deps/v8/src/parser.h +++ b/deps/v8/src/parser.h @@ -321,7 +321,6 @@ class RegExpParser { // and sets the value if it is. bool ParseHexEscape(int length, uc32* value); - uc32 ParseControlLetterEscape(); uc32 ParseOctalLiteral(); // Tries to parse the input as a back reference. If successful it @@ -431,6 +430,9 @@ class Parser { void ReportMessageAt(Scanner::Location loc, const char* message, Vector<const char*> args); + void ReportMessageAt(Scanner::Location loc, + const char* message, + Vector<Handle<String> > args); protected: FunctionLiteral* ParseLazy(Handle<SharedFunctionInfo> info, @@ -578,6 +580,26 @@ class Parser { bool Check(Token::Value token); void ExpectSemicolon(bool* ok); + Handle<String> LiteralString(PretenureFlag tenured) { + if (scanner().is_literal_ascii()) { + return Factory::NewStringFromAscii(scanner().literal_ascii_string(), + tenured); + } else { + return Factory::NewStringFromTwoByte(scanner().literal_uc16_string(), + tenured); + } + } + + Handle<String> NextLiteralString(PretenureFlag tenured) { + if (scanner().is_next_literal_ascii()) { + return Factory::NewStringFromAscii(scanner().next_literal_ascii_string(), + tenured); + } else { + return Factory::NewStringFromTwoByte(scanner().next_literal_uc16_string(), + tenured); + } + } + Handle<String> GetSymbol(bool* ok); // Get odd-ball literals. @@ -612,11 +634,9 @@ class Parser { Scope* NewScope(Scope* parent, Scope::Type type, bool inside_with); - Handle<String> LookupSymbol(int symbol_id, - Vector<const char> string); + Handle<String> LookupSymbol(int symbol_id); - Handle<String> LookupCachedSymbol(int symbol_id, - Vector<const char> string); + Handle<String> LookupCachedSymbol(int symbol_id); Expression* NewCall(Expression* expression, ZoneList<Expression*>* arguments, @@ -665,6 +685,11 @@ class Parser { ScriptDataImpl* pre_data_; FuncNameInferrer* fni_; bool stack_overflow_; + // If true, the next (and immediately following) function literal is + // preceded by a parenthesis. + // Heuristically that means that the function will be called immediately, + // so never lazily compile it. + bool parenthesized_function_; }; |