diff --git a/es2panda/parser/statementParser.cpp b/es2panda/parser/statementParser.cpp index c1e63e01d48f552c25d9f51ea0a9d6d625c6ff3a..340f032b0fb014dc7e21ff89044b2397a1dafa92 100644 --- a/es2panda/parser/statementParser.cpp +++ b/es2panda/parser/statementParser.cpp @@ -768,6 +768,10 @@ ir::BlockStatement *ParserImpl::ParseBlockStatement(binder::Scope *scope) blockNode->SetRange({startLoc, lexer_->GetToken().End()}); scope->BindNode(blockNode); + // fix case: async function foo() { function test(){} await sleep(100);} + if (scope->IsFunctionScope()) { + context_.Status() = context_.Prev()->Status(); + } lexer_->NextToken(); return blockNode; }