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

Commit 6391fa6

Browse files
committed
loader.failed always shows failures now, race condition test case (fix pending)
1 parent 0dbcabc commit 6391fa6

File tree

8 files changed

+49
-14
lines changed

8 files changed

+49
-14
lines changed

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

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -406,9 +406,6 @@ function logloads(loads) {
406406
load.status = 'failed';
407407
load.exception = exc;
408408

409-
loader.loaderObj.failed = loader.loaderObj.failed || [];
410-
loader.loaderObj.failed.push(load);
411-
412409
var linkSets = load.linkSets.concat([]);
413410
for (var i = 0, l = linkSets.length; i < l; i++)
414411
linkSetFailed(linkSets[i], exc);
@@ -529,7 +526,8 @@ function logloads(loads) {
529526
var startingLoad = linkSet.loads[0];
530527

531528
// non-executing link variation for loader tracing
532-
// on the server
529+
// on the server. Not in spec.
530+
/***/
533531
if (linkSet.loader.loaderObj.execute === false) {
534532
var loads = [].concat(linkSet.loads);
535533
for (var i = 0; i < loads.length; i++) {
@@ -546,6 +544,7 @@ function logloads(loads) {
546544
}
547545
return linkSet.resolve(startingLoad);
548546
}
547+
/***/
549548

550549
try {
551550
link(linkSet);
@@ -561,9 +560,16 @@ function logloads(loads) {
561560

562561
// 15.2.5.2.4
563562
function linkSetFailed(linkSet, exc) {
563+
var loader = linkSet.loader;
564564
var loads = linkSet.loads.concat([]);
565565
for (var i = 0, l = loads.length; i < l; i++) {
566566
var load = loads[i];
567+
568+
// store all failed load records
569+
loader.loaderObj.failed = loader.loaderObj.failed || [];
570+
if (loader.loaderObj.failed.indexOf(load) == -1)
571+
loader.loaderObj.failed.push(load);
572+
567573
var linkIndex = indexOf.call(load.linkSets, linkSet);
568574
console.assert(linkIndex != -1, 'link not present');
569575
load.linkSets.splice(linkIndex, 1);

dist/es6-module-loader-sans-promises.min.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

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1090,9 +1090,6 @@ function logloads(loads) {
10901090
load.status = 'failed';
10911091
load.exception = exc;
10921092

1093-
loader.loaderObj.failed = loader.loaderObj.failed || [];
1094-
loader.loaderObj.failed.push(load);
1095-
10961093
var linkSets = load.linkSets.concat([]);
10971094
for (var i = 0, l = linkSets.length; i < l; i++)
10981095
linkSetFailed(linkSets[i], exc);
@@ -1213,7 +1210,8 @@ function logloads(loads) {
12131210
var startingLoad = linkSet.loads[0];
12141211

12151212
// non-executing link variation for loader tracing
1216-
// on the server
1213+
// on the server. Not in spec.
1214+
/***/
12171215
if (linkSet.loader.loaderObj.execute === false) {
12181216
var loads = [].concat(linkSet.loads);
12191217
for (var i = 0; i < loads.length; i++) {
@@ -1230,6 +1228,7 @@ function logloads(loads) {
12301228
}
12311229
return linkSet.resolve(startingLoad);
12321230
}
1231+
/***/
12331232

12341233
try {
12351234
link(linkSet);
@@ -1245,9 +1244,16 @@ function logloads(loads) {
12451244

12461245
// 15.2.5.2.4
12471246
function linkSetFailed(linkSet, exc) {
1247+
var loader = linkSet.loader;
12481248
var loads = linkSet.loads.concat([]);
12491249
for (var i = 0, l = loads.length; i < l; i++) {
12501250
var load = loads[i];
1251+
1252+
// store all failed load records
1253+
loader.loaderObj.failed = loader.loaderObj.failed || [];
1254+
if (loader.loaderObj.failed.indexOf(load) == -1)
1255+
loader.loaderObj.failed.push(load);
1256+
12511257
var linkIndex = indexOf.call(load.linkSets, linkSet);
12521258
console.assert(linkIndex != -1, 'link not present');
12531259
load.linkSets.splice(linkIndex, 1);

dist/es6-module-loader.min.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.

lib/loader.js

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -406,9 +406,6 @@ function logloads(loads) {
406406
load.status = 'failed';
407407
load.exception = exc;
408408

409-
loader.loaderObj.failed = loader.loaderObj.failed || [];
410-
loader.loaderObj.failed.push(load);
411-
412409
var linkSets = load.linkSets.concat([]);
413410
for (var i = 0, l = linkSets.length; i < l; i++)
414411
linkSetFailed(linkSets[i], exc);
@@ -529,7 +526,8 @@ function logloads(loads) {
529526
var startingLoad = linkSet.loads[0];
530527

531528
// non-executing link variation for loader tracing
532-
// on the server
529+
// on the server. Not in spec.
530+
/***/
533531
if (linkSet.loader.loaderObj.execute === false) {
534532
var loads = [].concat(linkSet.loads);
535533
for (var i = 0; i < loads.length; i++) {
@@ -546,6 +544,7 @@ function logloads(loads) {
546544
}
547545
return linkSet.resolve(startingLoad);
548546
}
547+
/***/
549548

550549
try {
551550
link(linkSet);
@@ -561,9 +560,16 @@ function logloads(loads) {
561560

562561
// 15.2.5.2.4
563562
function linkSetFailed(linkSet, exc) {
563+
var loader = linkSet.loader;
564564
var loads = linkSet.loads.concat([]);
565565
for (var i = 0, l = loads.length; i < l; i++) {
566566
var load = loads[i];
567+
568+
// store all failed load records
569+
loader.loaderObj.failed = loader.loaderObj.failed || [];
570+
if (loader.loaderObj.failed.indexOf(load) == -1)
571+
loader.loaderObj.failed.push(load);
572+
567573
var linkIndex = indexOf.call(load.linkSets, linkSet);
568574
console.assert(linkIndex != -1, 'link not present');
569575
load.linkSets.splice(linkIndex, 1);

test/loads/deperror.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
throw 'dep error';

test/loads/main.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
import "./deperror";

test/test.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,6 +296,21 @@ function runTests() {
296296
})
297297
});
298298

299+
test('Dependency race error check (fix pending)', function(assert) {
300+
var systemNormalize = System.normalize;
301+
System.normalize = function(name) {
302+
if (name == 'loadmain')
303+
return 'loads/main';
304+
return systemNormalize.apply(this, arguments);
305+
}
306+
System['import']('loadmain').then(function(m) {
307+
assert('Module returned despite error');
308+
}, function(e) {
309+
assert(!!e, true);
310+
});
311+
System['import']('loads/deperror');
312+
});
313+
299314
test('Export Syntax', function(assert) {
300315
System['import']('syntax/export').then(function(m) {
301316
assert(

0 commit comments

Comments
 (0)