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

Commit

Permalink
v0.17.4
Browse files Browse the repository at this point in the history
  • Loading branch information
guybedford committed Aug 3, 2015
1 parent 56e3cf7 commit c48539c
Show file tree
Hide file tree
Showing 9 changed files with 116 additions and 42 deletions.
4 changes: 2 additions & 2 deletions dist/es6-module-loader-dev.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/es6-module-loader-dev.js.map

Large diffs are not rendered by default.

75 changes: 57 additions & 18 deletions dist/es6-module-loader-dev.src.js
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,12 @@ global.URLPolyfill = URLPolyfill;
*/

function Module() {}
// http://www.ecma-international.org/ecma-262/6.0/#sec-@@tostringtag
defineProperty(Module.prototype, 'toString', {
value: function() {
return 'Module';
}
});
function Loader(options) {
this._loader = {
loaderObj: this,
Expand Down Expand Up @@ -580,6 +586,9 @@ function logloads(loads) {
}
// 15.2.5.2.2
function addLoadToLinkSet(linkSet, load) {
if (load.status == 'failed')
return;

console.assert(load.status == 'loading' || load.status == 'loaded', 'loading or loaded on link set');

for (var i = 0, l = linkSet.loads.length; i < l; i++)
Expand All @@ -597,6 +606,9 @@ function logloads(loads) {
var loader = linkSet.loader;

for (var i = 0, l = load.dependencies.length; i < l; i++) {
if (!load.dependencies[i])
continue;

var name = load.dependencies[i].value;

if (loader.modules[name])
Expand Down Expand Up @@ -680,13 +692,26 @@ function logloads(loads) {
// 15.2.5.2.4
function linkSetFailed(linkSet, load, exc) {
var loader = linkSet.loader;
var requests;

checkError:
if (load) {
if (load && linkSet.loads[0].name != load.name)
exc = addToError(exc, 'Error loading ' + load.name + ' from ' + linkSet.loads[0].name);

if (load)
if (linkSet.loads[0].name == load.name) {
exc = addToError(exc, 'Error loading ' + load.name);
}
else {
for (var i = 0; i < linkSet.loads.length; i++) {
var pLoad = linkSet.loads[i];
for (var j = 0; j < pLoad.dependencies.length; j++) {
var dep = pLoad.dependencies[j];
if (dep.value == load.name) {
exc = addToError(exc, 'Error loading ' + load.name + ' as "' + dep.key + '" from ' + pLoad.name);
break checkError;
}
}
}
exc = addToError(exc, 'Error loading ' + load.name + ' from ' + linkSet.loads[0].name);
}
}
else {
exc = addToError(exc, 'Error linking ' + linkSet.loads[0].name);
Expand Down Expand Up @@ -846,11 +871,17 @@ function logloads(loads) {
// 26.3.3.9 keys not implemented
// 26.3.3.10
load: function(name, options) {
if (this._loader.modules[name]) {
doEnsureEvaluated(this._loader.modules[name], [], this._loader);
return Promise.resolve(this._loader.modules[name].module);
var loader = this._loader;
if (loader.modules[name]) {
doEnsureEvaluated(loader.modules[name], [], loader);
return Promise.resolve(loader.modules[name].module);
}
return this._loader.importPromises[name] || createImportPromise(this, name, loadModule(this._loader, name, {}));
return loader.importPromises[name] || createImportPromise(this, name,
loadModule(loader, name, {})
.then(function(load) {
delete loader.importPromises[name];
return evaluateLoadedModule(loader, load);
}));
},
// 26.3.3.11
module: function(source, options) {
Expand Down Expand Up @@ -1257,15 +1288,16 @@ var transpile = (function() {
transpileFunction = babelTranspile;

// note __moduleName will be part of the transformer meta in future when we have the spec for this
return 'var __moduleName = "' + load.name + '";' + transpileFunction.call(self, load, transpiler) + '\n//# sourceURL=' + load.address + '!transpiled';
return '(function(__moduleName){' + transpileFunction.call(self, load, transpiler) + '\n})("' + load.name + '");\n//# sourceURL=' + load.address + '!transpiled';
});
};

function traceurTranspile(load, traceur) {
var options = this.traceurOptions || {};
options.modules = 'instantiate';
options.script = false;
options.sourceMaps = 'inline';
if (options.sourceMaps === undefined)
options.sourceMaps = 'inline';
options.filename = load.address;
options.inputSourceMap = load.metadata.sourceMap;
options.moduleName = false;
Expand All @@ -1287,7 +1319,8 @@ var transpile = (function() {
function babelTranspile(load, babel) {
var options = this.babelOptions || {};
options.modules = 'system';
options.sourceMap = 'inline';
if (options.sourceMap === undefined)
options.sourceMap = 'inline';
options.inputSourceMap = load.metadata.sourceMap;
options.filename = load.address;
options.code = true;
Expand All @@ -1298,11 +1331,13 @@ var transpile = (function() {

function typescriptTranspile(load, ts) {
var options = this.typescriptOptions || {};
if (options.target === undefined) {
options.target = ts.ScriptTarget.ES5;
}
options.target = options.target || ts.ScriptTarget.ES5;
if (options.sourceMap === undefined)
options.sourceMap = true;
if (options.sourceMap)
options.inlineSourceMap = true;

options.module = ts.ModuleKind.System;
options.inlineSourceMap = true;

return ts.transpile(load.source, options, load.address);
}
Expand Down Expand Up @@ -1452,7 +1487,7 @@ SystemLoader.prototype.instantiate = function(load) {
fulfill(xhr.responseText);
}
function error() {
reject(xhr.statusText + ': ' + url || 'XHR error');
reject(new Error('XHR error' + (xhr.status ? ' (' + xhr.status + (xhr.statusText ? ' ' + xhr.statusText : '') + ')' : '') + ' loading ' + url));
}

xhr.onreadystatechange = function () {
Expand All @@ -1466,6 +1501,8 @@ SystemLoader.prototype.instantiate = function(load) {
};
xhr.open("GET", url, true);

xhr.setRequestHeader('Accept', 'application/x-es-module */*');

if (doTimeout)
setTimeout(function() {
xhr.send();
Expand All @@ -1478,15 +1515,16 @@ SystemLoader.prototype.instantiate = function(load) {
var fs;
fetchTextFromURL = function(url, fulfill, reject) {
if (url.substr(0, 8) != 'file:///')
throw 'Only file URLs of the form file:/// allowed running in Node.';
throw new Error('Unable to fetch "' + url + '". Only file URLs of the form file:/// allowed running in Node.');
fs = fs || require('fs');
if (isWindows)
url = url.replace(/\//g, '\\').substr(8);
else
url = url.substr(7);
return fs.readFile(url, function(err, data) {
if (err)
if (err) {
return reject(err);
}
else {
// Strip Byte Order Mark out if it's the leading char
var dataString = data + '';
Expand All @@ -1507,6 +1545,7 @@ SystemLoader.prototype.instantiate = function(load) {
fetchTextFromURL(load.address, resolve, reject);
});
};

(function() {
// <script type="module"> support
// allow a data-init function callback once loaded
Expand Down
4 changes: 2 additions & 2 deletions dist/es6-module-loader.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/es6-module-loader.js.map

Large diffs are not rendered by default.

57 changes: 46 additions & 11 deletions dist/es6-module-loader.src.js
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,12 @@ global.URLPolyfill = URLPolyfill;
*/

function Module() {}
// http://www.ecma-international.org/ecma-262/6.0/#sec-@@tostringtag
defineProperty(Module.prototype, 'toString', {
value: function() {
return 'Module';
}
});
function Loader(options) {
this._loader = {
loaderObj: this,
Expand Down Expand Up @@ -580,6 +586,9 @@ function logloads(loads) {
}
// 15.2.5.2.2
function addLoadToLinkSet(linkSet, load) {
if (load.status == 'failed')
return;

console.assert(load.status == 'loading' || load.status == 'loaded', 'loading or loaded on link set');

for (var i = 0, l = linkSet.loads.length; i < l; i++)
Expand All @@ -597,6 +606,9 @@ function logloads(loads) {
var loader = linkSet.loader;

for (var i = 0, l = load.dependencies.length; i < l; i++) {
if (!load.dependencies[i])
continue;

var name = load.dependencies[i].value;

if (loader.modules[name])
Expand Down Expand Up @@ -680,13 +692,26 @@ function logloads(loads) {
// 15.2.5.2.4
function linkSetFailed(linkSet, load, exc) {
var loader = linkSet.loader;
var requests;

checkError:
if (load) {
if (load && linkSet.loads[0].name != load.name)
exc = addToError(exc, 'Error loading ' + load.name + ' from ' + linkSet.loads[0].name);

if (load)
if (linkSet.loads[0].name == load.name) {
exc = addToError(exc, 'Error loading ' + load.name);
}
else {
for (var i = 0; i < linkSet.loads.length; i++) {
var pLoad = linkSet.loads[i];
for (var j = 0; j < pLoad.dependencies.length; j++) {
var dep = pLoad.dependencies[j];
if (dep.value == load.name) {
exc = addToError(exc, 'Error loading ' + load.name + ' as "' + dep.key + '" from ' + pLoad.name);
break checkError;
}
}
}
exc = addToError(exc, 'Error loading ' + load.name + ' from ' + linkSet.loads[0].name);
}
}
else {
exc = addToError(exc, 'Error linking ' + linkSet.loads[0].name);
Expand Down Expand Up @@ -846,11 +871,17 @@ function logloads(loads) {
// 26.3.3.9 keys not implemented
// 26.3.3.10
load: function(name, options) {
if (this._loader.modules[name]) {
doEnsureEvaluated(this._loader.modules[name], [], this._loader);
return Promise.resolve(this._loader.modules[name].module);
var loader = this._loader;
if (loader.modules[name]) {
doEnsureEvaluated(loader.modules[name], [], loader);
return Promise.resolve(loader.modules[name].module);
}
return this._loader.importPromises[name] || createImportPromise(this, name, loadModule(this._loader, name, {}));
return loader.importPromises[name] || createImportPromise(this, name,
loadModule(loader, name, {})
.then(function(load) {
delete loader.importPromises[name];
return evaluateLoadedModule(loader, load);
}));
},
// 26.3.3.11
module: function(source, options) {
Expand Down Expand Up @@ -1114,7 +1145,7 @@ SystemLoader.prototype.instantiate = function(load) {
fulfill(xhr.responseText);
}
function error() {
reject(xhr.statusText + ': ' + url || 'XHR error');
reject(new Error('XHR error' + (xhr.status ? ' (' + xhr.status + (xhr.statusText ? ' ' + xhr.statusText : '') + ')' : '') + ' loading ' + url));
}

xhr.onreadystatechange = function () {
Expand All @@ -1128,6 +1159,8 @@ SystemLoader.prototype.instantiate = function(load) {
};
xhr.open("GET", url, true);

xhr.setRequestHeader('Accept', 'application/x-es-module */*');

if (doTimeout)
setTimeout(function() {
xhr.send();
Expand All @@ -1140,15 +1173,16 @@ SystemLoader.prototype.instantiate = function(load) {
var fs;
fetchTextFromURL = function(url, fulfill, reject) {
if (url.substr(0, 8) != 'file:///')
throw 'Only file URLs of the form file:/// allowed running in Node.';
throw new Error('Unable to fetch "' + url + '". Only file URLs of the form file:/// allowed running in Node.');
fs = fs || require('fs');
if (isWindows)
url = url.replace(/\//g, '\\').substr(8);
else
url = url.substr(7);
return fs.readFile(url, function(err, data) {
if (err)
if (err) {
return reject(err);
}
else {
// Strip Byte Order Mark out if it's the leading char
var dataString = data + '';
Expand All @@ -1169,6 +1203,7 @@ SystemLoader.prototype.instantiate = function(load) {
fetchTextFromURL(load.address, resolve, reject);
});
};

// -- exporting --

if (typeof exports === 'object')
Expand Down
4 changes: 2 additions & 2 deletions karma.conf.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ module.exports = function(config) {
? (options['babel']
? 'node_modules/babel-core/browser.js'
: options['typescript']
? 'node_modules/typescript/bin/typescript.js'
? 'node_modules/typescript/lib/typescript.js'
: 'node_modules/traceur/bin/traceur.js')
: ''],

Expand All @@ -56,7 +56,7 @@ module.exports = function(config) {
{pattern: 'test/{loader,loads,syntax,worker}/**/*', included: false},
{pattern: 'node_modules/traceur/bin/traceur.js', included: false},
{pattern: 'node_modules/babel-core/browser.js', included: false},
{pattern: 'node_modules/typescript/bin/typescript.js', included: false},
{pattern: 'node_modules/typescript/lib/typescript.js', included: false},
{pattern: 'node_modules/when/es6-shim/Promise.js', included: false},
{pattern: 'dist/es6-module-loader*.js', included: false}
];
Expand Down
8 changes: 4 additions & 4 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "es6-module-loader",
"description": "An ES6 Module Loader shim",
"version": "0.17.3",
"version": "0.17.4",
"homepage": "https://github.com/ModuleLoader/es6-module-loader",
"author": {
"name": "Guy Bedford, Luke Hoban, Addy Osmani",
Expand All @@ -22,7 +22,7 @@
}
],
"devDependencies": {
"babel-core": "^5.0.10",
"babel-core": "^5.8.20",
"expect.js": "^0.3.1",
"gesalakacula": "^1.0.0",
"grunt": "~0.4.1",
Expand All @@ -42,8 +42,8 @@
"minimist": "^1.1.0",
"mocha": "^2.0.1",
"regenerator": "^0.8.9",
"traceur": "0.0.87",
"typescript": "1.5.3"
"traceur": "0.0.91",
"typescript": "next"
},
"keywords": [
"script",
Expand Down
2 changes: 1 addition & 1 deletion test/worker/worker-typescript.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
importScripts("../../node_modules/when/es6-shim/Promise.js",
"../../dist/es6-module-loader-dev.src.js",
"../../node_modules/typescript/bin/typescript.js");
"../../node_modules/typescript/lib/typescript.js");
System.transpiler = 'typescript';
System['import']('es6.js').then(function(m) {
postMessage(m.p);
Expand Down

0 comments on commit c48539c

Please sign in to comment.