| Index: src/parser.h
|
| diff --git a/src/parser.h b/src/parser.h
|
| index e3cee84097346b881e8b1e9f744af1cb4a150a02..909e4f3c019919526934a816413c43e2d1d1064f 100644
|
| --- a/src/parser.h
|
| +++ b/src/parser.h
|
| @@ -604,7 +604,7 @@ class ParserTraits {
|
|
|
| class Parser : public ParserBase<ParserTraits> {
|
| public:
|
| - explicit Parser(CompilationInfo* info);
|
| + Parser(CompilationInfo* info, uintptr_t stack_limit, uint32_t hash_seed);
|
| ~Parser() {
|
| delete reusable_preparser_;
|
| reusable_preparser_ = NULL;
|
| @@ -617,11 +617,13 @@ class Parser : public ParserBase<ParserTraits> {
|
| // nodes) if parsing failed.
|
| static bool Parse(CompilationInfo* info,
|
| bool allow_lazy = false) {
|
| - Parser parser(info);
|
| + Parser parser(info, info->isolate()->stack_guard()->real_climit(),
|
| + info->isolate()->heap()->HashSeed());
|
| parser.set_allow_lazy(allow_lazy);
|
| return parser.Parse();
|
| }
|
| bool Parse();
|
| + void ParseOnBackground();
|
|
|
| private:
|
| friend class ParserTraits;
|
| @@ -660,6 +662,8 @@ class Parser : public ParserBase<ParserTraits> {
|
| // Called by ParseProgram after setting up the scanner.
|
| FunctionLiteral* DoParseProgram(CompilationInfo* info,
|
| Handle<String> source);
|
| + FunctionLiteral* DoParseProgramInner(CompilationInfo* info, Scope** scope,
|
| + Scope** ad_hoc_eval_scope);
|
|
|
| void SetCachedData();
|
|
|
| @@ -677,7 +681,8 @@ class Parser : public ParserBase<ParserTraits> {
|
| // By making the 'exception handling' explicit, we are forced to check
|
| // for failure at the call sites.
|
| void* ParseSourceElements(ZoneList<Statement*>* processor, int end_token,
|
| - bool is_eval, bool is_global, bool* ok);
|
| + bool is_eval, bool is_global,
|
| + Scope** ad_hoc_eval_scope, bool* ok);
|
| Statement* ParseModuleElement(ZoneList<const AstRawString*>* labels,
|
| bool* ok);
|
| Statement* ParseModuleDeclaration(ZoneList<const AstRawString*>* names,
|
| @@ -827,6 +832,8 @@ class Parser : public ParserBase<ParserTraits> {
|
| bool pending_error_is_reference_error_;
|
|
|
| int use_counts_[v8::Isolate::kUseCounterFeatureCount];
|
| +
|
| + uint32_t hash_seed_;
|
| };
|
|
|
|
|
|
|