diff options
author | LemonBoy <LemonBoy@users.noreply.github.com> | 2019-02-08 11:57:47 +0100 |
---|---|---|
committer | Andreas Rumpf <rumpf_a@web.de> | 2019-02-08 11:57:47 +0100 |
commit | 710cfcecd30a779a38a1196fd031200ad8a8fe9b (patch) | |
tree | 17cadd065653045e1b980e2d46849bdbf15eaad2 /tests/vm/tmisc_vm.nim | |
parent | 631a8ab57f6935d34d290089b7cc36d23dc03504 (diff) | |
download | Nim-710cfcecd30a779a38a1196fd031200ad8a8fe9b.tar.gz |
Rework exception handling in the VM (#10544)
* Rework exception handling in the VM Make the safepoint handling more precise and less forgiving. The new code is clearer and more commented. Perform cleanup on `return`. The no-exception-thrown case in a try block should be slightly faster since we don't parse the whole set of exceptions every time. More tests. * Fix silly error that broke a few tests * Testament doesn't like files having the same name * Remove test case that failed compilation to js
Diffstat (limited to 'tests/vm/tmisc_vm.nim')
-rw-r--r-- | tests/vm/tmisc_vm.nim | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/tests/vm/tmisc_vm.nim b/tests/vm/tmisc_vm.nim index 6eb3dd627..bce0159ce 100644 --- a/tests/vm/tmisc_vm.nim +++ b/tests/vm/tmisc_vm.nim @@ -49,3 +49,23 @@ static: echo "caught Defect" except ValueError: echo "caught ValueError" + +# bug #10538 + +block: + proc fun1(): seq[int] = + try: + try: + result.add(1) + return + except: + result.add(-1) + finally: + result.add(2) + finally: + result.add(3) + result.add(4) + + let x1 = fun1() + const x2 = fun1() + doAssert(x1 == x2) |