From 96cb3b01ded7fbe81f07c8a5269edcee205f6222 Mon Sep 17 00:00:00 2001
From: Ondrej Pokorny <ondrej@kluug.net>
Date: Mon, 9 Dec 2024 16:43:39 +0000
Subject: [PATCH] Pas2JS: showException with stack trace for RTL Exception
 object

---
 utils/pas2js/dist/rtl.js | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/utils/pas2js/dist/rtl.js b/utils/pas2js/dist/rtl.js
index fee293acf5..b9944a93b6 100644
--- a/utils/pas2js/dist/rtl.js
+++ b/utils/pas2js/dist/rtl.js
@@ -155,7 +155,13 @@ var rtl = {
   },
   
   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 : '';
     errMsg += ((errMsg) ? ': ' : '') + (re.hasOwnProperty('fMessage') ? re.fMessage : '');
     errMsg += ((errMsg) ? "\n" : '') + errStack;