Try/Catch support for native JS exceptions (#8955)
* Try/Catch support for native JS exceptions * Better tests
This commit is contained in:
parent
f98a3056c6
commit
a3fb0a769c
4 changed files with 77 additions and 8 deletions
31
tests/js/tnativeexc.nim
Normal file
31
tests/js/tnativeexc.nim
Normal file
|
|
@ -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
|
||||
Loading…
Add table
Add a link
Reference in a new issue