Skip to content
This repository was archived by the owner on Jul 13, 2020. It is now read-only.

Commit cc53028

Browse files
committed
build for testing
1 parent 3e1b3b3 commit cc53028

6 files changed

+290
-191
lines changed

dist/es6-module-loader-sans-promises.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/es6-module-loader-sans-promises.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/es6-module-loader-sans-promises.src.js

Lines changed: 85 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ function logloads(loads) {
283283
return;
284284

285285
if (instantiateResult === undefined) {
286-
load.address = load.address || 'anon' + ++anonCnt;
286+
load.address = load.address || '<Anonymous Module ' + ++anonCnt + '>';
287287

288288
// NB instead of load.kind, use load.isDeclarative
289289
load.isDeclarative = true;
@@ -357,8 +357,9 @@ function logloads(loads) {
357357
load.exception = exc;
358358

359359
var linkSets = load.linkSets.concat([]);
360-
for (var i = 0, l = linkSets.length; i < l; i++)
361-
linkSetFailed(linkSets[i], exc);
360+
for (var i = 0, l = linkSets.length; i < l; i++) {
361+
linkSetFailed(linkSets[i], load, exc);
362+
}
362363

363364
console.assert(load.linkSets.length == 0, 'linkSets not removed');
364365
});
@@ -463,14 +464,21 @@ function logloads(loads) {
463464
// snapshot(linkSet.loader);
464465
}
465466

467+
// linking errors can be generic or load-specific
468+
// this is necessary for debugging info
466469
function doLink(linkSet) {
470+
var error = false;
467471
try {
468-
link(linkSet);
472+
link(linkSet, function(load, exc) {
473+
linkSetFailed(linkSet, load, exc);
474+
error = true;
475+
});
469476
}
470-
catch(exc) {
471-
linkSetFailed(linkSet, exc);
472-
return true;
477+
catch(e) {
478+
linkSetFailed(linkSet, null, e);
479+
error = true;
473480
}
481+
return error;
474482
}
475483

476484
// 15.2.5.2.3
@@ -520,8 +528,14 @@ function logloads(loads) {
520528
}
521529

522530
// 15.2.5.2.4
523-
function linkSetFailed(linkSet, exc) {
531+
function linkSetFailed(linkSet, load, exc) {
524532
var loader = linkSet.loader;
533+
534+
if (linkSet.loads[0].name != load.name)
535+
exc = addToError(exc, 'Error loading "' + load.name + '" from "' + linkSet.loads[0].name + '" at ' + (linkSet.loads[0].address || '<unknown>') + '\n');
536+
537+
exc = addToError(exc, 'Error loading "' + load.name + '" at ' + (load.address || '<unknown>') + '\n');
538+
525539
var loads = linkSet.loads.concat([]);
526540
for (var i = 0, l = loads.length; i < l; i++) {
527541
var load = loads[i];
@@ -631,8 +645,22 @@ function logloads(loads) {
631645
}
632646
}
633647

648+
function doDynamicExecute(linkSet, load, linkError) {
649+
try {
650+
var module = load.execute();
651+
}
652+
catch(e) {
653+
linkError(load, e);
654+
return;
655+
}
656+
if (!module || !(module instanceof Module))
657+
linkError(load, new TypeError('Execution must define a Module instance'));
658+
else
659+
return module;
660+
}
661+
634662
// 15.2.5.4
635-
function link(linkSet) {
663+
function link(linkSet, linkError) {
636664

637665
var loader = linkSet.loader;
638666

@@ -667,9 +695,9 @@ function logloads(loads) {
667695
}
668696
// 15.2.5.6 LinkDynamicModules adjusted
669697
else {
670-
var module = load.execute();
671-
if (!module || !(module instanceof Module))
672-
throw new TypeError('Execution must define a Module instance');
698+
var module = doDynamicExecute(linkSet, load, linkError);
699+
if (!module)
700+
return;
673701
load.module = {
674702
name: load.name,
675703
module: module
@@ -832,8 +860,10 @@ function logloads(loads) {
832860
if (indexOf.call(seen, dep) == -1) {
833861
err = ensureEvaluated(dep, seen, loader);
834862
// stop on error, see https://bugs.ecmascript.org/show_bug.cgi?id=2996
835-
if (err)
836-
return err + '\n in module ' + dep.name;
863+
if (err) {
864+
err = addToError(err, 'Error evaluating ' + dep.name + '\n');
865+
return err;
866+
}
837867
}
838868
}
839869

@@ -847,7 +877,8 @@ function logloads(loads) {
847877
err = doExecute(module);
848878
if (err) {
849879
module.failed = true;
850-
} else if (Object.preventExtensions) {
880+
}
881+
else if (Object.preventExtensions) {
851882
// spec variation
852883
// we don't create a new module here because it was created and ammended
853884
// we just disable further extensions instead
@@ -858,6 +889,14 @@ function logloads(loads) {
858889
return err;
859890
}
860891

892+
function addToError(err, msg) {
893+
if (err instanceof Error)
894+
err.message = msg + err.message;
895+
else
896+
err = msg + err;
897+
return err;
898+
}
899+
861900
// 26.3 Loader
862901

863902
// 26.3.1.1
@@ -1058,6 +1097,16 @@ function logloads(loads) {
10581097
// parse function is used to parse a load record
10591098
// Returns an array of ModuleSpecifiers
10601099
var traceur;
1100+
1101+
function doCompile(source, compiler, filename) {
1102+
try {
1103+
return compiler.compile(source, filename);
1104+
}
1105+
catch(e) {
1106+
// traceur throws an error array
1107+
throw e[0];
1108+
}
1109+
}
10611110
Loader.prototype.parse = function(load) {
10621111
if (!traceur) {
10631112
if (typeof window == 'undefined' &&
@@ -1075,19 +1124,26 @@ function logloads(loads) {
10751124

10761125
load.isDeclarative = true;
10771126

1078-
var options = traceur.options || {};
1127+
var options = this.traceurOptions || {};
10791128
options.modules = 'instantiate';
10801129
options.script = false;
10811130
options.sourceMaps = true;
10821131
options.filename = load.address;
10831132

10841133
var compiler = new traceur.Compiler(options);
1085-
var source = compiler.compile(load.source, options.filename);
1134+
1135+
var source = doCompile(load.source, compiler, options.filename);
1136+
1137+
if (!source)
1138+
throw new Error('Error evaluating module ' + load.address);
1139+
10861140
var sourceMap = compiler.getSourceMap();
10871141

10881142
if (__global.btoa && sourceMap)
10891143
source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(sourceMap))) + '\n';
10901144

1145+
source = 'var __moduleAddress = "' + load.address + '";' + source;
1146+
10911147
__eval(source, __global, load);
10921148
}
10931149
})();
@@ -1119,12 +1175,13 @@ function logloads(loads) {
11191175
(function() {
11201176
var isWorker = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope;
11211177
var isBrowser = typeof window != 'undefined' && !isWorker;
1178+
var isWindows = typeof process != 'undefined' && !!process.platform.match(/^win/);
11221179
var Promise = __global.Promise || require('when/es6-shim/Promise');
11231180

11241181
// Helpers
11251182
// Absolute URL parsing, from https://gist.github.com/Yaffle/1088850
11261183
function parseURI(url) {
1127-
var m = String(url).replace(/^\s+|\s+$/g, '').match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);
1184+
var m = String(url).replace(/^\s+|\s+$/g, '').match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);
11281185
// authority = '//' + user + ':' + pass '@' + hostname + ':' port
11291186
return (m ? {
11301187
href : m[0] || '',
@@ -1213,7 +1270,12 @@ function logloads(loads) {
12131270
else if (typeof require != 'undefined') {
12141271
var fs;
12151272
fetchTextFromURL = function(url, fulfill, reject) {
1273+
if (url.substr(0, 5) != 'file:')
1274+
throw 'Only file URLs of the form file: allowed running in Node.';
12161275
fs = fs || require('fs');
1276+
url = url.substr(5);
1277+
if (isWindows)
1278+
url = url.replace(/\//g, '\\');
12171279
return fs.readFile(url, function(err, data) {
12181280
if (err)
12191281
return reject(err);
@@ -1228,15 +1290,17 @@ function logloads(loads) {
12281290

12291291
var SystemLoader = function($__super) {
12301292
function SystemLoader(options) {
1231-
$__Object$getPrototypeOf(SystemLoader.prototype).constructor.call(this, options || {});
1293+
$__super.call(this, options || {});
12321294

12331295
// Set default baseURL and paths
12341296
if (typeof location != 'undefined' && location.href) {
12351297
var href = __global.location.href.split('#')[0].split('?')[0];
12361298
this.baseURL = href.substring(0, href.lastIndexOf('/') + 1);
12371299
}
12381300
else if (typeof process != 'undefined' && process.cwd) {
1239-
this.baseURL = process.cwd() + '/';
1301+
this.baseURL = 'file:' + process.cwd() + '/';
1302+
if (isWindows)
1303+
this.baseURL = this.baseURL.replace(/\\/g, '/');
12401304
}
12411305
else {
12421306
throw new TypeError('No environment baseURL');
@@ -1410,11 +1474,10 @@ function logloads(loads) {
14101474

14111475
function ready() {
14121476
var scripts = document.getElementsByTagName('script');
1413-
14141477
for (var i = 0; i < scripts.length; i++) {
14151478
var script = scripts[i];
14161479
if (script.type == 'module') {
1417-
var source = script.innerHTML;
1480+
var source = script.innerHTML.substr(1);
14181481
System.module(source)['catch'](function(err) { setTimeout(function() { throw err; }); });
14191482
}
14201483
}

dist/es6-module-loader.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/es6-module-loader.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)