(node, outermostLabeledStatement, ancestorFacts)
| 96951 | : factory.createAwaitExpression(expression); |
| 96952 | } |
| 96953 | function transformForAwaitOfStatement(node, outermostLabeledStatement, ancestorFacts) { |
| 96954 | var expression = ts.visitNode(node.expression, visitor, ts.isExpression); |
| 96955 | var iterator = ts.isIdentifier(expression) ? factory.getGeneratedNameForNode(expression) : factory.createTempVariable(/*recordTempVariable*/ undefined); |
| 96956 | var result = ts.isIdentifier(expression) ? factory.getGeneratedNameForNode(iterator) : factory.createTempVariable(/*recordTempVariable*/ undefined); |
| 96957 | var errorRecord = factory.createUniqueName("e"); |
| 96958 | var catchVariable = factory.getGeneratedNameForNode(errorRecord); |
| 96959 | var returnMethod = factory.createTempVariable(/*recordTempVariable*/ undefined); |
| 96960 | var callValues = ts.setTextRange(emitHelpers().createAsyncValuesHelper(expression), node.expression); |
| 96961 | var callNext = factory.createCallExpression(factory.createPropertyAccessExpression(iterator, "next"), /*typeArguments*/ undefined, []); |
| 96962 | var getDone = factory.createPropertyAccessExpression(result, "done"); |
| 96963 | var getValue = factory.createPropertyAccessExpression(result, "value"); |
| 96964 | var callReturn = factory.createFunctionCallCall(returnMethod, iterator, []); |
| 96965 | hoistVariableDeclaration(errorRecord); |
| 96966 | hoistVariableDeclaration(returnMethod); |
| 96967 | // if we are enclosed in an outer loop ensure we reset 'errorRecord' per each iteration |
| 96968 | var initializer = ancestorFacts & 2 /* HierarchyFacts.IterationContainer */ ? |
| 96969 | factory.inlineExpressions([factory.createAssignment(errorRecord, factory.createVoidZero()), callValues]) : |
| 96970 | callValues; |
| 96971 | var forStatement = ts.setEmitFlags(ts.setTextRange(factory.createForStatement( |
| 96972 | /*initializer*/ ts.setEmitFlags(ts.setTextRange(factory.createVariableDeclarationList([ |
| 96973 | ts.setTextRange(factory.createVariableDeclaration(iterator, /*exclamationToken*/ undefined, /*type*/ undefined, initializer), node.expression), |
| 96974 | factory.createVariableDeclaration(result) |
| 96975 | ]), node.expression), 2097152 /* EmitFlags.NoHoisting */), |
| 96976 | /*condition*/ factory.createComma(factory.createAssignment(result, createDownlevelAwait(callNext)), factory.createLogicalNot(getDone)), |
| 96977 | /*incrementor*/ undefined, |
| 96978 | /*statement*/ convertForOfStatementHead(node, getValue)), |
| 96979 | /*location*/ node), 256 /* EmitFlags.NoTokenTrailingSourceMaps */); |
| 96980 | ts.setOriginalNode(forStatement, node); |
| 96981 | return factory.createTryStatement(factory.createBlock([ |
| 96982 | factory.restoreEnclosingLabel(forStatement, outermostLabeledStatement) |
| 96983 | ]), factory.createCatchClause(factory.createVariableDeclaration(catchVariable), ts.setEmitFlags(factory.createBlock([ |
| 96984 | factory.createExpressionStatement(factory.createAssignment(errorRecord, factory.createObjectLiteralExpression([ |
| 96985 | factory.createPropertyAssignment("error", catchVariable) |
| 96986 | ]))) |
| 96987 | ]), 1 /* EmitFlags.SingleLine */)), factory.createBlock([ |
| 96988 | factory.createTryStatement( |
| 96989 | /*tryBlock*/ factory.createBlock([ |
| 96990 | ts.setEmitFlags(factory.createIfStatement(factory.createLogicalAnd(factory.createLogicalAnd(result, factory.createLogicalNot(getDone)), factory.createAssignment(returnMethod, factory.createPropertyAccessExpression(iterator, "return"))), factory.createExpressionStatement(createDownlevelAwait(callReturn))), 1 /* EmitFlags.SingleLine */) |
| 96991 | ]), |
| 96992 | /*catchClause*/ undefined, |
| 96993 | /*finallyBlock*/ ts.setEmitFlags(factory.createBlock([ |
| 96994 | ts.setEmitFlags(factory.createIfStatement(errorRecord, factory.createThrowStatement(factory.createPropertyAccessExpression(errorRecord, "error"))), 1 /* EmitFlags.SingleLine */) |
| 96995 | ]), 1 /* EmitFlags.SingleLine */)) |
| 96996 | ])); |
| 96997 | } |
| 96998 | function parameterVisitor(node) { |
| 96999 | ts.Debug.assertNode(node, ts.isParameter); |
| 97000 | return visitParameter(node); |
no test coverage detected
searching dependent graphs…