summary refs log tree commit diff stats
path: root/tests
diff options
context:
space:
mode:
authorLemonBoy <LemonBoy@users.noreply.github.com>2018-10-09 19:51:29 +0200
committerAndreas Rumpf <rumpf_a@web.de>2018-10-09 19:51:29 +0200
commita3fb0a769c05f5a88a68c9762069cc0056207258 (patch)
tree292788c43f2e54f0bd0194b1b113869ee4e39278 /tests
parentf98a3056c6c98ba546a302040679fb6226f555f6 (diff)
downloadNim-a3fb0a769c05f5a88a68c9762069cc0056207258.tar.gz
Try/Catch support for native JS exceptions (#8955)
* Try/Catch support for native JS exceptions

* Better tests
Diffstat (limited to 'tests')
-rw-r--r--tests/js/tnativeexc.nim31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/js/tnativeexc.nim b/tests/js/tnativeexc.nim
new file mode 100644
index 000000000..ea371c1cd
--- /dev/null
+++ b/tests/js/tnativeexc.nim
@@ -0,0 +1,31 @@
+discard """
+  action: "run"
+"""
+
+import jsffi
+
+# Can catch JS exceptions
+try:
+  asm """throw new Error('a new error');"""
+except JsError as e:
+  doAssert e.message == "a new error"
+except:
+  doAssert false
+
+# Can distinguish different exceptions
+try:
+  asm """JSON.parse(';;');"""
+except JsEvalError:
+  doAssert false
+except JsSyntaxError as se:
+  doAssert se.message == "Unexpected token ; in JSON at position 0"
+except JsError as e:
+  doAssert false
+
+# Can catch parent exception
+try:
+  asm """throw new SyntaxError();"""
+except JsError as e:
+  discard
+except:
+  doAssert false