]> git.proxmox.com Git - mirror_novnc.git/blobdiff - vendor/browser-es-module-loader/src/browser-es-module-loader.js
Try to populate error location on Promise errors
[mirror_novnc.git] / vendor / browser-es-module-loader / src / browser-es-module-loader.js
index 4df849dc706e3e164e6b9b808eac47e98fa89999..67f1dce48213881f83a66570784f5b09a5c5a63f 100644 (file)
@@ -12,15 +12,26 @@ if (typeof document != 'undefined' && document.getElementsByTagName) {
   function handleError(err) {
     // dispatch an error event so that we can display in errors in browsers
     // that don't yet support unhandledrejection
-    try {
-      var evt = new Event('error');
-    } catch (_eventError) {
-      var evt = document.createEvent('Event');
-      evt.initEvent('error', true, true);
+    if (window.onunhandledrejection === undefined) {
+      try {
+        var evt = new Event('error');
+      } catch (_eventError) {
+        var evt = document.createEvent('Event');
+        evt.initEvent('error', true, true);
+      }
+      evt.message = err.message;
+      if (err.fileName) {
+        evt.filename = err.fileName;
+        evt.lineno = err.lineNumber;
+        evt.colno = err.columnNumber;
+      } else if (err.sourceURL) {
+        evt.filename = err.sourceURL;
+        evt.lineno = err.line;
+        evt.colno = err.column;
+      }
+      evt.error = err;
+      window.dispatchEvent(evt);
     }
-    evt.message = err.message;
-    evt.error = err;
-    window.dispatchEvent(evt);
 
     // throw so it still shows up in the console
     throw err;