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

Commit 2695ef8

Browse files
committed
dist build
1 parent 9ba5b86 commit 2695ef8

6 files changed

+276
-234
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: 136 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -266,92 +266,100 @@ function logloads(loads) {
266266
.then(function(source) {
267267
if (load.status != 'loading')
268268
return;
269-
return loader.loaderObj.translate({ name: load.name, metadata: load.metadata, address: load.address, source: source });
270-
})
271269

272-
// 15.2.4.5.2 CallInstantiate
273-
.then(function(source) {
274-
if (load.status != 'loading')
275-
return;
276-
load.source = source;
277-
return loader.loaderObj.instantiate({ name: load.name, metadata: load.metadata, address: load.address, source: source });
278-
})
270+
return Promise.resolve(loader.loaderObj.translate({ name: load.name, metadata: load.metadata, address: load.address, source: source }))
279271

280-
// 15.2.4.5.3 InstantiateSucceeded
281-
.then(function(instantiateResult) {
282-
if (load.status != 'loading')
283-
return;
284-
285-
if (instantiateResult === undefined) {
286-
load.address = load.address || '<Anonymous Module ' + ++anonCnt + '>';
287-
288-
// instead of load.kind, use load.isDeclarative
289-
load.isDeclarative = true;
290-
__eval(loader.loaderObj.transpile(load), __global, load);
291-
}
292-
else if (typeof instantiateResult == 'object') {
293-
load.depsList = instantiateResult.deps || [];
294-
load.execute = instantiateResult.execute;
295-
load.isDeclarative = false;
296-
}
297-
else
298-
throw TypeError('Invalid instantiate return value');
272+
// 15.2.4.5.2 CallInstantiate
273+
.then(function(source) {
274+
load.source = source;
275+
return loader.loaderObj.instantiate({ name: load.name, metadata: load.metadata, address: load.address, source: source });
276+
})
299277

278+
// 15.2.4.5.3 InstantiateSucceeded
279+
.then(function(instantiateResult) {
280+
if (instantiateResult === undefined) {
281+
load.address = load.address || '<Anonymous Module ' + ++anonCnt + '>';
282+
283+
// instead of load.kind, use load.isDeclarative
284+
load.isDeclarative = true;
285+
return loader.loaderObj.transpile(load)
286+
.then(function(transpiled) {
287+
// Hijack System.register to set declare function
288+
var curSystem = __global.System;
289+
var curRegister = curSystem.register;
290+
curSystem.register = function(name, deps, declare) {
291+
if (typeof name != 'string') {
292+
declare = deps;
293+
deps = name;
294+
}
295+
// store the registered declaration as load.declare
296+
// store the deps as load.deps
297+
load.declare = declare;
298+
load.depsList = deps;
299+
}
300+
__eval(transpiled, __global, load);
301+
curSystem.register = curRegister;
302+
});
303+
}
304+
else if (typeof instantiateResult == 'object') {
305+
load.depsList = instantiateResult.deps || [];
306+
load.execute = instantiateResult.execute;
307+
load.isDeclarative = false;
308+
}
309+
else
310+
throw TypeError('Invalid instantiate return value');
311+
})
300312
// 15.2.4.6 ProcessLoadDependencies
301-
load.dependencies = [];
302-
var depsList = load.depsList;
303-
304-
var loadPromises = [];
305-
for (var i = 0, l = depsList.length; i < l; i++) (function(request, index) {
306-
loadPromises.push(
307-
requestLoad(loader, request, load.name, load.address)
308-
309-
// 15.2.4.6.1 AddDependencyLoad (load is parentLoad)
310-
.then(function(depLoad) {
311-
312-
console.assert(!load.dependencies.some(function(dep) {
313-
return dep.key == request;
314-
}), 'not already a dependency');
315-
316-
// adjusted from spec to maintain dependency order
317-
// this is due to the System.register internal implementation needs
318-
load.dependencies[index] = {
319-
key: request,
320-
value: depLoad.name
321-
};
322-
323-
if (depLoad.status != 'linked') {
324-
var linkSets = load.linkSets.concat([]);
325-
for (var i = 0, l = linkSets.length; i < l; i++)
326-
addLoadToLinkSet(linkSets[i], depLoad);
327-
}
328-
329-
// console.log('AddDependencyLoad ' + depLoad.name + ' for ' + load.name);
330-
// snapshot(loader);
331-
})
332-
);
333-
})(depsList[i], i);
334-
335-
return Promise.all(loadPromises);
336-
})
313+
.then(function() {
314+
load.dependencies = [];
315+
var depsList = load.depsList;
316+
317+
var loadPromises = [];
318+
for (var i = 0, l = depsList.length; i < l; i++) (function(request, index) {
319+
loadPromises.push(
320+
requestLoad(loader, request, load.name, load.address)
321+
322+
// 15.2.4.6.1 AddDependencyLoad (load is parentLoad)
323+
.then(function(depLoad) {
324+
325+
// adjusted from spec to maintain dependency order
326+
// this is due to the System.register internal implementation needs
327+
load.dependencies[index] = {
328+
key: request,
329+
value: depLoad.name
330+
};
331+
332+
if (depLoad.status != 'linked') {
333+
var linkSets = load.linkSets.concat([]);
334+
for (var i = 0, l = linkSets.length; i < l; i++)
335+
addLoadToLinkSet(linkSets[i], depLoad);
336+
}
337+
338+
// console.log('AddDependencyLoad ' + depLoad.name + ' for ' + load.name);
339+
// snapshot(loader);
340+
})
341+
);
342+
})(depsList[i], i);
343+
344+
return Promise.all(loadPromises);
345+
})
337346

338-
// 15.2.4.6.2 LoadSucceeded
339-
.then(function() {
340-
// console.log('LoadSucceeded ' + load.name);
341-
// snapshot(loader);
347+
// 15.2.4.6.2 LoadSucceeded
348+
.then(function() {
349+
// console.log('LoadSucceeded ' + load.name);
350+
// snapshot(loader);
342351

343-
console.assert(load.status == 'loading', 'is loading');
352+
console.assert(load.status == 'loading', 'is loading');
344353

345-
load.status = 'loaded';
354+
load.status = 'loaded';
346355

347-
var linkSets = load.linkSets.concat([]);
348-
for (var i = 0, l = linkSets.length; i < l; i++)
349-
updateLinkSetOnLoad(linkSets[i], load);
356+
var linkSets = load.linkSets.concat([]);
357+
for (var i = 0, l = linkSets.length; i < l; i++)
358+
updateLinkSetOnLoad(linkSets[i], load);
359+
});
350360
})
351-
352361
// 15.2.4.5.4 LoadFailed
353362
['catch'](function(exc) {
354-
console.assert(load.status == 'loading', 'is loading on fail');
355363
load.status = 'failed';
356364
load.exception = exc;
357365

@@ -1112,40 +1120,63 @@ function logloads(loads) {
11121120
* Traceur and Babel transpile hook for Loader
11131121
*/
11141122
(function(Loader) {
1115-
// Returns an array of ModuleSpecifiers
1116-
var transpiler, transpilerModule;
1117-
var isNode = typeof window == 'undefined' && typeof WorkerGlobalScope == 'undefined';
1123+
var g = __global;
1124+
1125+
function getTranspilerModule(loader, globalName) {
1126+
return loader.newModule({ 'default': g[globalName], __useDefault: true });
1127+
}
1128+
var firstRun = true;
11181129

11191130
// use Traceur by default
11201131
Loader.prototype.transpiler = 'traceur';
11211132

11221133
Loader.prototype.transpile = function(load) {
1123-
if (!transpiler) {
1124-
if (this.transpiler == 'babel') {
1125-
transpiler = babelTranspile;
1126-
transpilerModule = isNode ? require('babel-core') : __global.babel;
1127-
}
1128-
else {
1129-
transpiler = traceurTranspile;
1130-
transpilerModule = isNode ? require('traceur') : __global.traceur;
1131-
}
1132-
1133-
if (!transpilerModule)
1134-
throw new TypeError('Include Traceur or Babel for module syntax support.');
1134+
var self = this;
1135+
1136+
// pick up Transpiler modules from existing globals on first run if set
1137+
if (firstRun) {
1138+
if (g.traceur && !self.has('traceur'))
1139+
self.set('traceur', getTranspilerModule(self, 'traceur'));
1140+
if (g.babel && !self.has('babel'))
1141+
self.set('babel', getTranspilerModule(self, 'babel'));
1142+
firstRun = false;
11351143
}
1144+
1145+
return self['import'](self.transpiler).then(function(transpiler) {
1146+
if (transpiler.__useDefault)
1147+
transpiler = transpiler['default'];
1148+
return 'var __moduleAddress = "' + load.address + '";' + (transpiler.Compiler ? traceurTranspile : babelTranspile).call(self, load, transpiler);
1149+
});
1150+
};
11361151

1137-
return 'var __moduleAddress = "' + load.address + '";' + transpiler.call(this, load);
1138-
}
1152+
Loader.prototype.instantiate = function(load) {
1153+
// load transpiler as a global (avoiding System clobbering)
1154+
if (load.name === this.transpiler) {
1155+
var self = this;
1156+
return {
1157+
deps: [],
1158+
execute: function() {
1159+
var curSystem = g.System;
1160+
var curLoader = g.Reflect.Loader;
1161+
__eval('(function(require,exports,module){' + load.source + '})();', g, load);
1162+
g.System = curSystem;
1163+
g.Reflect.Loader = curLoader;
1164+
return getTranspilerModule(self, load.name);
1165+
}
1166+
};
1167+
}
1168+
};
11391169

1140-
function traceurTranspile(load) {
1170+
function traceurTranspile(load, traceur) {
11411171
var options = this.traceurOptions || {};
11421172
options.modules = 'instantiate';
11431173
options.script = false;
11441174
options.sourceMaps = 'inline';
11451175
options.filename = load.address;
11461176
options.inputSourceMap = load.metadata.sourceMap;
1177+
options.moduleName = false;
11471178

1148-
var compiler = new transpilerModule.Compiler(options);
1179+
var compiler = new traceur.Compiler(options);
11491180
var source = doTraceurCompile(load.source, compiler, options.filename);
11501181

11511182
// add "!eval" to end of Traceur sourceURL
@@ -1164,17 +1195,18 @@ function logloads(loads) {
11641195
}
11651196
}
11661197

1167-
function babelTranspile(load) {
1198+
function babelTranspile(load, babel) {
11681199
var options = this.babelOptions || {};
11691200
options.modules = 'system';
11701201
options.sourceMap = 'inline';
11711202
options.filename = load.address;
11721203
options.code = true;
11731204
options.ast = false;
1174-
options.blacklist = options.blacklist || [];
1175-
options.blacklist.push('react');
1205+
1206+
if (!options.blacklist)
1207+
options.blacklist = ['react'];
11761208

1177-
var source = transpilerModule.transform(load.source, options).code;
1209+
var source = babel.transform(load.source, options).code;
11781210

11791211
// add "!eval" to end of Babel sourceURL
11801212
// I believe this does something?
@@ -1236,6 +1268,9 @@ function logloads(loads) {
12361268

12371269
function toAbsoluteURL(base, href) {
12381270

1271+
if (isWindows)
1272+
href = href.replace(/\\/g, '/');
1273+
12391274
href = parseURI(href || '');
12401275
base = parseURI(base || '');
12411276

@@ -1534,29 +1569,15 @@ function logloads(loads) {
15341569

15351570
// Define our eval outside of the scope of any other reference defined in this
15361571
// file to avoid adding those references to the evaluation scope.
1537-
function __eval(__source, __global, load) {
1538-
// Hijack System.register to set declare function
1539-
var __curRegister = System.register;
1540-
System.register = function(name, deps, declare) {
1541-
if (typeof name != 'string') {
1542-
declare = deps;
1543-
deps = name;
1544-
}
1545-
// store the registered declaration as load.declare
1546-
// store the deps as load.deps
1547-
load.declare = declare;
1548-
load.depsList = deps;
1549-
}
1572+
function __eval(__source, __global, __load) {
15501573
try {
1551-
eval('(function() { var __moduleName = "' + (load.name || '').replace('"', '\"') + '"; ' + __source + ' \n }).call(__global);');
1574+
eval('(function() { var __moduleName = "' + (__load.name || '').replace('"', '\"') + '"; ' + __source + ' \n }).call(__global);');
15521575
}
15531576
catch(e) {
15541577
if (e.name == 'SyntaxError' || e.name == 'TypeError')
1555-
e.message = 'Evaluating ' + (load.name || load.address) + '\n\t' + e.message;
1578+
e.message = 'Evaluating ' + (__load.name || load.address) + '\n\t' + e.message;
15561579
throw e;
15571580
}
1558-
1559-
System.register = __curRegister;
15601581
}
15611582

15621583
})(typeof window != 'undefined' ? window : (typeof WorkerGlobalScope != 'undefined' ?

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)