Use common code to handle Promise errors
This commit is contained in:
parent
732233eda0
commit
36653517a5
|
@ -1169,6 +1169,23 @@ var loader;
|
||||||
// <script type="module"> support
|
// <script type="module"> support
|
||||||
var anonSources = {};
|
var anonSources = {};
|
||||||
if (typeof document != 'undefined' && document.getElementsByTagName) {
|
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);
|
||||||
|
}
|
||||||
|
evt.message = err.message;
|
||||||
|
evt.error = err;
|
||||||
|
window.dispatchEvent(evt);
|
||||||
|
|
||||||
|
// throw so it still shows up in the console
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
|
||||||
function ready() {
|
function ready() {
|
||||||
document.removeEventListener('DOMContentLoaded', ready, false );
|
document.removeEventListener('DOMContentLoaded', ready, false );
|
||||||
|
|
||||||
|
@ -1180,22 +1197,7 @@ if (typeof document != 'undefined' && document.getElementsByTagName) {
|
||||||
if (script.type == 'module' && !script.loaded) {
|
if (script.type == 'module' && !script.loaded) {
|
||||||
script.loaded = true;
|
script.loaded = true;
|
||||||
if (script.src) {
|
if (script.src) {
|
||||||
loader.import(script.src).catch(function(err) {
|
loader.import(script.src).catch(handleError);
|
||||||
// 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);
|
|
||||||
}
|
|
||||||
evt.message = err.message;
|
|
||||||
evt.error = err;
|
|
||||||
window.dispatchEvent(evt);
|
|
||||||
|
|
||||||
// throw so it still shows up in the console
|
|
||||||
throw err;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
// anonymous modules supported via a custom naming scheme and registry
|
// anonymous modules supported via a custom naming scheme and registry
|
||||||
else {
|
else {
|
||||||
|
@ -1206,22 +1208,7 @@ if (typeof document != 'undefined' && document.getElementsByTagName) {
|
||||||
|
|
||||||
var anonName = resolveIfNotPlain(uri, baseURI);
|
var anonName = resolveIfNotPlain(uri, baseURI);
|
||||||
anonSources[anonName] = script.innerHTML;
|
anonSources[anonName] = script.innerHTML;
|
||||||
loader.import(anonName).catch(function(err) {
|
loader.import(anonName).catch(handleError);
|
||||||
// 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);
|
|
||||||
}
|
|
||||||
evt.message = err.message;
|
|
||||||
evt.error = err;
|
|
||||||
window.dispatchEvent(evt);
|
|
||||||
|
|
||||||
// throw so it still shows up in the console
|
|
||||||
throw err;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,6 +9,23 @@ var loader;
|
||||||
// <script type="module"> support
|
// <script type="module"> support
|
||||||
var anonSources = {};
|
var anonSources = {};
|
||||||
if (typeof document != 'undefined' && document.getElementsByTagName) {
|
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);
|
||||||
|
}
|
||||||
|
evt.message = err.message;
|
||||||
|
evt.error = err;
|
||||||
|
window.dispatchEvent(evt);
|
||||||
|
|
||||||
|
// throw so it still shows up in the console
|
||||||
|
throw err;
|
||||||
|
}
|
||||||
|
|
||||||
function ready() {
|
function ready() {
|
||||||
document.removeEventListener('DOMContentLoaded', ready, false );
|
document.removeEventListener('DOMContentLoaded', ready, false );
|
||||||
|
|
||||||
|
@ -20,22 +37,7 @@ if (typeof document != 'undefined' && document.getElementsByTagName) {
|
||||||
if (script.type == 'module' && !script.loaded) {
|
if (script.type == 'module' && !script.loaded) {
|
||||||
script.loaded = true;
|
script.loaded = true;
|
||||||
if (script.src) {
|
if (script.src) {
|
||||||
loader.import(script.src).catch(function(err) {
|
loader.import(script.src).catch(handleError);
|
||||||
// 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);
|
|
||||||
}
|
|
||||||
evt.message = err.message;
|
|
||||||
evt.error = err;
|
|
||||||
window.dispatchEvent(evt);
|
|
||||||
|
|
||||||
// throw so it still shows up in the console
|
|
||||||
throw err;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
// anonymous modules supported via a custom naming scheme and registry
|
// anonymous modules supported via a custom naming scheme and registry
|
||||||
else {
|
else {
|
||||||
|
@ -46,22 +48,7 @@ if (typeof document != 'undefined' && document.getElementsByTagName) {
|
||||||
|
|
||||||
var anonName = resolveIfNotPlain(uri, baseURI);
|
var anonName = resolveIfNotPlain(uri, baseURI);
|
||||||
anonSources[anonName] = script.innerHTML;
|
anonSources[anonName] = script.innerHTML;
|
||||||
loader.import(anonName).catch(function(err) {
|
loader.import(anonName).catch(handleError);
|
||||||
// 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);
|
|
||||||
}
|
|
||||||
evt.message = err.message;
|
|
||||||
evt.error = err;
|
|
||||||
window.dispatchEvent(evt);
|
|
||||||
|
|
||||||
// throw so it still shows up in the console
|
|
||||||
throw err;
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue