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

Commit 4e991b1

Browse files
committed
fix tla bugs
1 parent db44390 commit 4e991b1

File tree

1 file changed

+18
-6
lines changed

1 file changed

+18
-6
lines changed

core/register-loader.js

+18-6
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { addToError, global, createSymbol, baseURI, toStringTag } from './common
55
export default RegisterLoader;
66

77
var resolvedPromise = Promise.resolve();
8+
var emptyArray = [];
89

910
/*
1011
* Register Loader
@@ -354,7 +355,7 @@ function registerDeclarative (loader, load, link, declare) {
354355
return value;
355356
}, new ContextualLoader(loader, load.key));
356357

357-
link.setters = declared.setters;
358+
link.setters = declared.setters || [];
358359
link.execute = declared.execute;
359360
if (declared.exports) {
360361
link.moduleObj = moduleObj = declared.exports;
@@ -428,13 +429,16 @@ function deepInstantiateDeps (loader, load, link, registry, state) {
428429

429430
return instantiateDeps(loader, load, link, registry, state)
430431
.then(function () {
431-
var depPromises = [];
432+
var depPromises;
432433
for (let i = 0; i < link.dependencies.length; i++) {
433434
var depLoad = link.dependencyInstantiations[i];
434-
if (!(depLoad instanceof ModuleNamespace || depLoad[toStringTag] === 'module'))
435+
if (!(depLoad instanceof ModuleNamespace || depLoad[toStringTag] === 'module')) {
436+
depPromises = depPromises || [];
435437
depPromises.push(addDeps(depLoad, depLoad.linkRecord));
438+
}
436439
}
437-
return Promise.all(depPromises);
440+
if (depPromises)
441+
return Promise.all(depPromises);
438442
});
439443
};
440444

@@ -604,7 +608,7 @@ function doEvaluateDeclarative (loader, load, link, registry, state, seen) {
604608
}
605609

606610
if (depLoadPromises)
607-
return Promise.all(depLoadPromises)
611+
return link.evaluatePromise = Promise.all(depLoadPromises)
608612
.then(function () {
609613
if (link.execute) {
610614
// ES System.register execute
@@ -618,6 +622,10 @@ function doEvaluateDeclarative (loader, load, link, registry, state, seen) {
618622
if (execPromise)
619623
return execPromise.catch(function (e) {
620624
evalError(load, e);
625+
})
626+
.then(function () {
627+
load.linkRecord = undefined;
628+
return registry[load.key] = load.module = new ModuleNamespace(link.moduleObj);
621629
});
622630
}
623631

@@ -636,8 +644,12 @@ function doEvaluateDeclarative (loader, load, link, registry, state, seen) {
636644
evalError(load, e);
637645
}
638646
if (execPromise)
639-
return execPromise.catch(function (e) {
647+
return link.evaluatePromise = execPromise.catch(function (e) {
640648
evalError(load, e);
649+
})
650+
.then(function () {
651+
load.linkRecord = undefined;
652+
return registry[load.key] = load.module = new ModuleNamespace(link.moduleObj);
641653
});
642654
}
643655

0 commit comments

Comments
 (0)