summary refs log tree commit diff stats
path: root/compiler/jsgen.nim
diff options
context:
space:
mode:
authorYuriy Glukhov <yuriy.glukhov@gmail.com>2016-08-27 15:08:03 +0300
committerYuriy Glukhov <yuriy.glukhov@gmail.com>2016-08-27 16:52:08 +0300
commit8bff930c7c0bfa02e4d942faec1e7532d85f0cba (patch)
tree2f1bca2707d6d4fa978bd8d0c5c2725b784d30a4 /compiler/jsgen.nim
parent90b0a771e405eab9bc48e83ca7e4f47d3203d088 (diff)
downloadNim-8bff930c7c0bfa02e4d942faec1e7532d85f0cba.tar.gz
Fixed js codegen issue for uncaught exceptions.
Diffstat (limited to 'compiler/jsgen.nim')
-rw-r--r--compiler/jsgen.nim3
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", [])