]> git.basschouten.com Git - openhab-addons.git/commitdiff
[jsscripting] Fix the `console.trace` polyfill to log a stack trace & Stringify JS...
authorFlorian Hotze <florianh_dev@icloud.com>
Sun, 20 Nov 2022 19:30:42 +0000 (20:30 +0100)
committerGitHub <noreply@github.com>
Sun, 20 Nov 2022 19:30:42 +0000 (20:30 +0100)
* [jsscripting] Fix the `console.trace` polyfill to log a stack trace & Stringify JS `Error`
* [jsscripting] Add myself to the codeowners

Fixes #12646

Signed-off-by: Florian Hotze <florianh_dev@icloud.com>
CODEOWNERS
bundles/org.openhab.automation.jsscripting/src/main/resources/node_modules/@jsscripting-globals.js

index 34634bf4910003118c0eef4e60c8052ca6b77031..a4a46bfa260743d8796e976eb1e7eac5d43e62e2 100644 (file)
@@ -7,7 +7,7 @@
 # Add-on maintainers:
 /bundles/org.openhab.automation.groovyscripting/ @wborn
 /bundles/org.openhab.automation.jrubyscripting/ @boc-tothefuture
-/bundles/org.openhab.automation.jsscripting/ @jpg0
+/bundles/org.openhab.automation.jsscripting/ @jpg0 @florian-h05
 /bundles/org.openhab.automation.jythonscripting/ @openhab/add-ons-maintainers
 /bundles/org.openhab.automation.pidcontroller/ @fwolter
 /bundles/org.openhab.automation.pwm/ @fwolter
index a398547833f07fdb1ef231c0504bebf4c6cf1f92..b68f05ebc91a369920a256c914bc2d10f5c6a7e4 100644 (file)
@@ -19,7 +19,7 @@
 
   function stringify (value) {
     try {
-      if (Java.isJavaObject(value)) {
+      if (Java.isJavaObject(value) || value instanceof Error) {
         return value.toString();
       } else {
         // special cases
       log.error(format.apply(null, arguments));
     },
 
-    trace: function (e) {
-      if (Java.isJavaObject(e)) {
-        log.trace(e.getLocalizedMessage(), e);
-      } else {
-        if (e.stack) {
-          log.trace(e.stack);
-        } else {
-          if (e.message) {
-            log.trace(format.apply(null, [(e.name || 'Error') + ':', e.message]));
-          } else {
-            log.trace((e.name || 'Error'));
-          }
-        }
-      }
+    trace: function () {
+      log.trace(new Error(format.apply(null, arguments)).stack.replace(/^Error: /, ''));
     },
 
     time: function (label) {