Browse Source

Pas2JS: showException with stack trace for RTL Exception object

Ondrej Pokorny 8 months ago
parent
commit
96cb3b01de
1 changed files with 7 additions and 1 deletions
  1. 7 1
      utils/pas2js/dist/rtl.js

+ 7 - 1
utils/pas2js/dist/rtl.js

@@ -155,7 +155,13 @@ var rtl = {
   },
   },
   
   
   showException : function (re) {
   showException : function (re) {
-    var errStack = (re.hasOwnProperty('stack')) ? re.stack : re;
+    var errStack="";
+    if (rtl.isObject(re) && re.hasOwnProperty('FJSError') && rtl.isObject(re.FJSError) && !(re.FJSError.stack==undefined)) // rtl Exception
+      errStack=re.FJSError.stack
+    else if (rtl.isObject(re) && re.hasOwnProperty('stack') && !(re.stack==undefined)) // native JS Error
+      errStack=re.stack
+    else
+      errStack=re; // unknown object
     var errMsg = rtl.hasString(re.$classname) ? re.$classname : '';
     var errMsg = rtl.hasString(re.$classname) ? re.$classname : '';
     errMsg += ((errMsg) ? ': ' : '') + (re.hasOwnProperty('fMessage') ? re.fMessage : '');
     errMsg += ((errMsg) ? ': ' : '') + (re.hasOwnProperty('fMessage') ? re.fMessage : '');
     errMsg += ((errMsg) ? "\n" : '') + errStack;
     errMsg += ((errMsg) ? "\n" : '') + errStack;