| Index: src/ast.h
|
| diff --git a/src/ast.h b/src/ast.h
|
| index 670c515087d53e626f7d42497c795fb4b8fca754..ab24680f42da21e3264ae1408d64f95e8fdd7161 100644
|
| --- a/src/ast.h
|
| +++ b/src/ast.h
|
| @@ -174,6 +174,7 @@ typedef ZoneList<Handle<Object> > ZoneObjectList;
|
| enum AstPropertiesFlag {
|
| kDontInline,
|
| kDontOptimize,
|
| + kDontOsr,
|
| kDontSelfOptimize,
|
| kDontSoftInline,
|
| kDontCache
|
| @@ -1231,9 +1232,14 @@ class TryStatement: public Statement {
|
| Block* try_block() const { return try_block_; }
|
| ZoneList<Label*>* escaping_targets() const { return escaping_targets_; }
|
|
|
| + BailoutId TryEntryId() const { return try_entry_id_; }
|
| + BailoutId TryExitId() const { return try_exit_id_; }
|
| +
|
| protected:
|
| - TryStatement(int index, Block* try_block)
|
| + TryStatement(Isolate* isolate, int index, Block* try_block)
|
| : index_(index),
|
| + try_entry_id_(GetNextId(isolate)),
|
| + try_exit_id_(GetNextId(isolate)),
|
| try_block_(try_block),
|
| escaping_targets_(NULL) { }
|
|
|
| @@ -1241,6 +1247,9 @@ class TryStatement: public Statement {
|
| // Unique (per-function) index of this handler. This is not an AST ID.
|
| int index_;
|
|
|
| + BailoutId try_entry_id_;
|
| + BailoutId try_exit_id_;
|
| +
|
| Block* try_block_;
|
| ZoneList<Label*>* escaping_targets_;
|
| };
|
| @@ -1255,16 +1264,16 @@ class TryCatchStatement: public TryStatement {
|
| Block* catch_block() const { return catch_block_; }
|
|
|
| protected:
|
| - TryCatchStatement(int index,
|
| + TryCatchStatement(Isolate* isolate,
|
| + int index,
|
| Block* try_block,
|
| Scope* scope,
|
| Variable* variable,
|
| Block* catch_block)
|
| - : TryStatement(index, try_block),
|
| + : TryStatement(isolate, index, try_block),
|
| scope_(scope),
|
| variable_(variable),
|
| - catch_block_(catch_block) {
|
| - }
|
| + catch_block_(catch_block) { }
|
|
|
| private:
|
| Scope* scope_;
|
| @@ -1280,8 +1289,11 @@ class TryFinallyStatement: public TryStatement {
|
| Block* finally_block() const { return finally_block_; }
|
|
|
| protected:
|
| - TryFinallyStatement(int index, Block* try_block, Block* finally_block)
|
| - : TryStatement(index, try_block),
|
| + TryFinallyStatement(Isolate* isolate,
|
| + int index,
|
| + Block* try_block,
|
| + Block* finally_block)
|
| + : TryStatement(isolate, index, try_block),
|
| finally_block_(finally_block) { }
|
|
|
| private:
|
| @@ -2978,21 +2990,24 @@ class AstNodeFactory BASE_EMBEDDED {
|
| VISIT_AND_RETURN(IfStatement, stmt)
|
| }
|
|
|
| - TryCatchStatement* NewTryCatchStatement(int index,
|
| + TryCatchStatement* NewTryCatchStatement(Isolate* isolate,
|
| + int index,
|
| Block* try_block,
|
| Scope* scope,
|
| Variable* variable,
|
| Block* catch_block) {
|
| TryCatchStatement* stmt = new(zone_) TryCatchStatement(
|
| - index, try_block, scope, variable, catch_block);
|
| + isolate, index, try_block, scope, variable, catch_block);
|
| VISIT_AND_RETURN(TryCatchStatement, stmt)
|
| }
|
|
|
| - TryFinallyStatement* NewTryFinallyStatement(int index,
|
| + TryFinallyStatement* NewTryFinallyStatement(Isolate* isolate,
|
| + int index,
|
| Block* try_block,
|
| Block* finally_block) {
|
| TryFinallyStatement* stmt =
|
| - new(zone_) TryFinallyStatement(index, try_block, finally_block);
|
| + new(zone_) TryFinallyStatement(isolate, index, try_block,
|
| + finally_block);
|
| VISIT_AND_RETURN(TryFinallyStatement, stmt)
|
| }
|
|
|
|
|