| Index: runtime/vm/parser.h
|
| ===================================================================
|
| --- runtime/vm/parser.h (revision 44105)
|
| +++ runtime/vm/parser.h (working copy)
|
| @@ -57,9 +57,7 @@
|
| first_stack_local_index_(0),
|
| num_copied_params_(0),
|
| num_stack_locals_(0),
|
| - have_seen_await_expr_(false),
|
| - saved_try_ctx_(NULL),
|
| - async_saved_try_ctx_name_(String::ZoneHandle(zone(), String::null())) {
|
| + have_seen_await_expr_(false) {
|
| ASSERT(function.IsZoneHandle());
|
| // Every function has a local variable for the current context.
|
| LocalVariable* temp = new(zone()) LocalVariable(
|
| @@ -152,24 +150,6 @@
|
| void record_await() { have_seen_await_expr_ = true; }
|
| bool have_seen_await() const { return have_seen_await_expr_; }
|
|
|
| - void set_saved_try_ctx(LocalVariable* saved_try_ctx) {
|
| - ASSERT((saved_try_ctx == NULL) || !saved_try_ctx->is_captured());
|
| - saved_try_ctx_ = saved_try_ctx;
|
| - }
|
| - LocalVariable* saved_try_ctx() const { return saved_try_ctx_; }
|
| -
|
| - void set_async_saved_try_ctx_name(const String& async_saved_try_ctx_name) {
|
| - async_saved_try_ctx_name_ = async_saved_try_ctx_name.raw();
|
| - }
|
| - RawString* async_saved_try_ctx_name() const {
|
| - return async_saved_try_ctx_name_.raw();
|
| - }
|
| -
|
| - void reset_saved_try_ctx_vars() {
|
| - saved_try_ctx_ = NULL;
|
| - async_saved_try_ctx_name_ = String::null();
|
| - }
|
| -
|
| Thread* thread() const { return thread_; }
|
| Isolate* isolate() const { return thread()->isolate(); }
|
| Zone* zone() const { return thread()->zone(); }
|
| @@ -193,8 +173,6 @@
|
| int num_copied_params_;
|
| int num_stack_locals_;
|
| bool have_seen_await_expr_;
|
| - LocalVariable* saved_try_ctx_;
|
| - String& async_saved_try_ctx_name_;
|
|
|
| friend class Parser;
|
| DISALLOW_COPY_AND_ASSIGN(ParsedFunction);
|
| @@ -602,9 +580,9 @@
|
| void AddCatchParamsToScope(CatchParamDesc* exception_param,
|
| CatchParamDesc* stack_trace_param,
|
| LocalScope* scope);
|
| - void AddSavedExceptionAndStacktraceToScope(LocalVariable* exception_var,
|
| - LocalVariable* stack_trace_var,
|
| - LocalScope* scope);
|
| + void SetupSavedExceptionAndStacktrace();
|
| + void SaveExceptionAndStacktrace(LocalVariable* exception_var,
|
| + LocalVariable* stack_trace_var);
|
| // Parse all the catch clause of a try.
|
| SequenceNode* ParseCatchClauses(intptr_t handler_pos,
|
| LocalVariable* exception_var,
|
| @@ -617,6 +595,11 @@
|
| void PushTryBlock(Block* try_block);
|
| // Pops the inner most try block from the list.
|
| TryBlocks* PopTryBlock();
|
| + // Collect try block scopes and indices if await or yield is in try block.
|
| + void CheckAsyncOpInTryBlock(LocalScope** try_scope,
|
| + int16_t* try_index,
|
| + LocalScope** outer_try_scope,
|
| + int16_t* outer_try_index) const;
|
| // Add specified node to try block list so that it can be patched with
|
| // inlined finally code if needed.
|
| void AddNodeForFinallyInlining(AstNode* node);
|
| @@ -752,9 +735,6 @@
|
| const Function* func);
|
|
|
| void SetupSavedTryContext(LocalVariable* saved_try_context);
|
| - void RestoreSavedTryContext(LocalScope* saved_try_context_scope,
|
| - int16_t try_index,
|
| - SequenceNode* target);
|
|
|
| void CheckOperatorArity(const MemberDesc& member);
|
|
|
|
|