diff options
-rw-r--r-- | lib/js/asyncjs.nim | 2 | ||||
-rw-r--r-- | tests/js/tasyncjs.nim | 5 |
2 files changed, 7 insertions, 0 deletions
diff --git a/lib/js/asyncjs.nim b/lib/js/asyncjs.nim index 8e2f85156..045d1e6b5 100644 --- a/lib/js/asyncjs.nim +++ b/lib/js/asyncjs.nim @@ -90,6 +90,8 @@ proc replaceReturn(node: var NimNode) = node[z] = nnkReturnStmt.newTree(value) elif son.kind == nnkAsgn and son[0].kind == nnkIdent and $son[0] == "result": node[z] = nnkAsgn.newTree(son[0], nnkCall.newTree(jsResolve, son[1])) + elif son.kind in RoutineNodes: + discard else: replaceReturn(son) inc z diff --git a/tests/js/tasyncjs.nim b/tests/js/tasyncjs.nim index 3de143643..f3b273c44 100644 --- a/tests/js/tasyncjs.nim +++ b/tests/js/tasyncjs.nim @@ -99,4 +99,9 @@ block asyncPragmaInType: proc foo() {.async.} = discard var x: Handler = foo +block: # 13341 + proc f {.async.} = + proc g: int = + result = 123 + discard main() |