Index: src/parser.h |
diff --git a/src/parser.h b/src/parser.h |
index 70d0e18fdb83dc6beed1c569a2b66310b99b89b1..58cd946cad639367d57650283a84a3445576f06d 100644 |
--- a/src/parser.h |
+++ b/src/parser.h |
@@ -169,12 +169,14 @@ class ParserApi { |
static bool Parse(CompilationInfo* info); |
// Generic preparser generating full preparse data. |
- static ScriptDataImpl* PreParse(UC16CharacterStream* source, |
+ static ScriptDataImpl* PreParse(Handle<String> source, |
+ unibrow::CharacterStream* stream, |
v8::Extension* extension); |
// Preparser that only does preprocessing that makes sense if only used |
// immediately after. |
- static ScriptDataImpl* PartialPreParse(UC16CharacterStream* source, |
+ static ScriptDataImpl* PartialPreParse(Handle<String> source, |
+ unibrow::CharacterStream* stream, |
v8::Extension* extension); |
}; |
@@ -433,26 +435,18 @@ class Parser { |
Vector<const char*> args); |
protected: |
- FunctionLiteral* ParseLazy(Handle<SharedFunctionInfo> info, |
- UC16CharacterStream* source, |
- ZoneScope* zone_scope); |
enum Mode { |
PARSE_LAZILY, |
PARSE_EAGERLY |
}; |
- // Called by ParseProgram after setting up the scanner. |
- FunctionLiteral* DoParseProgram(Handle<String> source, |
- bool in_global_context, |
- ZoneScope* zone_scope); |
- |
// Report syntax error |
void ReportUnexpectedToken(Token::Value token); |
void ReportInvalidPreparseData(Handle<String> name, bool* ok); |
void ReportMessage(const char* message, Vector<const char*> args); |
bool inside_with() const { return with_nesting_level_ > 0; } |
- V8JavaScriptScanner& scanner() { return scanner_; } |
+ Scanner& scanner() { return scanner_; } |
Mode mode() const { return mode_; } |
ScriptDataImpl* pre_data() const { return pre_data_; } |
@@ -554,7 +548,7 @@ class Parser { |
INLINE(Token::Value peek()) { |
if (stack_overflow_) return Token::ILLEGAL; |
- return scanner().peek(); |
+ return scanner_.peek(); |
} |
INLINE(Token::Value Next()) { |
@@ -566,11 +560,9 @@ class Parser { |
} |
if (StackLimitCheck().HasOverflowed()) { |
// Any further calls to Next or peek will return the illegal token. |
- // The current call must return the next token, which might already |
- // have been peek'ed. |
stack_overflow_ = true; |
} |
- return scanner().Next(); |
+ return scanner_.Next(); |
} |
INLINE(void Consume(Token::Value token)); |
@@ -710,14 +702,7 @@ class JsonParser BASE_EMBEDDED { |
// Parse JSON input as a single JSON value. |
// Returns null handle and sets exception if parsing failed. |
static Handle<Object> Parse(Handle<String> source) { |
- if (source->IsExternalTwoByteString()) { |
- ExternalTwoByteStringUC16CharacterStream stream( |
- Handle<ExternalTwoByteString>::cast(source), 0, source->length()); |
- return JsonParser().ParseJson(source, &stream); |
- } else { |
- GenericStringUC16CharacterStream stream(source, 0, source->length()); |
- return JsonParser().ParseJson(source, &stream); |
- } |
+ return JsonParser().ParseJson(source); |
} |
private: |
@@ -725,7 +710,7 @@ class JsonParser BASE_EMBEDDED { |
~JsonParser() { } |
// Parse a string containing a single JSON value. |
- Handle<Object> ParseJson(Handle<String> script, UC16CharacterStream* source); |
+ Handle<Object> ParseJson(Handle<String>); |
// Parse a single JSON value from input (grammar production JSONValue). |
// A JSON value is either a (double-quoted) string literal, a number literal, |
// one of "true", "false", or "null", or an object or array literal. |