diff options
author | Yuriy Glukhov <yuriy.glukhov@gmail.com> | 2016-08-27 15:08:03 +0300 |
---|---|---|
committer | Yuriy Glukhov <yuriy.glukhov@gmail.com> | 2016-08-27 16:52:08 +0300 |
commit | 8bff930c7c0bfa02e4d942faec1e7532d85f0cba (patch) | |
tree | 2f1bca2707d6d4fa978bd8d0c5c2725b784d30a4 /compiler/jsgen.nim | |
parent | 90b0a771e405eab9bc48e83ca7e4f47d3203d088 (diff) | |
download | Nim-8bff930c7c0bfa02e4d942faec1e7532d85f0cba.tar.gz |
Fixed js codegen issue for uncaught exceptions.
Diffstat (limited to 'compiler/jsgen.nim')
-rw-r--r-- | compiler/jsgen.nim | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/compiler/jsgen.nim b/compiler/jsgen.nim index 80bcd2b0e..335ee2b92 100644 --- a/compiler/jsgen.nim +++ b/compiler/jsgen.nim @@ -560,6 +560,7 @@ proc genTry(p: PProc, n: PNode, r: var TCompRes) = # ++excHandler; # try { # stmts; + # --excHandler; # } catch (EXC) { # var prevJSError = lastJSError; lastJSError = EXC; # --excHandler; @@ -595,7 +596,7 @@ proc genTry(p: PProc, n: PNode, r: var TCompRes) = var generalCatchBranchExists = false let dollar = rope(if p.target == targetJS: "" else: "$") if p.target == targetJS and catchBranchesExist: - addf(p.body, "} catch (EXC) {$n var prevJSError = lastJSError;$n" & + addf(p.body, "--excHandler;$n} catch (EXC) {$n var prevJSError = lastJSError;$n" & " lastJSError = EXC;$n --excHandler;$n", []) elif p.target == targetPHP: addf(p.body, "} catch (Exception $$EXC) {$n $$prevJSError = $$lastJSError;$n $$lastJSError = $$EXC;$n", []) |