summary refs log tree commit diff stats
path: root/tests/js/tasync_pragma.nim
diff options
context:
space:
mode:
authorAlexander Ivanov <alehander42@gmail.com>2018-03-03 16:53:28 +0200
committerAlexander Ivanov <alehander42@gmail.com>2018-03-03 16:53:28 +0200
commit3bffbf5a4d499ed4c3dce9f70d1188b2fa838ed1 (patch)
tree01cdc08ada78c0fd8e6431336dfbbee617d895e8 /tests/js/tasync_pragma.nim
parent4164ec4f8b6d9968e69381edd35d9cf6fe79dee1 (diff)
downloadNim-3bffbf5a4d499ed4c3dce9f70d1188b2fa838ed1.tar.gz
Stop replacing all pragmas of a function with asyncjs
Diffstat (limited to 'tests/js/tasync_pragma.nim')
-rw-r--r--tests/js/tasync_pragma.nim27
1 files changed, 27 insertions, 0 deletions
diff --git a/tests/js/tasync_pragma.nim b/tests/js/tasync_pragma.nim
new file mode 100644
index 000000000..a16e94657
--- /dev/null
+++ b/tests/js/tasync_pragma.nim
@@ -0,0 +1,27 @@
+discard """
+  output: '''
+0
+t
+'''
+"""
+
+import asyncjs, macros
+
+macro f*(a: untyped): untyped =
+  assert a.kind == nnkProcDef
+  result = nnkProcDef.newTree(a.name, a[1], a[2], a.params, a.pragma, a[5], nnkStmtList.newTree())
+  let call = quote:
+    echo 0
+  result.body.add(call)
+  for child in a.body:
+    result.body.add(child)
+  echo result.body.repr
+
+proc t* {.async, f.} =
+  echo "t"
+
+proc t0* {.async.} =
+  await t()
+
+discard t0()
+