summary refs log tree commit diff stats
path: root/lib/js
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 /lib/js
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 'lib/js')
-rw-r--r--lib/js/jsffi.nim11
1 files changed, 11 insertions, 0 deletions
diff --git a/lib/js/jsffi.nim b/lib/js/jsffi.nim
index 7b44c57c7..307fe2382 100644
--- a/lib/js/jsffi.nim
+++ b/lib/js/jsffi.nim
@@ -89,6 +89,17 @@ var
   jsFilename* {.importc: "__filename", nodecl.}: cstring
     ## JavaScript's __filename pseudo-variable
 
+# Exceptions
+type
+  JsError* {.importc: "Error".} = object of JsRoot
+    message*: cstring
+  JsEvalError* {.importc: "EvalError".} = object of JsError
+  JsRangeError* {.importc: "RangeError".} = object of JsError
+  JsReferenceError* {.importc: "ReferenceError".} = object of JsError
+  JsSyntaxError* {.importc: "SyntaxError".} = object of JsError
+  JsTypeError* {.importc: "TypeError".} = object of JsError
+  JsURIError* {.importc: "URIError".} = object of JsError
+
 # New
 proc newJsObject*: JsObject {. importcpp: "{@}" .}
   ## Creates a new empty JsObject