// <script type="module"> support
var anonSources = {};
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
+ 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);
+ }
+
+ // throw so it still shows up in the console
+ throw err;
+ }
+
function ready() {
document.removeEventListener('DOMContentLoaded', ready, false );
if (script.type == 'module' && !script.loaded) {
script.loaded = true;
if (script.src) {
- loader.import(script.src).catch(function(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;
- });
+ loader.import(script.src).catch(handleError);
}
// anonymous modules supported via a custom naming scheme and registry
else {
var anonName = resolveIfNotPlain(uri, baseURI);
anonSources[anonName] = script.innerHTML;
- loader.import(anonName).catch(function(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;
- });
+ loader.import(anonName).catch(handleError);
}
}
}
};
var promiseMap = new Map();
-var babelWorker = new WorkerPool('vendor/browser-es-module-loader/dist/babel-worker.js', 3);
+var babelWorker = new WorkerPool('/vendor/browser-es-module-loader/dist/babel-worker.js', 3);
babelWorker.onmessage = function (evt) {
var promFuncs = promiseMap.get(evt.data.key);
promFuncs.resolve(evt.data);
}).then(function (data) {
// evaluate without require, exports and module variables
// we leave module in for now to allow module.require access
- localStorage.setItem(key+'!raw', data.source);
- localStorage.setItem(data.key+'!transpiled', data.code);
+ if (data.key.slice(-8) !== '#nocache') {
+ localStorage.setItem(key+'!raw', data.source);
+ localStorage.setItem(data.key+'!transpiled', data.code);
+ }
(0, eval)(data.code + '\n//# sourceURL=' + data.key + '!transpiled');
processAnonRegister();
});