regenerator
regenerator copied to clipboard
Regenerator-transform fails to transform 'await' inside template literal
The following code
let answer = async () => 42;
(async () => console.log(`Answer is ${await answer()}`))()
gives the following error:
Error: index.js: unknown Expression of type "TemplateLiteral"
at D:\test\node_modules\regenerator-transform\lib\emit.js:1035:15
at Emitter.Ep.explodeExpression (D:\test\node_modules\regenerator-transform\lib\emit.js:1037:4)
at explodeViaTempVar (D:\test\node_modules\regenerator-transform\lib\emit.js:810:23)
at D:\test\node_modules\regenerator-transform\lib\emit.js:893:24
at Array.forEach (native)
at D:\test\node_modules\regenerator-transform\lib\emit.js:892:18
at Emitter.Ep.explodeExpression (D:\test\node_modules\regenerator-transform\lib\emit.js:1037:4)
at D:\test\node_modules\regenerator-transform\lib\emit.js:579:23
at Emitter.Ep.explodeStatement (D:\test\node_modules\regenerator-transform\lib\emit.js:659:4)
at D:\test\node_modules\regenerator-transform\lib\emit.js:348:12
with [email protected]
and [email protected]
, [email protected]
.
This is definitely a bug! Usually this is solved by running the Babel transform for template literals before regenerator-transform
, but I think it would be relatively easy to handle TemplateLiteral
nodes more gracefully within Regenerator.