Merge pull request #4710 from yglukhov/js-ex-stack

Store stack trace in exception
This commit is contained in:
Andreas Rumpf 2016-09-04 22:48:15 +02:00 • committed by GitHub
commit e6e53549fe

View file

@ -109,6 +109,7 @@ proc rawWriteStackTrace(): string =
result = "No stack traceback available\n" result = "No stack traceback available\n"
proc getStackTrace*(): string = rawWriteStackTrace() proc getStackTrace*(): string = rawWriteStackTrace()
proc getStackTrace*(e: ref Exception): string = e.trace
proc unhandledException(e: ref Exception) {. proc unhandledException(e: ref Exception) {.
compilerproc, asmNoStackFrame.} = compilerproc, asmNoStackFrame.} =
@ -142,6 +143,8 @@ proc raiseException(e: ref Exception, ename: cstring) {.
when defined(nimphp): when defined(nimphp):
asm """throw new Exception($`e`["message"]);""" asm """throw new Exception($`e`["message"]);"""
else: else:
when NimStackTrace:
e.trace = rawWriteStackTrace()
asm "throw `e`;" asm "throw `e`;"
proc reraiseException() {.compilerproc, asmNoStackFrame.} = proc reraiseException() {.compilerproc, asmNoStackFrame.} =