| Index: src/parser.h
|
| diff --git a/src/parser.h b/src/parser.h
|
| index c1b0361980d23bdc4c3de4bf2134210e4940abcf..87077479af0c0e73673677f538dce5af6754a0d1 100644
|
| --- a/src/parser.h
|
| +++ b/src/parser.h
|
| @@ -647,14 +647,14 @@ class Parser : public ParserBase<ParserTraits> {
|
| // Parses the source code represented by the compilation info and sets its
|
| // function literal. Returns false (and deallocates any allocated AST
|
| // nodes) if parsing failed.
|
| - static bool Parse(CompilationInfo* info, bool allow_lazy = false);
|
| - bool Parse();
|
| - void ParseOnBackground();
|
| + static bool ParseStatic(CompilationInfo* info, bool allow_lazy = false);
|
| + bool Parse(CompilationInfo* info);
|
| + void ParseOnBackground(CompilationInfo* info);
|
|
|
| // Handle errors detected during parsing, move statistics to Isolate,
|
| // internalize strings (move them to the heap).
|
| - void Internalize();
|
| - void HandleSourceURLComments();
|
| + void Internalize(CompilationInfo* info);
|
| + void HandleSourceURLComments(CompilationInfo* info);
|
|
|
| private:
|
| friend class ParserTraits;
|
| @@ -681,31 +681,28 @@ class Parser : public ParserBase<ParserTraits> {
|
| };
|
|
|
| // Returns NULL if parsing failed.
|
| - FunctionLiteral* ParseProgram();
|
| + FunctionLiteral* ParseProgram(CompilationInfo* info);
|
|
|
| - FunctionLiteral* ParseLazy();
|
| - FunctionLiteral* ParseLazy(Utf16CharacterStream* source);
|
| -
|
| - Isolate* isolate() { return info_->isolate(); }
|
| - CompilationInfo* info() const { return info_; }
|
| - Handle<Script> script() const { return info_->script(); }
|
| + FunctionLiteral* ParseLazy(CompilationInfo* info);
|
| + FunctionLiteral* ParseLazy(CompilationInfo* info,
|
| + Utf16CharacterStream* source);
|
|
|
| // Called by ParseProgram after setting up the scanner.
|
| FunctionLiteral* DoParseProgram(CompilationInfo* info, Scope** scope,
|
| Scope** ad_hoc_eval_scope);
|
|
|
| - void SetCachedData();
|
| + void SetCachedData(CompilationInfo* info);
|
|
|
| bool inside_with() const { return scope_->inside_with(); }
|
| ScriptCompiler::CompileOptions compile_options() const {
|
| - return info_->compile_options();
|
| + return compile_options_;
|
| }
|
| bool consume_cached_parse_data() const {
|
| - return compile_options() == ScriptCompiler::kConsumeParserCache &&
|
| + return compile_options_ == ScriptCompiler::kConsumeParserCache &&
|
| cached_parse_data_ != NULL;
|
| }
|
| bool produce_cached_parse_data() const {
|
| - return compile_options() == ScriptCompiler::kProduceParserCache;
|
| + return compile_options_ == ScriptCompiler::kProduceParserCache;
|
| }
|
| Scope* DeclarationScope(VariableMode mode) {
|
| return IsLexicalVariableMode(mode)
|
| @@ -841,7 +838,7 @@ class Parser : public ParserBase<ParserTraits> {
|
| const AstRawString* function_name, int pos, Variable* fvar,
|
| Token::Value fvar_init_op, FunctionKind kind, bool* ok);
|
|
|
| - void ThrowPendingError();
|
| + void ThrowPendingError(Isolate* isolate, Handle<Script> script);
|
|
|
| TemplateLiteralState OpenTemplateLiteral(int pos);
|
| void AddTemplateSpan(TemplateLiteralState* state, bool tail);
|
| @@ -855,9 +852,9 @@ class Parser : public ParserBase<ParserTraits> {
|
| PreParser* reusable_preparser_;
|
| Scope* original_scope_; // for ES5 function declarations in sloppy eval
|
| Target* target_stack_; // for break, continue statements
|
| + ScriptCompiler::CompileOptions compile_options_;
|
| ParseData* cached_parse_data_;
|
|
|
| - CompilationInfo* info_;
|
| bool parsing_lazy_arrow_parameters_; // for lazily parsed arrow functions.
|
|
|
| // Pending errors.
|
| @@ -873,6 +870,8 @@ class Parser : public ParserBase<ParserTraits> {
|
| int use_counts_[v8::Isolate::kUseCounterFeatureCount];
|
| int total_preparse_skipped_;
|
| HistogramTimer* pre_parse_timer_;
|
| +
|
| + bool parsing_on_main_thread_;
|
| };
|
|
|
|
|
|
|