diff options
author | ringabout <43030857+ringabout@users.noreply.github.com> | 2024-09-09 20:20:40 +0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-09-09 14:20:40 +0200 |
commit | 3a55bae53fe80728ce625dd5366aee5da9cf6463 (patch) | |
tree | 0f1855da16e640c1d20037d2b66f117d06105c4b /tests/closure | |
parent | fcee829d85605d6d401f15966a283b0041631308 (diff) | |
download | Nim-3a55bae53fe80728ce625dd5366aee5da9cf6463.tar.gz |
enable closures tests for JS & implement `finished` for JS (#23521)
Diffstat (limited to 'tests/closure')
-rw-r--r-- | tests/closure/t8550.nim | 1 | ||||
-rw-r--r-- | tests/closure/tnested.nim | 35 |
2 files changed, 28 insertions, 8 deletions
diff --git a/tests/closure/t8550.nim b/tests/closure/t8550.nim index 153246f08..a07f45cdc 100644 --- a/tests/closure/t8550.nim +++ b/tests/closure/t8550.nim @@ -1,4 +1,5 @@ discard """ + targets: "c js" output: "@[\"42\"]" """ diff --git a/tests/closure/tnested.nim b/tests/closure/tnested.nim index 31963ea86..ec5af9b13 100644 --- a/tests/closure/tnested.nim +++ b/tests/closure/tnested.nim @@ -1,4 +1,5 @@ discard """ +targets: "c js" output: ''' foo88 23 24foo 88 @@ -183,14 +184,32 @@ block tclosure2: import typetraits -proc myDiscard[T](a: T) = discard +block: + proc myDiscard[T](a: T) = discard -proc foo() = - let a = 5 - let f = (proc() = - myDiscard (proc() = echo a) - ) - echo name(typeof(f)) + proc foo() = + let a = 5 + let f = (proc() = + myDiscard (proc() = echo a) + ) + echo name(typeof(f)) -foo() + foo() + +block: + iterator foo: int {.closure.} = + yield 1 + yield 2 + yield 3 + + proc pork = + let call = foo + for i in call(): + discard i + + let call2 = foo + while not finished(call2): + discard call2() + + pork() |