From c62ac77711916b4d9c214ca8e71ee3e908bb68bf Mon Sep 17 00:00:00 2001 From: guybedford Date: Sun, 18 May 2014 21:32:20 -0700 Subject: [PATCH 001/482] remove with statement --- dist/es6-module-loader-sans-promises.js | 2 +- dist/es6-module-loader-sans-promises.min.js | 2 +- dist/es6-module-loader.js | 2 +- dist/es6-module-loader.min.js | 2 +- lib/loader.js | 2 +- package.json | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/dist/es6-module-loader-sans-promises.js b/dist/es6-module-loader-sans-promises.js index 51df051..87037ae 100644 --- a/dist/es6-module-loader-sans-promises.js +++ b/dist/es6-module-loader-sans-promises.js @@ -1066,7 +1066,7 @@ function logloads(loads) { })(); function __eval(__source, __global, __moduleName) { - eval('var __moduleName = "' + (__moduleName || '').replace('"', '\"') + '"; with(__global) { (function() { ' + __source + ' \n }).call(__global); }'); + eval('var __moduleName = "' + (__moduleName || '').replace('"', '\"') + '"; (function() { ' + __source + ' \n }).call(__global);'); } })(typeof global !== 'undefined' ? global : this); diff --git a/dist/es6-module-loader-sans-promises.min.js b/dist/es6-module-loader-sans-promises.min.js index 60ecf71..d4e7d25 100644 --- a/dist/es6-module-loader-sans-promises.min.js +++ b/dist/es6-module-loader-sans-promises.min.js @@ -3,4 +3,4 @@ * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(__global){function __eval(__source,__global,__moduleName){eval('var __moduleName = "'+(__moduleName||"").replace('"','"')+'"; with(__global) { (function() { '+__source+" \n }).call(__global); }")}!function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new x(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new x(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return{name:c};for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,x.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){var e;if(void 0===d){if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");v=v||__global.traceur,b.address=b.address||"anon"+ ++B;try{var f=new v.syntax.Parser(new v.syntax.SourceFile(b.address,b.source)),g=f.parseModule();b.kind="declarative",e=t(g);var h=v.options.sourceMaps,j=v.options.modules;v.options.sourceMaps=!0,v.options.modules="instantiate";var k=new v.util.ErrorReporter;k.reportMessageInternal=function(a,b){throw new SyntaxError(b,a.start&&a.start.line_,a.start&&a.start.column_)};var l=__global.System;__global.System=__global.traceurSystem;var m=new v.codegeneration.module.AttachModuleNameTransformer(b.name).transformAny(g);m=new v.codegeneration.FromOptionsTransformer(k).transform(m);var n=new v.outputgeneration.SourceMapGenerator({file:b.address}),o={sourceMapGenerator:n},p=v.outputgeneration.TreeWriter.write(m,o);__global.btoa&&(p+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(o.sourceMap)))+"\n");var q=System.register;System.register=function(a,c,d){b.declare="string"==typeof a?d:c},__eval(p,__global,b.name)}catch(r){throw("SyntaxError"==r.name||"TypeError"==r.name)&&(r.message="Evaluating "+(b.name||b.address)+"\n "+r.message),q&&(System.register=q),l&&(__global.System=l),h&&(v.options.sourceMaps=h),j&&(v.options.modules=j),r}System.register=q,__global.System=l,v.options.sourceMaps=h,v.options.modules=j}else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");e=d.deps||[],b.execute=d.execute,b.kind="dynamic"}b.dependencies=[],b.depsList=e;for(var s=[],u=0,w=e.length;w>u;u++)(function(d){s.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies.push({key:d,value:a.name}),a.status&&"linked"!=a.status)for(var c=b.linkSets.concat([]),e=0,f=c.length;f>e;e++)i(c[e],a)}))})(e[u]);return x.all(s)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)j(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)k(c[d],a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,x.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,x.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],loadingCount:0};return c.done=new x(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.loads[0];if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0;ee;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==c.loaderObj.failed.indexOf(g)&&c.loaderObj.failed.push(g);var h=z.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=z.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function l(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.kind}}b.name&&(a.modules[b.name]=b.module);var d=z.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=z.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function m(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==z.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0;e=0;f--){for(var g=c[f],h=0;hb;b++)if(this[b]===a)return b;return-1},A={};r.prototype={define:function(a,b,c){if(A[a])throw new TypeError("Module is already loading.");return A[a]=new x(g({step:c&&c.address?"fetch":"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})),A[a].then(function(){delete A[a]})},load:function(a){return this._loader.modules[a]?(q(this._loader.modules[a],[],this._loader),x.resolve(this._loader.modules[a].module)):A[a]?A[a]:(A[a]=b(this._loader,a,{}),A[a].then(function(){delete A[a]}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=x.resolve(b),i=this._loader,j=e.done.then(function(){return p(i,d)});return f(i,d,g),j},"import":function(a,c){var d=this;return x.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(q(e.modules[a],[],e._loader),x.resolve(e.modules[a].module)):(A[a]||(A[a]=b(e,a,c||{}))).then(function(b){return delete A[a],p(e,b)})})},eval:function(){throw new TypeError("Eval not implemented in polyfill")},get:function(a){return this._loader.modules[a]?(q(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},set:function(a,b){if(!b.__esModule)throw new TypeError("Set must be a module");this._loader.modules[a]={module:b}},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},entries:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},keys:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},values:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var B=0;"object"==typeof exports&&(module.exports=r),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||r,__global.LoaderPolyfill=r,__global.Module=u}()}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a,c){function d(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return c=b(c||""),a=b(a||""),c&&a?(c.protocol||a.protocol)+(c.protocol||c.authority?c.authority:a.authority)+d(c.protocol||c.authority||"/"===c.pathname.charAt(0)?c.pathname:c.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+c.pathname:a.pathname)+(c.protocol||c.authority||c.pathname?c.search:c.search||a.search)+c.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");1==g.length?d==f&&f.length>e.length&&(e=f):d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var h=this.paths[e];return b&&(h=h.replace("*",b)),c(this.baseURL,h)},fetch:function(a){return new i(function(b,d){f(c(this.baseURL,a.address),function(a){b(a)},d)})}});if(g){var l=window.location.href.split("#")[0].split("?")[0];k.baseURL=l.substring(0,l.lastIndexOf("/")+1)}else k.baseURL="./";if(k.paths={"*":"*.js"},a.System&&a.traceur&&(a.traceurSystem=a.System),g&&(a.System=k),g){var m=document.getElementsByTagName("script");m=m[m.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),m.getAttribute("data-init")&&window[m.getAttribute("data-init")]()}"object"==typeof exports&&(module.exports=k)}("undefined"!=typeof global?global:this); \ No newline at end of file +!function(__global){function __eval(__source,__global,__moduleName){eval('var __moduleName = "'+(__moduleName||"").replace('"','"')+'"; (function() { '+__source+" \n }).call(__global);")}!function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new x(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new x(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return{name:c};for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,x.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){var e;if(void 0===d){if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");v=v||__global.traceur,b.address=b.address||"anon"+ ++B;try{var f=new v.syntax.Parser(new v.syntax.SourceFile(b.address,b.source)),g=f.parseModule();b.kind="declarative",e=t(g);var h=v.options.sourceMaps,j=v.options.modules;v.options.sourceMaps=!0,v.options.modules="instantiate";var k=new v.util.ErrorReporter;k.reportMessageInternal=function(a,b){throw new SyntaxError(b,a.start&&a.start.line_,a.start&&a.start.column_)};var l=__global.System;__global.System=__global.traceurSystem;var m=new v.codegeneration.module.AttachModuleNameTransformer(b.name).transformAny(g);m=new v.codegeneration.FromOptionsTransformer(k).transform(m);var n=new v.outputgeneration.SourceMapGenerator({file:b.address}),o={sourceMapGenerator:n},p=v.outputgeneration.TreeWriter.write(m,o);__global.btoa&&(p+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(o.sourceMap)))+"\n");var q=System.register;System.register=function(a,c,d){b.declare="string"==typeof a?d:c},__eval(p,__global,b.name)}catch(r){throw("SyntaxError"==r.name||"TypeError"==r.name)&&(r.message="Evaluating "+(b.name||b.address)+"\n "+r.message),q&&(System.register=q),l&&(__global.System=l),h&&(v.options.sourceMaps=h),j&&(v.options.modules=j),r}System.register=q,__global.System=l,v.options.sourceMaps=h,v.options.modules=j}else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");e=d.deps||[],b.execute=d.execute,b.kind="dynamic"}b.dependencies=[],b.depsList=e;for(var s=[],u=0,w=e.length;w>u;u++)(function(d){s.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies.push({key:d,value:a.name}),a.status&&"linked"!=a.status)for(var c=b.linkSets.concat([]),e=0,f=c.length;f>e;e++)i(c[e],a)}))})(e[u]);return x.all(s)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)j(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)k(c[d],a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,x.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,x.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],loadingCount:0};return c.done=new x(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.loads[0];if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0;ee;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==c.loaderObj.failed.indexOf(g)&&c.loaderObj.failed.push(g);var h=z.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=z.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function l(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.kind}}b.name&&(a.modules[b.name]=b.module);var d=z.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=z.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function m(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==z.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0;e=0;f--){for(var g=c[f],h=0;hb;b++)if(this[b]===a)return b;return-1},A={};r.prototype={define:function(a,b,c){if(A[a])throw new TypeError("Module is already loading.");return A[a]=new x(g({step:c&&c.address?"fetch":"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})),A[a].then(function(){delete A[a]})},load:function(a){return this._loader.modules[a]?(q(this._loader.modules[a],[],this._loader),x.resolve(this._loader.modules[a].module)):A[a]?A[a]:(A[a]=b(this._loader,a,{}),A[a].then(function(){delete A[a]}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=x.resolve(b),i=this._loader,j=e.done.then(function(){return p(i,d)});return f(i,d,g),j},"import":function(a,c){var d=this;return x.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(q(e.modules[a],[],e._loader),x.resolve(e.modules[a].module)):(A[a]||(A[a]=b(e,a,c||{}))).then(function(b){return delete A[a],p(e,b)})})},eval:function(){throw new TypeError("Eval not implemented in polyfill")},get:function(a){return this._loader.modules[a]?(q(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},set:function(a,b){if(!b.__esModule)throw new TypeError("Set must be a module");this._loader.modules[a]={module:b}},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},entries:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},keys:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},values:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var B=0;"object"==typeof exports&&(module.exports=r),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||r,__global.LoaderPolyfill=r,__global.Module=u}()}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a,c){function d(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return c=b(c||""),a=b(a||""),c&&a?(c.protocol||a.protocol)+(c.protocol||c.authority?c.authority:a.authority)+d(c.protocol||c.authority||"/"===c.pathname.charAt(0)?c.pathname:c.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+c.pathname:a.pathname)+(c.protocol||c.authority||c.pathname?c.search:c.search||a.search)+c.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");1==g.length?d==f&&f.length>e.length&&(e=f):d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var h=this.paths[e];return b&&(h=h.replace("*",b)),c(this.baseURL,h)},fetch:function(a){return new i(function(b,d){f(c(this.baseURL,a.address),function(a){b(a)},d)})}});if(g){var l=window.location.href.split("#")[0].split("?")[0];k.baseURL=l.substring(0,l.lastIndexOf("/")+1)}else k.baseURL="./";if(k.paths={"*":"*.js"},a.System&&a.traceur&&(a.traceurSystem=a.System),g&&(a.System=k),g){var m=document.getElementsByTagName("script");m=m[m.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),m.getAttribute("data-init")&&window[m.getAttribute("data-init")]()}"object"==typeof exports&&(module.exports=k)}("undefined"!=typeof global?global:this); \ No newline at end of file diff --git a/dist/es6-module-loader.js b/dist/es6-module-loader.js index da361b2..b6a2526 100644 --- a/dist/es6-module-loader.js +++ b/dist/es6-module-loader.js @@ -1750,7 +1750,7 @@ function logloads(loads) { })(); function __eval(__source, __global, __moduleName) { - eval('var __moduleName = "' + (__moduleName || '').replace('"', '\"') + '"; with(__global) { (function() { ' + __source + ' \n }).call(__global); }'); + eval('var __moduleName = "' + (__moduleName || '').replace('"', '\"') + '"; (function() { ' + __source + ' \n }).call(__global);'); } })(typeof global !== 'undefined' ? global : this); diff --git a/dist/es6-module-loader.min.js b/dist/es6-module-loader.min.js index 054df61..ce5fc21 100644 --- a/dist/es6-module-loader.min.js +++ b/dist/es6-module-loader.min.js @@ -3,4 +3,4 @@ * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(){var a,b,c,d;!function(){var e={},f={};a=function(a,b,c){e[a]={deps:b,callback:c}},d=c=b=function(a){function c(b){if("."!==b.charAt(0))return b;for(var c=b.split("/"),d=a.split("/").slice(0,-1),e=0,f=c.length;f>e;e++){var g=c[e];if(".."===g)d.pop();else{if("."===g)continue;d.push(g)}}return d.join("/")}if(d._eak_seen=e,f[a])return f[a];if(f[a]={},!e[a])throw new Error("Could not find module "+a);for(var g,h=e[a],i=h.deps,j=h.callback,k=[],l=0,m=i.length;m>l;l++)"exports"===i[l]?k.push(g={}):k.push(b(c(i[l])));var n=j.apply(this,k);return f[a]=g||n}}(),a("promise/all",["./utils","exports"],function(a,b){"use strict";function c(a){var b=this;if(!d(a))throw new TypeError("You must pass an array to all.");return new b(function(b,c){function d(a){return function(b){f(a,b)}}function f(a,c){h[a]=c,0===--i&&b(h)}var g,h=[],i=a.length;0===i&&b([]);for(var j=0;jf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,x.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){var e;if(void 0===d){if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");v=v||__global.traceur,b.address=b.address||"anon"+ ++B;try{var f=new v.syntax.Parser(new v.syntax.SourceFile(b.address,b.source)),g=f.parseModule();b.kind="declarative",e=t(g);var h=v.options.sourceMaps,j=v.options.modules;v.options.sourceMaps=!0,v.options.modules="instantiate";var k=new v.util.ErrorReporter;k.reportMessageInternal=function(a,b){throw new SyntaxError(b,a.start&&a.start.line_,a.start&&a.start.column_)};var l=__global.System;__global.System=__global.traceurSystem;var m=new v.codegeneration.module.AttachModuleNameTransformer(b.name).transformAny(g);m=new v.codegeneration.FromOptionsTransformer(k).transform(m);var n=new v.outputgeneration.SourceMapGenerator({file:b.address}),o={sourceMapGenerator:n},p=v.outputgeneration.TreeWriter.write(m,o);__global.btoa&&(p+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(o.sourceMap)))+"\n");var q=System.register;System.register=function(a,c,d){b.declare="string"==typeof a?d:c},__eval(p,__global,b.name)}catch(r){throw("SyntaxError"==r.name||"TypeError"==r.name)&&(r.message="Evaluating "+(b.name||b.address)+"\n "+r.message),q&&(System.register=q),l&&(__global.System=l),h&&(v.options.sourceMaps=h),j&&(v.options.modules=j),r}System.register=q,__global.System=l,v.options.sourceMaps=h,v.options.modules=j}else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");e=d.deps||[],b.execute=d.execute,b.kind="dynamic"}b.dependencies=[],b.depsList=e;for(var s=[],u=0,w=e.length;w>u;u++)(function(d){s.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies.push({key:d,value:a.name}),a.status&&"linked"!=a.status)for(var c=b.linkSets.concat([]),e=0,f=c.length;f>e;e++)i(c[e],a)}))})(e[u]);return x.all(s)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)j(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)k(c[d],a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,x.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,x.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],loadingCount:0};return c.done=new x(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.loads[0];if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0;ee;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==c.loaderObj.failed.indexOf(g)&&c.loaderObj.failed.push(g);var h=z.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=z.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function l(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.kind}}b.name&&(a.modules[b.name]=b.module);var d=z.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=z.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function m(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==z.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0;e=0;f--){for(var g=c[f],h=0;hb;b++)if(this[b]===a)return b;return-1},A={};r.prototype={define:function(a,b,c){if(A[a])throw new TypeError("Module is already loading.");return A[a]=new x(g({step:c&&c.address?"fetch":"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})),A[a].then(function(){delete A[a]})},load:function(a){return this._loader.modules[a]?(q(this._loader.modules[a],[],this._loader),x.resolve(this._loader.modules[a].module)):A[a]?A[a]:(A[a]=b(this._loader,a,{}),A[a].then(function(){delete A[a]}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=x.resolve(b),i=this._loader,j=e.done.then(function(){return p(i,d)});return f(i,d,g),j},"import":function(a,c){var d=this;return x.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(q(e.modules[a],[],e._loader),x.resolve(e.modules[a].module)):(A[a]||(A[a]=b(e,a,c||{}))).then(function(b){return delete A[a],p(e,b)})})},eval:function(){throw new TypeError("Eval not implemented in polyfill")},get:function(a){return this._loader.modules[a]?(q(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},set:function(a,b){if(!b.__esModule)throw new TypeError("Set must be a module");this._loader.modules[a]={module:b}},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},entries:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},keys:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},values:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var B=0;"object"==typeof exports&&(module.exports=r),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||r,__global.LoaderPolyfill=r,__global.Module=u}()}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a,c){function d(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return c=b(c||""),a=b(a||""),c&&a?(c.protocol||a.protocol)+(c.protocol||c.authority?c.authority:a.authority)+d(c.protocol||c.authority||"/"===c.pathname.charAt(0)?c.pathname:c.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+c.pathname:a.pathname)+(c.protocol||c.authority||c.pathname?c.search:c.search||a.search)+c.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");1==g.length?d==f&&f.length>e.length&&(e=f):d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var h=this.paths[e];return b&&(h=h.replace("*",b)),c(this.baseURL,h)},fetch:function(a){return new i(function(b,d){f(c(this.baseURL,a.address),function(a){b(a)},d)})}});if(g){var l=window.location.href.split("#")[0].split("?")[0];k.baseURL=l.substring(0,l.lastIndexOf("/")+1)}else k.baseURL="./";if(k.paths={"*":"*.js"},a.System&&a.traceur&&(a.traceurSystem=a.System),g&&(a.System=k),g){var m=document.getElementsByTagName("script");m=m[m.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),m.getAttribute("data-init")&&window[m.getAttribute("data-init")]()}"object"==typeof exports&&(module.exports=k)}("undefined"!=typeof global?global:this); \ No newline at end of file +!function(){var a,b,c,d;!function(){var e={},f={};a=function(a,b,c){e[a]={deps:b,callback:c}},d=c=b=function(a){function c(b){if("."!==b.charAt(0))return b;for(var c=b.split("/"),d=a.split("/").slice(0,-1),e=0,f=c.length;f>e;e++){var g=c[e];if(".."===g)d.pop();else{if("."===g)continue;d.push(g)}}return d.join("/")}if(d._eak_seen=e,f[a])return f[a];if(f[a]={},!e[a])throw new Error("Could not find module "+a);for(var g,h=e[a],i=h.deps,j=h.callback,k=[],l=0,m=i.length;m>l;l++)"exports"===i[l]?k.push(g={}):k.push(b(c(i[l])));var n=j.apply(this,k);return f[a]=g||n}}(),a("promise/all",["./utils","exports"],function(a,b){"use strict";function c(a){var b=this;if(!d(a))throw new TypeError("You must pass an array to all.");return new b(function(b,c){function d(a){return function(b){f(a,b)}}function f(a,c){h[a]=c,0===--i&&b(h)}var g,h=[],i=a.length;0===i&&b([]);for(var j=0;jf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,x.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){var e;if(void 0===d){if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");v=v||__global.traceur,b.address=b.address||"anon"+ ++B;try{var f=new v.syntax.Parser(new v.syntax.SourceFile(b.address,b.source)),g=f.parseModule();b.kind="declarative",e=t(g);var h=v.options.sourceMaps,j=v.options.modules;v.options.sourceMaps=!0,v.options.modules="instantiate";var k=new v.util.ErrorReporter;k.reportMessageInternal=function(a,b){throw new SyntaxError(b,a.start&&a.start.line_,a.start&&a.start.column_)};var l=__global.System;__global.System=__global.traceurSystem;var m=new v.codegeneration.module.AttachModuleNameTransformer(b.name).transformAny(g);m=new v.codegeneration.FromOptionsTransformer(k).transform(m);var n=new v.outputgeneration.SourceMapGenerator({file:b.address}),o={sourceMapGenerator:n},p=v.outputgeneration.TreeWriter.write(m,o);__global.btoa&&(p+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(o.sourceMap)))+"\n");var q=System.register;System.register=function(a,c,d){b.declare="string"==typeof a?d:c},__eval(p,__global,b.name)}catch(r){throw("SyntaxError"==r.name||"TypeError"==r.name)&&(r.message="Evaluating "+(b.name||b.address)+"\n "+r.message),q&&(System.register=q),l&&(__global.System=l),h&&(v.options.sourceMaps=h),j&&(v.options.modules=j),r}System.register=q,__global.System=l,v.options.sourceMaps=h,v.options.modules=j}else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");e=d.deps||[],b.execute=d.execute,b.kind="dynamic"}b.dependencies=[],b.depsList=e;for(var s=[],u=0,w=e.length;w>u;u++)(function(d){s.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies.push({key:d,value:a.name}),a.status&&"linked"!=a.status)for(var c=b.linkSets.concat([]),e=0,f=c.length;f>e;e++)i(c[e],a)}))})(e[u]);return x.all(s)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)j(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)k(c[d],a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,x.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,x.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],loadingCount:0};return c.done=new x(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.loads[0];if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0;ee;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==c.loaderObj.failed.indexOf(g)&&c.loaderObj.failed.push(g);var h=z.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=z.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function l(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.kind}}b.name&&(a.modules[b.name]=b.module);var d=z.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=z.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function m(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==z.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0;e=0;f--){for(var g=c[f],h=0;hb;b++)if(this[b]===a)return b;return-1},A={};r.prototype={define:function(a,b,c){if(A[a])throw new TypeError("Module is already loading.");return A[a]=new x(g({step:c&&c.address?"fetch":"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})),A[a].then(function(){delete A[a]})},load:function(a){return this._loader.modules[a]?(q(this._loader.modules[a],[],this._loader),x.resolve(this._loader.modules[a].module)):A[a]?A[a]:(A[a]=b(this._loader,a,{}),A[a].then(function(){delete A[a]}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=x.resolve(b),i=this._loader,j=e.done.then(function(){return p(i,d)});return f(i,d,g),j},"import":function(a,c){var d=this;return x.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(q(e.modules[a],[],e._loader),x.resolve(e.modules[a].module)):(A[a]||(A[a]=b(e,a,c||{}))).then(function(b){return delete A[a],p(e,b)})})},eval:function(){throw new TypeError("Eval not implemented in polyfill")},get:function(a){return this._loader.modules[a]?(q(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},set:function(a,b){if(!b.__esModule)throw new TypeError("Set must be a module");this._loader.modules[a]={module:b}},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},entries:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},keys:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},values:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var B=0;"object"==typeof exports&&(module.exports=r),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||r,__global.LoaderPolyfill=r,__global.Module=u}()}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a,c){function d(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return c=b(c||""),a=b(a||""),c&&a?(c.protocol||a.protocol)+(c.protocol||c.authority?c.authority:a.authority)+d(c.protocol||c.authority||"/"===c.pathname.charAt(0)?c.pathname:c.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+c.pathname:a.pathname)+(c.protocol||c.authority||c.pathname?c.search:c.search||a.search)+c.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");1==g.length?d==f&&f.length>e.length&&(e=f):d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var h=this.paths[e];return b&&(h=h.replace("*",b)),c(this.baseURL,h)},fetch:function(a){return new i(function(b,d){f(c(this.baseURL,a.address),function(a){b(a)},d)})}});if(g){var l=window.location.href.split("#")[0].split("?")[0];k.baseURL=l.substring(0,l.lastIndexOf("/")+1)}else k.baseURL="./";if(k.paths={"*":"*.js"},a.System&&a.traceur&&(a.traceurSystem=a.System),g&&(a.System=k),g){var m=document.getElementsByTagName("script");m=m[m.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),m.getAttribute("data-init")&&window[m.getAttribute("data-init")]()}"object"==typeof exports&&(module.exports=k)}("undefined"!=typeof global?global:this); \ No newline at end of file diff --git a/lib/loader.js b/lib/loader.js index 32c5493..fa6fa9b 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -1066,7 +1066,7 @@ function logloads(loads) { })(); function __eval(__source, __global, __moduleName) { - eval('var __moduleName = "' + (__moduleName || '').replace('"', '\"') + '"; with(__global) { (function() { ' + __source + ' \n }).call(__global); }'); + eval('var __moduleName = "' + (__moduleName || '').replace('"', '\"') + '"; (function() { ' + __source + ' \n }).call(__global);'); } })(typeof global !== 'undefined' ? global : this); diff --git a/package.json b/package.json index adbe8ff..d65d5a0 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,7 @@ }, "main": "lib/index", "scripts": { - "test": "node test/test" + "test": "cd test && node test" }, "dependencies": { "traceur": "0.0.41", From beb5949c3a21a99264ae836a12bceca7680540dd Mon Sep 17 00:00:00 2001 From: guybedford Date: Fri, 6 Jun 2014 13:17:18 -0700 Subject: [PATCH 002/482] performance considerations --- dist/es6-module-loader-sans-promises.js | 42 +++++++++++---------- dist/es6-module-loader-sans-promises.min.js | 2 +- dist/es6-module-loader.js | 42 +++++++++++---------- dist/es6-module-loader.min.js | 2 +- lib/loader.js | 16 +++++--- lib/system.js | 26 ++++++------- test/perf.html | 22 +++++++++++ 7 files changed, 93 insertions(+), 59 deletions(-) create mode 100644 test/perf.html diff --git a/dist/es6-module-loader-sans-promises.js b/dist/es6-module-loader-sans-promises.js index 87037ae..7814ad3 100644 --- a/dist/es6-module-loader-sans-promises.js +++ b/dist/es6-module-loader-sans-promises.js @@ -511,6 +511,15 @@ function logloads(loads) { // snapshot(linkSet.loader); } + function doLink(linkSet) { + try { + link(linkSet); + } + catch(exc) { + return linkSetFailed(linkSet, exc); + } + } + // 15.2.5.2.3 function updateLinkSetOnLoad(linkSet, load) { console.assert(load.status == 'loaded' || load.status == 'linked', 'loaded or linked'); @@ -546,12 +555,7 @@ function logloads(loads) { } /***/ - try { - link(linkSet); - } - catch(exc) { - return linkSetFailed(linkSet, exc); - } + doLink(linkSet); console.assert(linkSet.loads.length == 0, 'loads cleared'); @@ -1105,20 +1109,20 @@ function logloads(loads) { hash : m[8] || '' } : null); } + function removeDotSegments(input) { + var output = []; + input.replace(/^(\.\.?(\/|$))+/, '') + .replace(/\/(\.(\/|$))+/g, '/') + .replace(/\/\.\.$/, '/../') + .replace(/\/?[^\/]*/g, function (p) { + if (p === '/..') + output.pop(); + else + output.push(p); + }); + return output.join('').replace(/^\//, input.charAt(0) === '/' ? '/' : ''); + } function toAbsoluteURL(base, href) { - function removeDotSegments(input) { - var output = []; - input.replace(/^(\.\.?(\/|$))+/, '') - .replace(/\/(\.(\/|$))+/g, '/') - .replace(/\/\.\.$/, '/../') - .replace(/\/?[^\/]*/g, function (p) { - if (p === '/..') - output.pop(); - else - output.push(p); - }); - return output.join('').replace(/^\//, input.charAt(0) === '/' ? '/' : ''); - } href = parseURI(href || ''); base = parseURI(base || ''); diff --git a/dist/es6-module-loader-sans-promises.min.js b/dist/es6-module-loader-sans-promises.min.js index d4e7d25..07cf329 100644 --- a/dist/es6-module-loader-sans-promises.min.js +++ b/dist/es6-module-loader-sans-promises.min.js @@ -3,4 +3,4 @@ * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(__global){function __eval(__source,__global,__moduleName){eval('var __moduleName = "'+(__moduleName||"").replace('"','"')+'"; (function() { '+__source+" \n }).call(__global);")}!function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new x(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new x(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return{name:c};for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,x.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){var e;if(void 0===d){if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");v=v||__global.traceur,b.address=b.address||"anon"+ ++B;try{var f=new v.syntax.Parser(new v.syntax.SourceFile(b.address,b.source)),g=f.parseModule();b.kind="declarative",e=t(g);var h=v.options.sourceMaps,j=v.options.modules;v.options.sourceMaps=!0,v.options.modules="instantiate";var k=new v.util.ErrorReporter;k.reportMessageInternal=function(a,b){throw new SyntaxError(b,a.start&&a.start.line_,a.start&&a.start.column_)};var l=__global.System;__global.System=__global.traceurSystem;var m=new v.codegeneration.module.AttachModuleNameTransformer(b.name).transformAny(g);m=new v.codegeneration.FromOptionsTransformer(k).transform(m);var n=new v.outputgeneration.SourceMapGenerator({file:b.address}),o={sourceMapGenerator:n},p=v.outputgeneration.TreeWriter.write(m,o);__global.btoa&&(p+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(o.sourceMap)))+"\n");var q=System.register;System.register=function(a,c,d){b.declare="string"==typeof a?d:c},__eval(p,__global,b.name)}catch(r){throw("SyntaxError"==r.name||"TypeError"==r.name)&&(r.message="Evaluating "+(b.name||b.address)+"\n "+r.message),q&&(System.register=q),l&&(__global.System=l),h&&(v.options.sourceMaps=h),j&&(v.options.modules=j),r}System.register=q,__global.System=l,v.options.sourceMaps=h,v.options.modules=j}else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");e=d.deps||[],b.execute=d.execute,b.kind="dynamic"}b.dependencies=[],b.depsList=e;for(var s=[],u=0,w=e.length;w>u;u++)(function(d){s.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies.push({key:d,value:a.name}),a.status&&"linked"!=a.status)for(var c=b.linkSets.concat([]),e=0,f=c.length;f>e;e++)i(c[e],a)}))})(e[u]);return x.all(s)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)j(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)k(c[d],a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,x.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,x.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],loadingCount:0};return c.done=new x(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.loads[0];if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0;ee;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==c.loaderObj.failed.indexOf(g)&&c.loaderObj.failed.push(g);var h=z.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=z.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function l(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.kind}}b.name&&(a.modules[b.name]=b.module);var d=z.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=z.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function m(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==z.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0;e=0;f--){for(var g=c[f],h=0;hb;b++)if(this[b]===a)return b;return-1},A={};r.prototype={define:function(a,b,c){if(A[a])throw new TypeError("Module is already loading.");return A[a]=new x(g({step:c&&c.address?"fetch":"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})),A[a].then(function(){delete A[a]})},load:function(a){return this._loader.modules[a]?(q(this._loader.modules[a],[],this._loader),x.resolve(this._loader.modules[a].module)):A[a]?A[a]:(A[a]=b(this._loader,a,{}),A[a].then(function(){delete A[a]}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=x.resolve(b),i=this._loader,j=e.done.then(function(){return p(i,d)});return f(i,d,g),j},"import":function(a,c){var d=this;return x.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(q(e.modules[a],[],e._loader),x.resolve(e.modules[a].module)):(A[a]||(A[a]=b(e,a,c||{}))).then(function(b){return delete A[a],p(e,b)})})},eval:function(){throw new TypeError("Eval not implemented in polyfill")},get:function(a){return this._loader.modules[a]?(q(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},set:function(a,b){if(!b.__esModule)throw new TypeError("Set must be a module");this._loader.modules[a]={module:b}},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},entries:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},keys:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},values:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var B=0;"object"==typeof exports&&(module.exports=r),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||r,__global.LoaderPolyfill=r,__global.Module=u}()}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a,c){function d(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return c=b(c||""),a=b(a||""),c&&a?(c.protocol||a.protocol)+(c.protocol||c.authority?c.authority:a.authority)+d(c.protocol||c.authority||"/"===c.pathname.charAt(0)?c.pathname:c.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+c.pathname:a.pathname)+(c.protocol||c.authority||c.pathname?c.search:c.search||a.search)+c.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");1==g.length?d==f&&f.length>e.length&&(e=f):d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var h=this.paths[e];return b&&(h=h.replace("*",b)),c(this.baseURL,h)},fetch:function(a){return new i(function(b,d){f(c(this.baseURL,a.address),function(a){b(a)},d)})}});if(g){var l=window.location.href.split("#")[0].split("?")[0];k.baseURL=l.substring(0,l.lastIndexOf("/")+1)}else k.baseURL="./";if(k.paths={"*":"*.js"},a.System&&a.traceur&&(a.traceurSystem=a.System),g&&(a.System=k),g){var m=document.getElementsByTagName("script");m=m[m.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),m.getAttribute("data-init")&&window[m.getAttribute("data-init")]()}"object"==typeof exports&&(module.exports=k)}("undefined"!=typeof global?global:this); \ No newline at end of file +!function(__global){function __eval(__source,__global,__moduleName){eval('var __moduleName = "'+(__moduleName||"").replace('"','"')+'"; (function() { '+__source+" \n }).call(__global);")}!function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new y(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new y(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return{name:c};for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,y.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){var e;if(void 0===d){if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");w=w||__global.traceur,b.address=b.address||"anon"+ ++C;try{var f=new w.syntax.Parser(new w.syntax.SourceFile(b.address,b.source)),g=f.parseModule();b.kind="declarative",e=u(g);var h=w.options.sourceMaps,j=w.options.modules;w.options.sourceMaps=!0,w.options.modules="instantiate";var k=new w.util.ErrorReporter;k.reportMessageInternal=function(a,b){throw new SyntaxError(b,a.start&&a.start.line_,a.start&&a.start.column_)};var l=__global.System;__global.System=__global.traceurSystem;var m=new w.codegeneration.module.AttachModuleNameTransformer(b.name).transformAny(g);m=new w.codegeneration.FromOptionsTransformer(k).transform(m);var n=new w.outputgeneration.SourceMapGenerator({file:b.address}),o={sourceMapGenerator:n},p=w.outputgeneration.TreeWriter.write(m,o);__global.btoa&&(p+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(o.sourceMap)))+"\n");var q=System.register;System.register=function(a,c,d){b.declare="string"==typeof a?d:c},__eval(p,__global,b.name)}catch(r){throw("SyntaxError"==r.name||"TypeError"==r.name)&&(r.message="Evaluating "+(b.name||b.address)+"\n "+r.message),q&&(System.register=q),l&&(__global.System=l),h&&(w.options.sourceMaps=h),j&&(w.options.modules=j),r}System.register=q,__global.System=l,w.options.sourceMaps=h,w.options.modules=j}else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");e=d.deps||[],b.execute=d.execute,b.kind="dynamic"}b.dependencies=[],b.depsList=e;for(var s=[],t=0,v=e.length;v>t;t++)(function(d){s.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies.push({key:d,value:a.name}),a.status&&"linked"!=a.status)for(var c=b.linkSets.concat([]),e=0,f=c.length;f>e;e++)i(c[e],a)}))})(e[t]);return y.all(s)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,y.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,y.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],loadingCount:0};return c.done=new y(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){try{o(a)}catch(b){return l(a,b)}}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.loads[0];if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0;ee;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==c.loaderObj.failed.indexOf(g)&&c.loaderObj.failed.push(g);var h=A.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=A.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.kind}}b.name&&(a.modules[b.name]=b.module);var d=A.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=A.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==A.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0;e=0;f--){for(var g=c[f],h=0;hb;b++)if(this[b]===a)return b;return-1},B={};s.prototype={define:function(a,b,c){if(B[a])throw new TypeError("Module is already loading.");return B[a]=new y(g({step:c&&c.address?"fetch":"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})),B[a].then(function(){delete B[a]})},load:function(a){return this._loader.modules[a]?(r(this._loader.modules[a],[],this._loader),y.resolve(this._loader.modules[a].module)):B[a]?B[a]:(B[a]=b(this._loader,a,{}),B[a].then(function(){delete B[a]}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=y.resolve(b),i=this._loader,j=e.done.then(function(){return q(i,d)});return f(i,d,g),j},"import":function(a,c){var d=this;return y.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(r(e.modules[a],[],e._loader),y.resolve(e.modules[a].module)):(B[a]||(B[a]=b(e,a,c||{}))).then(function(b){return delete B[a],q(e,b)})})},eval:function(){throw new TypeError("Eval not implemented in polyfill")},get:function(a){return this._loader.modules[a]?(r(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},set:function(a,b){if(!b.__esModule)throw new TypeError("Set must be a module");this._loader.modules[a]={module:b}},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},entries:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},keys:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},values:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var C=0;"object"==typeof exports&&(module.exports=s),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||s,__global.LoaderPolyfill=s,__global.Module=v}()}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function d(a,d){return d=b(d||""),a=b(a||""),d&&a?(d.protocol||a.protocol)+(d.protocol||d.authority?d.authority:a.authority)+c(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+d.pathname:a.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||a.search)+d.hash:null}function e(){document.removeEventListener("DOMContentLoaded",e,!1),window.removeEventListener("load",e,!1),f()}function f(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");1==g.length?c==f&&f.length>e.length&&(e=f):c.substr(0,g[0].length)==g[0]&&c.substr(c.length-g[1].length)==g[1]&&(e=f,b=c.substr(g[0].length,c.length-g[1].length-g[0].length))}var h=this.paths[e];return b&&(h=h.replace("*",b)),d(this.baseURL,h)},fetch:function(a){return new j(function(b,c){g(d(this.baseURL,a.address),function(a){b(a)},c)})}});if(h){var m=window.location.href.split("#")[0].split("?")[0];l.baseURL=m.substring(0,m.lastIndexOf("/")+1)}else l.baseURL="./";if(l.paths={"*":"*.js"},a.System&&a.traceur&&(a.traceurSystem=a.System),h&&(a.System=l),h){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(f):document.addEventListener&&(document.addEventListener("DOMContentLoaded",e,!1),window.addEventListener("load",e,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}"object"==typeof exports&&(module.exports=l)}("undefined"!=typeof global?global:this); \ No newline at end of file diff --git a/dist/es6-module-loader.js b/dist/es6-module-loader.js index b6a2526..88876c8 100644 --- a/dist/es6-module-loader.js +++ b/dist/es6-module-loader.js @@ -1195,6 +1195,15 @@ function logloads(loads) { // snapshot(linkSet.loader); } + function doLink(linkSet) { + try { + link(linkSet); + } + catch(exc) { + return linkSetFailed(linkSet, exc); + } + } + // 15.2.5.2.3 function updateLinkSetOnLoad(linkSet, load) { console.assert(load.status == 'loaded' || load.status == 'linked', 'loaded or linked'); @@ -1230,12 +1239,7 @@ function logloads(loads) { } /***/ - try { - link(linkSet); - } - catch(exc) { - return linkSetFailed(linkSet, exc); - } + doLink(linkSet); console.assert(linkSet.loads.length == 0, 'loads cleared'); @@ -1789,20 +1793,20 @@ function logloads(loads) { hash : m[8] || '' } : null); } + function removeDotSegments(input) { + var output = []; + input.replace(/^(\.\.?(\/|$))+/, '') + .replace(/\/(\.(\/|$))+/g, '/') + .replace(/\/\.\.$/, '/../') + .replace(/\/?[^\/]*/g, function (p) { + if (p === '/..') + output.pop(); + else + output.push(p); + }); + return output.join('').replace(/^\//, input.charAt(0) === '/' ? '/' : ''); + } function toAbsoluteURL(base, href) { - function removeDotSegments(input) { - var output = []; - input.replace(/^(\.\.?(\/|$))+/, '') - .replace(/\/(\.(\/|$))+/g, '/') - .replace(/\/\.\.$/, '/../') - .replace(/\/?[^\/]*/g, function (p) { - if (p === '/..') - output.pop(); - else - output.push(p); - }); - return output.join('').replace(/^\//, input.charAt(0) === '/' ? '/' : ''); - } href = parseURI(href || ''); base = parseURI(base || ''); diff --git a/dist/es6-module-loader.min.js b/dist/es6-module-loader.min.js index ce5fc21..d7f4c89 100644 --- a/dist/es6-module-loader.min.js +++ b/dist/es6-module-loader.min.js @@ -3,4 +3,4 @@ * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(){var a,b,c,d;!function(){var e={},f={};a=function(a,b,c){e[a]={deps:b,callback:c}},d=c=b=function(a){function c(b){if("."!==b.charAt(0))return b;for(var c=b.split("/"),d=a.split("/").slice(0,-1),e=0,f=c.length;f>e;e++){var g=c[e];if(".."===g)d.pop();else{if("."===g)continue;d.push(g)}}return d.join("/")}if(d._eak_seen=e,f[a])return f[a];if(f[a]={},!e[a])throw new Error("Could not find module "+a);for(var g,h=e[a],i=h.deps,j=h.callback,k=[],l=0,m=i.length;m>l;l++)"exports"===i[l]?k.push(g={}):k.push(b(c(i[l])));var n=j.apply(this,k);return f[a]=g||n}}(),a("promise/all",["./utils","exports"],function(a,b){"use strict";function c(a){var b=this;if(!d(a))throw new TypeError("You must pass an array to all.");return new b(function(b,c){function d(a){return function(b){f(a,b)}}function f(a,c){h[a]=c,0===--i&&b(h)}var g,h=[],i=a.length;0===i&&b([]);for(var j=0;jf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,x.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){var e;if(void 0===d){if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");v=v||__global.traceur,b.address=b.address||"anon"+ ++B;try{var f=new v.syntax.Parser(new v.syntax.SourceFile(b.address,b.source)),g=f.parseModule();b.kind="declarative",e=t(g);var h=v.options.sourceMaps,j=v.options.modules;v.options.sourceMaps=!0,v.options.modules="instantiate";var k=new v.util.ErrorReporter;k.reportMessageInternal=function(a,b){throw new SyntaxError(b,a.start&&a.start.line_,a.start&&a.start.column_)};var l=__global.System;__global.System=__global.traceurSystem;var m=new v.codegeneration.module.AttachModuleNameTransformer(b.name).transformAny(g);m=new v.codegeneration.FromOptionsTransformer(k).transform(m);var n=new v.outputgeneration.SourceMapGenerator({file:b.address}),o={sourceMapGenerator:n},p=v.outputgeneration.TreeWriter.write(m,o);__global.btoa&&(p+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(o.sourceMap)))+"\n");var q=System.register;System.register=function(a,c,d){b.declare="string"==typeof a?d:c},__eval(p,__global,b.name)}catch(r){throw("SyntaxError"==r.name||"TypeError"==r.name)&&(r.message="Evaluating "+(b.name||b.address)+"\n "+r.message),q&&(System.register=q),l&&(__global.System=l),h&&(v.options.sourceMaps=h),j&&(v.options.modules=j),r}System.register=q,__global.System=l,v.options.sourceMaps=h,v.options.modules=j}else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");e=d.deps||[],b.execute=d.execute,b.kind="dynamic"}b.dependencies=[],b.depsList=e;for(var s=[],u=0,w=e.length;w>u;u++)(function(d){s.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies.push({key:d,value:a.name}),a.status&&"linked"!=a.status)for(var c=b.linkSets.concat([]),e=0,f=c.length;f>e;e++)i(c[e],a)}))})(e[u]);return x.all(s)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)j(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)k(c[d],a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,x.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,x.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],loadingCount:0};return c.done=new x(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.loads[0];if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0;ee;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==c.loaderObj.failed.indexOf(g)&&c.loaderObj.failed.push(g);var h=z.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=z.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function l(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.kind}}b.name&&(a.modules[b.name]=b.module);var d=z.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=z.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function m(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==z.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0;e=0;f--){for(var g=c[f],h=0;hb;b++)if(this[b]===a)return b;return-1},A={};r.prototype={define:function(a,b,c){if(A[a])throw new TypeError("Module is already loading.");return A[a]=new x(g({step:c&&c.address?"fetch":"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})),A[a].then(function(){delete A[a]})},load:function(a){return this._loader.modules[a]?(q(this._loader.modules[a],[],this._loader),x.resolve(this._loader.modules[a].module)):A[a]?A[a]:(A[a]=b(this._loader,a,{}),A[a].then(function(){delete A[a]}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=x.resolve(b),i=this._loader,j=e.done.then(function(){return p(i,d)});return f(i,d,g),j},"import":function(a,c){var d=this;return x.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(q(e.modules[a],[],e._loader),x.resolve(e.modules[a].module)):(A[a]||(A[a]=b(e,a,c||{}))).then(function(b){return delete A[a],p(e,b)})})},eval:function(){throw new TypeError("Eval not implemented in polyfill")},get:function(a){return this._loader.modules[a]?(q(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},set:function(a,b){if(!b.__esModule)throw new TypeError("Set must be a module");this._loader.modules[a]={module:b}},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},entries:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},keys:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},values:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var B=0;"object"==typeof exports&&(module.exports=r),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||r,__global.LoaderPolyfill=r,__global.Module=u}()}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a,c){function d(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return c=b(c||""),a=b(a||""),c&&a?(c.protocol||a.protocol)+(c.protocol||c.authority?c.authority:a.authority)+d(c.protocol||c.authority||"/"===c.pathname.charAt(0)?c.pathname:c.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+c.pathname:a.pathname)+(c.protocol||c.authority||c.pathname?c.search:c.search||a.search)+c.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");1==g.length?d==f&&f.length>e.length&&(e=f):d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var h=this.paths[e];return b&&(h=h.replace("*",b)),c(this.baseURL,h)},fetch:function(a){return new i(function(b,d){f(c(this.baseURL,a.address),function(a){b(a)},d)})}});if(g){var l=window.location.href.split("#")[0].split("?")[0];k.baseURL=l.substring(0,l.lastIndexOf("/")+1)}else k.baseURL="./";if(k.paths={"*":"*.js"},a.System&&a.traceur&&(a.traceurSystem=a.System),g&&(a.System=k),g){var m=document.getElementsByTagName("script");m=m[m.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),m.getAttribute("data-init")&&window[m.getAttribute("data-init")]()}"object"==typeof exports&&(module.exports=k)}("undefined"!=typeof global?global:this); \ No newline at end of file +!function(){var a,b,c,d;!function(){var e={},f={};a=function(a,b,c){e[a]={deps:b,callback:c}},d=c=b=function(a){function c(b){if("."!==b.charAt(0))return b;for(var c=b.split("/"),d=a.split("/").slice(0,-1),e=0,f=c.length;f>e;e++){var g=c[e];if(".."===g)d.pop();else{if("."===g)continue;d.push(g)}}return d.join("/")}if(d._eak_seen=e,f[a])return f[a];if(f[a]={},!e[a])throw new Error("Could not find module "+a);for(var g,h=e[a],i=h.deps,j=h.callback,k=[],l=0,m=i.length;m>l;l++)"exports"===i[l]?k.push(g={}):k.push(b(c(i[l])));var n=j.apply(this,k);return f[a]=g||n}}(),a("promise/all",["./utils","exports"],function(a,b){"use strict";function c(a){var b=this;if(!d(a))throw new TypeError("You must pass an array to all.");return new b(function(b,c){function d(a){return function(b){f(a,b)}}function f(a,c){h[a]=c,0===--i&&b(h)}var g,h=[],i=a.length;0===i&&b([]);for(var j=0;jf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,y.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){var e;if(void 0===d){if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");w=w||__global.traceur,b.address=b.address||"anon"+ ++C;try{var f=new w.syntax.Parser(new w.syntax.SourceFile(b.address,b.source)),g=f.parseModule();b.kind="declarative",e=u(g);var h=w.options.sourceMaps,j=w.options.modules;w.options.sourceMaps=!0,w.options.modules="instantiate";var k=new w.util.ErrorReporter;k.reportMessageInternal=function(a,b){throw new SyntaxError(b,a.start&&a.start.line_,a.start&&a.start.column_)};var l=__global.System;__global.System=__global.traceurSystem;var m=new w.codegeneration.module.AttachModuleNameTransformer(b.name).transformAny(g);m=new w.codegeneration.FromOptionsTransformer(k).transform(m);var n=new w.outputgeneration.SourceMapGenerator({file:b.address}),o={sourceMapGenerator:n},p=w.outputgeneration.TreeWriter.write(m,o);__global.btoa&&(p+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(o.sourceMap)))+"\n");var q=System.register;System.register=function(a,c,d){b.declare="string"==typeof a?d:c},__eval(p,__global,b.name)}catch(r){throw("SyntaxError"==r.name||"TypeError"==r.name)&&(r.message="Evaluating "+(b.name||b.address)+"\n "+r.message),q&&(System.register=q),l&&(__global.System=l),h&&(w.options.sourceMaps=h),j&&(w.options.modules=j),r}System.register=q,__global.System=l,w.options.sourceMaps=h,w.options.modules=j}else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");e=d.deps||[],b.execute=d.execute,b.kind="dynamic"}b.dependencies=[],b.depsList=e;for(var s=[],t=0,v=e.length;v>t;t++)(function(d){s.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies.push({key:d,value:a.name}),a.status&&"linked"!=a.status)for(var c=b.linkSets.concat([]),e=0,f=c.length;f>e;e++)i(c[e],a)}))})(e[t]);return y.all(s)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,y.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,y.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],loadingCount:0};return c.done=new y(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){try{o(a)}catch(b){return l(a,b)}}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.loads[0];if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0;ee;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==c.loaderObj.failed.indexOf(g)&&c.loaderObj.failed.push(g);var h=A.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=A.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.kind}}b.name&&(a.modules[b.name]=b.module);var d=A.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=A.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==A.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0;e=0;f--){for(var g=c[f],h=0;hb;b++)if(this[b]===a)return b;return-1},B={};s.prototype={define:function(a,b,c){if(B[a])throw new TypeError("Module is already loading.");return B[a]=new y(g({step:c&&c.address?"fetch":"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})),B[a].then(function(){delete B[a]})},load:function(a){return this._loader.modules[a]?(r(this._loader.modules[a],[],this._loader),y.resolve(this._loader.modules[a].module)):B[a]?B[a]:(B[a]=b(this._loader,a,{}),B[a].then(function(){delete B[a]}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=y.resolve(b),i=this._loader,j=e.done.then(function(){return q(i,d)});return f(i,d,g),j},"import":function(a,c){var d=this;return y.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(r(e.modules[a],[],e._loader),y.resolve(e.modules[a].module)):(B[a]||(B[a]=b(e,a,c||{}))).then(function(b){return delete B[a],q(e,b)})})},eval:function(){throw new TypeError("Eval not implemented in polyfill")},get:function(a){return this._loader.modules[a]?(r(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},set:function(a,b){if(!b.__esModule)throw new TypeError("Set must be a module");this._loader.modules[a]={module:b}},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},entries:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},keys:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},values:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var C=0;"object"==typeof exports&&(module.exports=s),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||s,__global.LoaderPolyfill=s,__global.Module=v}()}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function d(a,d){return d=b(d||""),a=b(a||""),d&&a?(d.protocol||a.protocol)+(d.protocol||d.authority?d.authority:a.authority)+c(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+d.pathname:a.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||a.search)+d.hash:null}function e(){document.removeEventListener("DOMContentLoaded",e,!1),window.removeEventListener("load",e,!1),f()}function f(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");1==g.length?c==f&&f.length>e.length&&(e=f):c.substr(0,g[0].length)==g[0]&&c.substr(c.length-g[1].length)==g[1]&&(e=f,b=c.substr(g[0].length,c.length-g[1].length-g[0].length))}var h=this.paths[e];return b&&(h=h.replace("*",b)),d(this.baseURL,h)},fetch:function(a){return new j(function(b,c){g(d(this.baseURL,a.address),function(a){b(a)},c)})}});if(h){var m=window.location.href.split("#")[0].split("?")[0];l.baseURL=m.substring(0,m.lastIndexOf("/")+1)}else l.baseURL="./";if(l.paths={"*":"*.js"},a.System&&a.traceur&&(a.traceurSystem=a.System),h&&(a.System=l),h){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(f):document.addEventListener&&(document.addEventListener("DOMContentLoaded",e,!1),window.addEventListener("load",e,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}"object"==typeof exports&&(module.exports=l)}("undefined"!=typeof global?global:this); \ No newline at end of file diff --git a/lib/loader.js b/lib/loader.js index fa6fa9b..c4f7d8e 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -511,6 +511,15 @@ function logloads(loads) { // snapshot(linkSet.loader); } + function doLink(linkSet) { + try { + link(linkSet); + } + catch(exc) { + return linkSetFailed(linkSet, exc); + } + } + // 15.2.5.2.3 function updateLinkSetOnLoad(linkSet, load) { console.assert(load.status == 'loaded' || load.status == 'linked', 'loaded or linked'); @@ -546,12 +555,7 @@ function logloads(loads) { } /***/ - try { - link(linkSet); - } - catch(exc) { - return linkSetFailed(linkSet, exc); - } + doLink(linkSet); console.assert(linkSet.loads.length == 0, 'loads cleared'); diff --git a/lib/system.js b/lib/system.js index 8206314..f01716f 100644 --- a/lib/system.js +++ b/lib/system.js @@ -32,20 +32,20 @@ hash : m[8] || '' } : null); } + function removeDotSegments(input) { + var output = []; + input.replace(/^(\.\.?(\/|$))+/, '') + .replace(/\/(\.(\/|$))+/g, '/') + .replace(/\/\.\.$/, '/../') + .replace(/\/?[^\/]*/g, function (p) { + if (p === '/..') + output.pop(); + else + output.push(p); + }); + return output.join('').replace(/^\//, input.charAt(0) === '/' ? '/' : ''); + } function toAbsoluteURL(base, href) { - function removeDotSegments(input) { - var output = []; - input.replace(/^(\.\.?(\/|$))+/, '') - .replace(/\/(\.(\/|$))+/g, '/') - .replace(/\/\.\.$/, '/../') - .replace(/\/?[^\/]*/g, function (p) { - if (p === '/..') - output.pop(); - else - output.push(p); - }); - return output.join('').replace(/^\//, input.charAt(0) === '/' ? '/' : ''); - } href = parseURI(href || ''); base = parseURI(base || ''); diff --git a/test/perf.html b/test/perf.html new file mode 100644 index 0000000..ba7881d --- /dev/null +++ b/test/perf.html @@ -0,0 +1,22 @@ + + + \ No newline at end of file From f723d30c2421a506ed9f9d7be4ffd7c45e588ff7 Mon Sep 17 00:00:00 2001 From: Oran Dennison Date: Sun, 8 Jun 2014 21:38:03 -0800 Subject: [PATCH 003/482] fix a broken documentation link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4ed8653..ab170ee 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ Dynamically loads ES6 modules in NodeJS and current browsers. * Uses [Traceur](https://github.com/google/traceur-compiler) for compiling ES6 modules and syntax into ES5 in the browser with source map support. * Fully supports [ES6 circular references and bindings](#circular-references--bindings). * Polyfills ES6 Promises in the browser with a bundled [es6-promise](https://github.com/jakearchibald/es6-promise) implementation. -* [Compatible with NodeJS](#nodejs-support) allowing for server-side module loading and tracing extensions. +* [Compatible with NodeJS](#nodejs-usage) allowing for server-side module loading and tracing extensions. * Supports ES6 module loading in IE9+, and dynamic module formats in IE8+. * The complete combined polyfill comes to 7KB minified and gzipped, making it suitable for production use, provided that modules are [built into ES5 making them independent of Traceur](#moving-to-production). From 21898761aaf1d306854ea46dece9841cd5d4d389 Mon Sep 17 00:00:00 2001 From: Ulrik de Muelenaere Date: Sat, 14 Jun 2014 12:28:09 +0200 Subject: [PATCH 004/482] Set Loader.prototype.constructor This allows subclass constructors to call the Loader constructor via super. Fixes #153. --- lib/loader.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/loader.js b/lib/loader.js index fa6fa9b..57ffe66 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -880,6 +880,7 @@ function logloads(loads) { // importPromises adds ability to import a module twice without error - https://bugs.ecmascript.org/show_bug.cgi?id=2601 var importPromises = {}; Loader.prototype = { + constructor: Loader, define: function(name, source, options) { if (importPromises[name]) throw new TypeError('Module is already loading.'); From 81c511bdbc46ca7729a7dc7adbc54f35279dc0ad Mon Sep 17 00:00:00 2001 From: Calvin Metcalf Date: Thu, 19 Jun 2014 11:31:52 -0400 Subject: [PATCH 005/482] fixes #157, Reflect.Loader.prototype.newModule --- lib/loader.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/loader.js b/lib/loader.js index 57ffe66..85602c0 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -949,6 +949,9 @@ function logloads(loads) { has: function(name) { return !!this._loader.modules[name]; }, + newModule: function (obj) { + return new Module(obj); + }, set: function(name, module) { if (!(module.__esModule)) throw new TypeError('Set must be a module'); From 9e7bafeb4e7fdc62d9e2e62ad83ba73bf656c778 Mon Sep 17 00:00:00 2001 From: johnjbarton Date: Thu, 12 Jun 2014 09:12:08 -0700 Subject: [PATCH 006/482] Refactor loader.js to isolate compiler in function parse(load). Function parse(load) returns array of ModuleSpecifer strings --- dist/es6-module-loader-sans-promises.js | 228 ++++++++++---------- dist/es6-module-loader-sans-promises.min.js | 2 +- dist/es6-module-loader.js | 228 ++++++++++---------- dist/es6-module-loader.min.js | 2 +- lib/loader.js | 224 +++++++++---------- 5 files changed, 358 insertions(+), 326 deletions(-) diff --git a/dist/es6-module-loader-sans-promises.js b/dist/es6-module-loader-sans-promises.js index 87037ae..64a6303 100644 --- a/dist/es6-module-loader-sans-promises.js +++ b/dist/es6-module-loader-sans-promises.js @@ -6,7 +6,7 @@ - Implemented exactly to the 2014-04-27 Specification Draft. Loader implemented to the modules draft from https://github.com/jorendorff/js-loaders/blob/e60d3651/specs/es6-modules-2013-12-02.pdf - + - All functions are commented with their spec numbers, with spec differences commented. - All spec bugs are commented in this code with links to the spec bugs. @@ -17,7 +17,7 @@ - When the traceur global is detected, declarative modules are transformed by Traceur into the `instantiate` System.register output. - - Realm implementation is entirely omitted. As such, the Loader.realm accessor will + - Realm implementation is entirely omitted. As such, the Loader.realm accessor will throw an error, as well as Loader.eval. Realm arguments are not passed. - Loader module table iteration currently not yet implemented @@ -54,7 +54,7 @@ function logloads(loads) { var loads = System._loader.loads; var linkSets = []; - + for (var i = 0; i < loads.length; i++) { var load = loads[i]; console.assert(load.status == 'loading' || load.status == 'loaded', 'Each load is loading or loaded'); @@ -167,7 +167,7 @@ function logloads(loads) { } // 15.2.3.2.2 createLoadRequestObject, absorbed into calling functions - + // 15.2.4 // 15.2.4.1 @@ -216,7 +216,7 @@ function logloads(loads) { return load; }); } - + // 15.2.4.3 function proceedToLocate(loader, load) { proceedToFetch(loader, load, @@ -244,6 +244,106 @@ function logloads(loads) { ); } + // Returns an array of ModuleSpecifiers + function parse(load) { + if (!__global.traceur) + throw new TypeError('Include Traceur for module syntax support'); + + // given a syntax tree, return the import list + function getImports(moduleTree) { + var imports = []; + + function addImport(name) { + if (indexOf.call(imports, name) == -1) + imports.push(name); + } + + traverse(moduleTree, function(node) { + // import {} from 'foo'; + // export * from 'foo'; + // export { ... } from 'foo'; + // module x from 'foo'; + if (node.type == 'EXPORT_DECLARATION') { + if (node.declaration.moduleSpecifier) + addImport(node.declaration.moduleSpecifier.token.processedValue); + } + else if (node.type == 'IMPORT_DECLARATION') + addImport(node.moduleSpecifier.token.processedValue); + else if (node.type == 'MODULE_DECLARATION') + addImport(node.expression.token.processedValue); + }); + return imports; + } + + traceur = traceur || __global.traceur; + + console.assert(load.source, 'Non-empty source'); + + var depsList; + try { + var parser = new traceur.syntax.Parser(new traceur.syntax.SourceFile(load.address, load.source)); + var body = parser.parseModule(); + + load.kind = 'declarative'; + depsList = getImports(body); + + var oldSourceMaps = traceur.options.sourceMaps; + var oldModules = traceur.options.modules; + + traceur.options.sourceMaps = true; + traceur.options.modules = 'instantiate'; + + var reporter = new traceur.util.ErrorReporter(); + + reporter.reportMessageInternal = function(location, kind, format, args) { + throw new SyntaxError(kind, location.start && location.start.line_, location.start && location.start.column_); + } + + // traceur expects its version of System + var curSystem = __global.System; + __global.System = __global.traceurSystem; + + var tree = (new traceur.codegeneration.module.AttachModuleNameTransformer(load.name)).transformAny(body); + tree = (new traceur.codegeneration.FromOptionsTransformer(reporter)).transform(tree); + + var sourceMapGenerator = new traceur.outputgeneration.SourceMapGenerator({ file: load.address }); + var options = { sourceMapGenerator: sourceMapGenerator }; + + var source = traceur.outputgeneration.TreeWriter.write(tree, options); + + if (__global.btoa) + source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(options.sourceMap))) + '\n'; + + // now run System.register + var curRegister = System.register; + + System.register = function(name, deps, declare) { + // store the registered declaration as load.declare + load.declare = typeof name == 'string' ? declare : deps; + } + + __eval(source, __global, load.name); + } + catch(e) { + if (e.name == 'SyntaxError' || e.name == 'TypeError') + e.message = 'Evaluating ' + (load.name || load.address) + '\n\t' + e.message; + if (curRegister) + System.register = curRegister; + if (curSystem) + __global.System = curSystem; + if (oldSourceMaps) + traceur.options.sourceMaps = oldSourceMaps; + if (oldModules) + traceur.options.modules = oldModules; + throw e; + } + System.register = curRegister; + __global.System = curSystem; + traceur.options.sourceMaps = oldSourceMaps; + traceur.options.modules = oldModules; + return depsList; + } + // 15.2.4.5 function proceedToTranslate(loader, load, p) { p @@ -269,75 +369,8 @@ function logloads(loads) { var depsList; if (instantiateResult === undefined) { - if (!__global.traceur) - throw new TypeError('Include Traceur for module syntax support'); - - traceur = traceur || __global.traceur; load.address = load.address || 'anon' + ++anonCnt; - - console.assert(load.source, 'Non-empty source'); - - try { - var parser = new traceur.syntax.Parser(new traceur.syntax.SourceFile(load.address, load.source)); - var body = parser.parseModule(); - - load.kind = 'declarative'; - depsList = getImports(body); - - var oldSourceMaps = traceur.options.sourceMaps; - var oldModules = traceur.options.modules; - - traceur.options.sourceMaps = true; - traceur.options.modules = 'instantiate'; - - var reporter = new traceur.util.ErrorReporter(); - - reporter.reportMessageInternal = function(location, kind, format, args) { - throw new SyntaxError(kind, location.start && location.start.line_, location.start && location.start.column_); - } - - // traceur expects its version of System - var curSystem = __global.System; - __global.System = __global.traceurSystem; - - var tree = (new traceur.codegeneration.module.AttachModuleNameTransformer(load.name)).transformAny(body); - tree = (new traceur.codegeneration.FromOptionsTransformer(reporter)).transform(tree); - - var sourceMapGenerator = new traceur.outputgeneration.SourceMapGenerator({ file: load.address }); - var options = { sourceMapGenerator: sourceMapGenerator }; - - var source = traceur.outputgeneration.TreeWriter.write(tree, options); - - if (__global.btoa) - source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(options.sourceMap))) + '\n'; - - // now run System.register - var curRegister = System.register; - - System.register = function(name, deps, declare) { - // store the registered declaration as load.declare - load.declare = typeof name == 'string' ? declare : deps; - } - - __eval(source, __global, load.name); - } - catch(e) { - if (e.name == 'SyntaxError' || e.name == 'TypeError') - e.message = 'Evaluating ' + (load.name || load.address) + '\n\t' + e.message; - if (curRegister) - System.register = curRegister; - if (curSystem) - __global.System = curSystem; - if (oldSourceMaps) - traceur.options.sourceMaps = oldSourceMaps; - if (oldModules) - traceur.options.modules = oldModules; - throw e; - } - System.register = curRegister; - __global.System = curSystem; - traceur.options.sourceMaps = oldSourceMaps; - traceur.options.modules = oldModules; + depsList = parse(load); } else if (typeof instantiateResult == 'object') { depsList = instantiateResult.deps || []; @@ -423,7 +456,7 @@ function logloads(loads) { var name = stepState.moduleName; var step = stepState.step; - if (loader.modules[name]) + if (loader.modules[name]) throw new TypeError('"' + name + '" already exists in the module table'); // NB this still seems wrong for LoadModule as we may load a dependency @@ -433,7 +466,7 @@ function logloads(loads) { throw new TypeError('"' + name + '" already loading'); var load = createLoad(name); - + load.metadata = stepState.moduleMetadata; var linkSet = createLinkSet(loader, load); @@ -502,7 +535,7 @@ function logloads(loads) { for (var j = 0, d = loader.loads.length; j < d; j++) { if (loader.loads[j].name != name) continue; - + addLoadToLinkSet(linkSet, loader.loads[j]); break; } @@ -651,7 +684,7 @@ function logloads(loads) { // the group index of an entry is always the maximum if (loadDep.groupIndex === undefined || loadDep.groupIndex < loadDepGroupIndex) { - + // if already in a group, remove from the old group if (loadDep.groupIndex) { groups[loadDep.groupIndex].splice(groups[loadDep.groupIndex].indexOf(loadDep), 1); @@ -757,11 +790,11 @@ function logloads(loads) { for (var j = 0; j < loads.length; j++) { if (loads[j].name != depName) continue; - + // only link if already not already started linking (stops at circular / dynamic) if (!loads[j].module) linkDeclarativeModule(loads[j], loads, loader); - + depModule = loads[j].module; } } @@ -794,7 +827,7 @@ function logloads(loads) { load.status = 'linked'; } - + // 15.2.5.5.1 LinkImports not implemented @@ -816,7 +849,7 @@ function logloads(loads) { * module.module bound module object * module.execute execution function for module * module.dependencies list of module objects for dependencies - * + * */ // 15.2.6.2 EnsureEvaluated adjusted @@ -880,6 +913,7 @@ function logloads(loads) { // importPromises adds ability to import a module twice without error - https://bugs.ecmascript.org/show_bug.cgi?id=2601 var importPromises = {}; Loader.prototype = { + constructor: Loader, define: function(name, source, options) { if (importPromises[name]) throw new TypeError('Module is already loading.'); @@ -923,12 +957,12 @@ function logloads(loads) { return Promise.resolve(loaderObj.normalize(name, options && options.name, options && options.address)) .then(function(name) { var loader = loaderObj._loader; - + if (loader.modules[name]) { ensureEvaluated(loader.modules[name], [], loader._loader); return Promise.resolve(loader.modules[name].module); } - + return (importPromises[name] || (importPromises[name] = loadModule(loader, name, options || {}))) .then(function(load) { delete importPromises[name]; @@ -948,6 +982,9 @@ function logloads(loads) { has: function(name) { return !!this._loader.modules[name]; }, + newModule: function (obj) { + return new Module(obj); + }, set: function(name, module) { if (!(module.__esModule)) throw new TypeError('Set must be a module'); @@ -1000,31 +1037,6 @@ function logloads(loads) { } } - // given a syntax tree, return the import list - function getImports(moduleTree) { - var imports = []; - - function addImport(name) { - if (indexOf.call(imports, name) == -1) - imports.push(name); - } - - traverse(moduleTree, function(node) { - // import {} from 'foo'; - // export * from 'foo'; - // export { ... } from 'foo'; - // module x from 'foo'; - if (node.type == 'EXPORT_DECLARATION') { - if (node.declaration.moduleSpecifier) - addImport(node.declaration.moduleSpecifier.token.processedValue); - } - else if (node.type == 'IMPORT_DECLARATION') - addImport(node.moduleSpecifier.token.processedValue); - else if (node.type == 'MODULE_DECLARATION') - addImport(node.expression.token.processedValue); - }); - return imports; - } var anonCnt = 0; // Module Object diff --git a/dist/es6-module-loader-sans-promises.min.js b/dist/es6-module-loader-sans-promises.min.js index d4e7d25..c083b67 100644 --- a/dist/es6-module-loader-sans-promises.min.js +++ b/dist/es6-module-loader-sans-promises.min.js @@ -3,4 +3,4 @@ * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(__global){function __eval(__source,__global,__moduleName){eval('var __moduleName = "'+(__moduleName||"").replace('"','"')+'"; (function() { '+__source+" \n }).call(__global);")}!function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new x(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new x(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return{name:c};for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,x.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){var e;if(void 0===d){if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");v=v||__global.traceur,b.address=b.address||"anon"+ ++B;try{var f=new v.syntax.Parser(new v.syntax.SourceFile(b.address,b.source)),g=f.parseModule();b.kind="declarative",e=t(g);var h=v.options.sourceMaps,j=v.options.modules;v.options.sourceMaps=!0,v.options.modules="instantiate";var k=new v.util.ErrorReporter;k.reportMessageInternal=function(a,b){throw new SyntaxError(b,a.start&&a.start.line_,a.start&&a.start.column_)};var l=__global.System;__global.System=__global.traceurSystem;var m=new v.codegeneration.module.AttachModuleNameTransformer(b.name).transformAny(g);m=new v.codegeneration.FromOptionsTransformer(k).transform(m);var n=new v.outputgeneration.SourceMapGenerator({file:b.address}),o={sourceMapGenerator:n},p=v.outputgeneration.TreeWriter.write(m,o);__global.btoa&&(p+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(o.sourceMap)))+"\n");var q=System.register;System.register=function(a,c,d){b.declare="string"==typeof a?d:c},__eval(p,__global,b.name)}catch(r){throw("SyntaxError"==r.name||"TypeError"==r.name)&&(r.message="Evaluating "+(b.name||b.address)+"\n "+r.message),q&&(System.register=q),l&&(__global.System=l),h&&(v.options.sourceMaps=h),j&&(v.options.modules=j),r}System.register=q,__global.System=l,v.options.sourceMaps=h,v.options.modules=j}else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");e=d.deps||[],b.execute=d.execute,b.kind="dynamic"}b.dependencies=[],b.depsList=e;for(var s=[],u=0,w=e.length;w>u;u++)(function(d){s.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies.push({key:d,value:a.name}),a.status&&"linked"!=a.status)for(var c=b.linkSets.concat([]),e=0,f=c.length;f>e;e++)i(c[e],a)}))})(e[u]);return x.all(s)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)j(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)k(c[d],a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,x.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,x.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],loadingCount:0};return c.done=new x(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.loads[0];if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0;ee;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==c.loaderObj.failed.indexOf(g)&&c.loaderObj.failed.push(g);var h=z.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=z.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function l(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.kind}}b.name&&(a.modules[b.name]=b.module);var d=z.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=z.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function m(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==z.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0;e=0;f--){for(var g=c[f],h=0;hb;b++)if(this[b]===a)return b;return-1},A={};r.prototype={define:function(a,b,c){if(A[a])throw new TypeError("Module is already loading.");return A[a]=new x(g({step:c&&c.address?"fetch":"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})),A[a].then(function(){delete A[a]})},load:function(a){return this._loader.modules[a]?(q(this._loader.modules[a],[],this._loader),x.resolve(this._loader.modules[a].module)):A[a]?A[a]:(A[a]=b(this._loader,a,{}),A[a].then(function(){delete A[a]}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=x.resolve(b),i=this._loader,j=e.done.then(function(){return p(i,d)});return f(i,d,g),j},"import":function(a,c){var d=this;return x.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(q(e.modules[a],[],e._loader),x.resolve(e.modules[a].module)):(A[a]||(A[a]=b(e,a,c||{}))).then(function(b){return delete A[a],p(e,b)})})},eval:function(){throw new TypeError("Eval not implemented in polyfill")},get:function(a){return this._loader.modules[a]?(q(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},set:function(a,b){if(!b.__esModule)throw new TypeError("Set must be a module");this._loader.modules[a]={module:b}},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},entries:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},keys:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},values:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var B=0;"object"==typeof exports&&(module.exports=r),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||r,__global.LoaderPolyfill=r,__global.Module=u}()}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a,c){function d(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return c=b(c||""),a=b(a||""),c&&a?(c.protocol||a.protocol)+(c.protocol||c.authority?c.authority:a.authority)+d(c.protocol||c.authority||"/"===c.pathname.charAt(0)?c.pathname:c.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+c.pathname:a.pathname)+(c.protocol||c.authority||c.pathname?c.search:c.search||a.search)+c.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");1==g.length?d==f&&f.length>e.length&&(e=f):d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var h=this.paths[e];return b&&(h=h.replace("*",b)),c(this.baseURL,h)},fetch:function(a){return new i(function(b,d){f(c(this.baseURL,a.address),function(a){b(a)},d)})}});if(g){var l=window.location.href.split("#")[0].split("?")[0];k.baseURL=l.substring(0,l.lastIndexOf("/")+1)}else k.baseURL="./";if(k.paths={"*":"*.js"},a.System&&a.traceur&&(a.traceurSystem=a.System),g&&(a.System=k),g){var m=document.getElementsByTagName("script");m=m[m.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),m.getAttribute("data-init")&&window[m.getAttribute("data-init")]()}"object"==typeof exports&&(module.exports=k)}("undefined"!=typeof global?global:this); \ No newline at end of file +!function(__global){function __eval(__source,__global,__moduleName){eval('var __moduleName = "'+(__moduleName||"").replace('"','"')+'"; (function() { '+__source+" \n }).call(__global);")}!function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new x(h({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new x(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return{name:c};for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,x.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){g(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a){function b(a){function b(a){-1==z.call(c,a)&&c.push(a)}var c=[];return t(a,function(a){"EXPORT_DECLARATION"==a.type?a.declaration.moduleSpecifier&&b(a.declaration.moduleSpecifier.token.processedValue):"IMPORT_DECLARATION"==a.type?b(a.moduleSpecifier.token.processedValue):"MODULE_DECLARATION"==a.type&&b(a.expression.token.processedValue)}),c}if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");v=v||__global.traceur;var c;try{var d=new v.syntax.Parser(new v.syntax.SourceFile(a.address,a.source)),e=d.parseModule();a.kind="declarative",c=b(e);var f=v.options.sourceMaps,g=v.options.modules;v.options.sourceMaps=!0,v.options.modules="instantiate";var h=new v.util.ErrorReporter;h.reportMessageInternal=function(a,b){throw new SyntaxError(b,a.start&&a.start.line_,a.start&&a.start.column_)};var i=__global.System;__global.System=__global.traceurSystem;var j=new v.codegeneration.module.AttachModuleNameTransformer(a.name).transformAny(e);j=new v.codegeneration.FromOptionsTransformer(h).transform(j);var k=new v.outputgeneration.SourceMapGenerator({file:a.address}),l={sourceMapGenerator:k},m=v.outputgeneration.TreeWriter.write(j,l);__global.btoa&&(m+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(l.sourceMap)))+"\n");var n=System.register;System.register=function(b,c,d){a.declare="string"==typeof b?d:c},__eval(m,__global,a.name)}catch(o){throw("SyntaxError"==o.name||"TypeError"==o.name)&&(o.message="Evaluating "+(a.name||a.address)+"\n "+o.message),n&&(System.register=n),i&&(__global.System=i),f&&(v.options.sourceMaps=f),g&&(v.options.modules=g),o}return System.register=n,__global.System=i,v.options.sourceMaps=f,v.options.modules=g,c}function g(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){var e;if(void 0===d)b.address=b.address||"anon"+ ++B,e=f(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");e=d.deps||[],b.execute=d.execute,b.kind="dynamic"}b.dependencies=[],b.depsList=e;for(var g=[],h=0,i=e.length;i>h;h++)(function(d){g.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies.push({key:d,value:a.name}),a.status&&"linked"!=a.status)for(var c=b.linkSets.concat([]),e=0,f=c.length;f>e;e++)j(c[e],a)}))})(e[h]);return x.all(g)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],a)})}function h(b){return function(c){var f=b.loader,h=b.moduleName,j=b.step;if(f.modules[h])throw new TypeError('"'+h+'" already exists in the module table');for(var k=0,l=f.loads.length;l>k;k++)if(f.loads[k].name==h)throw new TypeError('"'+h+'" already loading');var m=a(h);m.metadata=b.moduleMetadata;var n=i(f,m);f.loads.push(m),c(n.done),"locate"==j?d(f,m):"fetch"==j?e(f,m,x.resolve(b.moduleAddress)):(m.address=b.moduleAddress,g(f,m,x.resolve(b.moduleSource)))}}function i(a,b){var c={loader:a,loads:[],loadingCount:0};return c.done=new x(function(a,b){c.resolve=a,c.reject=b}),j(c,b),c}function j(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){j(a,e.loads[g]);break}}}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.loads[0];if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0;ee;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==c.loaderObj.failed.indexOf(g)&&c.loaderObj.failed.push(g);var h=z.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=z.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.kind}}b.name&&(a.modules[b.name]=b.module);var d=z.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=z.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==z.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0;e=0;f--){for(var g=c[f],h=0;hb;b++)if(this[b]===a)return b;return-1},A={};s.prototype={constructor:s,define:function(a,b,c){if(A[a])throw new TypeError("Module is already loading.");return A[a]=new x(h({step:c&&c.address?"fetch":"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})),A[a].then(function(){delete A[a]})},load:function(a){return this._loader.modules[a]?(r(this._loader.modules[a],[],this._loader),x.resolve(this._loader.modules[a].module)):A[a]?A[a]:(A[a]=b(this._loader,a,{}),A[a].then(function(){delete A[a]}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=i(this._loader,d),f=x.resolve(b),h=this._loader,j=e.done.then(function(){return q(h,d)});return g(h,d,f),j},"import":function(a,c){var d=this;return x.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(r(e.modules[a],[],e._loader),x.resolve(e.modules[a].module)):(A[a]||(A[a]=b(e,a,c||{}))).then(function(b){return delete A[a],q(e,b)})})},eval:function(){throw new TypeError("Eval not implemented in polyfill")},get:function(a){return this._loader.modules[a]?(r(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},newModule:function(a){return new u(a)},set:function(a,b){if(!b.__esModule)throw new TypeError("Set must be a module");this._loader.modules[a]={module:b}},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},entries:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},keys:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},values:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var B=0;"object"==typeof exports&&(module.exports=s),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||s,__global.LoaderPolyfill=s,__global.Module=u}()}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a,c){function d(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return c=b(c||""),a=b(a||""),c&&a?(c.protocol||a.protocol)+(c.protocol||c.authority?c.authority:a.authority)+d(c.protocol||c.authority||"/"===c.pathname.charAt(0)?c.pathname:c.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+c.pathname:a.pathname)+(c.protocol||c.authority||c.pathname?c.search:c.search||a.search)+c.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");1==g.length?d==f&&f.length>e.length&&(e=f):d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var h=this.paths[e];return b&&(h=h.replace("*",b)),c(this.baseURL,h)},fetch:function(a){return new i(function(b,d){f(c(this.baseURL,a.address),function(a){b(a)},d)})}});if(g){var l=window.location.href.split("#")[0].split("?")[0];k.baseURL=l.substring(0,l.lastIndexOf("/")+1)}else k.baseURL="./";if(k.paths={"*":"*.js"},a.System&&a.traceur&&(a.traceurSystem=a.System),g&&(a.System=k),g){var m=document.getElementsByTagName("script");m=m[m.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),m.getAttribute("data-init")&&window[m.getAttribute("data-init")]()}"object"==typeof exports&&(module.exports=k)}("undefined"!=typeof global?global:this); \ No newline at end of file diff --git a/dist/es6-module-loader.js b/dist/es6-module-loader.js index b6a2526..b26900d 100644 --- a/dist/es6-module-loader.js +++ b/dist/es6-module-loader.js @@ -690,7 +690,7 @@ requireModule('promise/polyfill').polyfill(); - Implemented exactly to the 2014-04-27 Specification Draft. Loader implemented to the modules draft from https://github.com/jorendorff/js-loaders/blob/e60d3651/specs/es6-modules-2013-12-02.pdf - + - All functions are commented with their spec numbers, with spec differences commented. - All spec bugs are commented in this code with links to the spec bugs. @@ -701,7 +701,7 @@ requireModule('promise/polyfill').polyfill(); - When the traceur global is detected, declarative modules are transformed by Traceur into the `instantiate` System.register output. - - Realm implementation is entirely omitted. As such, the Loader.realm accessor will + - Realm implementation is entirely omitted. As such, the Loader.realm accessor will throw an error, as well as Loader.eval. Realm arguments are not passed. - Loader module table iteration currently not yet implemented @@ -738,7 +738,7 @@ function logloads(loads) { var loads = System._loader.loads; var linkSets = []; - + for (var i = 0; i < loads.length; i++) { var load = loads[i]; console.assert(load.status == 'loading' || load.status == 'loaded', 'Each load is loading or loaded'); @@ -851,7 +851,7 @@ function logloads(loads) { } // 15.2.3.2.2 createLoadRequestObject, absorbed into calling functions - + // 15.2.4 // 15.2.4.1 @@ -900,7 +900,7 @@ function logloads(loads) { return load; }); } - + // 15.2.4.3 function proceedToLocate(loader, load) { proceedToFetch(loader, load, @@ -928,6 +928,106 @@ function logloads(loads) { ); } + // Returns an array of ModuleSpecifiers + function parse(load) { + if (!__global.traceur) + throw new TypeError('Include Traceur for module syntax support'); + + // given a syntax tree, return the import list + function getImports(moduleTree) { + var imports = []; + + function addImport(name) { + if (indexOf.call(imports, name) == -1) + imports.push(name); + } + + traverse(moduleTree, function(node) { + // import {} from 'foo'; + // export * from 'foo'; + // export { ... } from 'foo'; + // module x from 'foo'; + if (node.type == 'EXPORT_DECLARATION') { + if (node.declaration.moduleSpecifier) + addImport(node.declaration.moduleSpecifier.token.processedValue); + } + else if (node.type == 'IMPORT_DECLARATION') + addImport(node.moduleSpecifier.token.processedValue); + else if (node.type == 'MODULE_DECLARATION') + addImport(node.expression.token.processedValue); + }); + return imports; + } + + traceur = traceur || __global.traceur; + + console.assert(load.source, 'Non-empty source'); + + var depsList; + try { + var parser = new traceur.syntax.Parser(new traceur.syntax.SourceFile(load.address, load.source)); + var body = parser.parseModule(); + + load.kind = 'declarative'; + depsList = getImports(body); + + var oldSourceMaps = traceur.options.sourceMaps; + var oldModules = traceur.options.modules; + + traceur.options.sourceMaps = true; + traceur.options.modules = 'instantiate'; + + var reporter = new traceur.util.ErrorReporter(); + + reporter.reportMessageInternal = function(location, kind, format, args) { + throw new SyntaxError(kind, location.start && location.start.line_, location.start && location.start.column_); + } + + // traceur expects its version of System + var curSystem = __global.System; + __global.System = __global.traceurSystem; + + var tree = (new traceur.codegeneration.module.AttachModuleNameTransformer(load.name)).transformAny(body); + tree = (new traceur.codegeneration.FromOptionsTransformer(reporter)).transform(tree); + + var sourceMapGenerator = new traceur.outputgeneration.SourceMapGenerator({ file: load.address }); + var options = { sourceMapGenerator: sourceMapGenerator }; + + var source = traceur.outputgeneration.TreeWriter.write(tree, options); + + if (__global.btoa) + source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(options.sourceMap))) + '\n'; + + // now run System.register + var curRegister = System.register; + + System.register = function(name, deps, declare) { + // store the registered declaration as load.declare + load.declare = typeof name == 'string' ? declare : deps; + } + + __eval(source, __global, load.name); + } + catch(e) { + if (e.name == 'SyntaxError' || e.name == 'TypeError') + e.message = 'Evaluating ' + (load.name || load.address) + '\n\t' + e.message; + if (curRegister) + System.register = curRegister; + if (curSystem) + __global.System = curSystem; + if (oldSourceMaps) + traceur.options.sourceMaps = oldSourceMaps; + if (oldModules) + traceur.options.modules = oldModules; + throw e; + } + System.register = curRegister; + __global.System = curSystem; + traceur.options.sourceMaps = oldSourceMaps; + traceur.options.modules = oldModules; + return depsList; + } + // 15.2.4.5 function proceedToTranslate(loader, load, p) { p @@ -953,75 +1053,8 @@ function logloads(loads) { var depsList; if (instantiateResult === undefined) { - if (!__global.traceur) - throw new TypeError('Include Traceur for module syntax support'); - - traceur = traceur || __global.traceur; load.address = load.address || 'anon' + ++anonCnt; - - console.assert(load.source, 'Non-empty source'); - - try { - var parser = new traceur.syntax.Parser(new traceur.syntax.SourceFile(load.address, load.source)); - var body = parser.parseModule(); - - load.kind = 'declarative'; - depsList = getImports(body); - - var oldSourceMaps = traceur.options.sourceMaps; - var oldModules = traceur.options.modules; - - traceur.options.sourceMaps = true; - traceur.options.modules = 'instantiate'; - - var reporter = new traceur.util.ErrorReporter(); - - reporter.reportMessageInternal = function(location, kind, format, args) { - throw new SyntaxError(kind, location.start && location.start.line_, location.start && location.start.column_); - } - - // traceur expects its version of System - var curSystem = __global.System; - __global.System = __global.traceurSystem; - - var tree = (new traceur.codegeneration.module.AttachModuleNameTransformer(load.name)).transformAny(body); - tree = (new traceur.codegeneration.FromOptionsTransformer(reporter)).transform(tree); - - var sourceMapGenerator = new traceur.outputgeneration.SourceMapGenerator({ file: load.address }); - var options = { sourceMapGenerator: sourceMapGenerator }; - - var source = traceur.outputgeneration.TreeWriter.write(tree, options); - - if (__global.btoa) - source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(options.sourceMap))) + '\n'; - - // now run System.register - var curRegister = System.register; - - System.register = function(name, deps, declare) { - // store the registered declaration as load.declare - load.declare = typeof name == 'string' ? declare : deps; - } - - __eval(source, __global, load.name); - } - catch(e) { - if (e.name == 'SyntaxError' || e.name == 'TypeError') - e.message = 'Evaluating ' + (load.name || load.address) + '\n\t' + e.message; - if (curRegister) - System.register = curRegister; - if (curSystem) - __global.System = curSystem; - if (oldSourceMaps) - traceur.options.sourceMaps = oldSourceMaps; - if (oldModules) - traceur.options.modules = oldModules; - throw e; - } - System.register = curRegister; - __global.System = curSystem; - traceur.options.sourceMaps = oldSourceMaps; - traceur.options.modules = oldModules; + depsList = parse(load); } else if (typeof instantiateResult == 'object') { depsList = instantiateResult.deps || []; @@ -1107,7 +1140,7 @@ function logloads(loads) { var name = stepState.moduleName; var step = stepState.step; - if (loader.modules[name]) + if (loader.modules[name]) throw new TypeError('"' + name + '" already exists in the module table'); // NB this still seems wrong for LoadModule as we may load a dependency @@ -1117,7 +1150,7 @@ function logloads(loads) { throw new TypeError('"' + name + '" already loading'); var load = createLoad(name); - + load.metadata = stepState.moduleMetadata; var linkSet = createLinkSet(loader, load); @@ -1186,7 +1219,7 @@ function logloads(loads) { for (var j = 0, d = loader.loads.length; j < d; j++) { if (loader.loads[j].name != name) continue; - + addLoadToLinkSet(linkSet, loader.loads[j]); break; } @@ -1335,7 +1368,7 @@ function logloads(loads) { // the group index of an entry is always the maximum if (loadDep.groupIndex === undefined || loadDep.groupIndex < loadDepGroupIndex) { - + // if already in a group, remove from the old group if (loadDep.groupIndex) { groups[loadDep.groupIndex].splice(groups[loadDep.groupIndex].indexOf(loadDep), 1); @@ -1441,11 +1474,11 @@ function logloads(loads) { for (var j = 0; j < loads.length; j++) { if (loads[j].name != depName) continue; - + // only link if already not already started linking (stops at circular / dynamic) if (!loads[j].module) linkDeclarativeModule(loads[j], loads, loader); - + depModule = loads[j].module; } } @@ -1478,7 +1511,7 @@ function logloads(loads) { load.status = 'linked'; } - + // 15.2.5.5.1 LinkImports not implemented @@ -1500,7 +1533,7 @@ function logloads(loads) { * module.module bound module object * module.execute execution function for module * module.dependencies list of module objects for dependencies - * + * */ // 15.2.6.2 EnsureEvaluated adjusted @@ -1564,6 +1597,7 @@ function logloads(loads) { // importPromises adds ability to import a module twice without error - https://bugs.ecmascript.org/show_bug.cgi?id=2601 var importPromises = {}; Loader.prototype = { + constructor: Loader, define: function(name, source, options) { if (importPromises[name]) throw new TypeError('Module is already loading.'); @@ -1607,12 +1641,12 @@ function logloads(loads) { return Promise.resolve(loaderObj.normalize(name, options && options.name, options && options.address)) .then(function(name) { var loader = loaderObj._loader; - + if (loader.modules[name]) { ensureEvaluated(loader.modules[name], [], loader._loader); return Promise.resolve(loader.modules[name].module); } - + return (importPromises[name] || (importPromises[name] = loadModule(loader, name, options || {}))) .then(function(load) { delete importPromises[name]; @@ -1632,6 +1666,9 @@ function logloads(loads) { has: function(name) { return !!this._loader.modules[name]; }, + newModule: function (obj) { + return new Module(obj); + }, set: function(name, module) { if (!(module.__esModule)) throw new TypeError('Set must be a module'); @@ -1684,31 +1721,6 @@ function logloads(loads) { } } - // given a syntax tree, return the import list - function getImports(moduleTree) { - var imports = []; - - function addImport(name) { - if (indexOf.call(imports, name) == -1) - imports.push(name); - } - - traverse(moduleTree, function(node) { - // import {} from 'foo'; - // export * from 'foo'; - // export { ... } from 'foo'; - // module x from 'foo'; - if (node.type == 'EXPORT_DECLARATION') { - if (node.declaration.moduleSpecifier) - addImport(node.declaration.moduleSpecifier.token.processedValue); - } - else if (node.type == 'IMPORT_DECLARATION') - addImport(node.moduleSpecifier.token.processedValue); - else if (node.type == 'MODULE_DECLARATION') - addImport(node.expression.token.processedValue); - }); - return imports; - } var anonCnt = 0; // Module Object diff --git a/dist/es6-module-loader.min.js b/dist/es6-module-loader.min.js index ce5fc21..6e3693a 100644 --- a/dist/es6-module-loader.min.js +++ b/dist/es6-module-loader.min.js @@ -3,4 +3,4 @@ * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(){var a,b,c,d;!function(){var e={},f={};a=function(a,b,c){e[a]={deps:b,callback:c}},d=c=b=function(a){function c(b){if("."!==b.charAt(0))return b;for(var c=b.split("/"),d=a.split("/").slice(0,-1),e=0,f=c.length;f>e;e++){var g=c[e];if(".."===g)d.pop();else{if("."===g)continue;d.push(g)}}return d.join("/")}if(d._eak_seen=e,f[a])return f[a];if(f[a]={},!e[a])throw new Error("Could not find module "+a);for(var g,h=e[a],i=h.deps,j=h.callback,k=[],l=0,m=i.length;m>l;l++)"exports"===i[l]?k.push(g={}):k.push(b(c(i[l])));var n=j.apply(this,k);return f[a]=g||n}}(),a("promise/all",["./utils","exports"],function(a,b){"use strict";function c(a){var b=this;if(!d(a))throw new TypeError("You must pass an array to all.");return new b(function(b,c){function d(a){return function(b){f(a,b)}}function f(a,c){h[a]=c,0===--i&&b(h)}var g,h=[],i=a.length;0===i&&b([]);for(var j=0;jf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,x.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){var e;if(void 0===d){if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");v=v||__global.traceur,b.address=b.address||"anon"+ ++B;try{var f=new v.syntax.Parser(new v.syntax.SourceFile(b.address,b.source)),g=f.parseModule();b.kind="declarative",e=t(g);var h=v.options.sourceMaps,j=v.options.modules;v.options.sourceMaps=!0,v.options.modules="instantiate";var k=new v.util.ErrorReporter;k.reportMessageInternal=function(a,b){throw new SyntaxError(b,a.start&&a.start.line_,a.start&&a.start.column_)};var l=__global.System;__global.System=__global.traceurSystem;var m=new v.codegeneration.module.AttachModuleNameTransformer(b.name).transformAny(g);m=new v.codegeneration.FromOptionsTransformer(k).transform(m);var n=new v.outputgeneration.SourceMapGenerator({file:b.address}),o={sourceMapGenerator:n},p=v.outputgeneration.TreeWriter.write(m,o);__global.btoa&&(p+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(o.sourceMap)))+"\n");var q=System.register;System.register=function(a,c,d){b.declare="string"==typeof a?d:c},__eval(p,__global,b.name)}catch(r){throw("SyntaxError"==r.name||"TypeError"==r.name)&&(r.message="Evaluating "+(b.name||b.address)+"\n "+r.message),q&&(System.register=q),l&&(__global.System=l),h&&(v.options.sourceMaps=h),j&&(v.options.modules=j),r}System.register=q,__global.System=l,v.options.sourceMaps=h,v.options.modules=j}else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");e=d.deps||[],b.execute=d.execute,b.kind="dynamic"}b.dependencies=[],b.depsList=e;for(var s=[],u=0,w=e.length;w>u;u++)(function(d){s.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies.push({key:d,value:a.name}),a.status&&"linked"!=a.status)for(var c=b.linkSets.concat([]),e=0,f=c.length;f>e;e++)i(c[e],a)}))})(e[u]);return x.all(s)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)j(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)k(c[d],a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,x.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,x.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],loadingCount:0};return c.done=new x(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.loads[0];if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0;ee;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==c.loaderObj.failed.indexOf(g)&&c.loaderObj.failed.push(g);var h=z.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=z.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function l(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.kind}}b.name&&(a.modules[b.name]=b.module);var d=z.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=z.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function m(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==z.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0;e=0;f--){for(var g=c[f],h=0;hb;b++)if(this[b]===a)return b;return-1},A={};r.prototype={define:function(a,b,c){if(A[a])throw new TypeError("Module is already loading.");return A[a]=new x(g({step:c&&c.address?"fetch":"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})),A[a].then(function(){delete A[a]})},load:function(a){return this._loader.modules[a]?(q(this._loader.modules[a],[],this._loader),x.resolve(this._loader.modules[a].module)):A[a]?A[a]:(A[a]=b(this._loader,a,{}),A[a].then(function(){delete A[a]}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=x.resolve(b),i=this._loader,j=e.done.then(function(){return p(i,d)});return f(i,d,g),j},"import":function(a,c){var d=this;return x.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(q(e.modules[a],[],e._loader),x.resolve(e.modules[a].module)):(A[a]||(A[a]=b(e,a,c||{}))).then(function(b){return delete A[a],p(e,b)})})},eval:function(){throw new TypeError("Eval not implemented in polyfill")},get:function(a){return this._loader.modules[a]?(q(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},set:function(a,b){if(!b.__esModule)throw new TypeError("Set must be a module");this._loader.modules[a]={module:b}},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},entries:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},keys:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},values:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var B=0;"object"==typeof exports&&(module.exports=r),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||r,__global.LoaderPolyfill=r,__global.Module=u}()}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a,c){function d(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return c=b(c||""),a=b(a||""),c&&a?(c.protocol||a.protocol)+(c.protocol||c.authority?c.authority:a.authority)+d(c.protocol||c.authority||"/"===c.pathname.charAt(0)?c.pathname:c.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+c.pathname:a.pathname)+(c.protocol||c.authority||c.pathname?c.search:c.search||a.search)+c.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");1==g.length?d==f&&f.length>e.length&&(e=f):d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var h=this.paths[e];return b&&(h=h.replace("*",b)),c(this.baseURL,h)},fetch:function(a){return new i(function(b,d){f(c(this.baseURL,a.address),function(a){b(a)},d)})}});if(g){var l=window.location.href.split("#")[0].split("?")[0];k.baseURL=l.substring(0,l.lastIndexOf("/")+1)}else k.baseURL="./";if(k.paths={"*":"*.js"},a.System&&a.traceur&&(a.traceurSystem=a.System),g&&(a.System=k),g){var m=document.getElementsByTagName("script");m=m[m.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),m.getAttribute("data-init")&&window[m.getAttribute("data-init")]()}"object"==typeof exports&&(module.exports=k)}("undefined"!=typeof global?global:this); \ No newline at end of file +!function(){var a,b,c,d;!function(){var e={},f={};a=function(a,b,c){e[a]={deps:b,callback:c}},d=c=b=function(a){function c(b){if("."!==b.charAt(0))return b;for(var c=b.split("/"),d=a.split("/").slice(0,-1),e=0,f=c.length;f>e;e++){var g=c[e];if(".."===g)d.pop();else{if("."===g)continue;d.push(g)}}return d.join("/")}if(d._eak_seen=e,f[a])return f[a];if(f[a]={},!e[a])throw new Error("Could not find module "+a);for(var g,h=e[a],i=h.deps,j=h.callback,k=[],l=0,m=i.length;m>l;l++)k.push("exports"===i[l]?g={}:b(c(i[l])));var n=j.apply(this,k);return f[a]=g||n}}(),a("promise/all",["./utils","exports"],function(a,b){"use strict";function c(a){var b=this;if(!d(a))throw new TypeError("You must pass an array to all.");return new b(function(b,c){function d(a){return function(b){f(a,b)}}function f(a,c){h[a]=c,0===--i&&b(h)}var g,h=[],i=a.length;0===i&&b([]);for(var j=0;jf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,x.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){g(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a){function b(a){function b(a){-1==z.call(c,a)&&c.push(a)}var c=[];return t(a,function(a){"EXPORT_DECLARATION"==a.type?a.declaration.moduleSpecifier&&b(a.declaration.moduleSpecifier.token.processedValue):"IMPORT_DECLARATION"==a.type?b(a.moduleSpecifier.token.processedValue):"MODULE_DECLARATION"==a.type&&b(a.expression.token.processedValue)}),c}if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");v=v||__global.traceur;var c;try{var d=new v.syntax.Parser(new v.syntax.SourceFile(a.address,a.source)),e=d.parseModule();a.kind="declarative",c=b(e);var f=v.options.sourceMaps,g=v.options.modules;v.options.sourceMaps=!0,v.options.modules="instantiate";var h=new v.util.ErrorReporter;h.reportMessageInternal=function(a,b){throw new SyntaxError(b,a.start&&a.start.line_,a.start&&a.start.column_)};var i=__global.System;__global.System=__global.traceurSystem;var j=new v.codegeneration.module.AttachModuleNameTransformer(a.name).transformAny(e);j=new v.codegeneration.FromOptionsTransformer(h).transform(j);var k=new v.outputgeneration.SourceMapGenerator({file:a.address}),l={sourceMapGenerator:k},m=v.outputgeneration.TreeWriter.write(j,l);__global.btoa&&(m+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(l.sourceMap)))+"\n");var n=System.register;System.register=function(b,c,d){a.declare="string"==typeof b?d:c},__eval(m,__global,a.name)}catch(o){throw("SyntaxError"==o.name||"TypeError"==o.name)&&(o.message="Evaluating "+(a.name||a.address)+"\n "+o.message),n&&(System.register=n),i&&(__global.System=i),f&&(v.options.sourceMaps=f),g&&(v.options.modules=g),o}return System.register=n,__global.System=i,v.options.sourceMaps=f,v.options.modules=g,c}function g(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){var e;if(void 0===d)b.address=b.address||"anon"+ ++B,e=f(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");e=d.deps||[],b.execute=d.execute,b.kind="dynamic"}b.dependencies=[],b.depsList=e;for(var g=[],h=0,i=e.length;i>h;h++)(function(d){g.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies.push({key:d,value:a.name}),a.status&&"linked"!=a.status)for(var c=b.linkSets.concat([]),e=0,f=c.length;f>e;e++)j(c[e],a)}))})(e[h]);return x.all(g)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],a)})}function h(b){return function(c){var f=b.loader,h=b.moduleName,j=b.step;if(f.modules[h])throw new TypeError('"'+h+'" already exists in the module table');for(var k=0,l=f.loads.length;l>k;k++)if(f.loads[k].name==h)throw new TypeError('"'+h+'" already loading');var m=a(h);m.metadata=b.moduleMetadata;var n=i(f,m);f.loads.push(m),c(n.done),"locate"==j?d(f,m):"fetch"==j?e(f,m,x.resolve(b.moduleAddress)):(m.address=b.moduleAddress,g(f,m,x.resolve(b.moduleSource)))}}function i(a,b){var c={loader:a,loads:[],loadingCount:0};return c.done=new x(function(a,b){c.resolve=a,c.reject=b}),j(c,b),c}function j(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){j(a,e.loads[g]);break}}}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.loads[0];if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0;ee;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==c.loaderObj.failed.indexOf(g)&&c.loaderObj.failed.push(g);var h=z.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=z.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.kind}}b.name&&(a.modules[b.name]=b.module);var d=z.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=z.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==z.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0;e=0;f--){for(var g=c[f],h=0;hb;b++)if(this[b]===a)return b;return-1},A={};s.prototype={constructor:s,define:function(a,b,c){if(A[a])throw new TypeError("Module is already loading.");return A[a]=new x(h({step:c&&c.address?"fetch":"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})),A[a].then(function(){delete A[a]})},load:function(a){return this._loader.modules[a]?(r(this._loader.modules[a],[],this._loader),x.resolve(this._loader.modules[a].module)):A[a]?A[a]:(A[a]=b(this._loader,a,{}),A[a].then(function(){delete A[a]}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=i(this._loader,d),f=x.resolve(b),h=this._loader,j=e.done.then(function(){return q(h,d)});return g(h,d,f),j},"import":function(a,c){var d=this;return x.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(r(e.modules[a],[],e._loader),x.resolve(e.modules[a].module)):(A[a]||(A[a]=b(e,a,c||{}))).then(function(b){return delete A[a],q(e,b)})})},eval:function(){throw new TypeError("Eval not implemented in polyfill")},get:function(a){return this._loader.modules[a]?(r(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},newModule:function(a){return new u(a)},set:function(a,b){if(!b.__esModule)throw new TypeError("Set must be a module");this._loader.modules[a]={module:b}},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},entries:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},keys:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},values:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var B=0;"object"==typeof exports&&(module.exports=s),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||s,__global.LoaderPolyfill=s,__global.Module=u}()}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a,c){function d(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}return c=b(c||""),a=b(a||""),c&&a?(c.protocol||a.protocol)+(c.protocol||c.authority?c.authority:a.authority)+d(c.protocol||c.authority||"/"===c.pathname.charAt(0)?c.pathname:c.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+c.pathname:a.pathname)+(c.protocol||c.authority||c.pathname?c.search:c.search||a.search)+c.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");1==g.length?d==f&&f.length>e.length&&(e=f):d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var h=this.paths[e];return b&&(h=h.replace("*",b)),c(this.baseURL,h)},fetch:function(a){return new i(function(b,d){f(c(this.baseURL,a.address),function(a){b(a)},d)})}});if(g){var l=window.location.href.split("#")[0].split("?")[0];k.baseURL=l.substring(0,l.lastIndexOf("/")+1)}else k.baseURL="./";if(k.paths={"*":"*.js"},a.System&&a.traceur&&(a.traceurSystem=a.System),g&&(a.System=k),g){var m=document.getElementsByTagName("script");m=m[m.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),m.getAttribute("data-init")&&window[m.getAttribute("data-init")]()}"object"==typeof exports&&(module.exports=k)}("undefined"!=typeof global?global:this); \ No newline at end of file diff --git a/lib/loader.js b/lib/loader.js index 85602c0..a463126 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -6,7 +6,7 @@ - Implemented exactly to the 2014-04-27 Specification Draft. Loader implemented to the modules draft from https://github.com/jorendorff/js-loaders/blob/e60d3651/specs/es6-modules-2013-12-02.pdf - + - All functions are commented with their spec numbers, with spec differences commented. - All spec bugs are commented in this code with links to the spec bugs. @@ -17,7 +17,7 @@ - When the traceur global is detected, declarative modules are transformed by Traceur into the `instantiate` System.register output. - - Realm implementation is entirely omitted. As such, the Loader.realm accessor will + - Realm implementation is entirely omitted. As such, the Loader.realm accessor will throw an error, as well as Loader.eval. Realm arguments are not passed. - Loader module table iteration currently not yet implemented @@ -54,7 +54,7 @@ function logloads(loads) { var loads = System._loader.loads; var linkSets = []; - + for (var i = 0; i < loads.length; i++) { var load = loads[i]; console.assert(load.status == 'loading' || load.status == 'loaded', 'Each load is loading or loaded'); @@ -167,7 +167,7 @@ function logloads(loads) { } // 15.2.3.2.2 createLoadRequestObject, absorbed into calling functions - + // 15.2.4 // 15.2.4.1 @@ -216,7 +216,7 @@ function logloads(loads) { return load; }); } - + // 15.2.4.3 function proceedToLocate(loader, load) { proceedToFetch(loader, load, @@ -244,6 +244,106 @@ function logloads(loads) { ); } + // Returns an array of ModuleSpecifiers + function parse(load) { + if (!__global.traceur) + throw new TypeError('Include Traceur for module syntax support'); + + // given a syntax tree, return the import list + function getImports(moduleTree) { + var imports = []; + + function addImport(name) { + if (indexOf.call(imports, name) == -1) + imports.push(name); + } + + traverse(moduleTree, function(node) { + // import {} from 'foo'; + // export * from 'foo'; + // export { ... } from 'foo'; + // module x from 'foo'; + if (node.type == 'EXPORT_DECLARATION') { + if (node.declaration.moduleSpecifier) + addImport(node.declaration.moduleSpecifier.token.processedValue); + } + else if (node.type == 'IMPORT_DECLARATION') + addImport(node.moduleSpecifier.token.processedValue); + else if (node.type == 'MODULE_DECLARATION') + addImport(node.expression.token.processedValue); + }); + return imports; + } + + traceur = traceur || __global.traceur; + + console.assert(load.source, 'Non-empty source'); + + var depsList; + try { + var parser = new traceur.syntax.Parser(new traceur.syntax.SourceFile(load.address, load.source)); + var body = parser.parseModule(); + + load.kind = 'declarative'; + depsList = getImports(body); + + var oldSourceMaps = traceur.options.sourceMaps; + var oldModules = traceur.options.modules; + + traceur.options.sourceMaps = true; + traceur.options.modules = 'instantiate'; + + var reporter = new traceur.util.ErrorReporter(); + + reporter.reportMessageInternal = function(location, kind, format, args) { + throw new SyntaxError(kind, location.start && location.start.line_, location.start && location.start.column_); + } + + // traceur expects its version of System + var curSystem = __global.System; + __global.System = __global.traceurSystem; + + var tree = (new traceur.codegeneration.module.AttachModuleNameTransformer(load.name)).transformAny(body); + tree = (new traceur.codegeneration.FromOptionsTransformer(reporter)).transform(tree); + + var sourceMapGenerator = new traceur.outputgeneration.SourceMapGenerator({ file: load.address }); + var options = { sourceMapGenerator: sourceMapGenerator }; + + var source = traceur.outputgeneration.TreeWriter.write(tree, options); + + if (__global.btoa) + source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(options.sourceMap))) + '\n'; + + // now run System.register + var curRegister = System.register; + + System.register = function(name, deps, declare) { + // store the registered declaration as load.declare + load.declare = typeof name == 'string' ? declare : deps; + } + + __eval(source, __global, load.name); + } + catch(e) { + if (e.name == 'SyntaxError' || e.name == 'TypeError') + e.message = 'Evaluating ' + (load.name || load.address) + '\n\t' + e.message; + if (curRegister) + System.register = curRegister; + if (curSystem) + __global.System = curSystem; + if (oldSourceMaps) + traceur.options.sourceMaps = oldSourceMaps; + if (oldModules) + traceur.options.modules = oldModules; + throw e; + } + System.register = curRegister; + __global.System = curSystem; + traceur.options.sourceMaps = oldSourceMaps; + traceur.options.modules = oldModules; + return depsList; + } + // 15.2.4.5 function proceedToTranslate(loader, load, p) { p @@ -269,75 +369,8 @@ function logloads(loads) { var depsList; if (instantiateResult === undefined) { - if (!__global.traceur) - throw new TypeError('Include Traceur for module syntax support'); - - traceur = traceur || __global.traceur; load.address = load.address || 'anon' + ++anonCnt; - - console.assert(load.source, 'Non-empty source'); - - try { - var parser = new traceur.syntax.Parser(new traceur.syntax.SourceFile(load.address, load.source)); - var body = parser.parseModule(); - - load.kind = 'declarative'; - depsList = getImports(body); - - var oldSourceMaps = traceur.options.sourceMaps; - var oldModules = traceur.options.modules; - - traceur.options.sourceMaps = true; - traceur.options.modules = 'instantiate'; - - var reporter = new traceur.util.ErrorReporter(); - - reporter.reportMessageInternal = function(location, kind, format, args) { - throw new SyntaxError(kind, location.start && location.start.line_, location.start && location.start.column_); - } - - // traceur expects its version of System - var curSystem = __global.System; - __global.System = __global.traceurSystem; - - var tree = (new traceur.codegeneration.module.AttachModuleNameTransformer(load.name)).transformAny(body); - tree = (new traceur.codegeneration.FromOptionsTransformer(reporter)).transform(tree); - - var sourceMapGenerator = new traceur.outputgeneration.SourceMapGenerator({ file: load.address }); - var options = { sourceMapGenerator: sourceMapGenerator }; - - var source = traceur.outputgeneration.TreeWriter.write(tree, options); - - if (__global.btoa) - source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(options.sourceMap))) + '\n'; - - // now run System.register - var curRegister = System.register; - - System.register = function(name, deps, declare) { - // store the registered declaration as load.declare - load.declare = typeof name == 'string' ? declare : deps; - } - - __eval(source, __global, load.name); - } - catch(e) { - if (e.name == 'SyntaxError' || e.name == 'TypeError') - e.message = 'Evaluating ' + (load.name || load.address) + '\n\t' + e.message; - if (curRegister) - System.register = curRegister; - if (curSystem) - __global.System = curSystem; - if (oldSourceMaps) - traceur.options.sourceMaps = oldSourceMaps; - if (oldModules) - traceur.options.modules = oldModules; - throw e; - } - System.register = curRegister; - __global.System = curSystem; - traceur.options.sourceMaps = oldSourceMaps; - traceur.options.modules = oldModules; + depsList = parse(load); } else if (typeof instantiateResult == 'object') { depsList = instantiateResult.deps || []; @@ -423,7 +456,7 @@ function logloads(loads) { var name = stepState.moduleName; var step = stepState.step; - if (loader.modules[name]) + if (loader.modules[name]) throw new TypeError('"' + name + '" already exists in the module table'); // NB this still seems wrong for LoadModule as we may load a dependency @@ -433,7 +466,7 @@ function logloads(loads) { throw new TypeError('"' + name + '" already loading'); var load = createLoad(name); - + load.metadata = stepState.moduleMetadata; var linkSet = createLinkSet(loader, load); @@ -502,7 +535,7 @@ function logloads(loads) { for (var j = 0, d = loader.loads.length; j < d; j++) { if (loader.loads[j].name != name) continue; - + addLoadToLinkSet(linkSet, loader.loads[j]); break; } @@ -651,7 +684,7 @@ function logloads(loads) { // the group index of an entry is always the maximum if (loadDep.groupIndex === undefined || loadDep.groupIndex < loadDepGroupIndex) { - + // if already in a group, remove from the old group if (loadDep.groupIndex) { groups[loadDep.groupIndex].splice(groups[loadDep.groupIndex].indexOf(loadDep), 1); @@ -757,11 +790,11 @@ function logloads(loads) { for (var j = 0; j < loads.length; j++) { if (loads[j].name != depName) continue; - + // only link if already not already started linking (stops at circular / dynamic) if (!loads[j].module) linkDeclarativeModule(loads[j], loads, loader); - + depModule = loads[j].module; } } @@ -794,7 +827,7 @@ function logloads(loads) { load.status = 'linked'; } - + // 15.2.5.5.1 LinkImports not implemented @@ -816,7 +849,7 @@ function logloads(loads) { * module.module bound module object * module.execute execution function for module * module.dependencies list of module objects for dependencies - * + * */ // 15.2.6.2 EnsureEvaluated adjusted @@ -924,12 +957,12 @@ function logloads(loads) { return Promise.resolve(loaderObj.normalize(name, options && options.name, options && options.address)) .then(function(name) { var loader = loaderObj._loader; - + if (loader.modules[name]) { ensureEvaluated(loader.modules[name], [], loader._loader); return Promise.resolve(loader.modules[name].module); } - + return (importPromises[name] || (importPromises[name] = loadModule(loader, name, options || {}))) .then(function(load) { delete importPromises[name]; @@ -1004,31 +1037,6 @@ function logloads(loads) { } } - // given a syntax tree, return the import list - function getImports(moduleTree) { - var imports = []; - - function addImport(name) { - if (indexOf.call(imports, name) == -1) - imports.push(name); - } - - traverse(moduleTree, function(node) { - // import {} from 'foo'; - // export * from 'foo'; - // export { ... } from 'foo'; - // module x from 'foo'; - if (node.type == 'EXPORT_DECLARATION') { - if (node.declaration.moduleSpecifier) - addImport(node.declaration.moduleSpecifier.token.processedValue); - } - else if (node.type == 'IMPORT_DECLARATION') - addImport(node.moduleSpecifier.token.processedValue); - else if (node.type == 'MODULE_DECLARATION') - addImport(node.expression.token.processedValue); - }); - return imports; - } var anonCnt = 0; // Module Object From 6e0c1813aa80497c490db38c1d4f441ab978fac1 Mon Sep 17 00:00:00 2001 From: guybedford Date: Mon, 23 Jun 2014 00:54:53 -0700 Subject: [PATCH 007/482] spec bug consolidation and fixes --- dist/es6-module-loader-sans-promises.js | 478 ++++++++++---------- dist/es6-module-loader-sans-promises.min.js | 2 +- dist/es6-module-loader.js | 478 ++++++++++---------- dist/es6-module-loader.min.js | 2 +- lib/index.js | 1 - lib/loader.js | 478 ++++++++++---------- test/test.html | 2 - test/test.js | 28 +- 8 files changed, 759 insertions(+), 710 deletions(-) diff --git a/dist/es6-module-loader-sans-promises.js b/dist/es6-module-loader-sans-promises.js index bad5d1e..f49d60f 100644 --- a/dist/es6-module-loader-sans-promises.js +++ b/dist/es6-module-loader-sans-promises.js @@ -3,24 +3,18 @@ Loader Polyfill - - Implemented exactly to the 2014-04-27 Specification Draft. - Loader implemented to the modules draft from - https://github.com/jorendorff/js-loaders/blob/e60d3651/specs/es6-modules-2013-12-02.pdf + - Implemented exactly to the 2014-05-22 Specification Draft. - - All functions are commented with their spec numbers, with spec differences commented. + - Functions are commented with their spec numbers, with spec differences commented. - - All spec bugs are commented in this code with links to the spec bugs. + - Spec bugs are commented in this code with links. - Abstract functions have been combined where possible, and their associated functions commented. - - When the traceur global is detected, declarative modules are transformed by Traceur - into the `instantiate` System.register output. + - Realm implementation is entirely omitted. - - Realm implementation is entirely omitted. As such, the Loader.realm accessor will - throw an error, as well as Loader.eval. Realm arguments are not passed. - - - Loader module table iteration currently not yet implemented + - Loader module table iteration currently not yet implemented. ********************************************************************************************* */ @@ -131,7 +125,7 @@ function logloads(loads) { console.assert = console.assert || function() {}; - // Define an IE-friendly shim good-enough for purposes + // IE8 support var indexOf = Array.prototype.indexOf || function(item) { for (var i = 0, thisLen = this.length; i < thisLen; i++) { if (this[i] === item) { @@ -141,6 +135,127 @@ function logloads(loads) { return -1; }; + // --- --- + // parse function is used to parse a load record + // tree traversal, NB should use visitor pattern here + function traverse(object, iterator, parent, parentProperty) { + var key, child; + if (iterator(object, parent, parentProperty) === false) + return; + for (key in object) { + if (!object.hasOwnProperty(key)) + continue; + if (key == 'location' || key == 'type') + continue; + child = object[key]; + if (typeof child == 'object' && child !== null) + traverse(child, iterator, object, key); + } + } + // given a syntax tree, return the import list + function getImports(moduleTree) { + var imports = []; + + function addImport(name) { + if (indexOf.call(imports, name) == -1) + imports.push(name); + } + + traverse(moduleTree, function(node) { + // import {} from 'foo'; + // export * from 'foo'; + // export { ... } from 'foo'; + // module x from 'foo'; + if (node.type == 'EXPORT_DECLARATION') { + if (node.declaration.moduleSpecifier) + addImport(node.declaration.moduleSpecifier.token.processedValue); + } + else if (node.type == 'IMPORT_DECLARATION') + addImport(node.moduleSpecifier.token.processedValue); + else if (node.type == 'MODULE_DECLARATION') + addImport(node.expression.token.processedValue); + }); + return imports; + } + // Returns an array of ModuleSpecifiers + function parse(load) { + if (!traceur) { + if (typeof window == 'undefined') + traceur = require('traceur'); + else if (__global.traceur) + traceur = __global.traceur; + else + throw new TypeError('Include Traceur for module syntax support'); + } + + console.assert(load.source, 'Non-empty source'); + + var depsList; + try { + var parser = new traceur.syntax.Parser(new traceur.syntax.SourceFile(load.address, load.source)); + var body = parser.parseModule(); + + load.kind = 'declarative'; + depsList = getImports(body); + + var oldSourceMaps = traceur.options.sourceMaps; + var oldModules = traceur.options.modules; + + traceur.options.sourceMaps = true; + traceur.options.modules = 'instantiate'; + + var reporter = new traceur.util.ErrorReporter(); + + reporter.reportMessageInternal = function(location, kind, format, args) { + throw new SyntaxError(kind, location.start && location.start.line_, location.start && location.start.column_); + } + + // traceur expects its version of System + var curSystem = __global.System; + __global.System = __global.traceurSystem; + + var tree = (new traceur.codegeneration.module.AttachModuleNameTransformer(load.name)).transformAny(body); + tree = (new traceur.codegeneration.FromOptionsTransformer(reporter)).transform(tree); + + var sourceMapGenerator = new traceur.outputgeneration.SourceMapGenerator({ file: load.address }); + var options = { sourceMapGenerator: sourceMapGenerator }; + + var source = traceur.outputgeneration.TreeWriter.write(tree, options); + + if (__global.btoa) + source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(options.sourceMap))) + '\n'; + + // now run System.register + var curRegister = System.register; + + System.register = function(name, deps, declare) { + // store the registered declaration as load.declare + load.declare = typeof name == 'string' ? declare : deps; + } + + __eval(source, __global, load.name); + } + catch(e) { + if (e.name == 'SyntaxError' || e.name == 'TypeError') + e.message = 'Evaluating ' + (load.name || load.address) + '\n\t' + e.message; + if (curRegister) + System.register = curRegister; + if (curSystem) + __global.System = curSystem; + if (oldSourceMaps) + traceur.options.sourceMaps = oldSourceMaps; + if (oldModules) + traceur.options.modules = oldModules; + throw e; + } + System.register = curRegister; + __global.System = curSystem; + traceur.options.sourceMaps = oldSourceMaps; + traceur.options.modules = oldModules; + return depsList; + } + // --- --- + // 15.2.3 - Runtime Semantics: Loader State // 15.2.3.11 @@ -192,12 +307,11 @@ function logloads(loads) { .then(function(name) { var load; if (loader.modules[name]) { - return { name: name }; - // See https://bugs.ecmascript.org/show_bug.cgi?id=2795 - /* load = createLoad(name); + load = createLoad(name); load.status = 'linked'; - load.module = loader.modules[name]; - return load; */ + // https://bugs.ecmascript.org/show_bug.cgi?id=2795 + // load.module = loader.modules[name]; + return load; } for (var i = 0, l = loader.loads.length; i < l; i++) { @@ -244,105 +358,7 @@ function logloads(loads) { ); } - // Returns an array of ModuleSpecifiers - function parse(load) { - if (!__global.traceur) - throw new TypeError('Include Traceur for module syntax support'); - - // given a syntax tree, return the import list - function getImports(moduleTree) { - var imports = []; - - function addImport(name) { - if (indexOf.call(imports, name) == -1) - imports.push(name); - } - - traverse(moduleTree, function(node) { - // import {} from 'foo'; - // export * from 'foo'; - // export { ... } from 'foo'; - // module x from 'foo'; - if (node.type == 'EXPORT_DECLARATION') { - if (node.declaration.moduleSpecifier) - addImport(node.declaration.moduleSpecifier.token.processedValue); - } - else if (node.type == 'IMPORT_DECLARATION') - addImport(node.moduleSpecifier.token.processedValue); - else if (node.type == 'MODULE_DECLARATION') - addImport(node.expression.token.processedValue); - }); - return imports; - } - - traceur = traceur || __global.traceur; - - console.assert(load.source, 'Non-empty source'); - - var depsList; - try { - var parser = new traceur.syntax.Parser(new traceur.syntax.SourceFile(load.address, load.source)); - var body = parser.parseModule(); - - load.kind = 'declarative'; - depsList = getImports(body); - - var oldSourceMaps = traceur.options.sourceMaps; - var oldModules = traceur.options.modules; - - traceur.options.sourceMaps = true; - traceur.options.modules = 'instantiate'; - - var reporter = new traceur.util.ErrorReporter(); - - reporter.reportMessageInternal = function(location, kind, format, args) { - throw new SyntaxError(kind, location.start && location.start.line_, location.start && location.start.column_); - } - - // traceur expects its version of System - var curSystem = __global.System; - __global.System = __global.traceurSystem; - - var tree = (new traceur.codegeneration.module.AttachModuleNameTransformer(load.name)).transformAny(body); - tree = (new traceur.codegeneration.FromOptionsTransformer(reporter)).transform(tree); - - var sourceMapGenerator = new traceur.outputgeneration.SourceMapGenerator({ file: load.address }); - var options = { sourceMapGenerator: sourceMapGenerator }; - - var source = traceur.outputgeneration.TreeWriter.write(tree, options); - - if (__global.btoa) - source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(options.sourceMap))) + '\n'; - - // now run System.register - var curRegister = System.register; - - System.register = function(name, deps, declare) { - // store the registered declaration as load.declare - load.declare = typeof name == 'string' ? declare : deps; - } - - __eval(source, __global, load.name); - } - catch(e) { - if (e.name == 'SyntaxError' || e.name == 'TypeError') - e.message = 'Evaluating ' + (load.name || load.address) + '\n\t' + e.message; - if (curRegister) - System.register = curRegister; - if (curSystem) - __global.System = curSystem; - if (oldSourceMaps) - traceur.options.sourceMaps = oldSourceMaps; - if (oldModules) - traceur.options.modules = oldModules; - throw e; - } - System.register = curRegister; - __global.System = curSystem; - traceur.options.sourceMaps = oldSourceMaps; - traceur.options.modules = oldModules; - return depsList; - } + var anonCnt = 0; // 15.2.4.5 function proceedToTranslate(loader, load, p) { @@ -385,7 +401,7 @@ function logloads(loads) { load.depsList = depsList; var loadPromises = []; - for (var i = 0, l = depsList.length; i < l; i++) (function(request) { + for (var i = 0, l = depsList.length; i < l; i++) (function(request, index) { loadPromises.push( requestLoad(loader, request, load.name, load.address) @@ -396,13 +412,12 @@ function logloads(loads) { return dep.key == request; }), 'not already a dependency'); - load.dependencies.push({ + // adjusted from spec to maintain dependency order + // this is due to the System.register internal implementation needs + load.dependencies[index] = { key: request, value: depLoad.name - }); - - if (!depLoad.status) - return; + }; if (depLoad.status != 'linked') { var linkSets = load.linkSets.concat([]); @@ -414,7 +429,7 @@ function logloads(loads) { // snapshot(loader); }) ); - })(depsList[i]); + })(depsList[i], i); return Promise.all(loadPromises); }) @@ -461,6 +476,7 @@ function logloads(loads) { // NB this still seems wrong for LoadModule as we may load a dependency // of another module directly before it has finished loading. + // see https://bugs.ecmascript.org/show_bug.cgi?id=2994 for (var i = 0, l = loader.loads.length; i < l; i++) if (loader.loads[i].name == name) throw new TypeError('"' + name + '" already loading'); @@ -499,6 +515,7 @@ function logloads(loads) { var linkSet = { loader: loader, loads: [], + startingLoad: startingLoad, // added see spec bug https://bugs.ecmascript.org/show_bug.cgi?id=2995 loadingCount: 0 }; linkSet.done = new Promise(function(resolve, reject) { @@ -555,17 +572,18 @@ function logloads(loads) { // 15.2.5.2.3 function updateLinkSetOnLoad(linkSet, load) { - console.assert(load.status == 'loaded' || load.status == 'linked', 'loaded or linked'); - // console.log('update linkset on load ' + load.name); // snapshot(linkSet.loader); + console.assert(load.status == 'loaded' || load.status == 'linked', 'loaded or linked'); + linkSet.loadingCount--; if (linkSet.loadingCount > 0) return; - var startingLoad = linkSet.loads[0]; + // adjusted for spec bug https://bugs.ecmascript.org/show_bug.cgi?id=2995 + var startingLoad = linkSet.startingLoad; // non-executing link variation for loader tracing // on the server. Not in spec. @@ -712,7 +730,10 @@ function logloads(loads) { var loader = linkSet.loader; - // console.log('linking {' + logloads(loads) + '}'); + if (!linkSet.loads.length) + return; + + // console.log('linking {' + logloads(linkSet.loads) + '}'); // snapshot(loader); // 15.2.5.3.1 LinkageGroups alternative implementation @@ -741,7 +762,7 @@ function logloads(loads) { // 15.2.5.6 LinkDynamicModules adjusted else { var module = load.execute(); - if (!module || !module.__esModule) + if (!module || !(module instanceof ModuleConstructor)) throw new TypeError('Execution must define a Module instance'); load.module = { module: module @@ -880,7 +901,9 @@ function logloads(loads) { delete module.execute; } - // Loader + // 26.3 Loader + + // 26.3.1.1 function Loader(options) { if (typeof options != 'object') throw new TypeError('Options must be an object'); @@ -902,57 +925,65 @@ function logloads(loads) { modules: {} }; + // 26.3.3.6 defineProperty(this, 'global', { get: function() { return __global; } }); - defineProperty(this, 'realm', { - get: function() { - throw new TypeError('Realms not implemented in polyfill'); - } - }); + + // 26.3.3.13 realm not implemented } + function ModuleConstructor() {} + // importPromises adds ability to import a module twice without error - https://bugs.ecmascript.org/show_bug.cgi?id=2601 var importPromises = {}; + function createImportPromise(name, promise) { + importPromises[name] = promise; + promise.then(function() { + importPromises[name] = undefined; + }); + promise['catch'](function() { + importPromises[name] = undefined; + }); + return promise; + } + Loader.prototype = { + // 26.3.3.1 constructor: Loader, + // 26.3.3.2 define: function(name, source, options) { + // check if already defined if (importPromises[name]) throw new TypeError('Module is already loading.'); - importPromises[name] = new Promise(asyncStartLoadPartwayThrough({ - step: options && options.address ? 'fetch' : 'translate', + return createImportPromise(name, new Promise(asyncStartLoadPartwayThrough({ + step: 'translate', loader: this._loader, moduleName: name, moduleMetadata: options && options.metadata || {}, moduleSource: source, moduleAddress: options && options.address - })); - return importPromises[name].then(function() { delete importPromises[name]; }); + }))); }, - load: function(request, options) { - if (this._loader.modules[request]) { - ensureEvaluated(this._loader.modules[request], [], this._loader); - return Promise.resolve(this._loader.modules[request].module); - } - if (importPromises[request]) - return importPromises[request]; - importPromises[request] = loadModule(this._loader, request, {}); - return importPromises[request].then(function() { delete importPromises[request]; }) + // 26.3.3.3 + 'delete': function(name) { + return this._loader.modules[name] ? delete this._loader.modules[name] : false; }, - module: function(source, options) { - var load = createLoad(); - load.address = options && options.address; - var linkSet = createLinkSet(this._loader, load); - var sourcePromise = Promise.resolve(source); - var loader = this._loader; - var p = linkSet.done.then(function() { - return evaluateLoadedModule(loader, load); - }); - proceedToTranslate(loader, load, sourcePromise); - return p; + // 26.3.3.4 entries not implemented + // 26.3.3.5 + get: function(key) { + if (!this._loader.modules[key]) + return; + ensureEvaluated(this._loader.modules[key], [], this); + return this._loader.modules[key].module; }, + // 26.3.3.7 + has: function(name) { + return !!this._loader.modules[name]; + }, + // 26.3.3.8 'import': function(name, options) { // run normalize first var loaderObj = this; @@ -967,109 +998,96 @@ function logloads(loads) { return Promise.resolve(loader.modules[name].module); } - return (importPromises[name] || (importPromises[name] = loadModule(loader, name, options || {}))) + return importPromises[name] || createImportPromise(name, + loadModule(loader, name, options || {}) .then(function(load) { delete importPromises[name]; return evaluateLoadedModule(loader, load); - }); + })); }); }, - eval: function(source) { - throw new TypeError('Eval not implemented in polyfill') - }, - get: function(key) { - if (!this._loader.modules[key]) - return; - ensureEvaluated(this._loader.modules[key], [], this); - return this._loader.modules[key].module; + // 26.3.3.9 keys not implemented + // 26.3.3.10 + load: function(name, options) { + if (this._loader.modules[name]) { + ensureEvaluated(this._loader.modules[name], [], this._loader); + return Promise.resolve(this._loader.modules[name].module); + } + return importPromises[name] || createImportPromise(name, loadModule(this._loader, name, {})); }, - has: function(name) { - return !!this._loader.modules[name]; + // 26.3.3.11 + module: function(source, options) { + var load = createLoad(); + load.address = options && options.address; + var linkSet = createLinkSet(this._loader, load); + var sourcePromise = Promise.resolve(source); + var loader = this._loader; + var p = linkSet.done.then(function() { + return evaluateLoadedModule(loader, load); + }); + proceedToTranslate(loader, load, sourcePromise); + return p; }, + // 26.3.3.12 newModule: function (obj) { - return new Module(obj); + if (typeof obj != 'object') + throw new TypeError('Expected object'); + + // we do this to be able to tell if a module is a module privately in ES5 + // by doing m instanceof ModuleConstructor + var m = new ModuleConstructor(); + + for (var key in obj) { + (function (key) { + defineProperty(m, key, { + configurable: false, + enumerable: true, + get: function () { + return obj[key]; + } + }); + })(key); + } + + if (Object.preventExtensions) + Object.preventExtensions(m); + + return m; }, + // 26.3.3.14 set: function(name, module) { - if (!(module.__esModule)) + if (!(module instanceof ModuleConstructor)) throw new TypeError('Set must be a module'); this._loader.modules[name] = { module: module }; }, - 'delete': function(name) { - return this._loader.modules[name] ? delete this._loader.modules[name] : false; - }, - // NB implement iterations - entries: function() { - throw new TypeError('Iteration not yet implemented in the polyfill'); - }, - keys: function() { - throw new TypeError('Iteration not yet implemented in the polyfill'); - }, - values: function() { - throw new TypeError('Iteration not yet implemented in the polyfill'); - }, + // 26.3.3.15 values not implemented + // 26.3.3.16 @@iterator not implemented + // 26.3.3.17 @@toStringTag not implemented + + // 26.3.3.18.1 normalize: function(name, referrerName, referrerAddress) { return name; }, + // 26.3.3.18.2 locate: function(load) { return load.name; }, + // 26.3.3.18.3 fetch: function(load) { throw new TypeError('Fetch not implemented'); }, + // 26.3.3.18.4 translate: function(load) { return load.source; }, + // 26.3.3.18.5 instantiate: function(load) { } }; - // tree traversal, NB should use visitor pattern here - function traverse(object, iterator, parent, parentProperty) { - var key, child; - if (iterator(object, parent, parentProperty) === false) - return; - for (key in object) { - if (!object.hasOwnProperty(key)) - continue; - if (key == 'location' || key == 'type') - continue; - child = object[key]; - if (typeof child == 'object' && child !== null) - traverse(child, iterator, object, key); - } - } - - var anonCnt = 0; - - // Module Object - function Module(obj) { - if (typeof obj != 'object') - throw new TypeError('Expected object'); - - var self = { - __esModule: true - }; - - for (var key in obj) { - (function (key) { - defineProperty(self, key, { - configurable: false, - enumerable: true, - get: function () { - return obj[key]; - } - }); - })(key); - } - - if (Object.preventExtensions) - Object.preventExtensions(self); - - return self; - } - + var Module = Loader.prototype.newModule; if (typeof exports === 'object') module.exports = Loader; diff --git a/dist/es6-module-loader-sans-promises.min.js b/dist/es6-module-loader-sans-promises.min.js index 93524f1..f59a0fe 100644 --- a/dist/es6-module-loader-sans-promises.min.js +++ b/dist/es6-module-loader-sans-promises.min.js @@ -3,4 +3,4 @@ * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(__global){function __eval(__source,__global,__moduleName){eval('var __moduleName = "'+(__moduleName||"").replace('"','"')+'"; (function() { '+__source+" \n }).call(__global);")}!function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new y(h({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new y(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return{name:c};for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,y.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){g(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a){function b(a){function b(a){-1==A.call(c,a)&&c.push(a)}var c=[];return u(a,function(a){"EXPORT_DECLARATION"==a.type?a.declaration.moduleSpecifier&&b(a.declaration.moduleSpecifier.token.processedValue):"IMPORT_DECLARATION"==a.type?b(a.moduleSpecifier.token.processedValue):"MODULE_DECLARATION"==a.type&&b(a.expression.token.processedValue)}),c}if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");w=w||__global.traceur;var c;try{var d=new w.syntax.Parser(new w.syntax.SourceFile(a.address,a.source)),e=d.parseModule();a.kind="declarative",c=b(e);var f=w.options.sourceMaps,g=w.options.modules;w.options.sourceMaps=!0,w.options.modules="instantiate";var h=new w.util.ErrorReporter;h.reportMessageInternal=function(a,b){throw new SyntaxError(b,a.start&&a.start.line_,a.start&&a.start.column_)};var i=__global.System;__global.System=__global.traceurSystem;var j=new w.codegeneration.module.AttachModuleNameTransformer(a.name).transformAny(e);j=new w.codegeneration.FromOptionsTransformer(h).transform(j);var k=new w.outputgeneration.SourceMapGenerator({file:a.address}),l={sourceMapGenerator:k},m=w.outputgeneration.TreeWriter.write(j,l);__global.btoa&&(m+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(l.sourceMap)))+"\n");var n=System.register;System.register=function(b,c,d){a.declare="string"==typeof b?d:c},__eval(m,__global,a.name)}catch(o){throw("SyntaxError"==o.name||"TypeError"==o.name)&&(o.message="Evaluating "+(a.name||a.address)+"\n "+o.message),n&&(System.register=n),i&&(__global.System=i),f&&(w.options.sourceMaps=f),g&&(w.options.modules=g),o}return System.register=n,__global.System=i,w.options.sourceMaps=f,w.options.modules=g,c}function g(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){var e;if(void 0===d)b.address=b.address||"anon"+ ++C,e=f(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");e=d.deps||[],b.execute=d.execute,b.kind="dynamic"}b.dependencies=[],b.depsList=e;for(var g=[],h=0,i=e.length;i>h;h++)(function(d){g.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies.push({key:d,value:a.name}),a.status&&"linked"!=a.status)for(var c=b.linkSets.concat([]),e=0,f=c.length;f>e;e++)j(c[e],a)}))})(e[h]);return y.all(g)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)l(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)m(c[d],a)})}function h(b){return function(c){var f=b.loader,h=b.moduleName,j=b.step;if(f.modules[h])throw new TypeError('"'+h+'" already exists in the module table');for(var k=0,l=f.loads.length;l>k;k++)if(f.loads[k].name==h)throw new TypeError('"'+h+'" already loading');var m=a(h);m.metadata=b.moduleMetadata;var n=i(f,m);f.loads.push(m),c(n.done),"locate"==j?d(f,m):"fetch"==j?e(f,m,y.resolve(b.moduleAddress)):(m.address=b.moduleAddress,g(f,m,y.resolve(b.moduleSource)))}}function i(a,b){var c={loader:a,loads:[],loadingCount:0};return c.done=new y(function(a,b){c.resolve=a,c.reject=b}),j(c,b),c}function j(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){j(a,e.loads[g]);break}}}function k(a){try{p(a)}catch(b){return m(a,b)}}function l(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.loads[0];if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0;ee;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==c.loaderObj.failed.indexOf(g)&&c.loaderObj.failed.push(g);var h=A.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=A.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function n(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.kind}}b.name&&(a.modules[b.name]=b.module);var d=A.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=A.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function o(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==A.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0;e=0;f--){for(var g=c[f],h=0;hb;b++)if(this[b]===a)return b;return-1},B={};t.prototype={constructor:t,define:function(a,b,c){if(B[a])throw new TypeError("Module is already loading.");return B[a]=new y(h({step:c&&c.address?"fetch":"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})),B[a].then(function(){delete B[a]})},load:function(a){return this._loader.modules[a]?(s(this._loader.modules[a],[],this._loader),y.resolve(this._loader.modules[a].module)):B[a]?B[a]:(B[a]=b(this._loader,a,{}),B[a].then(function(){delete B[a]}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=i(this._loader,d),f=y.resolve(b),h=this._loader,j=e.done.then(function(){return r(h,d)});return g(h,d,f),j},"import":function(a,c){var d=this;return y.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(s(e.modules[a],[],e._loader),y.resolve(e.modules[a].module)):(B[a]||(B[a]=b(e,a,c||{}))).then(function(b){return delete B[a],r(e,b)})})},eval:function(){throw new TypeError("Eval not implemented in polyfill")},get:function(a){return this._loader.modules[a]?(s(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},newModule:function(a){return new v(a)},set:function(a,b){if(!b.__esModule)throw new TypeError("Set must be a module");this._loader.modules[a]={module:b}},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},entries:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},keys:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},values:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var C=0;"object"==typeof exports&&(module.exports=t),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||t,__global.LoaderPolyfill=t,__global.Module=v}()}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function d(a,d){return d=b(d||""),a=b(a||""),d&&a?(d.protocol||a.protocol)+(d.protocol||d.authority?d.authority:a.authority)+c(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+d.pathname:a.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||a.search)+d.hash:null}function e(){document.removeEventListener("DOMContentLoaded",e,!1),window.removeEventListener("load",e,!1),f()}function f(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");1==g.length?c==f&&f.length>e.length&&(e=f):c.substr(0,g[0].length)==g[0]&&c.substr(c.length-g[1].length)==g[1]&&(e=f,b=c.substr(g[0].length,c.length-g[1].length-g[0].length))}var h=this.paths[e];return b&&(h=h.replace("*",b)),d(this.baseURL,h)},fetch:function(a){return new j(function(b,c){g(d(this.baseURL,a.address),function(a){b(a)},c)})}});if(h){var m=window.location.href.split("#")[0].split("?")[0];l.baseURL=m.substring(0,m.lastIndexOf("/")+1)}else l.baseURL="./";if(l.paths={"*":"*.js"},a.System&&a.traceur&&(a.traceurSystem=a.System),h&&(a.System=l),h){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(f):document.addEventListener&&(document.addEventListener("DOMContentLoaded",e,!1),window.addEventListener("load",e,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}"object"==typeof exports&&(module.exports=l)}("undefined"!=typeof global?global:this); \ No newline at end of file +!function(__global){function __eval(__source,__global,__moduleName){eval('var __moduleName = "'+(__moduleName||"").replace('"','"')+'"; (function() { '+__source+" \n }).call(__global);")}!function(){function a(b,c,d,e){var f,g;if(c(b,d,e)!==!1)for(f in b)b.hasOwnProperty(f)&&"location"!=f&&"type"!=f&&(g=b[f],"object"==typeof g&&null!==g&&a(g,c,b,f))}function b(b){function c(a){-1==C.call(d,a)&&d.push(a)}var d=[];return a(b,function(a){"EXPORT_DECLARATION"==a.type?a.declaration.moduleSpecifier&&c(a.declaration.moduleSpecifier.token.processedValue):"IMPORT_DECLARATION"==a.type?c(a.moduleSpecifier.token.processedValue):"MODULE_DECLARATION"==a.type&&c(a.expression.token.processedValue)}),d}function c(a){if(!y)if("undefined"==typeof window)y=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");y=__global.traceur}var c;try{var d=new y.syntax.Parser(new y.syntax.SourceFile(a.address,a.source)),e=d.parseModule();a.kind="declarative",c=b(e);var f=y.options.sourceMaps,g=y.options.modules;y.options.sourceMaps=!0,y.options.modules="instantiate";var h=new y.util.ErrorReporter;h.reportMessageInternal=function(a,b){throw new SyntaxError(b,a.start&&a.start.line_,a.start&&a.start.column_)};var i=__global.System;__global.System=__global.traceurSystem;var j=new y.codegeneration.module.AttachModuleNameTransformer(a.name).transformAny(e);j=new y.codegeneration.FromOptionsTransformer(h).transform(j);var k=new y.outputgeneration.SourceMapGenerator({file:a.address}),l={sourceMapGenerator:k},m=y.outputgeneration.TreeWriter.write(j,l);__global.btoa&&(m+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(l.sourceMap)))+"\n");var n=System.register;System.register=function(b,c,d){a.declare="string"==typeof b?d:c},__eval(m,__global,a.name)}catch(o){throw("SyntaxError"==o.name||"TypeError"==o.name)&&(o.message="Evaluating "+(a.name||a.address)+"\n "+o.message),n&&(System.register=n),i&&(__global.System=i),f&&(y.options.sourceMaps=f),g&&(y.options.modules=g),o}return System.register=n,__global.System=i,y.options.sourceMaps=f,y.options.modules=g,c}function d(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function e(a,b,c){return new A(j({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:{},moduleSource:c.source,moduleAddress:c.address}))}function f(a,b,c,e){return new A(function(d){d(a.loaderObj.normalize(b,c,e))}).then(function(b){var c;if(a.modules[b])return c=d(b),c.status="linked",c;for(var e=0,f=a.loads.length;f>e;e++)if(c=a.loads[e],c.name==b)return c;return c=d(b),a.loads.push(c),g(a,c),c})}function g(a,b){h(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function h(a,b,c){i(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function i(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){var e;if(void 0===d)b.address=b.address||"anon"+ ++D,e=c(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");e=d.deps||[],b.execute=d.execute,b.kind="dynamic"}b.dependencies=[],b.depsList=e;for(var g=[],h=0,i=e.length;i>h;h++)(function(c,d){g.push(f(a,c,b.name,b.address).then(function(a){if(b.dependencies[d]={key:c,value:a.name},"linked"!=a.status)for(var e=b.linkSets.concat([]),f=0,g=e.length;g>f;f++)l(e[f],a)}))})(e[h],h);return A.all(g)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)n(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)o(c[d],a)})}function j(a){return function(b){var c=a.loader,e=a.moduleName,f=a.step;if(c.modules[e])throw new TypeError('"'+e+'" already exists in the module table');for(var j=0,l=c.loads.length;l>j;j++)if(c.loads[j].name==e)throw new TypeError('"'+e+'" already loading');var m=d(e);m.metadata=a.moduleMetadata;var n=k(c,m);c.loads.push(m),b(n.done),"locate"==f?g(c,m):"fetch"==f?h(c,m,A.resolve(a.moduleAddress)):(m.address=a.moduleAddress,i(c,m,A.resolve(a.moduleSource)))}}function k(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),l(c,b),c}function l(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){l(a,e.loads[g]);break}}}function m(a){try{r(a)}catch(b){return o(a,b)}}function n(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0;ee;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==c.loaderObj.failed.indexOf(g)&&c.loaderObj.failed.push(g);var h=C.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=C.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function p(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.kind}}b.name&&(a.modules[b.name]=b.module);var d=C.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=C.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function q(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==C.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0;e=0;f--){for(var g=c[f],h=0;hb;b++)if(this[b]===a)return b;return-1},D=0,E={};v.prototype={constructor:v,define:function(a,b,c){if(E[a])throw new TypeError("Module is already loading.");return x(a,new A(j({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,b){var c=this;return A.resolve(c.normalize(a,b&&b.name,b&&b.address)).then(function(a){var d=c._loader;return d.modules[a]?(u(d.modules[a],[],d._loader),A.resolve(d.modules[a].module)):E[a]||x(a,e(d,a,b||{}).then(function(b){return delete E[a],t(d,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):E[a]||x(a,e(this._loader,a,{}))},module:function(a,b){var c=d();c.address=b&&b.address;var e=k(this._loader,c),f=A.resolve(a),g=this._loader,h=e.done.then(function(){return t(g,c)});return i(g,c,f),h},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new w;for(var c in a)!function(c){z(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof w))throw new TypeError("Set must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var F=v.prototype.newModule;"object"==typeof exports&&(module.exports=v),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||v,__global.LoaderPolyfill=v,__global.Module=F}()}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function d(a,d){return d=b(d||""),a=b(a||""),d&&a?(d.protocol||a.protocol)+(d.protocol||d.authority?d.authority:a.authority)+c(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+d.pathname:a.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||a.search)+d.hash:null}function e(){document.removeEventListener("DOMContentLoaded",e,!1),window.removeEventListener("load",e,!1),f()}function f(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");1==g.length?c==f&&f.length>e.length&&(e=f):c.substr(0,g[0].length)==g[0]&&c.substr(c.length-g[1].length)==g[1]&&(e=f,b=c.substr(g[0].length,c.length-g[1].length-g[0].length))}var h=this.paths[e];return b&&(h=h.replace("*",b)),d(this.baseURL,h)},fetch:function(a){return new j(function(b,c){g(d(this.baseURL,a.address),function(a){b(a)},c)})}});if(h){var m=window.location.href.split("#")[0].split("?")[0];l.baseURL=m.substring(0,m.lastIndexOf("/")+1)}else l.baseURL="./";if(l.paths={"*":"*.js"},a.System&&a.traceur&&(a.traceurSystem=a.System),h&&(a.System=l),h){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(f):document.addEventListener&&(document.addEventListener("DOMContentLoaded",e,!1),window.addEventListener("load",e,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}"object"==typeof exports&&(module.exports=l)}("undefined"!=typeof global?global:this); \ No newline at end of file diff --git a/dist/es6-module-loader.js b/dist/es6-module-loader.js index cd782e5..8f249f4 100644 --- a/dist/es6-module-loader.js +++ b/dist/es6-module-loader.js @@ -687,24 +687,18 @@ requireModule('promise/polyfill').polyfill(); Loader Polyfill - - Implemented exactly to the 2014-04-27 Specification Draft. - Loader implemented to the modules draft from - https://github.com/jorendorff/js-loaders/blob/e60d3651/specs/es6-modules-2013-12-02.pdf + - Implemented exactly to the 2014-05-22 Specification Draft. - - All functions are commented with their spec numbers, with spec differences commented. + - Functions are commented with their spec numbers, with spec differences commented. - - All spec bugs are commented in this code with links to the spec bugs. + - Spec bugs are commented in this code with links. - Abstract functions have been combined where possible, and their associated functions commented. - - When the traceur global is detected, declarative modules are transformed by Traceur - into the `instantiate` System.register output. + - Realm implementation is entirely omitted. - - Realm implementation is entirely omitted. As such, the Loader.realm accessor will - throw an error, as well as Loader.eval. Realm arguments are not passed. - - - Loader module table iteration currently not yet implemented + - Loader module table iteration currently not yet implemented. ********************************************************************************************* */ @@ -815,7 +809,7 @@ function logloads(loads) { console.assert = console.assert || function() {}; - // Define an IE-friendly shim good-enough for purposes + // IE8 support var indexOf = Array.prototype.indexOf || function(item) { for (var i = 0, thisLen = this.length; i < thisLen; i++) { if (this[i] === item) { @@ -825,6 +819,127 @@ function logloads(loads) { return -1; }; + // --- --- + // parse function is used to parse a load record + // tree traversal, NB should use visitor pattern here + function traverse(object, iterator, parent, parentProperty) { + var key, child; + if (iterator(object, parent, parentProperty) === false) + return; + for (key in object) { + if (!object.hasOwnProperty(key)) + continue; + if (key == 'location' || key == 'type') + continue; + child = object[key]; + if (typeof child == 'object' && child !== null) + traverse(child, iterator, object, key); + } + } + // given a syntax tree, return the import list + function getImports(moduleTree) { + var imports = []; + + function addImport(name) { + if (indexOf.call(imports, name) == -1) + imports.push(name); + } + + traverse(moduleTree, function(node) { + // import {} from 'foo'; + // export * from 'foo'; + // export { ... } from 'foo'; + // module x from 'foo'; + if (node.type == 'EXPORT_DECLARATION') { + if (node.declaration.moduleSpecifier) + addImport(node.declaration.moduleSpecifier.token.processedValue); + } + else if (node.type == 'IMPORT_DECLARATION') + addImport(node.moduleSpecifier.token.processedValue); + else if (node.type == 'MODULE_DECLARATION') + addImport(node.expression.token.processedValue); + }); + return imports; + } + // Returns an array of ModuleSpecifiers + function parse(load) { + if (!traceur) { + if (typeof window == 'undefined') + traceur = require('traceur'); + else if (__global.traceur) + traceur = __global.traceur; + else + throw new TypeError('Include Traceur for module syntax support'); + } + + console.assert(load.source, 'Non-empty source'); + + var depsList; + try { + var parser = new traceur.syntax.Parser(new traceur.syntax.SourceFile(load.address, load.source)); + var body = parser.parseModule(); + + load.kind = 'declarative'; + depsList = getImports(body); + + var oldSourceMaps = traceur.options.sourceMaps; + var oldModules = traceur.options.modules; + + traceur.options.sourceMaps = true; + traceur.options.modules = 'instantiate'; + + var reporter = new traceur.util.ErrorReporter(); + + reporter.reportMessageInternal = function(location, kind, format, args) { + throw new SyntaxError(kind, location.start && location.start.line_, location.start && location.start.column_); + } + + // traceur expects its version of System + var curSystem = __global.System; + __global.System = __global.traceurSystem; + + var tree = (new traceur.codegeneration.module.AttachModuleNameTransformer(load.name)).transformAny(body); + tree = (new traceur.codegeneration.FromOptionsTransformer(reporter)).transform(tree); + + var sourceMapGenerator = new traceur.outputgeneration.SourceMapGenerator({ file: load.address }); + var options = { sourceMapGenerator: sourceMapGenerator }; + + var source = traceur.outputgeneration.TreeWriter.write(tree, options); + + if (__global.btoa) + source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(options.sourceMap))) + '\n'; + + // now run System.register + var curRegister = System.register; + + System.register = function(name, deps, declare) { + // store the registered declaration as load.declare + load.declare = typeof name == 'string' ? declare : deps; + } + + __eval(source, __global, load.name); + } + catch(e) { + if (e.name == 'SyntaxError' || e.name == 'TypeError') + e.message = 'Evaluating ' + (load.name || load.address) + '\n\t' + e.message; + if (curRegister) + System.register = curRegister; + if (curSystem) + __global.System = curSystem; + if (oldSourceMaps) + traceur.options.sourceMaps = oldSourceMaps; + if (oldModules) + traceur.options.modules = oldModules; + throw e; + } + System.register = curRegister; + __global.System = curSystem; + traceur.options.sourceMaps = oldSourceMaps; + traceur.options.modules = oldModules; + return depsList; + } + // --- --- + // 15.2.3 - Runtime Semantics: Loader State // 15.2.3.11 @@ -876,12 +991,11 @@ function logloads(loads) { .then(function(name) { var load; if (loader.modules[name]) { - return { name: name }; - // See https://bugs.ecmascript.org/show_bug.cgi?id=2795 - /* load = createLoad(name); + load = createLoad(name); load.status = 'linked'; - load.module = loader.modules[name]; - return load; */ + // https://bugs.ecmascript.org/show_bug.cgi?id=2795 + // load.module = loader.modules[name]; + return load; } for (var i = 0, l = loader.loads.length; i < l; i++) { @@ -928,105 +1042,7 @@ function logloads(loads) { ); } - // Returns an array of ModuleSpecifiers - function parse(load) { - if (!__global.traceur) - throw new TypeError('Include Traceur for module syntax support'); - - // given a syntax tree, return the import list - function getImports(moduleTree) { - var imports = []; - - function addImport(name) { - if (indexOf.call(imports, name) == -1) - imports.push(name); - } - - traverse(moduleTree, function(node) { - // import {} from 'foo'; - // export * from 'foo'; - // export { ... } from 'foo'; - // module x from 'foo'; - if (node.type == 'EXPORT_DECLARATION') { - if (node.declaration.moduleSpecifier) - addImport(node.declaration.moduleSpecifier.token.processedValue); - } - else if (node.type == 'IMPORT_DECLARATION') - addImport(node.moduleSpecifier.token.processedValue); - else if (node.type == 'MODULE_DECLARATION') - addImport(node.expression.token.processedValue); - }); - return imports; - } - - traceur = traceur || __global.traceur; - - console.assert(load.source, 'Non-empty source'); - - var depsList; - try { - var parser = new traceur.syntax.Parser(new traceur.syntax.SourceFile(load.address, load.source)); - var body = parser.parseModule(); - - load.kind = 'declarative'; - depsList = getImports(body); - - var oldSourceMaps = traceur.options.sourceMaps; - var oldModules = traceur.options.modules; - - traceur.options.sourceMaps = true; - traceur.options.modules = 'instantiate'; - - var reporter = new traceur.util.ErrorReporter(); - - reporter.reportMessageInternal = function(location, kind, format, args) { - throw new SyntaxError(kind, location.start && location.start.line_, location.start && location.start.column_); - } - - // traceur expects its version of System - var curSystem = __global.System; - __global.System = __global.traceurSystem; - - var tree = (new traceur.codegeneration.module.AttachModuleNameTransformer(load.name)).transformAny(body); - tree = (new traceur.codegeneration.FromOptionsTransformer(reporter)).transform(tree); - - var sourceMapGenerator = new traceur.outputgeneration.SourceMapGenerator({ file: load.address }); - var options = { sourceMapGenerator: sourceMapGenerator }; - - var source = traceur.outputgeneration.TreeWriter.write(tree, options); - - if (__global.btoa) - source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(options.sourceMap))) + '\n'; - - // now run System.register - var curRegister = System.register; - - System.register = function(name, deps, declare) { - // store the registered declaration as load.declare - load.declare = typeof name == 'string' ? declare : deps; - } - - __eval(source, __global, load.name); - } - catch(e) { - if (e.name == 'SyntaxError' || e.name == 'TypeError') - e.message = 'Evaluating ' + (load.name || load.address) + '\n\t' + e.message; - if (curRegister) - System.register = curRegister; - if (curSystem) - __global.System = curSystem; - if (oldSourceMaps) - traceur.options.sourceMaps = oldSourceMaps; - if (oldModules) - traceur.options.modules = oldModules; - throw e; - } - System.register = curRegister; - __global.System = curSystem; - traceur.options.sourceMaps = oldSourceMaps; - traceur.options.modules = oldModules; - return depsList; - } + var anonCnt = 0; // 15.2.4.5 function proceedToTranslate(loader, load, p) { @@ -1069,7 +1085,7 @@ function logloads(loads) { load.depsList = depsList; var loadPromises = []; - for (var i = 0, l = depsList.length; i < l; i++) (function(request) { + for (var i = 0, l = depsList.length; i < l; i++) (function(request, index) { loadPromises.push( requestLoad(loader, request, load.name, load.address) @@ -1080,13 +1096,12 @@ function logloads(loads) { return dep.key == request; }), 'not already a dependency'); - load.dependencies.push({ + // adjusted from spec to maintain dependency order + // this is due to the System.register internal implementation needs + load.dependencies[index] = { key: request, value: depLoad.name - }); - - if (!depLoad.status) - return; + }; if (depLoad.status != 'linked') { var linkSets = load.linkSets.concat([]); @@ -1098,7 +1113,7 @@ function logloads(loads) { // snapshot(loader); }) ); - })(depsList[i]); + })(depsList[i], i); return Promise.all(loadPromises); }) @@ -1145,6 +1160,7 @@ function logloads(loads) { // NB this still seems wrong for LoadModule as we may load a dependency // of another module directly before it has finished loading. + // see https://bugs.ecmascript.org/show_bug.cgi?id=2994 for (var i = 0, l = loader.loads.length; i < l; i++) if (loader.loads[i].name == name) throw new TypeError('"' + name + '" already loading'); @@ -1183,6 +1199,7 @@ function logloads(loads) { var linkSet = { loader: loader, loads: [], + startingLoad: startingLoad, // added see spec bug https://bugs.ecmascript.org/show_bug.cgi?id=2995 loadingCount: 0 }; linkSet.done = new Promise(function(resolve, reject) { @@ -1239,17 +1256,18 @@ function logloads(loads) { // 15.2.5.2.3 function updateLinkSetOnLoad(linkSet, load) { - console.assert(load.status == 'loaded' || load.status == 'linked', 'loaded or linked'); - // console.log('update linkset on load ' + load.name); // snapshot(linkSet.loader); + console.assert(load.status == 'loaded' || load.status == 'linked', 'loaded or linked'); + linkSet.loadingCount--; if (linkSet.loadingCount > 0) return; - var startingLoad = linkSet.loads[0]; + // adjusted for spec bug https://bugs.ecmascript.org/show_bug.cgi?id=2995 + var startingLoad = linkSet.startingLoad; // non-executing link variation for loader tracing // on the server. Not in spec. @@ -1396,7 +1414,10 @@ function logloads(loads) { var loader = linkSet.loader; - // console.log('linking {' + logloads(loads) + '}'); + if (!linkSet.loads.length) + return; + + // console.log('linking {' + logloads(linkSet.loads) + '}'); // snapshot(loader); // 15.2.5.3.1 LinkageGroups alternative implementation @@ -1425,7 +1446,7 @@ function logloads(loads) { // 15.2.5.6 LinkDynamicModules adjusted else { var module = load.execute(); - if (!module || !module.__esModule) + if (!module || !(module instanceof ModuleConstructor)) throw new TypeError('Execution must define a Module instance'); load.module = { module: module @@ -1564,7 +1585,9 @@ function logloads(loads) { delete module.execute; } - // Loader + // 26.3 Loader + + // 26.3.1.1 function Loader(options) { if (typeof options != 'object') throw new TypeError('Options must be an object'); @@ -1586,57 +1609,65 @@ function logloads(loads) { modules: {} }; + // 26.3.3.6 defineProperty(this, 'global', { get: function() { return __global; } }); - defineProperty(this, 'realm', { - get: function() { - throw new TypeError('Realms not implemented in polyfill'); - } - }); + + // 26.3.3.13 realm not implemented } + function ModuleConstructor() {} + // importPromises adds ability to import a module twice without error - https://bugs.ecmascript.org/show_bug.cgi?id=2601 var importPromises = {}; + function createImportPromise(name, promise) { + importPromises[name] = promise; + promise.then(function() { + importPromises[name] = undefined; + }); + promise['catch'](function() { + importPromises[name] = undefined; + }); + return promise; + } + Loader.prototype = { + // 26.3.3.1 constructor: Loader, + // 26.3.3.2 define: function(name, source, options) { + // check if already defined if (importPromises[name]) throw new TypeError('Module is already loading.'); - importPromises[name] = new Promise(asyncStartLoadPartwayThrough({ - step: options && options.address ? 'fetch' : 'translate', + return createImportPromise(name, new Promise(asyncStartLoadPartwayThrough({ + step: 'translate', loader: this._loader, moduleName: name, moduleMetadata: options && options.metadata || {}, moduleSource: source, moduleAddress: options && options.address - })); - return importPromises[name].then(function() { delete importPromises[name]; }); + }))); }, - load: function(request, options) { - if (this._loader.modules[request]) { - ensureEvaluated(this._loader.modules[request], [], this._loader); - return Promise.resolve(this._loader.modules[request].module); - } - if (importPromises[request]) - return importPromises[request]; - importPromises[request] = loadModule(this._loader, request, {}); - return importPromises[request].then(function() { delete importPromises[request]; }) + // 26.3.3.3 + 'delete': function(name) { + return this._loader.modules[name] ? delete this._loader.modules[name] : false; }, - module: function(source, options) { - var load = createLoad(); - load.address = options && options.address; - var linkSet = createLinkSet(this._loader, load); - var sourcePromise = Promise.resolve(source); - var loader = this._loader; - var p = linkSet.done.then(function() { - return evaluateLoadedModule(loader, load); - }); - proceedToTranslate(loader, load, sourcePromise); - return p; + // 26.3.3.4 entries not implemented + // 26.3.3.5 + get: function(key) { + if (!this._loader.modules[key]) + return; + ensureEvaluated(this._loader.modules[key], [], this); + return this._loader.modules[key].module; }, + // 26.3.3.7 + has: function(name) { + return !!this._loader.modules[name]; + }, + // 26.3.3.8 'import': function(name, options) { // run normalize first var loaderObj = this; @@ -1651,109 +1682,96 @@ function logloads(loads) { return Promise.resolve(loader.modules[name].module); } - return (importPromises[name] || (importPromises[name] = loadModule(loader, name, options || {}))) + return importPromises[name] || createImportPromise(name, + loadModule(loader, name, options || {}) .then(function(load) { delete importPromises[name]; return evaluateLoadedModule(loader, load); - }); + })); }); }, - eval: function(source) { - throw new TypeError('Eval not implemented in polyfill') - }, - get: function(key) { - if (!this._loader.modules[key]) - return; - ensureEvaluated(this._loader.modules[key], [], this); - return this._loader.modules[key].module; + // 26.3.3.9 keys not implemented + // 26.3.3.10 + load: function(name, options) { + if (this._loader.modules[name]) { + ensureEvaluated(this._loader.modules[name], [], this._loader); + return Promise.resolve(this._loader.modules[name].module); + } + return importPromises[name] || createImportPromise(name, loadModule(this._loader, name, {})); }, - has: function(name) { - return !!this._loader.modules[name]; + // 26.3.3.11 + module: function(source, options) { + var load = createLoad(); + load.address = options && options.address; + var linkSet = createLinkSet(this._loader, load); + var sourcePromise = Promise.resolve(source); + var loader = this._loader; + var p = linkSet.done.then(function() { + return evaluateLoadedModule(loader, load); + }); + proceedToTranslate(loader, load, sourcePromise); + return p; }, + // 26.3.3.12 newModule: function (obj) { - return new Module(obj); + if (typeof obj != 'object') + throw new TypeError('Expected object'); + + // we do this to be able to tell if a module is a module privately in ES5 + // by doing m instanceof ModuleConstructor + var m = new ModuleConstructor(); + + for (var key in obj) { + (function (key) { + defineProperty(m, key, { + configurable: false, + enumerable: true, + get: function () { + return obj[key]; + } + }); + })(key); + } + + if (Object.preventExtensions) + Object.preventExtensions(m); + + return m; }, + // 26.3.3.14 set: function(name, module) { - if (!(module.__esModule)) + if (!(module instanceof ModuleConstructor)) throw new TypeError('Set must be a module'); this._loader.modules[name] = { module: module }; }, - 'delete': function(name) { - return this._loader.modules[name] ? delete this._loader.modules[name] : false; - }, - // NB implement iterations - entries: function() { - throw new TypeError('Iteration not yet implemented in the polyfill'); - }, - keys: function() { - throw new TypeError('Iteration not yet implemented in the polyfill'); - }, - values: function() { - throw new TypeError('Iteration not yet implemented in the polyfill'); - }, + // 26.3.3.15 values not implemented + // 26.3.3.16 @@iterator not implemented + // 26.3.3.17 @@toStringTag not implemented + + // 26.3.3.18.1 normalize: function(name, referrerName, referrerAddress) { return name; }, + // 26.3.3.18.2 locate: function(load) { return load.name; }, + // 26.3.3.18.3 fetch: function(load) { throw new TypeError('Fetch not implemented'); }, + // 26.3.3.18.4 translate: function(load) { return load.source; }, + // 26.3.3.18.5 instantiate: function(load) { } }; - // tree traversal, NB should use visitor pattern here - function traverse(object, iterator, parent, parentProperty) { - var key, child; - if (iterator(object, parent, parentProperty) === false) - return; - for (key in object) { - if (!object.hasOwnProperty(key)) - continue; - if (key == 'location' || key == 'type') - continue; - child = object[key]; - if (typeof child == 'object' && child !== null) - traverse(child, iterator, object, key); - } - } - - var anonCnt = 0; - - // Module Object - function Module(obj) { - if (typeof obj != 'object') - throw new TypeError('Expected object'); - - var self = { - __esModule: true - }; - - for (var key in obj) { - (function (key) { - defineProperty(self, key, { - configurable: false, - enumerable: true, - get: function () { - return obj[key]; - } - }); - })(key); - } - - if (Object.preventExtensions) - Object.preventExtensions(self); - - return self; - } - + var Module = Loader.prototype.newModule; if (typeof exports === 'object') module.exports = Loader; diff --git a/dist/es6-module-loader.min.js b/dist/es6-module-loader.min.js index a54ceff..43fcea8 100644 --- a/dist/es6-module-loader.min.js +++ b/dist/es6-module-loader.min.js @@ -3,4 +3,4 @@ * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(){var a,b,c,d;!function(){var e={},f={};a=function(a,b,c){e[a]={deps:b,callback:c}},d=c=b=function(a){function c(b){if("."!==b.charAt(0))return b;for(var c=b.split("/"),d=a.split("/").slice(0,-1),e=0,f=c.length;f>e;e++){var g=c[e];if(".."===g)d.pop();else{if("."===g)continue;d.push(g)}}return d.join("/")}if(d._eak_seen=e,f[a])return f[a];if(f[a]={},!e[a])throw new Error("Could not find module "+a);for(var g,h=e[a],i=h.deps,j=h.callback,k=[],l=0,m=i.length;m>l;l++)"exports"===i[l]?k.push(g={}):k.push(b(c(i[l])));var n=j.apply(this,k);return f[a]=g||n}}(),a("promise/all",["./utils","exports"],function(a,b){"use strict";function c(a){var b=this;if(!d(a))throw new TypeError("You must pass an array to all.");return new b(function(b,c){function d(a){return function(b){f(a,b)}}function f(a,c){h[a]=c,0===--i&&b(h)}var g,h=[],i=a.length;0===i&&b([]);for(var j=0;jf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,y.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){g(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a){function b(a){function b(a){-1==A.call(c,a)&&c.push(a)}var c=[];return u(a,function(a){"EXPORT_DECLARATION"==a.type?a.declaration.moduleSpecifier&&b(a.declaration.moduleSpecifier.token.processedValue):"IMPORT_DECLARATION"==a.type?b(a.moduleSpecifier.token.processedValue):"MODULE_DECLARATION"==a.type&&b(a.expression.token.processedValue)}),c}if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");w=w||__global.traceur;var c;try{var d=new w.syntax.Parser(new w.syntax.SourceFile(a.address,a.source)),e=d.parseModule();a.kind="declarative",c=b(e);var f=w.options.sourceMaps,g=w.options.modules;w.options.sourceMaps=!0,w.options.modules="instantiate";var h=new w.util.ErrorReporter;h.reportMessageInternal=function(a,b){throw new SyntaxError(b,a.start&&a.start.line_,a.start&&a.start.column_)};var i=__global.System;__global.System=__global.traceurSystem;var j=new w.codegeneration.module.AttachModuleNameTransformer(a.name).transformAny(e);j=new w.codegeneration.FromOptionsTransformer(h).transform(j);var k=new w.outputgeneration.SourceMapGenerator({file:a.address}),l={sourceMapGenerator:k},m=w.outputgeneration.TreeWriter.write(j,l);__global.btoa&&(m+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(l.sourceMap)))+"\n");var n=System.register;System.register=function(b,c,d){a.declare="string"==typeof b?d:c},__eval(m,__global,a.name)}catch(o){throw("SyntaxError"==o.name||"TypeError"==o.name)&&(o.message="Evaluating "+(a.name||a.address)+"\n "+o.message),n&&(System.register=n),i&&(__global.System=i),f&&(w.options.sourceMaps=f),g&&(w.options.modules=g),o}return System.register=n,__global.System=i,w.options.sourceMaps=f,w.options.modules=g,c}function g(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){var e;if(void 0===d)b.address=b.address||"anon"+ ++C,e=f(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");e=d.deps||[],b.execute=d.execute,b.kind="dynamic"}b.dependencies=[],b.depsList=e;for(var g=[],h=0,i=e.length;i>h;h++)(function(d){g.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies.push({key:d,value:a.name}),a.status&&"linked"!=a.status)for(var c=b.linkSets.concat([]),e=0,f=c.length;f>e;e++)j(c[e],a)}))})(e[h]);return y.all(g)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)l(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)m(c[d],a)})}function h(b){return function(c){var f=b.loader,h=b.moduleName,j=b.step;if(f.modules[h])throw new TypeError('"'+h+'" already exists in the module table');for(var k=0,l=f.loads.length;l>k;k++)if(f.loads[k].name==h)throw new TypeError('"'+h+'" already loading');var m=a(h);m.metadata=b.moduleMetadata;var n=i(f,m);f.loads.push(m),c(n.done),"locate"==j?d(f,m):"fetch"==j?e(f,m,y.resolve(b.moduleAddress)):(m.address=b.moduleAddress,g(f,m,y.resolve(b.moduleSource)))}}function i(a,b){var c={loader:a,loads:[],loadingCount:0};return c.done=new y(function(a,b){c.resolve=a,c.reject=b}),j(c,b),c}function j(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){j(a,e.loads[g]);break}}}function k(a){try{p(a)}catch(b){return m(a,b)}}function l(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.loads[0];if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0;ee;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==c.loaderObj.failed.indexOf(g)&&c.loaderObj.failed.push(g);var h=A.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=A.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function n(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.kind}}b.name&&(a.modules[b.name]=b.module);var d=A.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=A.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function o(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==A.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0;e=0;f--){for(var g=c[f],h=0;hb;b++)if(this[b]===a)return b;return-1},B={};t.prototype={constructor:t,define:function(a,b,c){if(B[a])throw new TypeError("Module is already loading.");return B[a]=new y(h({step:c&&c.address?"fetch":"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})),B[a].then(function(){delete B[a]})},load:function(a){return this._loader.modules[a]?(s(this._loader.modules[a],[],this._loader),y.resolve(this._loader.modules[a].module)):B[a]?B[a]:(B[a]=b(this._loader,a,{}),B[a].then(function(){delete B[a]}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=i(this._loader,d),f=y.resolve(b),h=this._loader,j=e.done.then(function(){return r(h,d)});return g(h,d,f),j},"import":function(a,c){var d=this;return y.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(s(e.modules[a],[],e._loader),y.resolve(e.modules[a].module)):(B[a]||(B[a]=b(e,a,c||{}))).then(function(b){return delete B[a],r(e,b)})})},eval:function(){throw new TypeError("Eval not implemented in polyfill")},get:function(a){return this._loader.modules[a]?(s(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},newModule:function(a){return new v(a)},set:function(a,b){if(!b.__esModule)throw new TypeError("Set must be a module");this._loader.modules[a]={module:b}},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},entries:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},keys:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},values:function(){throw new TypeError("Iteration not yet implemented in the polyfill")},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var C=0;"object"==typeof exports&&(module.exports=t),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||t,__global.LoaderPolyfill=t,__global.Module=v}()}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function d(a,d){return d=b(d||""),a=b(a||""),d&&a?(d.protocol||a.protocol)+(d.protocol||d.authority?d.authority:a.authority)+c(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+d.pathname:a.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||a.search)+d.hash:null}function e(){document.removeEventListener("DOMContentLoaded",e,!1),window.removeEventListener("load",e,!1),f()}function f(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");1==g.length?c==f&&f.length>e.length&&(e=f):c.substr(0,g[0].length)==g[0]&&c.substr(c.length-g[1].length)==g[1]&&(e=f,b=c.substr(g[0].length,c.length-g[1].length-g[0].length))}var h=this.paths[e];return b&&(h=h.replace("*",b)),d(this.baseURL,h)},fetch:function(a){return new j(function(b,c){g(d(this.baseURL,a.address),function(a){b(a)},c)})}});if(h){var m=window.location.href.split("#")[0].split("?")[0];l.baseURL=m.substring(0,m.lastIndexOf("/")+1)}else l.baseURL="./";if(l.paths={"*":"*.js"},a.System&&a.traceur&&(a.traceurSystem=a.System),h&&(a.System=l),h){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(f):document.addEventListener&&(document.addEventListener("DOMContentLoaded",e,!1),window.addEventListener("load",e,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}"object"==typeof exports&&(module.exports=l)}("undefined"!=typeof global?global:this); \ No newline at end of file +!function(){var a,b,c,d;!function(){var e={},f={};a=function(a,b,c){e[a]={deps:b,callback:c}},d=c=b=function(a){function c(b){if("."!==b.charAt(0))return b;for(var c=b.split("/"),d=a.split("/").slice(0,-1),e=0,f=c.length;f>e;e++){var g=c[e];if(".."===g)d.pop();else{if("."===g)continue;d.push(g)}}return d.join("/")}if(d._eak_seen=e,f[a])return f[a];if(f[a]={},!e[a])throw new Error("Could not find module "+a);for(var g,h=e[a],i=h.deps,j=h.callback,k=[],l=0,m=i.length;m>l;l++)"exports"===i[l]?k.push(g={}):k.push(b(c(i[l])));var n=j.apply(this,k);return f[a]=g||n}}(),a("promise/all",["./utils","exports"],function(a,b){"use strict";function c(a){var b=this;if(!d(a))throw new TypeError("You must pass an array to all.");return new b(function(b,c){function d(a){return function(b){f(a,b)}}function f(a,c){h[a]=c,0===--i&&b(h)}var g,h=[],i=a.length;0===i&&b([]);for(var j=0;je;e++)if(c=a.loads[e],c.name==b)return c;return c=d(b),a.loads.push(c),g(a,c),c})}function g(a,b){h(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function h(a,b,c){i(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function i(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){var e;if(void 0===d)b.address=b.address||"anon"+ ++D,e=c(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");e=d.deps||[],b.execute=d.execute,b.kind="dynamic"}b.dependencies=[],b.depsList=e;for(var g=[],h=0,i=e.length;i>h;h++)(function(c,d){g.push(f(a,c,b.name,b.address).then(function(a){if(b.dependencies[d]={key:c,value:a.name},"linked"!=a.status)for(var e=b.linkSets.concat([]),f=0,g=e.length;g>f;f++)l(e[f],a)}))})(e[h],h);return A.all(g)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)n(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)o(c[d],a)})}function j(a){return function(b){var c=a.loader,e=a.moduleName,f=a.step;if(c.modules[e])throw new TypeError('"'+e+'" already exists in the module table');for(var j=0,l=c.loads.length;l>j;j++)if(c.loads[j].name==e)throw new TypeError('"'+e+'" already loading');var m=d(e);m.metadata=a.moduleMetadata;var n=k(c,m);c.loads.push(m),b(n.done),"locate"==f?g(c,m):"fetch"==f?h(c,m,A.resolve(a.moduleAddress)):(m.address=a.moduleAddress,i(c,m,A.resolve(a.moduleSource)))}}function k(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),l(c,b),c}function l(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){l(a,e.loads[g]);break}}}function m(a){try{r(a)}catch(b){return o(a,b)}}function n(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0;ee;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==c.loaderObj.failed.indexOf(g)&&c.loaderObj.failed.push(g);var h=C.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=C.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function p(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.kind}}b.name&&(a.modules[b.name]=b.module);var d=C.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=C.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function q(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==C.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0;e=0;f--){for(var g=c[f],h=0;hb;b++)if(this[b]===a)return b;return-1},D=0,E={};v.prototype={constructor:v,define:function(a,b,c){if(E[a])throw new TypeError("Module is already loading.");return x(a,new A(j({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,b){var c=this;return A.resolve(c.normalize(a,b&&b.name,b&&b.address)).then(function(a){var d=c._loader;return d.modules[a]?(u(d.modules[a],[],d._loader),A.resolve(d.modules[a].module)):E[a]||x(a,e(d,a,b||{}).then(function(b){return delete E[a],t(d,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):E[a]||x(a,e(this._loader,a,{}))},module:function(a,b){var c=d();c.address=b&&b.address;var e=k(this._loader,c),f=A.resolve(a),g=this._loader,h=e.done.then(function(){return t(g,c)});return i(g,c,f),h},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new w;for(var c in a)!function(c){z(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof w))throw new TypeError("Set must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var F=v.prototype.newModule;"object"==typeof exports&&(module.exports=v),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||v,__global.LoaderPolyfill=v,__global.Module=F}()}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function d(a,d){return d=b(d||""),a=b(a||""),d&&a?(d.protocol||a.protocol)+(d.protocol||d.authority?d.authority:a.authority)+c(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+d.pathname:a.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||a.search)+d.hash:null}function e(){document.removeEventListener("DOMContentLoaded",e,!1),window.removeEventListener("load",e,!1),f()}function f(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");1==g.length?c==f&&f.length>e.length&&(e=f):c.substr(0,g[0].length)==g[0]&&c.substr(c.length-g[1].length)==g[1]&&(e=f,b=c.substr(g[0].length,c.length-g[1].length-g[0].length))}var h=this.paths[e];return b&&(h=h.replace("*",b)),d(this.baseURL,h)},fetch:function(a){return new j(function(b,c){g(d(this.baseURL,a.address),function(a){b(a)},c)})}});if(h){var m=window.location.href.split("#")[0].split("?")[0];l.baseURL=m.substring(0,m.lastIndexOf("/")+1)}else l.baseURL="./";if(l.paths={"*":"*.js"},a.System&&a.traceur&&(a.traceurSystem=a.System),h&&(a.System=l),h){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(f):document.addEventListener&&(document.addEventListener("DOMContentLoaded",e,!1),window.addEventListener("load",e,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}"object"==typeof exports&&(module.exports=l)}("undefined"!=typeof global?global:this); \ No newline at end of file diff --git a/lib/index.js b/lib/index.js index b089b7f..36cd05f 100644 --- a/lib/index.js +++ b/lib/index.js @@ -2,6 +2,5 @@ if (!global.traceur) require('traceur'); module.exports = { Loader: require('./loader'), - Module: Module, System: require('./system') }; diff --git a/lib/loader.js b/lib/loader.js index 33592fe..2edf808 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -3,24 +3,18 @@ Loader Polyfill - - Implemented exactly to the 2014-04-27 Specification Draft. - Loader implemented to the modules draft from - https://github.com/jorendorff/js-loaders/blob/e60d3651/specs/es6-modules-2013-12-02.pdf + - Implemented exactly to the 2014-05-22 Specification Draft. - - All functions are commented with their spec numbers, with spec differences commented. + - Functions are commented with their spec numbers, with spec differences commented. - - All spec bugs are commented in this code with links to the spec bugs. + - Spec bugs are commented in this code with links. - Abstract functions have been combined where possible, and their associated functions commented. - - When the traceur global is detected, declarative modules are transformed by Traceur - into the `instantiate` System.register output. + - Realm implementation is entirely omitted. - - Realm implementation is entirely omitted. As such, the Loader.realm accessor will - throw an error, as well as Loader.eval. Realm arguments are not passed. - - - Loader module table iteration currently not yet implemented + - Loader module table iteration currently not yet implemented. ********************************************************************************************* */ @@ -131,7 +125,7 @@ function logloads(loads) { console.assert = console.assert || function() {}; - // Define an IE-friendly shim good-enough for purposes + // IE8 support var indexOf = Array.prototype.indexOf || function(item) { for (var i = 0, thisLen = this.length; i < thisLen; i++) { if (this[i] === item) { @@ -141,6 +135,127 @@ function logloads(loads) { return -1; }; + // --- --- + // parse function is used to parse a load record + // tree traversal, NB should use visitor pattern here + function traverse(object, iterator, parent, parentProperty) { + var key, child; + if (iterator(object, parent, parentProperty) === false) + return; + for (key in object) { + if (!object.hasOwnProperty(key)) + continue; + if (key == 'location' || key == 'type') + continue; + child = object[key]; + if (typeof child == 'object' && child !== null) + traverse(child, iterator, object, key); + } + } + // given a syntax tree, return the import list + function getImports(moduleTree) { + var imports = []; + + function addImport(name) { + if (indexOf.call(imports, name) == -1) + imports.push(name); + } + + traverse(moduleTree, function(node) { + // import {} from 'foo'; + // export * from 'foo'; + // export { ... } from 'foo'; + // module x from 'foo'; + if (node.type == 'EXPORT_DECLARATION') { + if (node.declaration.moduleSpecifier) + addImport(node.declaration.moduleSpecifier.token.processedValue); + } + else if (node.type == 'IMPORT_DECLARATION') + addImport(node.moduleSpecifier.token.processedValue); + else if (node.type == 'MODULE_DECLARATION') + addImport(node.expression.token.processedValue); + }); + return imports; + } + // Returns an array of ModuleSpecifiers + function parse(load) { + if (!traceur) { + if (typeof window == 'undefined') + traceur = require('traceur'); + else if (__global.traceur) + traceur = __global.traceur; + else + throw new TypeError('Include Traceur for module syntax support'); + } + + console.assert(load.source, 'Non-empty source'); + + var depsList; + try { + var parser = new traceur.syntax.Parser(new traceur.syntax.SourceFile(load.address, load.source)); + var body = parser.parseModule(); + + load.kind = 'declarative'; + depsList = getImports(body); + + var oldSourceMaps = traceur.options.sourceMaps; + var oldModules = traceur.options.modules; + + traceur.options.sourceMaps = true; + traceur.options.modules = 'instantiate'; + + var reporter = new traceur.util.ErrorReporter(); + + reporter.reportMessageInternal = function(location, kind, format, args) { + throw new SyntaxError(kind, location.start && location.start.line_, location.start && location.start.column_); + } + + // traceur expects its version of System + var curSystem = __global.System; + __global.System = __global.traceurSystem; + + var tree = (new traceur.codegeneration.module.AttachModuleNameTransformer(load.name)).transformAny(body); + tree = (new traceur.codegeneration.FromOptionsTransformer(reporter)).transform(tree); + + var sourceMapGenerator = new traceur.outputgeneration.SourceMapGenerator({ file: load.address }); + var options = { sourceMapGenerator: sourceMapGenerator }; + + var source = traceur.outputgeneration.TreeWriter.write(tree, options); + + if (__global.btoa) + source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(options.sourceMap))) + '\n'; + + // now run System.register + var curRegister = System.register; + + System.register = function(name, deps, declare) { + // store the registered declaration as load.declare + load.declare = typeof name == 'string' ? declare : deps; + } + + __eval(source, __global, load.name); + } + catch(e) { + if (e.name == 'SyntaxError' || e.name == 'TypeError') + e.message = 'Evaluating ' + (load.name || load.address) + '\n\t' + e.message; + if (curRegister) + System.register = curRegister; + if (curSystem) + __global.System = curSystem; + if (oldSourceMaps) + traceur.options.sourceMaps = oldSourceMaps; + if (oldModules) + traceur.options.modules = oldModules; + throw e; + } + System.register = curRegister; + __global.System = curSystem; + traceur.options.sourceMaps = oldSourceMaps; + traceur.options.modules = oldModules; + return depsList; + } + // --- --- + // 15.2.3 - Runtime Semantics: Loader State // 15.2.3.11 @@ -192,12 +307,11 @@ function logloads(loads) { .then(function(name) { var load; if (loader.modules[name]) { - return { name: name }; - // See https://bugs.ecmascript.org/show_bug.cgi?id=2795 - /* load = createLoad(name); + load = createLoad(name); load.status = 'linked'; - load.module = loader.modules[name]; - return load; */ + // https://bugs.ecmascript.org/show_bug.cgi?id=2795 + // load.module = loader.modules[name]; + return load; } for (var i = 0, l = loader.loads.length; i < l; i++) { @@ -244,105 +358,7 @@ function logloads(loads) { ); } - // Returns an array of ModuleSpecifiers - function parse(load) { - if (!__global.traceur) - throw new TypeError('Include Traceur for module syntax support'); - - // given a syntax tree, return the import list - function getImports(moduleTree) { - var imports = []; - - function addImport(name) { - if (indexOf.call(imports, name) == -1) - imports.push(name); - } - - traverse(moduleTree, function(node) { - // import {} from 'foo'; - // export * from 'foo'; - // export { ... } from 'foo'; - // module x from 'foo'; - if (node.type == 'EXPORT_DECLARATION') { - if (node.declaration.moduleSpecifier) - addImport(node.declaration.moduleSpecifier.token.processedValue); - } - else if (node.type == 'IMPORT_DECLARATION') - addImport(node.moduleSpecifier.token.processedValue); - else if (node.type == 'MODULE_DECLARATION') - addImport(node.expression.token.processedValue); - }); - return imports; - } - - traceur = traceur || __global.traceur; - - console.assert(load.source, 'Non-empty source'); - - var depsList; - try { - var parser = new traceur.syntax.Parser(new traceur.syntax.SourceFile(load.address, load.source)); - var body = parser.parseModule(); - - load.kind = 'declarative'; - depsList = getImports(body); - - var oldSourceMaps = traceur.options.sourceMaps; - var oldModules = traceur.options.modules; - - traceur.options.sourceMaps = true; - traceur.options.modules = 'instantiate'; - - var reporter = new traceur.util.ErrorReporter(); - - reporter.reportMessageInternal = function(location, kind, format, args) { - throw new SyntaxError(kind, location.start && location.start.line_, location.start && location.start.column_); - } - - // traceur expects its version of System - var curSystem = __global.System; - __global.System = __global.traceurSystem; - - var tree = (new traceur.codegeneration.module.AttachModuleNameTransformer(load.name)).transformAny(body); - tree = (new traceur.codegeneration.FromOptionsTransformer(reporter)).transform(tree); - - var sourceMapGenerator = new traceur.outputgeneration.SourceMapGenerator({ file: load.address }); - var options = { sourceMapGenerator: sourceMapGenerator }; - - var source = traceur.outputgeneration.TreeWriter.write(tree, options); - - if (__global.btoa) - source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(options.sourceMap))) + '\n'; - - // now run System.register - var curRegister = System.register; - - System.register = function(name, deps, declare) { - // store the registered declaration as load.declare - load.declare = typeof name == 'string' ? declare : deps; - } - - __eval(source, __global, load.name); - } - catch(e) { - if (e.name == 'SyntaxError' || e.name == 'TypeError') - e.message = 'Evaluating ' + (load.name || load.address) + '\n\t' + e.message; - if (curRegister) - System.register = curRegister; - if (curSystem) - __global.System = curSystem; - if (oldSourceMaps) - traceur.options.sourceMaps = oldSourceMaps; - if (oldModules) - traceur.options.modules = oldModules; - throw e; - } - System.register = curRegister; - __global.System = curSystem; - traceur.options.sourceMaps = oldSourceMaps; - traceur.options.modules = oldModules; - return depsList; - } + var anonCnt = 0; // 15.2.4.5 function proceedToTranslate(loader, load, p) { @@ -385,7 +401,7 @@ function logloads(loads) { load.depsList = depsList; var loadPromises = []; - for (var i = 0, l = depsList.length; i < l; i++) (function(request) { + for (var i = 0, l = depsList.length; i < l; i++) (function(request, index) { loadPromises.push( requestLoad(loader, request, load.name, load.address) @@ -396,13 +412,12 @@ function logloads(loads) { return dep.key == request; }), 'not already a dependency'); - load.dependencies.push({ + // adjusted from spec to maintain dependency order + // this is due to the System.register internal implementation needs + load.dependencies[index] = { key: request, value: depLoad.name - }); - - if (!depLoad.status) - return; + }; if (depLoad.status != 'linked') { var linkSets = load.linkSets.concat([]); @@ -414,7 +429,7 @@ function logloads(loads) { // snapshot(loader); }) ); - })(depsList[i]); + })(depsList[i], i); return Promise.all(loadPromises); }) @@ -461,6 +476,7 @@ function logloads(loads) { // NB this still seems wrong for LoadModule as we may load a dependency // of another module directly before it has finished loading. + // see https://bugs.ecmascript.org/show_bug.cgi?id=2994 for (var i = 0, l = loader.loads.length; i < l; i++) if (loader.loads[i].name == name) throw new TypeError('"' + name + '" already loading'); @@ -499,6 +515,7 @@ function logloads(loads) { var linkSet = { loader: loader, loads: [], + startingLoad: startingLoad, // added see spec bug https://bugs.ecmascript.org/show_bug.cgi?id=2995 loadingCount: 0 }; linkSet.done = new Promise(function(resolve, reject) { @@ -555,17 +572,18 @@ function logloads(loads) { // 15.2.5.2.3 function updateLinkSetOnLoad(linkSet, load) { - console.assert(load.status == 'loaded' || load.status == 'linked', 'loaded or linked'); - // console.log('update linkset on load ' + load.name); // snapshot(linkSet.loader); + console.assert(load.status == 'loaded' || load.status == 'linked', 'loaded or linked'); + linkSet.loadingCount--; if (linkSet.loadingCount > 0) return; - var startingLoad = linkSet.loads[0]; + // adjusted for spec bug https://bugs.ecmascript.org/show_bug.cgi?id=2995 + var startingLoad = linkSet.startingLoad; // non-executing link variation for loader tracing // on the server. Not in spec. @@ -712,7 +730,10 @@ function logloads(loads) { var loader = linkSet.loader; - // console.log('linking {' + logloads(loads) + '}'); + if (!linkSet.loads.length) + return; + + // console.log('linking {' + logloads(linkSet.loads) + '}'); // snapshot(loader); // 15.2.5.3.1 LinkageGroups alternative implementation @@ -741,7 +762,7 @@ function logloads(loads) { // 15.2.5.6 LinkDynamicModules adjusted else { var module = load.execute(); - if (!module || !module.__esModule) + if (!module || !(module instanceof ModuleConstructor)) throw new TypeError('Execution must define a Module instance'); load.module = { module: module @@ -880,7 +901,9 @@ function logloads(loads) { delete module.execute; } - // Loader + // 26.3 Loader + + // 26.3.1.1 function Loader(options) { if (typeof options != 'object') throw new TypeError('Options must be an object'); @@ -902,57 +925,65 @@ function logloads(loads) { modules: {} }; + // 26.3.3.6 defineProperty(this, 'global', { get: function() { return __global; } }); - defineProperty(this, 'realm', { - get: function() { - throw new TypeError('Realms not implemented in polyfill'); - } - }); + + // 26.3.3.13 realm not implemented } + function ModuleConstructor() {} + // importPromises adds ability to import a module twice without error - https://bugs.ecmascript.org/show_bug.cgi?id=2601 var importPromises = {}; + function createImportPromise(name, promise) { + importPromises[name] = promise; + promise.then(function() { + importPromises[name] = undefined; + }); + promise['catch'](function() { + importPromises[name] = undefined; + }); + return promise; + } + Loader.prototype = { + // 26.3.3.1 constructor: Loader, + // 26.3.3.2 define: function(name, source, options) { + // check if already defined if (importPromises[name]) throw new TypeError('Module is already loading.'); - importPromises[name] = new Promise(asyncStartLoadPartwayThrough({ - step: options && options.address ? 'fetch' : 'translate', + return createImportPromise(name, new Promise(asyncStartLoadPartwayThrough({ + step: 'translate', loader: this._loader, moduleName: name, moduleMetadata: options && options.metadata || {}, moduleSource: source, moduleAddress: options && options.address - })); - return importPromises[name].then(function() { delete importPromises[name]; }); + }))); }, - load: function(request, options) { - if (this._loader.modules[request]) { - ensureEvaluated(this._loader.modules[request], [], this._loader); - return Promise.resolve(this._loader.modules[request].module); - } - if (importPromises[request]) - return importPromises[request]; - importPromises[request] = loadModule(this._loader, request, {}); - return importPromises[request].then(function() { delete importPromises[request]; }) + // 26.3.3.3 + 'delete': function(name) { + return this._loader.modules[name] ? delete this._loader.modules[name] : false; }, - module: function(source, options) { - var load = createLoad(); - load.address = options && options.address; - var linkSet = createLinkSet(this._loader, load); - var sourcePromise = Promise.resolve(source); - var loader = this._loader; - var p = linkSet.done.then(function() { - return evaluateLoadedModule(loader, load); - }); - proceedToTranslate(loader, load, sourcePromise); - return p; + // 26.3.3.4 entries not implemented + // 26.3.3.5 + get: function(key) { + if (!this._loader.modules[key]) + return; + ensureEvaluated(this._loader.modules[key], [], this); + return this._loader.modules[key].module; }, + // 26.3.3.7 + has: function(name) { + return !!this._loader.modules[name]; + }, + // 26.3.3.8 'import': function(name, options) { // run normalize first var loaderObj = this; @@ -967,109 +998,96 @@ function logloads(loads) { return Promise.resolve(loader.modules[name].module); } - return (importPromises[name] || (importPromises[name] = loadModule(loader, name, options || {}))) + return importPromises[name] || createImportPromise(name, + loadModule(loader, name, options || {}) .then(function(load) { delete importPromises[name]; return evaluateLoadedModule(loader, load); - }); + })); }); }, - eval: function(source) { - throw new TypeError('Eval not implemented in polyfill') - }, - get: function(key) { - if (!this._loader.modules[key]) - return; - ensureEvaluated(this._loader.modules[key], [], this); - return this._loader.modules[key].module; + // 26.3.3.9 keys not implemented + // 26.3.3.10 + load: function(name, options) { + if (this._loader.modules[name]) { + ensureEvaluated(this._loader.modules[name], [], this._loader); + return Promise.resolve(this._loader.modules[name].module); + } + return importPromises[name] || createImportPromise(name, loadModule(this._loader, name, {})); }, - has: function(name) { - return !!this._loader.modules[name]; + // 26.3.3.11 + module: function(source, options) { + var load = createLoad(); + load.address = options && options.address; + var linkSet = createLinkSet(this._loader, load); + var sourcePromise = Promise.resolve(source); + var loader = this._loader; + var p = linkSet.done.then(function() { + return evaluateLoadedModule(loader, load); + }); + proceedToTranslate(loader, load, sourcePromise); + return p; }, + // 26.3.3.12 newModule: function (obj) { - return new Module(obj); + if (typeof obj != 'object') + throw new TypeError('Expected object'); + + // we do this to be able to tell if a module is a module privately in ES5 + // by doing m instanceof ModuleConstructor + var m = new ModuleConstructor(); + + for (var key in obj) { + (function (key) { + defineProperty(m, key, { + configurable: false, + enumerable: true, + get: function () { + return obj[key]; + } + }); + })(key); + } + + if (Object.preventExtensions) + Object.preventExtensions(m); + + return m; }, + // 26.3.3.14 set: function(name, module) { - if (!(module.__esModule)) + if (!(module instanceof ModuleConstructor)) throw new TypeError('Set must be a module'); this._loader.modules[name] = { module: module }; }, - 'delete': function(name) { - return this._loader.modules[name] ? delete this._loader.modules[name] : false; - }, - // NB implement iterations - entries: function() { - throw new TypeError('Iteration not yet implemented in the polyfill'); - }, - keys: function() { - throw new TypeError('Iteration not yet implemented in the polyfill'); - }, - values: function() { - throw new TypeError('Iteration not yet implemented in the polyfill'); - }, + // 26.3.3.15 values not implemented + // 26.3.3.16 @@iterator not implemented + // 26.3.3.17 @@toStringTag not implemented + + // 26.3.3.18.1 normalize: function(name, referrerName, referrerAddress) { return name; }, + // 26.3.3.18.2 locate: function(load) { return load.name; }, + // 26.3.3.18.3 fetch: function(load) { throw new TypeError('Fetch not implemented'); }, + // 26.3.3.18.4 translate: function(load) { return load.source; }, + // 26.3.3.18.5 instantiate: function(load) { } }; - // tree traversal, NB should use visitor pattern here - function traverse(object, iterator, parent, parentProperty) { - var key, child; - if (iterator(object, parent, parentProperty) === false) - return; - for (key in object) { - if (!object.hasOwnProperty(key)) - continue; - if (key == 'location' || key == 'type') - continue; - child = object[key]; - if (typeof child == 'object' && child !== null) - traverse(child, iterator, object, key); - } - } - - var anonCnt = 0; - - // Module Object - function Module(obj) { - if (typeof obj != 'object') - throw new TypeError('Expected object'); - - var self = { - __esModule: true - }; - - for (var key in obj) { - (function (key) { - defineProperty(self, key, { - configurable: false, - enumerable: true, - get: function () { - return obj[key]; - } - }); - })(key); - } - - if (Object.preventExtensions) - Object.preventExtensions(self); - - return self; - } - + var Module = Loader.prototype.newModule; if (typeof exports === 'object') module.exports = Loader; diff --git a/test/test.html b/test/test.html index d1cd0ac..467bf33 100644 --- a/test/test.html +++ b/test/test.html @@ -43,5 +43,3 @@ }); }, 500); - - diff --git a/test/test.js b/test/test.js index 931e2f4..b29e773 100644 --- a/test/test.js +++ b/test/test.js @@ -296,20 +296,18 @@ function runTests() { }) }); - test('Dependency race error check (fix pending)', function(assert) { - var systemNormalize = System.normalize; - System.normalize = function(name) { - if (name == 'loadmain') - return 'loads/main'; - return systemNormalize.apply(this, arguments); - } - System['import']('loadmain').then(function(m) { - assert('Module returned despite error'); - }, function(e) { - assert(!!e, true); - }); - System['import']('loads/deperror'); - }); + + // https://bugs.ecmascript.org/show_bug.cgi?id=2993 + + // test('Dependency race error check (fix pending)', function(assert) { + // System['import']('loads/main').then(function(m) { + // assert('Module returned despite error'); + // }, function(e) { + // assert(!!e, true); + // }); + // System['import']('loads/deperror'); + // }); + test('Export Syntax', function(assert) { System['import']('syntax/export').then(function(m) { @@ -554,4 +552,4 @@ function runTests() { assert(m.n, 'n'); }); }); -} +} From dc6c3cd7cb4631dc5aed26dee3c6ff21a91a78fa Mon Sep 17 00:00:00 2001 From: guybedford Date: Mon, 23 Jun 2014 14:59:58 -0700 Subject: [PATCH 008/482] promises update, spec fixes, 0.7.0 prep --- Gruntfile.js | 5 +- LICENSE-MIT | 2 +- README.md | 15 +- bower.json | 5 +- dist/es6-module-loader-sans-promises.js | 47 +- dist/es6-module-loader-sans-promises.min.js | 4 +- dist/es6-module-loader.js | 1958 ++++++++++++------- dist/es6-module-loader.min.js | 4 +- lib/loader.js | 47 +- package.json | 6 +- test/perf.html | 18 +- test/test.html | 2 +- test/test.js | 25 +- 13 files changed, 1370 insertions(+), 768 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index 46d792e..aea8c42 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -21,8 +21,8 @@ module.exports = function (grunt) { concat: { dist: { src: [ - 'node_modules/es6-promise/dist/promise-1.0.0.js', - 'lib/module.js', + // 'node_modules/rsvp/dist/rsvp.js', + 'node_modules/when/es6-shim/Promise.js', 'lib/loader.js', 'lib/system.js' ], @@ -30,7 +30,6 @@ module.exports = function (grunt) { }, polyfillOnly: { src: [ - 'lib/module.js', 'lib/loader.js', 'lib/system.js' ], diff --git a/LICENSE-MIT b/LICENSE-MIT index 06ff2f5..87dd93e 100644 --- a/LICENSE-MIT +++ b/LICENSE-MIT @@ -1,4 +1,4 @@ -Copyright (c) 2013 Guy Bedford, Luke Hoban, Addy Osmani +Copyright (c) 2013-2014 Guy Bedford, Luke Hoban, Addy Osmani Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation diff --git a/README.md b/README.md index ab170ee..2b1f12e 100644 --- a/README.md +++ b/README.md @@ -2,14 +2,14 @@ Dynamically loads ES6 modules in NodeJS and current browsers. -* Implemented exactly to the April 27 2014 ES6 specification draft. +* Implemented exactly to the May 22 2014 ES6 specification draft. * Provides an asynchronous loader (`System.import`) to [dynamically load ES6 modules](#basic-use). * Uses [Traceur](https://github.com/google/traceur-compiler) for compiling ES6 modules and syntax into ES5 in the browser with source map support. * Fully supports [ES6 circular references and bindings](#circular-references--bindings). * Polyfills ES6 Promises in the browser with a bundled [es6-promise](https://github.com/jakearchibald/es6-promise) implementation. * [Compatible with NodeJS](#nodejs-usage) allowing for server-side module loading and tracing extensions. * Supports ES6 module loading in IE9+, and dynamic module formats in IE8+. -* The complete combined polyfill comes to 7KB minified and gzipped, making it suitable for production use, provided that modules are [built into ES5 making them independent of Traceur](#moving-to-production). +* The complete combined polyfill comes to 8.7KB minified and gzipped, making it suitable for production use, provided that modules are [built into ES5 making them independent of Traceur](#moving-to-production). For an overview of build workflows, [see the production guide](#moving-to-production). @@ -17,13 +17,13 @@ See the [demo folder](https://github.com/ModuleLoader/es6-module-loader/blob/mas For an example of a universal module loader based on this polyfill for loading AMD, CommonJS and globals, see [SystemJS](https://github.com/systemjs/systemjs). -_The current version is tested against **[Traceur 0.0.42](https://github.com/google/traceur-compiler/tree/0.0.42)**._ +_The current version is tested against **[Traceur 0.0.45](https://github.com/google/traceur-compiler/tree/0.0.45)**._ _Note the ES6 module specification is still in draft, and subject to change._ ### Basic Use -Download both [es6-module-loader.js](https://raw.githubusercontent.com/ModuleLoader/es6-module-loader/v0.6.0/dist/es6-module-loader.js) and [traceur.js](https://raw.githubusercontent.com/google/traceur-compiler/traceur@0.0.42/bin/traceur.js) into the same folder. +Download both [es6-module-loader.js](https://raw.githubusercontent.com/ModuleLoader/es6-module-loader/v0.7.0/dist/es6-module-loader.js) and [traceur.js](https://raw.githubusercontent.com/jmcriffey/bower-traceur/0.0.45/traceur.js) into the same folder. If using ES6 syntax (optional), include `traceur.js` in the page first then include `es6-module-loader.js`: @@ -181,7 +181,7 @@ A basic example of using this extension with a build would be the following: traceur --out app-build.js app/app.js --modules=instantiate ``` -2. If using additional ES6 features apart from modules syntax, load `traceur-runtime.js` (included in the `bin` folder when installing Traceur through Bower or npm). Then include `es6-module-loader.js` and then apply the register extension before doing the import or loading the bundle as a script: +2. If using additional ES6 features apart from modules syntax, load [`traceur-runtime.js`](https://raw.githubusercontent.com/jmcriffey/bower-traceur/0.0.45/traceur-runtime.js) (also included in the `bin` folder when installing Traceur through Bower or npm). Then include `es6-module-loader.js` and then apply the register extension before doing the import or loading the bundle as a script: ```html @@ -208,6 +208,9 @@ A basic example of using this extension with a build would be the following: ``` +* Note that `app-build.js` must be at the base-level for this to work. +* Also, the name we import, `app/app` must be the same name given to Traceur's compiler. + #### Building into separate files We can also build separate files with: @@ -224,7 +227,7 @@ With the above, we can load from the separate files identical to loading ES6. npm install es6-module-loader ``` -For use in NodeJS, the `Module`, `LoaderPolyfill` and `System` globals are provided as exports: +For use in NodeJS, the `Loader` and `System` globals are provided as exports: index.js: ```javascript diff --git a/bower.json b/bower.json index 0935c88..c3b47fc 100644 --- a/bower.json +++ b/bower.json @@ -1,12 +1,11 @@ { "name": "es6-module-loader", - "version": "0.6.1", + "version": "0.7.0", "description": "An ES6 Module Loader polyfill based on the latest spec.", "homepage": "https://github.com/ModuleLoader/es6-module-loader", "main": "dist/es6-module-loader-sans-promises.js", "dependencies": { - "es6-promise": "^1.0", - "traceur": "0.0.41" + "traceur": "0.0.45" }, "keywords": [ "es6", diff --git a/dist/es6-module-loader-sans-promises.js b/dist/es6-module-loader-sans-promises.js index f49d60f..2deb4d7 100644 --- a/dist/es6-module-loader-sans-promises.js +++ b/dist/es6-module-loader-sans-promises.js @@ -105,7 +105,7 @@ function logloads(loads) { (function (__global) { (function() { - var Promise = __global.Promise || require('es6-promise').Promise; + var Promise = __global.Promise || require('when/es6-shim/Promise'); var traceur; @@ -566,7 +566,8 @@ function logloads(loads) { link(linkSet); } catch(exc) { - return linkSetFailed(linkSet, exc); + linkSetFailed(linkSet, exc); + return true; } } @@ -593,10 +594,10 @@ function logloads(loads) { for (var i = 0; i < loads.length; i++) { var load = loads[i]; load.module = load.kind == 'dynamic' ? { - module: Module({}) + module: _newModule({}) } : { name: load.name, - module: Module({}), + module: _newModule({}), evaluated: true }; load.status = 'linked'; @@ -606,7 +607,10 @@ function logloads(loads) { } /***/ - doLink(linkSet); + var abrupt = doLink(linkSet); + + if (abrupt) + return; console.assert(linkSet.loads.length == 0, 'loads cleared'); @@ -762,7 +766,7 @@ function logloads(loads) { // 15.2.5.6 LinkDynamicModules adjusted else { var module = load.execute(); - if (!module || !(module instanceof ModuleConstructor)) + if (!module || !(module instanceof Module)) throw new TypeError('Execution must define a Module instance'); load.module = { module: module @@ -864,6 +868,7 @@ function logloads(loads) { // 15.2.6.1 function evaluateLoadedModule(loader, load) { console.assert(load.status == 'linked', 'is linked ' + load.name); + ensureEvaluated(load.module, [], loader); return load.module.module; } @@ -877,6 +882,19 @@ function logloads(loads) { * */ + // execution errors don't propogate in the pipeline + // see https://bugs.ecmascript.org/show_bug.cgi?id=2993 + function doExecute(module) { + try { + module.execute.call(__global); + } + catch(e) { + setTimeout(function() { + throw e; + }); + } + } + // 15.2.6.2 EnsureEvaluated adjusted function ensureEvaluated(module, seen, loader) { if (module.evaluated || !module.dependencies) @@ -896,8 +914,8 @@ function logloads(loads) { return; module.evaluated = true; - module.execute.call(__global); - module.module = Module(module.exports); + doExecute(module); + module.module = _newModule(module.exports); delete module.execute; } @@ -935,7 +953,7 @@ function logloads(loads) { // 26.3.3.13 realm not implemented } - function ModuleConstructor() {} + function Module() {} // importPromises adds ability to import a module twice without error - https://bugs.ecmascript.org/show_bug.cgi?id=2601 var importPromises = {}; @@ -995,7 +1013,7 @@ function logloads(loads) { if (loader.modules[name]) { ensureEvaluated(loader.modules[name], [], loader._loader); - return Promise.resolve(loader.modules[name].module); + return loader.modules[name].module; } return importPromises[name] || createImportPromise(name, @@ -1034,8 +1052,8 @@ function logloads(loads) { throw new TypeError('Expected object'); // we do this to be able to tell if a module is a module privately in ES5 - // by doing m instanceof ModuleConstructor - var m = new ModuleConstructor(); + // by doing m instanceof Module + var m = new Module(); for (var key in obj) { (function (key) { @@ -1056,7 +1074,7 @@ function logloads(loads) { }, // 26.3.3.14 set: function(name, module) { - if (!(module instanceof ModuleConstructor)) + if (!(module instanceof Module)) throw new TypeError('Set must be a module'); this._loader.modules[name] = { module: module @@ -1087,7 +1105,7 @@ function logloads(loads) { } }; - var Module = Loader.prototype.newModule; + var _newModule = Loader.prototype.newModule; if (typeof exports === 'object') module.exports = Loader; @@ -1095,7 +1113,6 @@ function logloads(loads) { __global.Reflect = __global.Reflect || {}; __global.Reflect.Loader = __global.Reflect.Loader || Loader; __global.LoaderPolyfill = Loader; - __global.Module = Module; })(); diff --git a/dist/es6-module-loader-sans-promises.min.js b/dist/es6-module-loader-sans-promises.min.js index f59a0fe..5c32926 100644 --- a/dist/es6-module-loader-sans-promises.min.js +++ b/dist/es6-module-loader-sans-promises.min.js @@ -1,6 +1,6 @@ /* - * es6-module-loader v0.6.1 + * es6-module-loader v0.7.0 * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(__global){function __eval(__source,__global,__moduleName){eval('var __moduleName = "'+(__moduleName||"").replace('"','"')+'"; (function() { '+__source+" \n }).call(__global);")}!function(){function a(b,c,d,e){var f,g;if(c(b,d,e)!==!1)for(f in b)b.hasOwnProperty(f)&&"location"!=f&&"type"!=f&&(g=b[f],"object"==typeof g&&null!==g&&a(g,c,b,f))}function b(b){function c(a){-1==C.call(d,a)&&d.push(a)}var d=[];return a(b,function(a){"EXPORT_DECLARATION"==a.type?a.declaration.moduleSpecifier&&c(a.declaration.moduleSpecifier.token.processedValue):"IMPORT_DECLARATION"==a.type?c(a.moduleSpecifier.token.processedValue):"MODULE_DECLARATION"==a.type&&c(a.expression.token.processedValue)}),d}function c(a){if(!y)if("undefined"==typeof window)y=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");y=__global.traceur}var c;try{var d=new y.syntax.Parser(new y.syntax.SourceFile(a.address,a.source)),e=d.parseModule();a.kind="declarative",c=b(e);var f=y.options.sourceMaps,g=y.options.modules;y.options.sourceMaps=!0,y.options.modules="instantiate";var h=new y.util.ErrorReporter;h.reportMessageInternal=function(a,b){throw new SyntaxError(b,a.start&&a.start.line_,a.start&&a.start.column_)};var i=__global.System;__global.System=__global.traceurSystem;var j=new y.codegeneration.module.AttachModuleNameTransformer(a.name).transformAny(e);j=new y.codegeneration.FromOptionsTransformer(h).transform(j);var k=new y.outputgeneration.SourceMapGenerator({file:a.address}),l={sourceMapGenerator:k},m=y.outputgeneration.TreeWriter.write(j,l);__global.btoa&&(m+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(l.sourceMap)))+"\n");var n=System.register;System.register=function(b,c,d){a.declare="string"==typeof b?d:c},__eval(m,__global,a.name)}catch(o){throw("SyntaxError"==o.name||"TypeError"==o.name)&&(o.message="Evaluating "+(a.name||a.address)+"\n "+o.message),n&&(System.register=n),i&&(__global.System=i),f&&(y.options.sourceMaps=f),g&&(y.options.modules=g),o}return System.register=n,__global.System=i,y.options.sourceMaps=f,y.options.modules=g,c}function d(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function e(a,b,c){return new A(j({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:{},moduleSource:c.source,moduleAddress:c.address}))}function f(a,b,c,e){return new A(function(d){d(a.loaderObj.normalize(b,c,e))}).then(function(b){var c;if(a.modules[b])return c=d(b),c.status="linked",c;for(var e=0,f=a.loads.length;f>e;e++)if(c=a.loads[e],c.name==b)return c;return c=d(b),a.loads.push(c),g(a,c),c})}function g(a,b){h(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function h(a,b,c){i(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function i(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){var e;if(void 0===d)b.address=b.address||"anon"+ ++D,e=c(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");e=d.deps||[],b.execute=d.execute,b.kind="dynamic"}b.dependencies=[],b.depsList=e;for(var g=[],h=0,i=e.length;i>h;h++)(function(c,d){g.push(f(a,c,b.name,b.address).then(function(a){if(b.dependencies[d]={key:c,value:a.name},"linked"!=a.status)for(var e=b.linkSets.concat([]),f=0,g=e.length;g>f;f++)l(e[f],a)}))})(e[h],h);return A.all(g)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)n(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)o(c[d],a)})}function j(a){return function(b){var c=a.loader,e=a.moduleName,f=a.step;if(c.modules[e])throw new TypeError('"'+e+'" already exists in the module table');for(var j=0,l=c.loads.length;l>j;j++)if(c.loads[j].name==e)throw new TypeError('"'+e+'" already loading');var m=d(e);m.metadata=a.moduleMetadata;var n=k(c,m);c.loads.push(m),b(n.done),"locate"==f?g(c,m):"fetch"==f?h(c,m,A.resolve(a.moduleAddress)):(m.address=a.moduleAddress,i(c,m,A.resolve(a.moduleSource)))}}function k(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),l(c,b),c}function l(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){l(a,e.loads[g]);break}}}function m(a){try{r(a)}catch(b){return o(a,b)}}function n(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0;ee;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==c.loaderObj.failed.indexOf(g)&&c.loaderObj.failed.push(g);var h=C.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=C.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function p(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.kind}}b.name&&(a.modules[b.name]=b.module);var d=C.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=C.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function q(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==C.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0;e=0;f--){for(var g=c[f],h=0;hb;b++)if(this[b]===a)return b;return-1},D=0,E={};v.prototype={constructor:v,define:function(a,b,c){if(E[a])throw new TypeError("Module is already loading.");return x(a,new A(j({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,b){var c=this;return A.resolve(c.normalize(a,b&&b.name,b&&b.address)).then(function(a){var d=c._loader;return d.modules[a]?(u(d.modules[a],[],d._loader),A.resolve(d.modules[a].module)):E[a]||x(a,e(d,a,b||{}).then(function(b){return delete E[a],t(d,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):E[a]||x(a,e(this._loader,a,{}))},module:function(a,b){var c=d();c.address=b&&b.address;var e=k(this._loader,c),f=A.resolve(a),g=this._loader,h=e.done.then(function(){return t(g,c)});return i(g,c,f),h},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new w;for(var c in a)!function(c){z(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof w))throw new TypeError("Set must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var F=v.prototype.newModule;"object"==typeof exports&&(module.exports=v),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||v,__global.LoaderPolyfill=v,__global.Module=F}()}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function d(a,d){return d=b(d||""),a=b(a||""),d&&a?(d.protocol||a.protocol)+(d.protocol||d.authority?d.authority:a.authority)+c(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+d.pathname:a.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||a.search)+d.hash:null}function e(){document.removeEventListener("DOMContentLoaded",e,!1),window.removeEventListener("load",e,!1),f()}function f(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");1==g.length?c==f&&f.length>e.length&&(e=f):c.substr(0,g[0].length)==g[0]&&c.substr(c.length-g[1].length)==g[1]&&(e=f,b=c.substr(g[0].length,c.length-g[1].length-g[0].length))}var h=this.paths[e];return b&&(h=h.replace("*",b)),d(this.baseURL,h)},fetch:function(a){return new j(function(b,c){g(d(this.baseURL,a.address),function(a){b(a)},c)})}});if(h){var m=window.location.href.split("#")[0].split("?")[0];l.baseURL=m.substring(0,m.lastIndexOf("/")+1)}else l.baseURL="./";if(l.paths={"*":"*.js"},a.System&&a.traceur&&(a.traceurSystem=a.System),h&&(a.System=l),h){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(f):document.addEventListener&&(document.addEventListener("DOMContentLoaded",e,!1),window.addEventListener("load",e,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}"object"==typeof exports&&(module.exports=l)}("undefined"!=typeof global?global:this); \ No newline at end of file +!function(__global){function __eval(__source,__global,__moduleName){eval('var __moduleName = "'+(__moduleName||"").replace('"','"')+'"; (function() { '+__source+" \n }).call(__global);")}!function(){function a(b,c,d,e){var f,g;if(c(b,d,e)!==!1)for(f in b)b.hasOwnProperty(f)&&"location"!=f&&"type"!=f&&(g=b[f],"object"==typeof g&&null!==g&&a(g,c,b,f))}function b(b){function c(a){-1==D.call(d,a)&&d.push(a)}var d=[];return a(b,function(a){"EXPORT_DECLARATION"==a.type?a.declaration.moduleSpecifier&&c(a.declaration.moduleSpecifier.token.processedValue):"IMPORT_DECLARATION"==a.type?c(a.moduleSpecifier.token.processedValue):"MODULE_DECLARATION"==a.type&&c(a.expression.token.processedValue)}),d}function c(a){if(!z)if("undefined"==typeof window)z=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");z=__global.traceur}var c;try{var d=new z.syntax.Parser(new z.syntax.SourceFile(a.address,a.source)),e=d.parseModule();a.kind="declarative",c=b(e);var f=z.options.sourceMaps,g=z.options.modules;z.options.sourceMaps=!0,z.options.modules="instantiate";var h=new z.util.ErrorReporter;h.reportMessageInternal=function(a,b){throw new SyntaxError(b,a.start&&a.start.line_,a.start&&a.start.column_)};var i=__global.System;__global.System=__global.traceurSystem;var j=new z.codegeneration.module.AttachModuleNameTransformer(a.name).transformAny(e);j=new z.codegeneration.FromOptionsTransformer(h).transform(j);var k=new z.outputgeneration.SourceMapGenerator({file:a.address}),l={sourceMapGenerator:k},m=z.outputgeneration.TreeWriter.write(j,l);__global.btoa&&(m+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(l.sourceMap)))+"\n");var n=System.register;System.register=function(b,c,d){a.declare="string"==typeof b?d:c},__eval(m,__global,a.name)}catch(o){throw("SyntaxError"==o.name||"TypeError"==o.name)&&(o.message="Evaluating "+(a.name||a.address)+"\n "+o.message),n&&(System.register=n),i&&(__global.System=i),f&&(z.options.sourceMaps=f),g&&(z.options.modules=g),o}return System.register=n,__global.System=i,z.options.sourceMaps=f,z.options.modules=g,c}function d(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function e(a,b,c){return new B(j({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:{},moduleSource:c.source,moduleAddress:c.address}))}function f(a,b,c,e){return new B(function(d){d(a.loaderObj.normalize(b,c,e))}).then(function(b){var c;if(a.modules[b])return c=d(b),c.status="linked",c;for(var e=0,f=a.loads.length;f>e;e++)if(c=a.loads[e],c.name==b)return c;return c=d(b),a.loads.push(c),g(a,c),c})}function g(a,b){h(a,b,B.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function h(a,b,c){i(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function i(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){var e;if(void 0===d)b.address=b.address||"anon"+ ++E,e=c(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");e=d.deps||[],b.execute=d.execute,b.kind="dynamic"}b.dependencies=[],b.depsList=e;for(var g=[],h=0,i=e.length;i>h;h++)(function(c,d){g.push(f(a,c,b.name,b.address).then(function(a){if(b.dependencies[d]={key:c,value:a.name},"linked"!=a.status)for(var e=b.linkSets.concat([]),f=0,g=e.length;g>f;f++)l(e[f],a)}))})(e[h],h);return B.all(g)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)n(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)o(c[d],a)})}function j(a){return function(b){var c=a.loader,e=a.moduleName,f=a.step;if(c.modules[e])throw new TypeError('"'+e+'" already exists in the module table');for(var j=0,l=c.loads.length;l>j;j++)if(c.loads[j].name==e)throw new TypeError('"'+e+'" already loading');var m=d(e);m.metadata=a.moduleMetadata;var n=k(c,m);c.loads.push(m),b(n.done),"locate"==f?g(c,m):"fetch"==f?h(c,m,B.resolve(a.moduleAddress)):(m.address=a.moduleAddress,i(c,m,B.resolve(a.moduleSource)))}}function k(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new B(function(a,b){c.resolve=a,c.reject=b}),l(c,b),c}function l(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){l(a,e.loads[g]);break}}}function m(a){try{r(a)}catch(b){return o(a,b),!0}}function n(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0;ee;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==c.loaderObj.failed.indexOf(g)&&c.loaderObj.failed.push(g);var h=D.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=D.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function p(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.kind}}b.name&&(a.modules[b.name]=b.module);var d=D.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=D.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function q(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==D.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0;e=0;f--){for(var g=c[f],h=0;hb;b++)if(this[b]===a)return b;return-1},E=0,F={};w.prototype={constructor:w,define:function(a,b,c){if(F[a])throw new TypeError("Module is already loading.");return y(a,new B(j({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(v(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,b){var c=this;return B.resolve(c.normalize(a,b&&b.name,b&&b.address)).then(function(a){var d=c._loader;return d.modules[a]?(v(d.modules[a],[],d._loader),d.modules[a].module):F[a]||y(a,e(d,a,b||{}).then(function(b){return delete F[a],t(d,b)}))})},load:function(a){return this._loader.modules[a]?(v(this._loader.modules[a],[],this._loader),B.resolve(this._loader.modules[a].module)):F[a]||y(a,e(this._loader,a,{}))},module:function(a,b){var c=d();c.address=b&&b.address;var e=k(this._loader,c),f=B.resolve(a),g=this._loader,h=e.done.then(function(){return t(g,c)});return i(g,c,f),h},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new x;for(var c in a)!function(c){A(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof x))throw new TypeError("Set must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var G=w.prototype.newModule;"object"==typeof exports&&(module.exports=w),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||w,__global.LoaderPolyfill=w}()}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function d(a,d){return d=b(d||""),a=b(a||""),d&&a?(d.protocol||a.protocol)+(d.protocol||d.authority?d.authority:a.authority)+c(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+d.pathname:a.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||a.search)+d.hash:null}function e(){document.removeEventListener("DOMContentLoaded",e,!1),window.removeEventListener("load",e,!1),f()}function f(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");1==g.length?c==f&&f.length>e.length&&(e=f):c.substr(0,g[0].length)==g[0]&&c.substr(c.length-g[1].length)==g[1]&&(e=f,b=c.substr(g[0].length,c.length-g[1].length-g[0].length))}var h=this.paths[e];return b&&(h=h.replace("*",b)),d(this.baseURL,h)},fetch:function(a){return new j(function(b,c){g(d(this.baseURL,a.address),function(a){b(a)},c)})}});if(h){var m=window.location.href.split("#")[0].split("?")[0];l.baseURL=m.substring(0,m.lastIndexOf("/")+1)}else l.baseURL="./";if(l.paths={"*":"*.js"},a.System&&a.traceur&&(a.traceurSystem=a.System),h&&(a.System=l),h){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(f):document.addEventListener&&(document.addEventListener("DOMContentLoaded",e,!1),window.addEventListener("load",e,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}"object"==typeof exports&&(module.exports=l)}("undefined"!=typeof global?global:this); \ No newline at end of file diff --git a/dist/es6-module-loader.js b/dist/es6-module-loader.js index 8f249f4..0e15f27 100644 --- a/dist/es6-module-loader.js +++ b/dist/es6-module-loader.js @@ -1,687 +1,1232 @@ -(function() { -var define, requireModule, require, requirejs; - -(function() { - var registry = {}, seen = {}; - - define = function(name, deps, callback) { - registry[name] = { deps: deps, callback: callback }; - }; - - requirejs = require = requireModule = function(name) { - requirejs._eak_seen = registry; - - if (seen[name]) { return seen[name]; } - seen[name] = {}; - - if (!registry[name]) { - throw new Error("Could not find module " + name); - } - - var mod = registry[name], - deps = mod.deps, - callback = mod.callback, - reified = [], - exports; - - for (var i=0, l=deps.length; i= 0) { + reported.splice(i, 1); + logInfo('Handled previous rejection [' + r.id + '] ' + formatObject(r.value)); + } + } + + function enqueue(f, x) { + tasks.push(f, x); + if(!running) { + running = true; + running = timer.set(flush, 0); + } + } + + function flush() { + running = false; + while(tasks.length > 0) { + tasks.shift()(tasks.shift()); + } + } + + return Promise; + }; + + function formatError(e) { + var s = typeof e === 'object' && e.stack ? e.stack : formatObject(e); + return e instanceof Error ? s : s + ' (WARNING: non-Error used)'; + } + + function formatObject(o) { + var s = String(o); + if(s === '[object Object]' && typeof JSON !== 'undefined') { + s = tryStringify(o, s); + } + return s; + } + + function tryStringify(e, defaultValue) { + try { + return JSON.stringify(e); + } catch(e) { + // Ignore. Cannot JSON.stringify e, stick with String(e) + return defaultValue; + } + } + + function throwit(e) { + throw e; + } + + function noop() {} + +}); +}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); })); + +},{"../timer":8}],6:[function(require,module,exports){ +/** @license MIT License (c) copyright 2010-2014 original author or authors */ +/** @author Brian Cavalier */ +/** @author John Hann */ + +(function(define) { 'use strict'; +define(function() { + + return function makePromise(environment) { + + var tasks = environment.scheduler; + + var objectCreate = Object.create || + function(proto) { + function Child() {} + Child.prototype = proto; + return new Child(); + }; + + /** + * Create a promise whose fate is determined by resolver + * @constructor + * @returns {Promise} promise + * @name Promise + */ + function Promise(resolver, handler) { + this._handler = resolver === Handler ? handler : init(resolver); + } + + /** + * Run the supplied resolver + * @param resolver + * @returns {makePromise.DeferredHandler} + */ + function init(resolver) { + var handler = new DeferredHandler(); + + try { + resolver(promiseResolve, promiseReject, promiseNotify); + } catch (e) { + promiseReject(e); + } + + return handler; + + /** + * Transition from pre-resolution state to post-resolution state, notifying + * all listeners of the ultimate fulfillment or rejection + * @param {*} x resolution value + */ + function promiseResolve (x) { + handler.resolve(x); + } + /** + * Reject this promise with reason, which will be used verbatim + * @param {Error|*} reason rejection reason, strongly suggested + * to be an Error type + */ + function promiseReject (reason) { + handler.reject(reason); + } + + /** + * Issue a progress event, notifying all progress listeners + * @param {*} x progress event payload to pass to all listeners + */ + function promiseNotify (x) { + handler.notify(x); + } + } + + // Creation + + Promise.resolve = resolve; + Promise.reject = reject; + Promise.never = never; + + Promise._defer = defer; + + /** + * Returns a trusted promise. If x is already a trusted promise, it is + * returned, otherwise returns a new trusted Promise which follows x. + * @param {*} x + * @return {Promise} promise + */ + function resolve(x) { + return isPromise(x) ? x + : new Promise(Handler, new AsyncHandler(getHandler(x))); + } + + /** + * Return a reject promise with x as its reason (x is used verbatim) + * @param {*} x + * @returns {Promise} rejected promise + */ + function reject(x) { + return new Promise(Handler, new AsyncHandler(new RejectedHandler(x))); + } + + /** + * Return a promise that remains pending forever + * @returns {Promise} forever-pending promise. + */ + function never() { + return foreverPendingPromise; // Should be frozen + } + + /** + * Creates an internal {promise, resolver} pair + * @private + * @returns {Promise} + */ + function defer() { + return new Promise(Handler, new DeferredHandler()); + } + + // Transformation and flow control + + /** + * Transform this promise's fulfillment value, returning a new Promise + * for the transformed result. If the promise cannot be fulfilled, onRejected + * is called with the reason. onProgress *may* be called with updates toward + * this promise's fulfillment. + * @param {function=} onFulfilled fulfillment handler + * @param {function=} onRejected rejection handler + * @deprecated @param {function=} onProgress progress handler + * @return {Promise} new promise + */ + Promise.prototype.then = function(onFulfilled, onRejected) { + var parent = this._handler; + + if (typeof onFulfilled !== 'function' && parent.join().state() > 0) { + // Short circuit: value will not change, simply share handler + return new Promise(Handler, parent); + } + + var p = this._beget(); + var child = p._handler; + + parent.when({ + resolve: child.resolve, + notify: child.notify, + context: child, + receiver: parent.receiver, + fulfilled: onFulfilled, + rejected: onRejected, + progress: arguments.length > 2 ? arguments[2] : void 0 + }); + + return p; + }; + + /** + * If this promise cannot be fulfilled due to an error, call onRejected to + * handle the error. Shortcut for .then(undefined, onRejected) + * @param {function?} onRejected + * @return {Promise} + */ + Promise.prototype['catch'] = function(onRejected) { + return this.then(void 0, onRejected); + }; + + /** + * Private function to bind a thisArg for this promise's handlers + * @private + * @param {object} thisArg `this` value for all handlers attached to + * the returned promise. + * @returns {Promise} + */ + Promise.prototype._bindContext = function(thisArg) { + return new Promise(Handler, new BoundHandler(this._handler, thisArg)); + }; + + /** + * Creates a new, pending promise of the same type as this promise + * @private + * @returns {Promise} + */ + Promise.prototype._beget = function() { + var parent = this._handler; + var child = new DeferredHandler(parent.receiver, parent.join().context); + return new this.constructor(Handler, child); + }; + + /** + * Check if x is a rejected promise, and if so, delegate to handler._fatal + * @private + * @param {*} x + */ + Promise.prototype._maybeFatal = function(x) { + if(!maybeThenable(x)) { + return; + } + + var handler = getHandler(x); + var context = this._handler.context; + handler.catchError(function() { + this._fatal(context); + }, handler); + }; + + // Array combinators + + Promise.all = all; + Promise.race = race; + + /** + * Return a promise that will fulfill when all promises in the + * input array have fulfilled, or will reject when one of the + * promises rejects. + * @param {array} promises array of promises + * @returns {Promise} promise for array of fulfillment values + */ + function all(promises) { + /*jshint maxcomplexity:8*/ + var resolver = new DeferredHandler(); + var pending = promises.length >>> 0; + var results = new Array(pending); + + var i, h, x, s; + for (i = 0; i < promises.length; ++i) { + x = promises[i]; + + if (x === void 0 && !(i in promises)) { + --pending; + continue; + } + + if (maybeThenable(x)) { + h = isPromise(x) + ? x._handler.join() + : getHandlerUntrusted(x); + + s = h.state(); + if (s === 0) { + resolveOne(resolver, results, h, i); + } else if (s > 0) { + results[i] = h.value; + --pending; + } else { + resolver.become(h); + break; + } + + } else { + results[i] = x; + --pending; + } + } + + if(pending === 0) { + resolver.become(new FulfilledHandler(results)); + } + + return new Promise(Handler, resolver); + function resolveOne(resolver, results, handler, i) { + handler.map(function(x) { + results[i] = x; + if(--pending === 0) { + this.become(new FulfilledHandler(results)); + } + }, resolver); + } + } + + /** + * Fulfill-reject competitive race. Return a promise that will settle + * to the same state as the earliest input promise to settle. + * + * WARNING: The ES6 Promise spec requires that race()ing an empty array + * must return a promise that is pending forever. This implementation + * returns a singleton forever-pending promise, the same singleton that is + * returned by Promise.never(), thus can be checked with === + * + * @param {array} promises array of promises to race + * @returns {Promise} if input is non-empty, a promise that will settle + * to the same outcome as the earliest input promise to settle. if empty + * is empty, returns a promise that will never settle. + */ + function race(promises) { + // Sigh, race([]) is untestable unless we return *something* + // that is recognizable without calling .then() on it. + if(Object(promises) === promises && promises.length === 0) { + return never(); + } + + var h = new DeferredHandler(); + var i, x; + for(i=0; i 0) { + q.shift().run(); + } + + this._running = false; + + q = this._afterQueue; + while(q.length > 0) { + q.shift()(q.shift(), q.shift()); + } + }; + + return Scheduler; + +}); +}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); })); + +},{"./Queue":3}],8:[function(require,module,exports){ +/** @license MIT License (c) copyright 2010-2014 original author or authors */ +/** @author Brian Cavalier */ +/** @author John Hann */ + +(function(define) { 'use strict'; +define(function(require) { + /*global setTimeout,clearTimeout*/ + var cjsRequire, vertx, setTimer, clearTimer; + + cjsRequire = require; + + try { + vertx = cjsRequire('vertx'); + setTimer = function (f, ms) { return vertx.setTimer(ms, f); }; + clearTimer = vertx.cancelTimer; + } catch (e) { + setTimer = function(f, ms) { return setTimeout(f, ms); }; + clearTimer = function(t) { return clearTimeout(t); }; + } + + return { + set: setTimer, + clear: clearTimer + }; + +}); +}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); })); + +},{}]},{},[1]) +(1) +}); +; /* ********************************************************************************************* @@ -789,7 +1334,7 @@ function logloads(loads) { (function (__global) { (function() { - var Promise = __global.Promise || require('es6-promise').Promise; + var Promise = __global.Promise || require('when/es6-shim/Promise'); var traceur; @@ -1250,7 +1795,8 @@ function logloads(loads) { link(linkSet); } catch(exc) { - return linkSetFailed(linkSet, exc); + linkSetFailed(linkSet, exc); + return true; } } @@ -1277,10 +1823,10 @@ function logloads(loads) { for (var i = 0; i < loads.length; i++) { var load = loads[i]; load.module = load.kind == 'dynamic' ? { - module: Module({}) + module: _newModule({}) } : { name: load.name, - module: Module({}), + module: _newModule({}), evaluated: true }; load.status = 'linked'; @@ -1290,7 +1836,10 @@ function logloads(loads) { } /***/ - doLink(linkSet); + var abrupt = doLink(linkSet); + + if (abrupt) + return; console.assert(linkSet.loads.length == 0, 'loads cleared'); @@ -1446,7 +1995,7 @@ function logloads(loads) { // 15.2.5.6 LinkDynamicModules adjusted else { var module = load.execute(); - if (!module || !(module instanceof ModuleConstructor)) + if (!module || !(module instanceof Module)) throw new TypeError('Execution must define a Module instance'); load.module = { module: module @@ -1548,6 +2097,7 @@ function logloads(loads) { // 15.2.6.1 function evaluateLoadedModule(loader, load) { console.assert(load.status == 'linked', 'is linked ' + load.name); + ensureEvaluated(load.module, [], loader); return load.module.module; } @@ -1561,6 +2111,19 @@ function logloads(loads) { * */ + // execution errors don't propogate in the pipeline + // see https://bugs.ecmascript.org/show_bug.cgi?id=2993 + function doExecute(module) { + try { + module.execute.call(__global); + } + catch(e) { + setTimeout(function() { + throw e; + }); + } + } + // 15.2.6.2 EnsureEvaluated adjusted function ensureEvaluated(module, seen, loader) { if (module.evaluated || !module.dependencies) @@ -1580,8 +2143,8 @@ function logloads(loads) { return; module.evaluated = true; - module.execute.call(__global); - module.module = Module(module.exports); + doExecute(module); + module.module = _newModule(module.exports); delete module.execute; } @@ -1619,7 +2182,7 @@ function logloads(loads) { // 26.3.3.13 realm not implemented } - function ModuleConstructor() {} + function Module() {} // importPromises adds ability to import a module twice without error - https://bugs.ecmascript.org/show_bug.cgi?id=2601 var importPromises = {}; @@ -1679,7 +2242,7 @@ function logloads(loads) { if (loader.modules[name]) { ensureEvaluated(loader.modules[name], [], loader._loader); - return Promise.resolve(loader.modules[name].module); + return loader.modules[name].module; } return importPromises[name] || createImportPromise(name, @@ -1718,8 +2281,8 @@ function logloads(loads) { throw new TypeError('Expected object'); // we do this to be able to tell if a module is a module privately in ES5 - // by doing m instanceof ModuleConstructor - var m = new ModuleConstructor(); + // by doing m instanceof Module + var m = new Module(); for (var key in obj) { (function (key) { @@ -1740,7 +2303,7 @@ function logloads(loads) { }, // 26.3.3.14 set: function(name, module) { - if (!(module instanceof ModuleConstructor)) + if (!(module instanceof Module)) throw new TypeError('Set must be a module'); this._loader.modules[name] = { module: module @@ -1771,7 +2334,7 @@ function logloads(loads) { } }; - var Module = Loader.prototype.newModule; + var _newModule = Loader.prototype.newModule; if (typeof exports === 'object') module.exports = Loader; @@ -1779,7 +2342,6 @@ function logloads(loads) { __global.Reflect = __global.Reflect || {}; __global.Reflect.Loader = __global.Reflect.Loader || Loader; __global.LoaderPolyfill = Loader; - __global.Module = Module; })(); diff --git a/dist/es6-module-loader.min.js b/dist/es6-module-loader.min.js index 43fcea8..66c25b1 100644 --- a/dist/es6-module-loader.min.js +++ b/dist/es6-module-loader.min.js @@ -1,6 +1,6 @@ /* - * es6-module-loader v0.6.1 + * es6-module-loader v0.7.0 * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(){var a,b,c,d;!function(){var e={},f={};a=function(a,b,c){e[a]={deps:b,callback:c}},d=c=b=function(a){function c(b){if("."!==b.charAt(0))return b;for(var c=b.split("/"),d=a.split("/").slice(0,-1),e=0,f=c.length;f>e;e++){var g=c[e];if(".."===g)d.pop();else{if("."===g)continue;d.push(g)}}return d.join("/")}if(d._eak_seen=e,f[a])return f[a];if(f[a]={},!e[a])throw new Error("Could not find module "+a);for(var g,h=e[a],i=h.deps,j=h.callback,k=[],l=0,m=i.length;m>l;l++)"exports"===i[l]?k.push(g={}):k.push(b(c(i[l])));var n=j.apply(this,k);return f[a]=g||n}}(),a("promise/all",["./utils","exports"],function(a,b){"use strict";function c(a){var b=this;if(!d(a))throw new TypeError("You must pass an array to all.");return new b(function(b,c){function d(a){return function(b){f(a,b)}}function f(a,c){h[a]=c,0===--i&&b(h)}var g,h=[],i=a.length;0===i&&b([]);for(var j=0;je;e++)if(c=a.loads[e],c.name==b)return c;return c=d(b),a.loads.push(c),g(a,c),c})}function g(a,b){h(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function h(a,b,c){i(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function i(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){var e;if(void 0===d)b.address=b.address||"anon"+ ++D,e=c(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");e=d.deps||[],b.execute=d.execute,b.kind="dynamic"}b.dependencies=[],b.depsList=e;for(var g=[],h=0,i=e.length;i>h;h++)(function(c,d){g.push(f(a,c,b.name,b.address).then(function(a){if(b.dependencies[d]={key:c,value:a.name},"linked"!=a.status)for(var e=b.linkSets.concat([]),f=0,g=e.length;g>f;f++)l(e[f],a)}))})(e[h],h);return A.all(g)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)n(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)o(c[d],a)})}function j(a){return function(b){var c=a.loader,e=a.moduleName,f=a.step;if(c.modules[e])throw new TypeError('"'+e+'" already exists in the module table');for(var j=0,l=c.loads.length;l>j;j++)if(c.loads[j].name==e)throw new TypeError('"'+e+'" already loading');var m=d(e);m.metadata=a.moduleMetadata;var n=k(c,m);c.loads.push(m),b(n.done),"locate"==f?g(c,m):"fetch"==f?h(c,m,A.resolve(a.moduleAddress)):(m.address=a.moduleAddress,i(c,m,A.resolve(a.moduleSource)))}}function k(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),l(c,b),c}function l(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){l(a,e.loads[g]);break}}}function m(a){try{r(a)}catch(b){return o(a,b)}}function n(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0;ee;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==c.loaderObj.failed.indexOf(g)&&c.loaderObj.failed.push(g);var h=C.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=C.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function p(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.kind}}b.name&&(a.modules[b.name]=b.module);var d=C.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=C.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function q(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==C.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0;e=0;f--){for(var g=c[f],h=0;hb;b++)if(this[b]===a)return b;return-1},D=0,E={};v.prototype={constructor:v,define:function(a,b,c){if(E[a])throw new TypeError("Module is already loading.");return x(a,new A(j({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,b){var c=this;return A.resolve(c.normalize(a,b&&b.name,b&&b.address)).then(function(a){var d=c._loader;return d.modules[a]?(u(d.modules[a],[],d._loader),A.resolve(d.modules[a].module)):E[a]||x(a,e(d,a,b||{}).then(function(b){return delete E[a],t(d,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):E[a]||x(a,e(this._loader,a,{}))},module:function(a,b){var c=d();c.address=b&&b.address;var e=k(this._loader,c),f=A.resolve(a),g=this._loader,h=e.done.then(function(){return t(g,c)});return i(g,c,f),h},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new w;for(var c in a)!function(c){z(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof w))throw new TypeError("Set must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var F=v.prototype.newModule;"object"==typeof exports&&(module.exports=v),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||v,__global.LoaderPolyfill=v,__global.Module=F}()}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function d(a,d){return d=b(d||""),a=b(a||""),d&&a?(d.protocol||a.protocol)+(d.protocol||d.authority?d.authority:a.authority)+c(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+d.pathname:a.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||a.search)+d.hash:null}function e(){document.removeEventListener("DOMContentLoaded",e,!1),window.removeEventListener("load",e,!1),f()}function f(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");1==g.length?c==f&&f.length>e.length&&(e=f):c.substr(0,g[0].length)==g[0]&&c.substr(c.length-g[1].length)==g[1]&&(e=f,b=c.substr(g[0].length,c.length-g[1].length-g[0].length))}var h=this.paths[e];return b&&(h=h.replace("*",b)),d(this.baseURL,h)},fetch:function(a){return new j(function(b,c){g(d(this.baseURL,a.address),function(a){b(a)},c)})}});if(h){var m=window.location.href.split("#")[0].split("?")[0];l.baseURL=m.substring(0,m.lastIndexOf("/")+1)}else l.baseURL="./";if(l.paths={"*":"*.js"},a.System&&a.traceur&&(a.traceurSystem=a.System),h&&(a.System=l),h){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(f):document.addEventListener&&(document.addEventListener("DOMContentLoaded",e,!1),window.addEventListener("load",e,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}"object"==typeof exports&&(module.exports=l)}("undefined"!=typeof global?global:this); \ No newline at end of file +!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;gf;++f)e[f]=d[f];else{for(a=d.length,b=this.tail;a>c;++f,++c)e[f]=d[c];for(c=0;b>c;++f,++c)e[f]=d[c]}this.buffer=e,this.head=0,this.tail=this.length},a})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],4:[function(b,c){!function(a){"use strict";a(function(a){var b,c;return b="undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick?function(a){process.nextTick(a)}:(c="function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver)?function(a,b){function c(){var a=d;d=void 0,a()}var d,e=a.createElement("div"),f=new b(c);return f.observe(e,{attributes:!0}),function(a){d=a,e.setAttribute("class","x")}}(document,c):function(a){try{return a("vertx").runOnLoop||a("vertx").runOnContext}catch(b){}var c=setTimeout;return function(a){c(a,0)}}(a)})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],5:[function(b,c){!function(a){"use strict";a(function(a){function b(a){var b="object"==typeof a&&a.stack?a.stack:c(a);return a instanceof Error?b:b+" (WARNING: non-Error used)"}function c(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=d(a,b)),b}function d(a,b){try{return JSON.stringify(a)}catch(a){return b}}function e(a){throw a}function f(){}var g=a("../timer");return function(a){function d(a){a.handled||(n.push(a),k("Potentially unhandled rejection ["+a.id+"] "+b(a.value)))}function h(a){var b=n.indexOf(a);b>=0&&(n.splice(b,1),l("Handled previous rejection ["+a.id+"] "+c(a.value)))}function i(a,b){m.push(a,b),o||(o=!0,o=g.set(j,0))}function j(){for(o=!1;m.length>0;)m.shift()(m.shift())}var k=f,l=f;"undefined"!=typeof console&&(k="undefined"!=typeof console.error?function(a){}:function(a){},l="undefined"!=typeof console.info?function(a){}:function(a){}),a.onPotentiallyUnhandledRejection=function(a){i(d,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){i(h,a)},a.onFatalRejection=function(a){i(e,a.value)};var m=[],n=[],o=!1;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../timer":8}],6:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===m?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new n;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return k(a)?a:new b(m,new p(j(a)))}function e(a){return new b(m,new p(new t(a)))}function f(){return M}function g(){return new b(m,new n)}function h(a){function c(a,b,c,d){c.map(function(a){b[d]=a,0===--i&&this.become(new s(b))},a)}var d,e,f,g,h=new n,i=a.length>>>0,j=new Array(i);for(d=0;d0)){h.become(e);break}j[d]=e.value,--i}else j[d]=f,--i;else--i;return 0===i&&h.become(new s(j)),new b(m,h)}function i(a){if(Object(a)===a&&0===a.length)return f();var c,d,e=new n;for(c=0;c0)return new b(m,d);var e=this._beget(),f=e._handler;return d.when({resolve:f.resolve,notify:f.notify,context:f,receiver:d.receiver,fulfilled:a,rejected:c,progress:arguments.length>2?arguments[2]:void 0}),e},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._bindContext=function(a){return new b(m,new q(this._handler,a))},b.prototype._beget=function(){var a=this._handler,b=new n(a.receiver,a.join().context);return new this.constructor(m,b)},b.prototype._maybeFatal=function(a){if(C(a)){var b=j(a),c=this._handler.context;b.catchError(function(){this._fatal(c)},b)}},b.all=h,b.race=i,m.prototype.when=m.prototype.resolve=m.prototype.reject=m.prototype.notify=m.prototype._fatal=m.prototype._unreport=m.prototype._report=H,m.prototype.inspect=x,m.prototype._state=0,m.prototype.state=function(){return this._state},m.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},m.prototype.chain=function(a,b,c,d){this.when({resolve:H,notify:H,context:void 0,receiver:a,fulfilled:b,rejected:c,progress:d})},m.prototype.map=function(a,b){this.chain(b,a,b.reject,b.notify)},m.prototype.catchError=function(a,b){this.chain(b,b.resolve,a,b.notify)},m.prototype.fold=function(a,b,c){this.join().map(function(a){j(c).map(function(c){this.resolve(E(b,c,a,this.receiver))},this)},a)},G(m,n),n.prototype._state=0,n.prototype.inspect=function(){return this.resolved?this.join().inspect():x()},n.prototype.resolve=function(a){this.resolved||this.become(j(a))},n.prototype.reject=function(a){this.resolved||this.become(new t(a))},n.prototype.join=function(){if(this.resolved){for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=new w;return a}return this},n.prototype.run=function(){var a=this.consumers,b=this.join();this.consumers=void 0;for(var c=0;c0;)a.shift().run();for(this._running=!1,a=this._afterQueue;a.length>0;)a.shift()(a.shift(),a.shift())},b})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"./Queue":3}],8:[function(b,c){!function(a){"use strict";a(function(a){var b,c,d,e;b=a;try{c=b("vertx"),d=function(a,b){return c.setTimer(b,a)},e=c.cancelTimer}catch(f){d=function(a,b){return setTimeout(a,b)},e=function(a){return clearTimeout(a)}}return{set:d,clear:e}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}]},{},[1])(1)}),function(__global){function __eval(__source,__global,__moduleName){eval('var __moduleName = "'+(__moduleName||"").replace('"','"')+'"; (function() { '+__source+" \n }).call(__global);")}!function(){function a(b,c,d,e){var f,g;if(c(b,d,e)!==!1)for(f in b)b.hasOwnProperty(f)&&"location"!=f&&"type"!=f&&(g=b[f],"object"==typeof g&&null!==g&&a(g,c,b,f))}function b(b){function c(a){-1==D.call(d,a)&&d.push(a)}var d=[];return a(b,function(a){"EXPORT_DECLARATION"==a.type?a.declaration.moduleSpecifier&&c(a.declaration.moduleSpecifier.token.processedValue):"IMPORT_DECLARATION"==a.type?c(a.moduleSpecifier.token.processedValue):"MODULE_DECLARATION"==a.type&&c(a.expression.token.processedValue)}),d}function c(a){if(!z)if("undefined"==typeof window)z=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");z=__global.traceur}var c;try{var d=new z.syntax.Parser(new z.syntax.SourceFile(a.address,a.source)),e=d.parseModule();a.kind="declarative",c=b(e);var f=z.options.sourceMaps,g=z.options.modules;z.options.sourceMaps=!0,z.options.modules="instantiate";var h=new z.util.ErrorReporter;h.reportMessageInternal=function(a,b){throw new SyntaxError(b,a.start&&a.start.line_,a.start&&a.start.column_)};var i=__global.System;__global.System=__global.traceurSystem;var j=new z.codegeneration.module.AttachModuleNameTransformer(a.name).transformAny(e);j=new z.codegeneration.FromOptionsTransformer(h).transform(j);var k=new z.outputgeneration.SourceMapGenerator({file:a.address}),l={sourceMapGenerator:k},m=z.outputgeneration.TreeWriter.write(j,l);__global.btoa&&(m+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(l.sourceMap)))+"\n");var n=System.register;System.register=function(b,c,d){a.declare="string"==typeof b?d:c},__eval(m,__global,a.name)}catch(o){throw("SyntaxError"==o.name||"TypeError"==o.name)&&(o.message="Evaluating "+(a.name||a.address)+"\n "+o.message),n&&(System.register=n),i&&(__global.System=i),f&&(z.options.sourceMaps=f),g&&(z.options.modules=g),o}return System.register=n,__global.System=i,z.options.sourceMaps=f,z.options.modules=g,c}function d(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function e(a,b,c){return new B(j({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:{},moduleSource:c.source,moduleAddress:c.address}))}function f(a,b,c,e){return new B(function(d){d(a.loaderObj.normalize(b,c,e))}).then(function(b){var c;if(a.modules[b])return c=d(b),c.status="linked",c;for(var e=0,f=a.loads.length;f>e;e++)if(c=a.loads[e],c.name==b)return c;return c=d(b),a.loads.push(c),g(a,c),c})}function g(a,b){h(a,b,B.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function h(a,b,c){i(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function i(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){var e;if(void 0===d)b.address=b.address||"anon"+ ++E,e=c(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");e=d.deps||[],b.execute=d.execute,b.kind="dynamic"}b.dependencies=[],b.depsList=e;for(var g=[],h=0,i=e.length;i>h;h++)(function(c,d){g.push(f(a,c,b.name,b.address).then(function(a){if(b.dependencies[d]={key:c,value:a.name},"linked"!=a.status)for(var e=b.linkSets.concat([]),f=0,g=e.length;g>f;f++)l(e[f],a)}))})(e[h],h);return B.all(g)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)n(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)o(c[d],a)})}function j(a){return function(b){var c=a.loader,e=a.moduleName,f=a.step;if(c.modules[e])throw new TypeError('"'+e+'" already exists in the module table');for(var j=0,l=c.loads.length;l>j;j++)if(c.loads[j].name==e)throw new TypeError('"'+e+'" already loading');var m=d(e);m.metadata=a.moduleMetadata;var n=k(c,m);c.loads.push(m),b(n.done),"locate"==f?g(c,m):"fetch"==f?h(c,m,B.resolve(a.moduleAddress)):(m.address=a.moduleAddress,i(c,m,B.resolve(a.moduleSource)))}}function k(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new B(function(a,b){c.resolve=a,c.reject=b}),l(c,b),c}function l(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){l(a,e.loads[g]);break}}}function m(a){try{r(a)}catch(b){return o(a,b),!0}}function n(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0;ee;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==c.loaderObj.failed.indexOf(g)&&c.loaderObj.failed.push(g);var h=D.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=D.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function p(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.kind}}b.name&&(a.modules[b.name]=b.module);var d=D.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=D.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function q(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==D.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0;e=0;f--){for(var g=c[f],h=0;hb;b++)if(this[b]===a)return b;return-1},E=0,F={};w.prototype={constructor:w,define:function(a,b,c){if(F[a])throw new TypeError("Module is already loading.");return y(a,new B(j({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(v(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,b){var c=this;return B.resolve(c.normalize(a,b&&b.name,b&&b.address)).then(function(a){var d=c._loader;return d.modules[a]?(v(d.modules[a],[],d._loader),d.modules[a].module):F[a]||y(a,e(d,a,b||{}).then(function(b){return delete F[a],t(d,b)}))})},load:function(a){return this._loader.modules[a]?(v(this._loader.modules[a],[],this._loader),B.resolve(this._loader.modules[a].module)):F[a]||y(a,e(this._loader,a,{}))},module:function(a,b){var c=d();c.address=b&&b.address;var e=k(this._loader,c),f=B.resolve(a),g=this._loader,h=e.done.then(function(){return t(g,c)});return i(g,c,f),h},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new x;for(var c in a)!function(c){A(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof x))throw new TypeError("Set must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var G=w.prototype.newModule;"object"==typeof exports&&(module.exports=w),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||w,__global.LoaderPolyfill=w}()}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function d(a,d){return d=b(d||""),a=b(a||""),d&&a?(d.protocol||a.protocol)+(d.protocol||d.authority?d.authority:a.authority)+c(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+d.pathname:a.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||a.search)+d.hash:null}function e(){document.removeEventListener("DOMContentLoaded",e,!1),window.removeEventListener("load",e,!1),f()}function f(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");1==g.length?c==f&&f.length>e.length&&(e=f):c.substr(0,g[0].length)==g[0]&&c.substr(c.length-g[1].length)==g[1]&&(e=f,b=c.substr(g[0].length,c.length-g[1].length-g[0].length))}var h=this.paths[e];return b&&(h=h.replace("*",b)),d(this.baseURL,h)},fetch:function(a){return new j(function(b,c){g(d(this.baseURL,a.address),function(a){b(a)},c)})}});if(h){var m=window.location.href.split("#")[0].split("?")[0];l.baseURL=m.substring(0,m.lastIndexOf("/")+1)}else l.baseURL="./";if(l.paths={"*":"*.js"},a.System&&a.traceur&&(a.traceurSystem=a.System),h&&(a.System=l),h){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(f):document.addEventListener&&(document.addEventListener("DOMContentLoaded",e,!1),window.addEventListener("load",e,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}"object"==typeof exports&&(module.exports=l)}("undefined"!=typeof global?global:this); \ No newline at end of file diff --git a/lib/loader.js b/lib/loader.js index 2edf808..323a1a5 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -105,7 +105,7 @@ function logloads(loads) { (function (__global) { (function() { - var Promise = __global.Promise || require('es6-promise').Promise; + var Promise = __global.Promise || require('when/es6-shim/Promise'); var traceur; @@ -566,7 +566,8 @@ function logloads(loads) { link(linkSet); } catch(exc) { - return linkSetFailed(linkSet, exc); + linkSetFailed(linkSet, exc); + return true; } } @@ -593,10 +594,10 @@ function logloads(loads) { for (var i = 0; i < loads.length; i++) { var load = loads[i]; load.module = load.kind == 'dynamic' ? { - module: Module({}) + module: _newModule({}) } : { name: load.name, - module: Module({}), + module: _newModule({}), evaluated: true }; load.status = 'linked'; @@ -606,7 +607,10 @@ function logloads(loads) { } /***/ - doLink(linkSet); + var abrupt = doLink(linkSet); + + if (abrupt) + return; console.assert(linkSet.loads.length == 0, 'loads cleared'); @@ -762,7 +766,7 @@ function logloads(loads) { // 15.2.5.6 LinkDynamicModules adjusted else { var module = load.execute(); - if (!module || !(module instanceof ModuleConstructor)) + if (!module || !(module instanceof Module)) throw new TypeError('Execution must define a Module instance'); load.module = { module: module @@ -864,6 +868,7 @@ function logloads(loads) { // 15.2.6.1 function evaluateLoadedModule(loader, load) { console.assert(load.status == 'linked', 'is linked ' + load.name); + ensureEvaluated(load.module, [], loader); return load.module.module; } @@ -877,6 +882,19 @@ function logloads(loads) { * */ + // execution errors don't propogate in the pipeline + // see https://bugs.ecmascript.org/show_bug.cgi?id=2993 + function doExecute(module) { + try { + module.execute.call(__global); + } + catch(e) { + setTimeout(function() { + throw e; + }); + } + } + // 15.2.6.2 EnsureEvaluated adjusted function ensureEvaluated(module, seen, loader) { if (module.evaluated || !module.dependencies) @@ -896,8 +914,8 @@ function logloads(loads) { return; module.evaluated = true; - module.execute.call(__global); - module.module = Module(module.exports); + doExecute(module); + module.module = _newModule(module.exports); delete module.execute; } @@ -935,7 +953,7 @@ function logloads(loads) { // 26.3.3.13 realm not implemented } - function ModuleConstructor() {} + function Module() {} // importPromises adds ability to import a module twice without error - https://bugs.ecmascript.org/show_bug.cgi?id=2601 var importPromises = {}; @@ -995,7 +1013,7 @@ function logloads(loads) { if (loader.modules[name]) { ensureEvaluated(loader.modules[name], [], loader._loader); - return Promise.resolve(loader.modules[name].module); + return loader.modules[name].module; } return importPromises[name] || createImportPromise(name, @@ -1034,8 +1052,8 @@ function logloads(loads) { throw new TypeError('Expected object'); // we do this to be able to tell if a module is a module privately in ES5 - // by doing m instanceof ModuleConstructor - var m = new ModuleConstructor(); + // by doing m instanceof Module + var m = new Module(); for (var key in obj) { (function (key) { @@ -1056,7 +1074,7 @@ function logloads(loads) { }, // 26.3.3.14 set: function(name, module) { - if (!(module instanceof ModuleConstructor)) + if (!(module instanceof Module)) throw new TypeError('Set must be a module'); this._loader.modules[name] = { module: module @@ -1087,7 +1105,7 @@ function logloads(loads) { } }; - var Module = Loader.prototype.newModule; + var _newModule = Loader.prototype.newModule; if (typeof exports === 'object') module.exports = Loader; @@ -1095,7 +1113,6 @@ function logloads(loads) { __global.Reflect = __global.Reflect || {}; __global.Reflect.Loader = __global.Reflect.Loader || Loader; __global.LoaderPolyfill = Loader; - __global.Module = Module; })(); diff --git a/package.json b/package.json index d65d5a0..fe073fc 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "es6-module-loader", "description": "An ES6 Module Loader shim", - "version": "0.6.1", + "version": "0.7.0", "homepage": "https://github.com/ModuleLoader/es6-module-loader", "author": { "name": "Guy Bedford, Luke Hoban, Addy Osmani", @@ -41,7 +41,7 @@ "test": "cd test && node test" }, "dependencies": { - "traceur": "0.0.41", - "es6-promise": "1.0.0" + "traceur": "0.0.45", + "when": "^3.2.3" } } diff --git a/test/perf.html b/test/perf.html index ba7881d..efb527c 100644 --- a/test/perf.html +++ b/test/perf.html @@ -1,22 +1,32 @@ + \ No newline at end of file + + +

Click to start

\ No newline at end of file diff --git a/test/test.html b/test/test.html index 467bf33..2ca1f65 100644 --- a/test/test.html +++ b/test/test.html @@ -13,7 +13,7 @@ // delete window.Promise; - + diff --git a/test/test.js b/test/test.js index b29e773..1946f5b 100644 --- a/test/test.js +++ b/test/test.js @@ -202,7 +202,6 @@ function runTests() { test('Direct import without bindings', function(assert, err) { System['import']('syntax/direct').then(function(m) { - console.log('got direct'); assert(!!m, true); }, err); }); @@ -296,17 +295,14 @@ function runTests() { }) }); - - // https://bugs.ecmascript.org/show_bug.cgi?id=2993 - - // test('Dependency race error check (fix pending)', function(assert) { - // System['import']('loads/main').then(function(m) { - // assert('Module returned despite error'); - // }, function(e) { - // assert(!!e, true); - // }); - // System['import']('loads/deperror'); - // }); + test('Error check 1', function(assert) { + System['import']('loads/main').then(function(m) { + assert(!!m, true); + }, function(e) { + assert(false, 'caught'); + }); + // System['import']('loads/deperror'); + }); test('Export Syntax', function(assert) { @@ -478,7 +474,7 @@ function runTests() { deps: deps, execute: function() { if (customModules[load.name]) - return Module(customModules[load.name]); + return System.newModule(customModules[load.name]); // first ensure all dependencies have been executed for (var i = 0; i < resolvedDeps.length; i++) @@ -487,7 +483,7 @@ function runTests() { var module = factory.apply(null, resolvedDeps); customModules[load.name] = module; - return new Module(module); + return System.newModule(module); } }; }); @@ -519,7 +515,6 @@ function runTests() { test('Custom loader hook - normalize error', function(assert) { customLoader['import']('loader/error1-parent').then(function(m) { - console.log('got n'); })['catch'](function(e) { assert(e, 'error1'); }); From 15f55a33ed688aa6d6d67d9d619d7ce3e76ae613 Mon Sep 17 00:00:00 2001 From: johnjbarton Date: Mon, 23 Jun 2014 17:16:55 -0700 Subject: [PATCH 009/482] Delay the call to require() in system.js until needed --- lib/system.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/system.js b/lib/system.js index 8206314..41d18ef 100644 --- a/lib/system.js +++ b/lib/system.js @@ -98,8 +98,9 @@ } } else { - var fs = require('fs'); + var fs; fetchTextFromURL = function(url, fulfill, reject) { + fs = fs || require('fs'); return fs.readFile(url, function(err, data) { if (err) return reject(err); From 7bfef3f8bec9f7e0bae282138f27a8034f8a1daf Mon Sep 17 00:00:00 2001 From: guybedford Date: Mon, 23 Jun 2014 17:53:54 -0700 Subject: [PATCH 010/482] ie8 fixes --- dist/es6-module-loader-sans-promises.js | 4 ++-- dist/es6-module-loader-sans-promises.min.js | 2 +- dist/es6-module-loader.js | 4 ++-- dist/es6-module-loader.min.js | 2 +- lib/loader.js | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/dist/es6-module-loader-sans-promises.js b/dist/es6-module-loader-sans-promises.js index 2deb4d7..c63606c 100644 --- a/dist/es6-module-loader-sans-promises.js +++ b/dist/es6-module-loader-sans-promises.js @@ -626,7 +626,7 @@ function logloads(loads) { // store all failed load records loader.loaderObj.failed = loader.loaderObj.failed || []; - if (loader.loaderObj.failed.indexOf(load) == -1) + if (indexOf.call(loader.loaderObj.failed, load) == -1) loader.loaderObj.failed.push(load); var linkIndex = indexOf.call(load.linkSets, linkSet); @@ -713,7 +713,7 @@ function logloads(loads) { // if already in a group, remove from the old group if (loadDep.groupIndex) { - groups[loadDep.groupIndex].splice(groups[loadDep.groupIndex].indexOf(loadDep), 1); + groups[loadDep.groupIndex].splice(indexOf.call(groups[loadDep.groupIndex], loadDep), 1); // if the old group is empty, then we have a mixed depndency cycle if (groups[loadDep.groupIndex].length == 0) diff --git a/dist/es6-module-loader-sans-promises.min.js b/dist/es6-module-loader-sans-promises.min.js index 5c32926..9ed7528 100644 --- a/dist/es6-module-loader-sans-promises.min.js +++ b/dist/es6-module-loader-sans-promises.min.js @@ -3,4 +3,4 @@ * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(__global){function __eval(__source,__global,__moduleName){eval('var __moduleName = "'+(__moduleName||"").replace('"','"')+'"; (function() { '+__source+" \n }).call(__global);")}!function(){function a(b,c,d,e){var f,g;if(c(b,d,e)!==!1)for(f in b)b.hasOwnProperty(f)&&"location"!=f&&"type"!=f&&(g=b[f],"object"==typeof g&&null!==g&&a(g,c,b,f))}function b(b){function c(a){-1==D.call(d,a)&&d.push(a)}var d=[];return a(b,function(a){"EXPORT_DECLARATION"==a.type?a.declaration.moduleSpecifier&&c(a.declaration.moduleSpecifier.token.processedValue):"IMPORT_DECLARATION"==a.type?c(a.moduleSpecifier.token.processedValue):"MODULE_DECLARATION"==a.type&&c(a.expression.token.processedValue)}),d}function c(a){if(!z)if("undefined"==typeof window)z=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");z=__global.traceur}var c;try{var d=new z.syntax.Parser(new z.syntax.SourceFile(a.address,a.source)),e=d.parseModule();a.kind="declarative",c=b(e);var f=z.options.sourceMaps,g=z.options.modules;z.options.sourceMaps=!0,z.options.modules="instantiate";var h=new z.util.ErrorReporter;h.reportMessageInternal=function(a,b){throw new SyntaxError(b,a.start&&a.start.line_,a.start&&a.start.column_)};var i=__global.System;__global.System=__global.traceurSystem;var j=new z.codegeneration.module.AttachModuleNameTransformer(a.name).transformAny(e);j=new z.codegeneration.FromOptionsTransformer(h).transform(j);var k=new z.outputgeneration.SourceMapGenerator({file:a.address}),l={sourceMapGenerator:k},m=z.outputgeneration.TreeWriter.write(j,l);__global.btoa&&(m+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(l.sourceMap)))+"\n");var n=System.register;System.register=function(b,c,d){a.declare="string"==typeof b?d:c},__eval(m,__global,a.name)}catch(o){throw("SyntaxError"==o.name||"TypeError"==o.name)&&(o.message="Evaluating "+(a.name||a.address)+"\n "+o.message),n&&(System.register=n),i&&(__global.System=i),f&&(z.options.sourceMaps=f),g&&(z.options.modules=g),o}return System.register=n,__global.System=i,z.options.sourceMaps=f,z.options.modules=g,c}function d(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function e(a,b,c){return new B(j({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:{},moduleSource:c.source,moduleAddress:c.address}))}function f(a,b,c,e){return new B(function(d){d(a.loaderObj.normalize(b,c,e))}).then(function(b){var c;if(a.modules[b])return c=d(b),c.status="linked",c;for(var e=0,f=a.loads.length;f>e;e++)if(c=a.loads[e],c.name==b)return c;return c=d(b),a.loads.push(c),g(a,c),c})}function g(a,b){h(a,b,B.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function h(a,b,c){i(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function i(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){var e;if(void 0===d)b.address=b.address||"anon"+ ++E,e=c(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");e=d.deps||[],b.execute=d.execute,b.kind="dynamic"}b.dependencies=[],b.depsList=e;for(var g=[],h=0,i=e.length;i>h;h++)(function(c,d){g.push(f(a,c,b.name,b.address).then(function(a){if(b.dependencies[d]={key:c,value:a.name},"linked"!=a.status)for(var e=b.linkSets.concat([]),f=0,g=e.length;g>f;f++)l(e[f],a)}))})(e[h],h);return B.all(g)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)n(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)o(c[d],a)})}function j(a){return function(b){var c=a.loader,e=a.moduleName,f=a.step;if(c.modules[e])throw new TypeError('"'+e+'" already exists in the module table');for(var j=0,l=c.loads.length;l>j;j++)if(c.loads[j].name==e)throw new TypeError('"'+e+'" already loading');var m=d(e);m.metadata=a.moduleMetadata;var n=k(c,m);c.loads.push(m),b(n.done),"locate"==f?g(c,m):"fetch"==f?h(c,m,B.resolve(a.moduleAddress)):(m.address=a.moduleAddress,i(c,m,B.resolve(a.moduleSource)))}}function k(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new B(function(a,b){c.resolve=a,c.reject=b}),l(c,b),c}function l(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){l(a,e.loads[g]);break}}}function m(a){try{r(a)}catch(b){return o(a,b),!0}}function n(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0;ee;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==c.loaderObj.failed.indexOf(g)&&c.loaderObj.failed.push(g);var h=D.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=D.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function p(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.kind}}b.name&&(a.modules[b.name]=b.module);var d=D.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=D.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function q(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==D.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0;e=0;f--){for(var g=c[f],h=0;hb;b++)if(this[b]===a)return b;return-1},E=0,F={};w.prototype={constructor:w,define:function(a,b,c){if(F[a])throw new TypeError("Module is already loading.");return y(a,new B(j({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(v(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,b){var c=this;return B.resolve(c.normalize(a,b&&b.name,b&&b.address)).then(function(a){var d=c._loader;return d.modules[a]?(v(d.modules[a],[],d._loader),d.modules[a].module):F[a]||y(a,e(d,a,b||{}).then(function(b){return delete F[a],t(d,b)}))})},load:function(a){return this._loader.modules[a]?(v(this._loader.modules[a],[],this._loader),B.resolve(this._loader.modules[a].module)):F[a]||y(a,e(this._loader,a,{}))},module:function(a,b){var c=d();c.address=b&&b.address;var e=k(this._loader,c),f=B.resolve(a),g=this._loader,h=e.done.then(function(){return t(g,c)});return i(g,c,f),h},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new x;for(var c in a)!function(c){A(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof x))throw new TypeError("Set must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var G=w.prototype.newModule;"object"==typeof exports&&(module.exports=w),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||w,__global.LoaderPolyfill=w}()}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function d(a,d){return d=b(d||""),a=b(a||""),d&&a?(d.protocol||a.protocol)+(d.protocol||d.authority?d.authority:a.authority)+c(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+d.pathname:a.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||a.search)+d.hash:null}function e(){document.removeEventListener("DOMContentLoaded",e,!1),window.removeEventListener("load",e,!1),f()}function f(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");1==g.length?c==f&&f.length>e.length&&(e=f):c.substr(0,g[0].length)==g[0]&&c.substr(c.length-g[1].length)==g[1]&&(e=f,b=c.substr(g[0].length,c.length-g[1].length-g[0].length))}var h=this.paths[e];return b&&(h=h.replace("*",b)),d(this.baseURL,h)},fetch:function(a){return new j(function(b,c){g(d(this.baseURL,a.address),function(a){b(a)},c)})}});if(h){var m=window.location.href.split("#")[0].split("?")[0];l.baseURL=m.substring(0,m.lastIndexOf("/")+1)}else l.baseURL="./";if(l.paths={"*":"*.js"},a.System&&a.traceur&&(a.traceurSystem=a.System),h&&(a.System=l),h){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(f):document.addEventListener&&(document.addEventListener("DOMContentLoaded",e,!1),window.addEventListener("load",e,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}"object"==typeof exports&&(module.exports=l)}("undefined"!=typeof global?global:this); \ No newline at end of file +!function(__global){function __eval(__source,__global,__moduleName){eval('var __moduleName = "'+(__moduleName||"").replace('"','"')+'"; (function() { '+__source+" \n }).call(__global);")}!function(){function a(b,c,d,e){var f,g;if(c(b,d,e)!==!1)for(f in b)b.hasOwnProperty(f)&&"location"!=f&&"type"!=f&&(g=b[f],"object"==typeof g&&null!==g&&a(g,c,b,f))}function b(b){function c(a){-1==D.call(d,a)&&d.push(a)}var d=[];return a(b,function(a){"EXPORT_DECLARATION"==a.type?a.declaration.moduleSpecifier&&c(a.declaration.moduleSpecifier.token.processedValue):"IMPORT_DECLARATION"==a.type?c(a.moduleSpecifier.token.processedValue):"MODULE_DECLARATION"==a.type&&c(a.expression.token.processedValue)}),d}function c(a){if(!z)if("undefined"==typeof window)z=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");z=__global.traceur}var c;try{var d=new z.syntax.Parser(new z.syntax.SourceFile(a.address,a.source)),e=d.parseModule();a.kind="declarative",c=b(e);var f=z.options.sourceMaps,g=z.options.modules;z.options.sourceMaps=!0,z.options.modules="instantiate";var h=new z.util.ErrorReporter;h.reportMessageInternal=function(a,b){throw new SyntaxError(b,a.start&&a.start.line_,a.start&&a.start.column_)};var i=__global.System;__global.System=__global.traceurSystem;var j=new z.codegeneration.module.AttachModuleNameTransformer(a.name).transformAny(e);j=new z.codegeneration.FromOptionsTransformer(h).transform(j);var k=new z.outputgeneration.SourceMapGenerator({file:a.address}),l={sourceMapGenerator:k},m=z.outputgeneration.TreeWriter.write(j,l);__global.btoa&&(m+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(l.sourceMap)))+"\n");var n=System.register;System.register=function(b,c,d){a.declare="string"==typeof b?d:c},__eval(m,__global,a.name)}catch(o){throw("SyntaxError"==o.name||"TypeError"==o.name)&&(o.message="Evaluating "+(a.name||a.address)+"\n "+o.message),n&&(System.register=n),i&&(__global.System=i),f&&(z.options.sourceMaps=f),g&&(z.options.modules=g),o}return System.register=n,__global.System=i,z.options.sourceMaps=f,z.options.modules=g,c}function d(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function e(a,b,c){return new B(j({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:{},moduleSource:c.source,moduleAddress:c.address}))}function f(a,b,c,e){return new B(function(d){d(a.loaderObj.normalize(b,c,e))}).then(function(b){var c;if(a.modules[b])return c=d(b),c.status="linked",c;for(var e=0,f=a.loads.length;f>e;e++)if(c=a.loads[e],c.name==b)return c;return c=d(b),a.loads.push(c),g(a,c),c})}function g(a,b){h(a,b,B.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function h(a,b,c){i(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function i(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){var e;if(void 0===d)b.address=b.address||"anon"+ ++E,e=c(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");e=d.deps||[],b.execute=d.execute,b.kind="dynamic"}b.dependencies=[],b.depsList=e;for(var g=[],h=0,i=e.length;i>h;h++)(function(c,d){g.push(f(a,c,b.name,b.address).then(function(a){if(b.dependencies[d]={key:c,value:a.name},"linked"!=a.status)for(var e=b.linkSets.concat([]),f=0,g=e.length;g>f;f++)l(e[f],a)}))})(e[h],h);return B.all(g)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)n(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)o(c[d],a)})}function j(a){return function(b){var c=a.loader,e=a.moduleName,f=a.step;if(c.modules[e])throw new TypeError('"'+e+'" already exists in the module table');for(var j=0,l=c.loads.length;l>j;j++)if(c.loads[j].name==e)throw new TypeError('"'+e+'" already loading');var m=d(e);m.metadata=a.moduleMetadata;var n=k(c,m);c.loads.push(m),b(n.done),"locate"==f?g(c,m):"fetch"==f?h(c,m,B.resolve(a.moduleAddress)):(m.address=a.moduleAddress,i(c,m,B.resolve(a.moduleSource)))}}function k(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new B(function(a,b){c.resolve=a,c.reject=b}),l(c,b),c}function l(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){l(a,e.loads[g]);break}}}function m(a){try{r(a)}catch(b){return o(a,b),!0}}function n(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0;ee;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==D.call(c.loaderObj.failed,g)&&c.loaderObj.failed.push(g);var h=D.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=D.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function p(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.kind}}b.name&&(a.modules[b.name]=b.module);var d=D.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=D.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function q(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==D.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0;e=0;f--){for(var g=c[f],h=0;hb;b++)if(this[b]===a)return b;return-1},E=0,F={};w.prototype={constructor:w,define:function(a,b,c){if(F[a])throw new TypeError("Module is already loading.");return y(a,new B(j({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(v(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,b){var c=this;return B.resolve(c.normalize(a,b&&b.name,b&&b.address)).then(function(a){var d=c._loader;return d.modules[a]?(v(d.modules[a],[],d._loader),d.modules[a].module):F[a]||y(a,e(d,a,b||{}).then(function(b){return delete F[a],t(d,b)}))})},load:function(a){return this._loader.modules[a]?(v(this._loader.modules[a],[],this._loader),B.resolve(this._loader.modules[a].module)):F[a]||y(a,e(this._loader,a,{}))},module:function(a,b){var c=d();c.address=b&&b.address;var e=k(this._loader,c),f=B.resolve(a),g=this._loader,h=e.done.then(function(){return t(g,c)});return i(g,c,f),h},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new x;for(var c in a)!function(c){A(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof x))throw new TypeError("Set must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var G=w.prototype.newModule;"object"==typeof exports&&(module.exports=w),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||w,__global.LoaderPolyfill=w}()}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function d(a,d){return d=b(d||""),a=b(a||""),d&&a?(d.protocol||a.protocol)+(d.protocol||d.authority?d.authority:a.authority)+c(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+d.pathname:a.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||a.search)+d.hash:null}function e(){document.removeEventListener("DOMContentLoaded",e,!1),window.removeEventListener("load",e,!1),f()}function f(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");1==g.length?c==f&&f.length>e.length&&(e=f):c.substr(0,g[0].length)==g[0]&&c.substr(c.length-g[1].length)==g[1]&&(e=f,b=c.substr(g[0].length,c.length-g[1].length-g[0].length))}var h=this.paths[e];return b&&(h=h.replace("*",b)),d(this.baseURL,h)},fetch:function(a){return new j(function(b,c){g(d(this.baseURL,a.address),function(a){b(a)},c)})}});if(h){var m=window.location.href.split("#")[0].split("?")[0];l.baseURL=m.substring(0,m.lastIndexOf("/")+1)}else l.baseURL="./";if(l.paths={"*":"*.js"},a.System&&a.traceur&&(a.traceurSystem=a.System),h&&(a.System=l),h){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(f):document.addEventListener&&(document.addEventListener("DOMContentLoaded",e,!1),window.addEventListener("load",e,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}"object"==typeof exports&&(module.exports=l)}("undefined"!=typeof global?global:this); \ No newline at end of file diff --git a/dist/es6-module-loader.js b/dist/es6-module-loader.js index 0e15f27..0635d61 100644 --- a/dist/es6-module-loader.js +++ b/dist/es6-module-loader.js @@ -1855,7 +1855,7 @@ function logloads(loads) { // store all failed load records loader.loaderObj.failed = loader.loaderObj.failed || []; - if (loader.loaderObj.failed.indexOf(load) == -1) + if (indexOf.call(loader.loaderObj.failed, load) == -1) loader.loaderObj.failed.push(load); var linkIndex = indexOf.call(load.linkSets, linkSet); @@ -1942,7 +1942,7 @@ function logloads(loads) { // if already in a group, remove from the old group if (loadDep.groupIndex) { - groups[loadDep.groupIndex].splice(groups[loadDep.groupIndex].indexOf(loadDep), 1); + groups[loadDep.groupIndex].splice(indexOf.call(groups[loadDep.groupIndex], loadDep), 1); // if the old group is empty, then we have a mixed depndency cycle if (groups[loadDep.groupIndex].length == 0) diff --git a/dist/es6-module-loader.min.js b/dist/es6-module-loader.min.js index 66c25b1..48e0116 100644 --- a/dist/es6-module-loader.min.js +++ b/dist/es6-module-loader.min.js @@ -3,4 +3,4 @@ * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;gf;++f)e[f]=d[f];else{for(a=d.length,b=this.tail;a>c;++f,++c)e[f]=d[c];for(c=0;b>c;++f,++c)e[f]=d[c]}this.buffer=e,this.head=0,this.tail=this.length},a})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],4:[function(b,c){!function(a){"use strict";a(function(a){var b,c;return b="undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick?function(a){process.nextTick(a)}:(c="function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver)?function(a,b){function c(){var a=d;d=void 0,a()}var d,e=a.createElement("div"),f=new b(c);return f.observe(e,{attributes:!0}),function(a){d=a,e.setAttribute("class","x")}}(document,c):function(a){try{return a("vertx").runOnLoop||a("vertx").runOnContext}catch(b){}var c=setTimeout;return function(a){c(a,0)}}(a)})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],5:[function(b,c){!function(a){"use strict";a(function(a){function b(a){var b="object"==typeof a&&a.stack?a.stack:c(a);return a instanceof Error?b:b+" (WARNING: non-Error used)"}function c(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=d(a,b)),b}function d(a,b){try{return JSON.stringify(a)}catch(a){return b}}function e(a){throw a}function f(){}var g=a("../timer");return function(a){function d(a){a.handled||(n.push(a),k("Potentially unhandled rejection ["+a.id+"] "+b(a.value)))}function h(a){var b=n.indexOf(a);b>=0&&(n.splice(b,1),l("Handled previous rejection ["+a.id+"] "+c(a.value)))}function i(a,b){m.push(a,b),o||(o=!0,o=g.set(j,0))}function j(){for(o=!1;m.length>0;)m.shift()(m.shift())}var k=f,l=f;"undefined"!=typeof console&&(k="undefined"!=typeof console.error?function(a){}:function(a){},l="undefined"!=typeof console.info?function(a){}:function(a){}),a.onPotentiallyUnhandledRejection=function(a){i(d,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){i(h,a)},a.onFatalRejection=function(a){i(e,a.value)};var m=[],n=[],o=!1;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../timer":8}],6:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===m?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new n;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return k(a)?a:new b(m,new p(j(a)))}function e(a){return new b(m,new p(new t(a)))}function f(){return M}function g(){return new b(m,new n)}function h(a){function c(a,b,c,d){c.map(function(a){b[d]=a,0===--i&&this.become(new s(b))},a)}var d,e,f,g,h=new n,i=a.length>>>0,j=new Array(i);for(d=0;d0)){h.become(e);break}j[d]=e.value,--i}else j[d]=f,--i;else--i;return 0===i&&h.become(new s(j)),new b(m,h)}function i(a){if(Object(a)===a&&0===a.length)return f();var c,d,e=new n;for(c=0;c0)return new b(m,d);var e=this._beget(),f=e._handler;return d.when({resolve:f.resolve,notify:f.notify,context:f,receiver:d.receiver,fulfilled:a,rejected:c,progress:arguments.length>2?arguments[2]:void 0}),e},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._bindContext=function(a){return new b(m,new q(this._handler,a))},b.prototype._beget=function(){var a=this._handler,b=new n(a.receiver,a.join().context);return new this.constructor(m,b)},b.prototype._maybeFatal=function(a){if(C(a)){var b=j(a),c=this._handler.context;b.catchError(function(){this._fatal(c)},b)}},b.all=h,b.race=i,m.prototype.when=m.prototype.resolve=m.prototype.reject=m.prototype.notify=m.prototype._fatal=m.prototype._unreport=m.prototype._report=H,m.prototype.inspect=x,m.prototype._state=0,m.prototype.state=function(){return this._state},m.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},m.prototype.chain=function(a,b,c,d){this.when({resolve:H,notify:H,context:void 0,receiver:a,fulfilled:b,rejected:c,progress:d})},m.prototype.map=function(a,b){this.chain(b,a,b.reject,b.notify)},m.prototype.catchError=function(a,b){this.chain(b,b.resolve,a,b.notify)},m.prototype.fold=function(a,b,c){this.join().map(function(a){j(c).map(function(c){this.resolve(E(b,c,a,this.receiver))},this)},a)},G(m,n),n.prototype._state=0,n.prototype.inspect=function(){return this.resolved?this.join().inspect():x()},n.prototype.resolve=function(a){this.resolved||this.become(j(a))},n.prototype.reject=function(a){this.resolved||this.become(new t(a))},n.prototype.join=function(){if(this.resolved){for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=new w;return a}return this},n.prototype.run=function(){var a=this.consumers,b=this.join();this.consumers=void 0;for(var c=0;c0;)a.shift().run();for(this._running=!1,a=this._afterQueue;a.length>0;)a.shift()(a.shift(),a.shift())},b})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"./Queue":3}],8:[function(b,c){!function(a){"use strict";a(function(a){var b,c,d,e;b=a;try{c=b("vertx"),d=function(a,b){return c.setTimer(b,a)},e=c.cancelTimer}catch(f){d=function(a,b){return setTimeout(a,b)},e=function(a){return clearTimeout(a)}}return{set:d,clear:e}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}]},{},[1])(1)}),function(__global){function __eval(__source,__global,__moduleName){eval('var __moduleName = "'+(__moduleName||"").replace('"','"')+'"; (function() { '+__source+" \n }).call(__global);")}!function(){function a(b,c,d,e){var f,g;if(c(b,d,e)!==!1)for(f in b)b.hasOwnProperty(f)&&"location"!=f&&"type"!=f&&(g=b[f],"object"==typeof g&&null!==g&&a(g,c,b,f))}function b(b){function c(a){-1==D.call(d,a)&&d.push(a)}var d=[];return a(b,function(a){"EXPORT_DECLARATION"==a.type?a.declaration.moduleSpecifier&&c(a.declaration.moduleSpecifier.token.processedValue):"IMPORT_DECLARATION"==a.type?c(a.moduleSpecifier.token.processedValue):"MODULE_DECLARATION"==a.type&&c(a.expression.token.processedValue)}),d}function c(a){if(!z)if("undefined"==typeof window)z=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");z=__global.traceur}var c;try{var d=new z.syntax.Parser(new z.syntax.SourceFile(a.address,a.source)),e=d.parseModule();a.kind="declarative",c=b(e);var f=z.options.sourceMaps,g=z.options.modules;z.options.sourceMaps=!0,z.options.modules="instantiate";var h=new z.util.ErrorReporter;h.reportMessageInternal=function(a,b){throw new SyntaxError(b,a.start&&a.start.line_,a.start&&a.start.column_)};var i=__global.System;__global.System=__global.traceurSystem;var j=new z.codegeneration.module.AttachModuleNameTransformer(a.name).transformAny(e);j=new z.codegeneration.FromOptionsTransformer(h).transform(j);var k=new z.outputgeneration.SourceMapGenerator({file:a.address}),l={sourceMapGenerator:k},m=z.outputgeneration.TreeWriter.write(j,l);__global.btoa&&(m+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(l.sourceMap)))+"\n");var n=System.register;System.register=function(b,c,d){a.declare="string"==typeof b?d:c},__eval(m,__global,a.name)}catch(o){throw("SyntaxError"==o.name||"TypeError"==o.name)&&(o.message="Evaluating "+(a.name||a.address)+"\n "+o.message),n&&(System.register=n),i&&(__global.System=i),f&&(z.options.sourceMaps=f),g&&(z.options.modules=g),o}return System.register=n,__global.System=i,z.options.sourceMaps=f,z.options.modules=g,c}function d(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function e(a,b,c){return new B(j({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:{},moduleSource:c.source,moduleAddress:c.address}))}function f(a,b,c,e){return new B(function(d){d(a.loaderObj.normalize(b,c,e))}).then(function(b){var c;if(a.modules[b])return c=d(b),c.status="linked",c;for(var e=0,f=a.loads.length;f>e;e++)if(c=a.loads[e],c.name==b)return c;return c=d(b),a.loads.push(c),g(a,c),c})}function g(a,b){h(a,b,B.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function h(a,b,c){i(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function i(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){var e;if(void 0===d)b.address=b.address||"anon"+ ++E,e=c(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");e=d.deps||[],b.execute=d.execute,b.kind="dynamic"}b.dependencies=[],b.depsList=e;for(var g=[],h=0,i=e.length;i>h;h++)(function(c,d){g.push(f(a,c,b.name,b.address).then(function(a){if(b.dependencies[d]={key:c,value:a.name},"linked"!=a.status)for(var e=b.linkSets.concat([]),f=0,g=e.length;g>f;f++)l(e[f],a)}))})(e[h],h);return B.all(g)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)n(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)o(c[d],a)})}function j(a){return function(b){var c=a.loader,e=a.moduleName,f=a.step;if(c.modules[e])throw new TypeError('"'+e+'" already exists in the module table');for(var j=0,l=c.loads.length;l>j;j++)if(c.loads[j].name==e)throw new TypeError('"'+e+'" already loading');var m=d(e);m.metadata=a.moduleMetadata;var n=k(c,m);c.loads.push(m),b(n.done),"locate"==f?g(c,m):"fetch"==f?h(c,m,B.resolve(a.moduleAddress)):(m.address=a.moduleAddress,i(c,m,B.resolve(a.moduleSource)))}}function k(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new B(function(a,b){c.resolve=a,c.reject=b}),l(c,b),c}function l(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){l(a,e.loads[g]);break}}}function m(a){try{r(a)}catch(b){return o(a,b),!0}}function n(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0;ee;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==c.loaderObj.failed.indexOf(g)&&c.loaderObj.failed.push(g);var h=D.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=D.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function p(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.kind}}b.name&&(a.modules[b.name]=b.module);var d=D.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=D.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function q(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==D.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0;e=0;f--){for(var g=c[f],h=0;hb;b++)if(this[b]===a)return b;return-1},E=0,F={};w.prototype={constructor:w,define:function(a,b,c){if(F[a])throw new TypeError("Module is already loading.");return y(a,new B(j({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(v(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,b){var c=this;return B.resolve(c.normalize(a,b&&b.name,b&&b.address)).then(function(a){var d=c._loader;return d.modules[a]?(v(d.modules[a],[],d._loader),d.modules[a].module):F[a]||y(a,e(d,a,b||{}).then(function(b){return delete F[a],t(d,b)}))})},load:function(a){return this._loader.modules[a]?(v(this._loader.modules[a],[],this._loader),B.resolve(this._loader.modules[a].module)):F[a]||y(a,e(this._loader,a,{}))},module:function(a,b){var c=d();c.address=b&&b.address;var e=k(this._loader,c),f=B.resolve(a),g=this._loader,h=e.done.then(function(){return t(g,c)});return i(g,c,f),h},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new x;for(var c in a)!function(c){A(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof x))throw new TypeError("Set must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var G=w.prototype.newModule;"object"==typeof exports&&(module.exports=w),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||w,__global.LoaderPolyfill=w}()}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function d(a,d){return d=b(d||""),a=b(a||""),d&&a?(d.protocol||a.protocol)+(d.protocol||d.authority?d.authority:a.authority)+c(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+d.pathname:a.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||a.search)+d.hash:null}function e(){document.removeEventListener("DOMContentLoaded",e,!1),window.removeEventListener("load",e,!1),f()}function f(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");1==g.length?c==f&&f.length>e.length&&(e=f):c.substr(0,g[0].length)==g[0]&&c.substr(c.length-g[1].length)==g[1]&&(e=f,b=c.substr(g[0].length,c.length-g[1].length-g[0].length))}var h=this.paths[e];return b&&(h=h.replace("*",b)),d(this.baseURL,h)},fetch:function(a){return new j(function(b,c){g(d(this.baseURL,a.address),function(a){b(a)},c)})}});if(h){var m=window.location.href.split("#")[0].split("?")[0];l.baseURL=m.substring(0,m.lastIndexOf("/")+1)}else l.baseURL="./";if(l.paths={"*":"*.js"},a.System&&a.traceur&&(a.traceurSystem=a.System),h&&(a.System=l),h){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(f):document.addEventListener&&(document.addEventListener("DOMContentLoaded",e,!1),window.addEventListener("load",e,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}"object"==typeof exports&&(module.exports=l)}("undefined"!=typeof global?global:this); \ No newline at end of file +!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;gf;++f)e[f]=d[f];else{for(a=d.length,b=this.tail;a>c;++f,++c)e[f]=d[c];for(c=0;b>c;++f,++c)e[f]=d[c]}this.buffer=e,this.head=0,this.tail=this.length},a})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],4:[function(b,c){!function(a){"use strict";a(function(a){var b,c;return b="undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick?function(a){process.nextTick(a)}:(c="function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver)?function(a,b){function c(){var a=d;d=void 0,a()}var d,e=a.createElement("div"),f=new b(c);return f.observe(e,{attributes:!0}),function(a){d=a,e.setAttribute("class","x")}}(document,c):function(a){try{return a("vertx").runOnLoop||a("vertx").runOnContext}catch(b){}var c=setTimeout;return function(a){c(a,0)}}(a)})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],5:[function(b,c){!function(a){"use strict";a(function(a){function b(a){var b="object"==typeof a&&a.stack?a.stack:c(a);return a instanceof Error?b:b+" (WARNING: non-Error used)"}function c(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=d(a,b)),b}function d(a,b){try{return JSON.stringify(a)}catch(a){return b}}function e(a){throw a}function f(){}var g=a("../timer");return function(a){function d(a){a.handled||(n.push(a),k("Potentially unhandled rejection ["+a.id+"] "+b(a.value)))}function h(a){var b=n.indexOf(a);b>=0&&(n.splice(b,1),l("Handled previous rejection ["+a.id+"] "+c(a.value)))}function i(a,b){m.push(a,b),o||(o=!0,o=g.set(j,0))}function j(){for(o=!1;m.length>0;)m.shift()(m.shift())}var k=f,l=f;"undefined"!=typeof console&&(k="undefined"!=typeof console.error?function(a){}:function(a){},l="undefined"!=typeof console.info?function(a){}:function(a){}),a.onPotentiallyUnhandledRejection=function(a){i(d,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){i(h,a)},a.onFatalRejection=function(a){i(e,a.value)};var m=[],n=[],o=!1;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../timer":8}],6:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===m?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new n;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return k(a)?a:new b(m,new p(j(a)))}function e(a){return new b(m,new p(new t(a)))}function f(){return M}function g(){return new b(m,new n)}function h(a){function c(a,b,c,d){c.map(function(a){b[d]=a,0===--i&&this.become(new s(b))},a)}var d,e,f,g,h=new n,i=a.length>>>0,j=new Array(i);for(d=0;d0)){h.become(e);break}j[d]=e.value,--i}else j[d]=f,--i;else--i;return 0===i&&h.become(new s(j)),new b(m,h)}function i(a){if(Object(a)===a&&0===a.length)return f();var c,d,e=new n;for(c=0;c0)return new b(m,d);var e=this._beget(),f=e._handler;return d.when({resolve:f.resolve,notify:f.notify,context:f,receiver:d.receiver,fulfilled:a,rejected:c,progress:arguments.length>2?arguments[2]:void 0}),e},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._bindContext=function(a){return new b(m,new q(this._handler,a))},b.prototype._beget=function(){var a=this._handler,b=new n(a.receiver,a.join().context);return new this.constructor(m,b)},b.prototype._maybeFatal=function(a){if(C(a)){var b=j(a),c=this._handler.context;b.catchError(function(){this._fatal(c)},b)}},b.all=h,b.race=i,m.prototype.when=m.prototype.resolve=m.prototype.reject=m.prototype.notify=m.prototype._fatal=m.prototype._unreport=m.prototype._report=H,m.prototype.inspect=x,m.prototype._state=0,m.prototype.state=function(){return this._state},m.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},m.prototype.chain=function(a,b,c,d){this.when({resolve:H,notify:H,context:void 0,receiver:a,fulfilled:b,rejected:c,progress:d})},m.prototype.map=function(a,b){this.chain(b,a,b.reject,b.notify)},m.prototype.catchError=function(a,b){this.chain(b,b.resolve,a,b.notify)},m.prototype.fold=function(a,b,c){this.join().map(function(a){j(c).map(function(c){this.resolve(E(b,c,a,this.receiver))},this)},a)},G(m,n),n.prototype._state=0,n.prototype.inspect=function(){return this.resolved?this.join().inspect():x()},n.prototype.resolve=function(a){this.resolved||this.become(j(a))},n.prototype.reject=function(a){this.resolved||this.become(new t(a))},n.prototype.join=function(){if(this.resolved){for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=new w;return a}return this},n.prototype.run=function(){var a=this.consumers,b=this.join();this.consumers=void 0;for(var c=0;c0;)a.shift().run();for(this._running=!1,a=this._afterQueue;a.length>0;)a.shift()(a.shift(),a.shift())},b})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"./Queue":3}],8:[function(b,c){!function(a){"use strict";a(function(a){var b,c,d,e;b=a;try{c=b("vertx"),d=function(a,b){return c.setTimer(b,a)},e=c.cancelTimer}catch(f){d=function(a,b){return setTimeout(a,b)},e=function(a){return clearTimeout(a)}}return{set:d,clear:e}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}]},{},[1])(1)}),function(__global){function __eval(__source,__global,__moduleName){eval('var __moduleName = "'+(__moduleName||"").replace('"','"')+'"; (function() { '+__source+" \n }).call(__global);")}!function(){function a(b,c,d,e){var f,g;if(c(b,d,e)!==!1)for(f in b)b.hasOwnProperty(f)&&"location"!=f&&"type"!=f&&(g=b[f],"object"==typeof g&&null!==g&&a(g,c,b,f))}function b(b){function c(a){-1==D.call(d,a)&&d.push(a)}var d=[];return a(b,function(a){"EXPORT_DECLARATION"==a.type?a.declaration.moduleSpecifier&&c(a.declaration.moduleSpecifier.token.processedValue):"IMPORT_DECLARATION"==a.type?c(a.moduleSpecifier.token.processedValue):"MODULE_DECLARATION"==a.type&&c(a.expression.token.processedValue)}),d}function c(a){if(!z)if("undefined"==typeof window)z=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");z=__global.traceur}var c;try{var d=new z.syntax.Parser(new z.syntax.SourceFile(a.address,a.source)),e=d.parseModule();a.kind="declarative",c=b(e);var f=z.options.sourceMaps,g=z.options.modules;z.options.sourceMaps=!0,z.options.modules="instantiate";var h=new z.util.ErrorReporter;h.reportMessageInternal=function(a,b){throw new SyntaxError(b,a.start&&a.start.line_,a.start&&a.start.column_)};var i=__global.System;__global.System=__global.traceurSystem;var j=new z.codegeneration.module.AttachModuleNameTransformer(a.name).transformAny(e);j=new z.codegeneration.FromOptionsTransformer(h).transform(j);var k=new z.outputgeneration.SourceMapGenerator({file:a.address}),l={sourceMapGenerator:k},m=z.outputgeneration.TreeWriter.write(j,l);__global.btoa&&(m+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(l.sourceMap)))+"\n");var n=System.register;System.register=function(b,c,d){a.declare="string"==typeof b?d:c},__eval(m,__global,a.name)}catch(o){throw("SyntaxError"==o.name||"TypeError"==o.name)&&(o.message="Evaluating "+(a.name||a.address)+"\n "+o.message),n&&(System.register=n),i&&(__global.System=i),f&&(z.options.sourceMaps=f),g&&(z.options.modules=g),o}return System.register=n,__global.System=i,z.options.sourceMaps=f,z.options.modules=g,c}function d(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function e(a,b,c){return new B(j({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:{},moduleSource:c.source,moduleAddress:c.address}))}function f(a,b,c,e){return new B(function(d){d(a.loaderObj.normalize(b,c,e))}).then(function(b){var c;if(a.modules[b])return c=d(b),c.status="linked",c;for(var e=0,f=a.loads.length;f>e;e++)if(c=a.loads[e],c.name==b)return c;return c=d(b),a.loads.push(c),g(a,c),c})}function g(a,b){h(a,b,B.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function h(a,b,c){i(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function i(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){var e;if(void 0===d)b.address=b.address||"anon"+ ++E,e=c(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");e=d.deps||[],b.execute=d.execute,b.kind="dynamic"}b.dependencies=[],b.depsList=e;for(var g=[],h=0,i=e.length;i>h;h++)(function(c,d){g.push(f(a,c,b.name,b.address).then(function(a){if(b.dependencies[d]={key:c,value:a.name},"linked"!=a.status)for(var e=b.linkSets.concat([]),f=0,g=e.length;g>f;f++)l(e[f],a)}))})(e[h],h);return B.all(g)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)n(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)o(c[d],a)})}function j(a){return function(b){var c=a.loader,e=a.moduleName,f=a.step;if(c.modules[e])throw new TypeError('"'+e+'" already exists in the module table');for(var j=0,l=c.loads.length;l>j;j++)if(c.loads[j].name==e)throw new TypeError('"'+e+'" already loading');var m=d(e);m.metadata=a.moduleMetadata;var n=k(c,m);c.loads.push(m),b(n.done),"locate"==f?g(c,m):"fetch"==f?h(c,m,B.resolve(a.moduleAddress)):(m.address=a.moduleAddress,i(c,m,B.resolve(a.moduleSource)))}}function k(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new B(function(a,b){c.resolve=a,c.reject=b}),l(c,b),c}function l(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){l(a,e.loads[g]);break}}}function m(a){try{r(a)}catch(b){return o(a,b),!0}}function n(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0;ee;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==D.call(c.loaderObj.failed,g)&&c.loaderObj.failed.push(g);var h=D.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=D.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function p(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.kind}}b.name&&(a.modules[b.name]=b.module);var d=D.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=D.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function q(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==D.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0;e=0;f--){for(var g=c[f],h=0;hb;b++)if(this[b]===a)return b;return-1},E=0,F={};w.prototype={constructor:w,define:function(a,b,c){if(F[a])throw new TypeError("Module is already loading.");return y(a,new B(j({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(v(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,b){var c=this;return B.resolve(c.normalize(a,b&&b.name,b&&b.address)).then(function(a){var d=c._loader;return d.modules[a]?(v(d.modules[a],[],d._loader),d.modules[a].module):F[a]||y(a,e(d,a,b||{}).then(function(b){return delete F[a],t(d,b)}))})},load:function(a){return this._loader.modules[a]?(v(this._loader.modules[a],[],this._loader),B.resolve(this._loader.modules[a].module)):F[a]||y(a,e(this._loader,a,{}))},module:function(a,b){var c=d();c.address=b&&b.address;var e=k(this._loader,c),f=B.resolve(a),g=this._loader,h=e.done.then(function(){return t(g,c)});return i(g,c,f),h},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new x;for(var c in a)!function(c){A(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof x))throw new TypeError("Set must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var G=w.prototype.newModule;"object"==typeof exports&&(module.exports=w),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||w,__global.LoaderPolyfill=w}()}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function d(a,d){return d=b(d||""),a=b(a||""),d&&a?(d.protocol||a.protocol)+(d.protocol||d.authority?d.authority:a.authority)+c(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+d.pathname:a.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||a.search)+d.hash:null}function e(){document.removeEventListener("DOMContentLoaded",e,!1),window.removeEventListener("load",e,!1),f()}function f(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");1==g.length?c==f&&f.length>e.length&&(e=f):c.substr(0,g[0].length)==g[0]&&c.substr(c.length-g[1].length)==g[1]&&(e=f,b=c.substr(g[0].length,c.length-g[1].length-g[0].length))}var h=this.paths[e];return b&&(h=h.replace("*",b)),d(this.baseURL,h)},fetch:function(a){return new j(function(b,c){g(d(this.baseURL,a.address),function(a){b(a)},c)})}});if(h){var m=window.location.href.split("#")[0].split("?")[0];l.baseURL=m.substring(0,m.lastIndexOf("/")+1)}else l.baseURL="./";if(l.paths={"*":"*.js"},a.System&&a.traceur&&(a.traceurSystem=a.System),h&&(a.System=l),h){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(f):document.addEventListener&&(document.addEventListener("DOMContentLoaded",e,!1),window.addEventListener("load",e,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}"object"==typeof exports&&(module.exports=l)}("undefined"!=typeof global?global:this); \ No newline at end of file diff --git a/lib/loader.js b/lib/loader.js index 323a1a5..a2abd69 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -626,7 +626,7 @@ function logloads(loads) { // store all failed load records loader.loaderObj.failed = loader.loaderObj.failed || []; - if (loader.loaderObj.failed.indexOf(load) == -1) + if (indexOf.call(loader.loaderObj.failed, load) == -1) loader.loaderObj.failed.push(load); var linkIndex = indexOf.call(load.linkSets, linkSet); @@ -713,7 +713,7 @@ function logloads(loads) { // if already in a group, remove from the old group if (loadDep.groupIndex) { - groups[loadDep.groupIndex].splice(groups[loadDep.groupIndex].indexOf(loadDep), 1); + groups[loadDep.groupIndex].splice(indexOf.call(groups[loadDep.groupIndex], loadDep), 1); // if the old group is empty, then we have a mixed depndency cycle if (groups[loadDep.groupIndex].length == 0) From 438e344451978b7554976ffb440e14c337fec27c Mon Sep 17 00:00:00 2001 From: Calvin Metcalf Date: Wed, 25 Jun 2014 09:25:03 -0400 Subject: [PATCH 011/482] try catches in closures --- lib/loader.js | 114 ++++++++++++++++++++++++++------------------------ 1 file changed, 59 insertions(+), 55 deletions(-) diff --git a/lib/loader.js b/lib/loader.js index a2abd69..a11ed34 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -110,18 +110,20 @@ function logloads(loads) { var traceur; var defineProperty; - try { - if (!!Object.defineProperty({}, 'a', {})) { - defineProperty = Object.defineProperty; - } - } catch (e) { - defineProperty = function (obj, prop, opt) { - try { - obj[prop] = opt.value || opt.get.call(obj); + (function () { + try { + if (!!Object.defineProperty({}, 'a', {})) { + defineProperty = Object.defineProperty; + } + } catch (e) { + defineProperty = function (obj, prop, opt) { + try { + obj[prop] = opt.value || opt.get.call(obj); + } + catch(e) {} } - catch(e) {} } - } + }()); console.assert = console.assert || function() {}; @@ -190,64 +192,66 @@ function logloads(loads) { console.assert(load.source, 'Non-empty source'); - var depsList; - try { - var parser = new traceur.syntax.Parser(new traceur.syntax.SourceFile(load.address, load.source)); - var body = parser.parseModule(); + var depsList, curRegister, curSystem, oldSourceMaps, oldModules; + (function () { + try { + var parser = new traceur.syntax.Parser(new traceur.syntax.SourceFile(load.address, load.source)); + var body = parser.parseModule(); - load.kind = 'declarative'; - depsList = getImports(body); + load.kind = 'declarative'; + depsList = getImports(body); - var oldSourceMaps = traceur.options.sourceMaps; - var oldModules = traceur.options.modules; + oldSourceMaps = traceur.options.sourceMaps; + oldModules = traceur.options.modules; - traceur.options.sourceMaps = true; - traceur.options.modules = 'instantiate'; + traceur.options.sourceMaps = true; + traceur.options.modules = 'instantiate'; - var reporter = new traceur.util.ErrorReporter(); + var reporter = new traceur.util.ErrorReporter(); - reporter.reportMessageInternal = function(location, kind, format, args) { - throw new SyntaxError(kind, location.start && location.start.line_, location.start && location.start.column_); - } + reporter.reportMessageInternal = function(location, kind, format, args) { + throw new SyntaxError(kind, location.start && location.start.line_, location.start && location.start.column_); + } - // traceur expects its version of System - var curSystem = __global.System; - __global.System = __global.traceurSystem; + // traceur expects its version of System + curSystem = __global.System; + __global.System = __global.traceurSystem; - var tree = (new traceur.codegeneration.module.AttachModuleNameTransformer(load.name)).transformAny(body); - tree = (new traceur.codegeneration.FromOptionsTransformer(reporter)).transform(tree); + var tree = (new traceur.codegeneration.module.AttachModuleNameTransformer(load.name)).transformAny(body); + tree = (new traceur.codegeneration.FromOptionsTransformer(reporter)).transform(tree); - var sourceMapGenerator = new traceur.outputgeneration.SourceMapGenerator({ file: load.address }); - var options = { sourceMapGenerator: sourceMapGenerator }; + var sourceMapGenerator = new traceur.outputgeneration.SourceMapGenerator({ file: load.address }); + var options = { sourceMapGenerator: sourceMapGenerator }; - var source = traceur.outputgeneration.TreeWriter.write(tree, options); + var source = traceur.outputgeneration.TreeWriter.write(tree, options); - if (__global.btoa) - source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(options.sourceMap))) + '\n'; + if (__global.btoa) + source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(options.sourceMap))) + '\n'; - // now run System.register - var curRegister = System.register; + // now run System.register + curRegister = System.register; - System.register = function(name, deps, declare) { - // store the registered declaration as load.declare - load.declare = typeof name == 'string' ? declare : deps; - } + System.register = function(name, deps, declare) { + // store the registered declaration as load.declare + load.declare = typeof name == 'string' ? declare : deps; + } - __eval(source, __global, load.name); - } - catch(e) { - if (e.name == 'SyntaxError' || e.name == 'TypeError') - e.message = 'Evaluating ' + (load.name || load.address) + '\n\t' + e.message; - if (curRegister) - System.register = curRegister; - if (curSystem) - __global.System = curSystem; - if (oldSourceMaps) - traceur.options.sourceMaps = oldSourceMaps; - if (oldModules) - traceur.options.modules = oldModules; - throw e; - } + __eval(source, __global, load.name); + } + catch(e) { + if (e.name == 'SyntaxError' || e.name == 'TypeError') + e.message = 'Evaluating ' + (load.name || load.address) + '\n\t' + e.message; + if (curRegister) + System.register = curRegister; + if (curSystem) + __global.System = curSystem; + if (oldSourceMaps) + traceur.options.sourceMaps = oldSourceMaps; + if (oldModules) + traceur.options.modules = oldModules; + throw e; + } + }()); System.register = curRegister; __global.System = curSystem; traceur.options.sourceMaps = oldSourceMaps; From 999ee5c6a26f35fac119300d2dc40c582af2eb2b Mon Sep 17 00:00:00 2001 From: guybedford Date: Wed, 25 Jun 2014 21:39:39 -0700 Subject: [PATCH 012/482] do propogate module errors with a trace --- lib/loader.js | 41 +++++++++++++++++++++++++++-------------- test/test.js | 4 ++-- 2 files changed, 29 insertions(+), 16 deletions(-) diff --git a/lib/loader.js b/lib/loader.js index a11ed34..5fc8d02 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -873,7 +873,7 @@ function logloads(loads) { function evaluateLoadedModule(loader, load) { console.assert(load.status == 'linked', 'is linked ' + load.name); - ensureEvaluated(load.module, [], loader); + doEnsureEvaluated(load.module, [], loader); return load.module.module; } @@ -885,20 +885,22 @@ function logloads(loads) { * module.dependencies list of module objects for dependencies * */ - - // execution errors don't propogate in the pipeline - // see https://bugs.ecmascript.org/show_bug.cgi?id=2993 function doExecute(module) { try { module.execute.call(__global); } catch(e) { - setTimeout(function() { - throw e; - }); + return e; } } + // propogate execution errors + // see https://bugs.ecmascript.org/show_bug.cgi?id=2993 + function doEnsureEvaluated(module, seen, loader) { + var err = ensureEvaluated(module, seen, loader); + if (err) + throw err; + } // 15.2.6.2 EnsureEvaluated adjusted function ensureEvaluated(module, seen, loader) { if (module.evaluated || !module.dependencies) @@ -907,20 +909,31 @@ function logloads(loads) { seen.push(module); var deps = module.dependencies; + var err; for (var i = 0; i < deps.length; i++) { var dep = deps[i]; - if (indexOf.call(seen, dep) == -1) - ensureEvaluated(dep, seen, loader); + if (indexOf.call(seen, dep) == -1) { + err = ensureEvaluated(dep, seen, loader); + // stop on error, see https://bugs.ecmascript.org/show_bug.cgi?id=2996 + if (err) + return err + '\n in module ' + dep.name; + } } + if (module.failed) + return new Error('Module failed execution.'); + if (module.evaluated) return; module.evaluated = true; - doExecute(module); + err = doExecute(module); + if (err) + module.failed = true; module.module = _newModule(module.exports); - delete module.execute; + module.execute = undefined; + return err; } // 26.3 Loader @@ -998,7 +1011,7 @@ function logloads(loads) { get: function(key) { if (!this._loader.modules[key]) return; - ensureEvaluated(this._loader.modules[key], [], this); + doEnsureEvaluated(this._loader.modules[key], [], this); return this._loader.modules[key].module; }, // 26.3.3.7 @@ -1016,7 +1029,7 @@ function logloads(loads) { var loader = loaderObj._loader; if (loader.modules[name]) { - ensureEvaluated(loader.modules[name], [], loader._loader); + doEnsureEvaluated(loader.modules[name], [], loader._loader); return loader.modules[name].module; } @@ -1032,7 +1045,7 @@ function logloads(loads) { // 26.3.3.10 load: function(name, options) { if (this._loader.modules[name]) { - ensureEvaluated(this._loader.modules[name], [], this._loader); + doEnsureEvaluated(this._loader.modules[name], [], this._loader); return Promise.resolve(this._loader.modules[name].module); } return importPromises[name] || createImportPromise(name, loadModule(this._loader, name, {})); diff --git a/test/test.js b/test/test.js index 1946f5b..db841bb 100644 --- a/test/test.js +++ b/test/test.js @@ -297,9 +297,9 @@ function runTests() { test('Error check 1', function(assert) { System['import']('loads/main').then(function(m) { - assert(!!m, true); + assert(false, true); }, function(e) { - assert(false, 'caught'); + assert(e, 'dep error\n in module loads/deperror'); }); // System['import']('loads/deperror'); }); From 827d22ebee8cd3232db1f7a6bd9fb6429901260d Mon Sep 17 00:00:00 2001 From: guybedford Date: Thu, 26 Jun 2014 12:31:03 -0700 Subject: [PATCH 013/482] 0.7.1 --- README.md | 6 +- bower.json | 2 +- dist/es6-module-loader-sans-promises.js | 155 +++++++++++--------- dist/es6-module-loader-sans-promises.min.js | 2 +- dist/es6-module-loader.js | 155 +++++++++++--------- dist/es6-module-loader.min.js | 2 +- package.json | 4 +- 7 files changed, 180 insertions(+), 146 deletions(-) diff --git a/README.md b/README.md index 2b1f12e..1cb73c2 100644 --- a/README.md +++ b/README.md @@ -17,13 +17,13 @@ See the [demo folder](https://github.com/ModuleLoader/es6-module-loader/blob/mas For an example of a universal module loader based on this polyfill for loading AMD, CommonJS and globals, see [SystemJS](https://github.com/systemjs/systemjs). -_The current version is tested against **[Traceur 0.0.45](https://github.com/google/traceur-compiler/tree/0.0.45)**._ +_The current version is tested against **[Traceur 0.0.49](https://github.com/google/traceur-compiler/tree/0.0.49)**._ _Note the ES6 module specification is still in draft, and subject to change._ ### Basic Use -Download both [es6-module-loader.js](https://raw.githubusercontent.com/ModuleLoader/es6-module-loader/v0.7.0/dist/es6-module-loader.js) and [traceur.js](https://raw.githubusercontent.com/jmcriffey/bower-traceur/0.0.45/traceur.js) into the same folder. +Download both [es6-module-loader.js](https://raw.githubusercontent.com/ModuleLoader/es6-module-loader/v0.7.1/dist/es6-module-loader.js) and traceur.js into the same folder. If using ES6 syntax (optional), include `traceur.js` in the page first then include `es6-module-loader.js`: @@ -181,7 +181,7 @@ A basic example of using this extension with a build would be the following: traceur --out app-build.js app/app.js --modules=instantiate ``` -2. If using additional ES6 features apart from modules syntax, load [`traceur-runtime.js`](https://raw.githubusercontent.com/jmcriffey/bower-traceur/0.0.45/traceur-runtime.js) (also included in the `bin` folder when installing Traceur through Bower or npm). Then include `es6-module-loader.js` and then apply the register extension before doing the import or loading the bundle as a script: +2. If using additional ES6 features apart from modules syntax, load `traceur-runtime.js` (included in the `bin` folder when installing Traceur through Bower or npm). Then include `es6-module-loader.js` and then apply the register extension before doing the import or loading the bundle as a script: ```html diff --git a/bower.json b/bower.json index c3b47fc..dda2461 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "es6-module-loader", - "version": "0.7.0", + "version": "0.7.1", "description": "An ES6 Module Loader polyfill based on the latest spec.", "homepage": "https://github.com/ModuleLoader/es6-module-loader", "main": "dist/es6-module-loader-sans-promises.js", diff --git a/dist/es6-module-loader-sans-promises.js b/dist/es6-module-loader-sans-promises.js index 73e06e2..4623341 100644 --- a/dist/es6-module-loader-sans-promises.js +++ b/dist/es6-module-loader-sans-promises.js @@ -110,18 +110,20 @@ function logloads(loads) { var traceur; var defineProperty; - try { - if (!!Object.defineProperty({}, 'a', {})) { - defineProperty = Object.defineProperty; - } - } catch (e) { - defineProperty = function (obj, prop, opt) { - try { - obj[prop] = opt.value || opt.get.call(obj); + (function () { + try { + if (!!Object.defineProperty({}, 'a', {})) { + defineProperty = Object.defineProperty; + } + } catch (e) { + defineProperty = function (obj, prop, opt) { + try { + obj[prop] = opt.value || opt.get.call(obj); + } + catch(e) {} } - catch(e) {} } - } + }()); console.assert = console.assert || function() {}; @@ -190,64 +192,66 @@ function logloads(loads) { console.assert(load.source, 'Non-empty source'); - var depsList; - try { - var parser = new traceur.syntax.Parser(new traceur.syntax.SourceFile(load.address, load.source)); - var body = parser.parseModule(); + var depsList, curRegister, curSystem, oldSourceMaps, oldModules; + (function () { + try { + var parser = new traceur.syntax.Parser(new traceur.syntax.SourceFile(load.address, load.source)); + var body = parser.parseModule(); - load.kind = 'declarative'; - depsList = getImports(body); + load.kind = 'declarative'; + depsList = getImports(body); - var oldSourceMaps = traceur.options.sourceMaps; - var oldModules = traceur.options.modules; + oldSourceMaps = traceur.options.sourceMaps; + oldModules = traceur.options.modules; - traceur.options.sourceMaps = true; - traceur.options.modules = 'instantiate'; + traceur.options.sourceMaps = true; + traceur.options.modules = 'instantiate'; - var reporter = new traceur.util.ErrorReporter(); + var reporter = new traceur.util.ErrorReporter(); - reporter.reportMessageInternal = function(location, kind, format, args) { - throw new SyntaxError(kind, location.start && location.start.line_, location.start && location.start.column_); - } + reporter.reportMessageInternal = function(location, kind, format, args) { + throw new SyntaxError(kind, location.start && location.start.line_, location.start && location.start.column_); + } - // traceur expects its version of System - var curSystem = __global.System; - __global.System = __global.traceurSystem; + // traceur expects its version of System + curSystem = __global.System; + __global.System = __global.traceurSystem; - var tree = (new traceur.codegeneration.module.AttachModuleNameTransformer(load.name)).transformAny(body); - tree = (new traceur.codegeneration.FromOptionsTransformer(reporter)).transform(tree); + var tree = (new traceur.codegeneration.module.AttachModuleNameTransformer(load.name)).transformAny(body); + tree = (new traceur.codegeneration.FromOptionsTransformer(reporter)).transform(tree); - var sourceMapGenerator = new traceur.outputgeneration.SourceMapGenerator({ file: load.address }); - var options = { sourceMapGenerator: sourceMapGenerator }; + var sourceMapGenerator = new traceur.outputgeneration.SourceMapGenerator({ file: load.address }); + var options = { sourceMapGenerator: sourceMapGenerator }; - var source = traceur.outputgeneration.TreeWriter.write(tree, options); + var source = traceur.outputgeneration.TreeWriter.write(tree, options); - if (__global.btoa) - source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(options.sourceMap))) + '\n'; + if (__global.btoa) + source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(options.sourceMap))) + '\n'; - // now run System.register - var curRegister = System.register; + // now run System.register + curRegister = System.register; - System.register = function(name, deps, declare) { - // store the registered declaration as load.declare - load.declare = typeof name == 'string' ? declare : deps; - } + System.register = function(name, deps, declare) { + // store the registered declaration as load.declare + load.declare = typeof name == 'string' ? declare : deps; + } - __eval(source, __global, load.name); - } - catch(e) { - if (e.name == 'SyntaxError' || e.name == 'TypeError') - e.message = 'Evaluating ' + (load.name || load.address) + '\n\t' + e.message; - if (curRegister) - System.register = curRegister; - if (curSystem) - __global.System = curSystem; - if (oldSourceMaps) - traceur.options.sourceMaps = oldSourceMaps; - if (oldModules) - traceur.options.modules = oldModules; - throw e; - } + __eval(source, __global, load.name); + } + catch(e) { + if (e.name == 'SyntaxError' || e.name == 'TypeError') + e.message = 'Evaluating ' + (load.name || load.address) + '\n\t' + e.message; + if (curRegister) + System.register = curRegister; + if (curSystem) + __global.System = curSystem; + if (oldSourceMaps) + traceur.options.sourceMaps = oldSourceMaps; + if (oldModules) + traceur.options.modules = oldModules; + throw e; + } + }()); System.register = curRegister; __global.System = curSystem; traceur.options.sourceMaps = oldSourceMaps; @@ -869,7 +873,7 @@ function logloads(loads) { function evaluateLoadedModule(loader, load) { console.assert(load.status == 'linked', 'is linked ' + load.name); - ensureEvaluated(load.module, [], loader); + doEnsureEvaluated(load.module, [], loader); return load.module.module; } @@ -881,20 +885,22 @@ function logloads(loads) { * module.dependencies list of module objects for dependencies * */ - - // execution errors don't propogate in the pipeline - // see https://bugs.ecmascript.org/show_bug.cgi?id=2993 function doExecute(module) { try { module.execute.call(__global); } catch(e) { - setTimeout(function() { - throw e; - }); + return e; } } + // propogate execution errors + // see https://bugs.ecmascript.org/show_bug.cgi?id=2993 + function doEnsureEvaluated(module, seen, loader) { + var err = ensureEvaluated(module, seen, loader); + if (err) + throw err; + } // 15.2.6.2 EnsureEvaluated adjusted function ensureEvaluated(module, seen, loader) { if (module.evaluated || !module.dependencies) @@ -903,20 +909,31 @@ function logloads(loads) { seen.push(module); var deps = module.dependencies; + var err; for (var i = 0; i < deps.length; i++) { var dep = deps[i]; - if (indexOf.call(seen, dep) == -1) - ensureEvaluated(dep, seen, loader); + if (indexOf.call(seen, dep) == -1) { + err = ensureEvaluated(dep, seen, loader); + // stop on error, see https://bugs.ecmascript.org/show_bug.cgi?id=2996 + if (err) + return err + '\n in module ' + dep.name; + } } + if (module.failed) + return new Error('Module failed execution.'); + if (module.evaluated) return; module.evaluated = true; - doExecute(module); + err = doExecute(module); + if (err) + module.failed = true; module.module = _newModule(module.exports); - delete module.execute; + module.execute = undefined; + return err; } // 26.3 Loader @@ -994,7 +1011,7 @@ function logloads(loads) { get: function(key) { if (!this._loader.modules[key]) return; - ensureEvaluated(this._loader.modules[key], [], this); + doEnsureEvaluated(this._loader.modules[key], [], this); return this._loader.modules[key].module; }, // 26.3.3.7 @@ -1012,7 +1029,7 @@ function logloads(loads) { var loader = loaderObj._loader; if (loader.modules[name]) { - ensureEvaluated(loader.modules[name], [], loader._loader); + doEnsureEvaluated(loader.modules[name], [], loader._loader); return loader.modules[name].module; } @@ -1028,7 +1045,7 @@ function logloads(loads) { // 26.3.3.10 load: function(name, options) { if (this._loader.modules[name]) { - ensureEvaluated(this._loader.modules[name], [], this._loader); + doEnsureEvaluated(this._loader.modules[name], [], this._loader); return Promise.resolve(this._loader.modules[name].module); } return importPromises[name] || createImportPromise(name, loadModule(this._loader, name, {})); diff --git a/dist/es6-module-loader-sans-promises.min.js b/dist/es6-module-loader-sans-promises.min.js index d03565d..05f37f8 100644 --- a/dist/es6-module-loader-sans-promises.min.js +++ b/dist/es6-module-loader-sans-promises.min.js @@ -3,4 +3,4 @@ * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(__global){function __eval(__source,__global,__moduleName){eval('var __moduleName = "'+(__moduleName||"").replace('"','"')+'"; (function() { '+__source+" \n }).call(__global);")}!function(){function a(b,c,d,e){var f,g;if(c(b,d,e)!==!1)for(f in b)b.hasOwnProperty(f)&&"location"!=f&&"type"!=f&&(g=b[f],"object"==typeof g&&null!==g&&a(g,c,b,f))}function b(b){function c(a){-1==D.call(d,a)&&d.push(a)}var d=[];return a(b,function(a){"EXPORT_DECLARATION"==a.type?a.declaration.moduleSpecifier&&c(a.declaration.moduleSpecifier.token.processedValue):"IMPORT_DECLARATION"==a.type?c(a.moduleSpecifier.token.processedValue):"MODULE_DECLARATION"==a.type&&c(a.expression.token.processedValue)}),d}function c(a){if(!z)if("undefined"==typeof window)z=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");z=__global.traceur}var c;try{var d=new z.syntax.Parser(new z.syntax.SourceFile(a.address,a.source)),e=d.parseModule();a.kind="declarative",c=b(e);var f=z.options.sourceMaps,g=z.options.modules;z.options.sourceMaps=!0,z.options.modules="instantiate";var h=new z.util.ErrorReporter;h.reportMessageInternal=function(a,b){throw new SyntaxError(b,a.start&&a.start.line_,a.start&&a.start.column_)};var i=__global.System;__global.System=__global.traceurSystem;var j=new z.codegeneration.module.AttachModuleNameTransformer(a.name).transformAny(e);j=new z.codegeneration.FromOptionsTransformer(h).transform(j);var k=new z.outputgeneration.SourceMapGenerator({file:a.address}),l={sourceMapGenerator:k},m=z.outputgeneration.TreeWriter.write(j,l);__global.btoa&&(m+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(l.sourceMap)))+"\n");var n=System.register;System.register=function(b,c,d){a.declare="string"==typeof b?d:c},__eval(m,__global,a.name)}catch(o){throw("SyntaxError"==o.name||"TypeError"==o.name)&&(o.message="Evaluating "+(a.name||a.address)+"\n "+o.message),n&&(System.register=n),i&&(__global.System=i),f&&(z.options.sourceMaps=f),g&&(z.options.modules=g),o}return System.register=n,__global.System=i,z.options.sourceMaps=f,z.options.modules=g,c}function d(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function e(a,b,c){return new B(j({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:{},moduleSource:c.source,moduleAddress:c.address}))}function f(a,b,c,e){return new B(function(d){d(a.loaderObj.normalize(b,c,e))}).then(function(b){var c;if(a.modules[b])return c=d(b),c.status="linked",c;for(var e=0,f=a.loads.length;f>e;e++)if(c=a.loads[e],c.name==b)return c;return c=d(b),a.loads.push(c),g(a,c),c})}function g(a,b){h(a,b,B.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function h(a,b,c){i(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function i(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){var e;if(void 0===d)b.address=b.address||"anon"+ ++E,e=c(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");e=d.deps||[],b.execute=d.execute,b.kind="dynamic"}b.dependencies=[],b.depsList=e;for(var g=[],h=0,i=e.length;i>h;h++)(function(c,d){g.push(f(a,c,b.name,b.address).then(function(a){if(b.dependencies[d]={key:c,value:a.name},"linked"!=a.status)for(var e=b.linkSets.concat([]),f=0,g=e.length;g>f;f++)l(e[f],a)}))})(e[h],h);return B.all(g)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)n(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)o(c[d],a)})}function j(a){return function(b){var c=a.loader,e=a.moduleName,f=a.step;if(c.modules[e])throw new TypeError('"'+e+'" already exists in the module table');for(var j=0,l=c.loads.length;l>j;j++)if(c.loads[j].name==e)throw new TypeError('"'+e+'" already loading');var m=d(e);m.metadata=a.moduleMetadata;var n=k(c,m);c.loads.push(m),b(n.done),"locate"==f?g(c,m):"fetch"==f?h(c,m,B.resolve(a.moduleAddress)):(m.address=a.moduleAddress,i(c,m,B.resolve(a.moduleSource)))}}function k(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new B(function(a,b){c.resolve=a,c.reject=b}),l(c,b),c}function l(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){l(a,e.loads[g]);break}}}function m(a){try{r(a)}catch(b){return o(a,b),!0}}function n(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0;ee;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==D.call(c.loaderObj.failed,g)&&c.loaderObj.failed.push(g);var h=D.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=D.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function p(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.kind}}b.name&&(a.modules[b.name]=b.module);var d=D.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=D.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function q(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==D.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0;e=0;f--){for(var g=c[f],h=0;hb;b++)if(this[b]===a)return b;return-1},E=0,F={};w.prototype={constructor:w,define:function(a,b,c){if(F[a])throw new TypeError("Module is already loading.");return y(a,new B(j({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(v(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,b){var c=this;return B.resolve(c.normalize(a,b&&b.name,b&&b.address)).then(function(a){var d=c._loader;return d.modules[a]?(v(d.modules[a],[],d._loader),d.modules[a].module):F[a]||y(a,e(d,a,b||{}).then(function(b){return delete F[a],t(d,b)}))})},load:function(a){return this._loader.modules[a]?(v(this._loader.modules[a],[],this._loader),B.resolve(this._loader.modules[a].module)):F[a]||y(a,e(this._loader,a,{}))},module:function(a,b){var c=d();c.address=b&&b.address;var e=k(this._loader,c),f=B.resolve(a),g=this._loader,h=e.done.then(function(){return t(g,c)});return i(g,c,f),h},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new x;for(var c in a)!function(c){A(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof x))throw new TypeError("Set must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var G=w.prototype.newModule;"object"==typeof exports&&(module.exports=w),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||w,__global.LoaderPolyfill=w}()}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function d(a,d){return d=b(d||""),a=b(a||""),d&&a?(d.protocol||a.protocol)+(d.protocol||d.authority?d.authority:a.authority)+c(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+d.pathname:a.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||a.search)+d.hash:null}function e(){document.removeEventListener("DOMContentLoaded",e,!1),window.removeEventListener("load",e,!1),f()}function f(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");1==g.length?c==f&&f.length>e.length&&(e=f):c.substr(0,g[0].length)==g[0]&&c.substr(c.length-g[1].length)==g[1]&&(e=f,b=c.substr(g[0].length,c.length-g[1].length-g[0].length))}var h=this.paths[e];return b&&(h=h.replace("*",b)),d(this.baseURL,h)},fetch:function(a){return new j(function(b,c){g(d(this.baseURL,a.address),function(a){b(a)},c)})}});if(h){var m=window.location.href.split("#")[0].split("?")[0];l.baseURL=m.substring(0,m.lastIndexOf("/")+1)}else l.baseURL="./";if(l.paths={"*":"*.js"},a.System&&a.traceur&&(a.traceurSystem=a.System),h&&(a.System=l),h){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(f):document.addEventListener&&(document.addEventListener("DOMContentLoaded",e,!1),window.addEventListener("load",e,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}"object"==typeof exports&&(module.exports=l)}("undefined"!=typeof global?global:this); \ No newline at end of file +!function(__global){function __eval(__source,__global,__moduleName){eval('var __moduleName = "'+(__moduleName||"").replace('"','"')+'"; (function() { '+__source+" \n }).call(__global);")}!function(){function a(b,c,d,e){var f,g;if(c(b,d,e)!==!1)for(f in b)b.hasOwnProperty(f)&&"location"!=f&&"type"!=f&&(g=b[f],"object"==typeof g&&null!==g&&a(g,c,b,f))}function b(b){function c(a){-1==D.call(d,a)&&d.push(a)}var d=[];return a(b,function(a){"EXPORT_DECLARATION"==a.type?a.declaration.moduleSpecifier&&c(a.declaration.moduleSpecifier.token.processedValue):"IMPORT_DECLARATION"==a.type?c(a.moduleSpecifier.token.processedValue):"MODULE_DECLARATION"==a.type&&c(a.expression.token.processedValue)}),d}function c(a){if(!A)if("undefined"==typeof window)A=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");A=__global.traceur}var c,d,e,f,g;return function(){try{var h=new A.syntax.Parser(new A.syntax.SourceFile(a.address,a.source)),i=h.parseModule();a.kind="declarative",c=b(i),f=A.options.sourceMaps,g=A.options.modules,A.options.sourceMaps=!0,A.options.modules="instantiate";var j=new A.util.ErrorReporter;j.reportMessageInternal=function(a,b){throw new SyntaxError(b,a.start&&a.start.line_,a.start&&a.start.column_)},e=__global.System,__global.System=__global.traceurSystem;var k=new A.codegeneration.module.AttachModuleNameTransformer(a.name).transformAny(i);k=new A.codegeneration.FromOptionsTransformer(j).transform(k);var l=new A.outputgeneration.SourceMapGenerator({file:a.address}),m={sourceMapGenerator:l},n=A.outputgeneration.TreeWriter.write(k,m);__global.btoa&&(n+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(m.sourceMap)))+"\n"),d=System.register,System.register=function(b,c,d){a.declare="string"==typeof b?d:c},__eval(n,__global,a.name)}catch(o){throw("SyntaxError"==o.name||"TypeError"==o.name)&&(o.message="Evaluating "+(a.name||a.address)+"\n "+o.message),d&&(System.register=d),e&&(__global.System=e),f&&(A.options.sourceMaps=f),g&&(A.options.modules=g),o}}(),System.register=d,__global.System=e,A.options.sourceMaps=f,A.options.modules=g,c}function d(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function e(a,b,c){return new C(j({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:{},moduleSource:c.source,moduleAddress:c.address}))}function f(a,b,c,e){return new C(function(d){d(a.loaderObj.normalize(b,c,e))}).then(function(b){var c;if(a.modules[b])return c=d(b),c.status="linked",c;for(var e=0,f=a.loads.length;f>e;e++)if(c=a.loads[e],c.name==b)return c;return c=d(b),a.loads.push(c),g(a,c),c})}function g(a,b){h(a,b,C.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function h(a,b,c){i(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function i(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){var e;if(void 0===d)b.address=b.address||"anon"+ ++E,e=c(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");e=d.deps||[],b.execute=d.execute,b.kind="dynamic"}b.dependencies=[],b.depsList=e;for(var g=[],h=0,i=e.length;i>h;h++)(function(c,d){g.push(f(a,c,b.name,b.address).then(function(a){if(b.dependencies[d]={key:c,value:a.name},"linked"!=a.status)for(var e=b.linkSets.concat([]),f=0,g=e.length;g>f;f++)l(e[f],a)}))})(e[h],h);return C.all(g)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)n(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)o(c[d],a)})}function j(a){return function(b){var c=a.loader,e=a.moduleName,f=a.step;if(c.modules[e])throw new TypeError('"'+e+'" already exists in the module table');for(var j=0,l=c.loads.length;l>j;j++)if(c.loads[j].name==e)throw new TypeError('"'+e+'" already loading');var m=d(e);m.metadata=a.moduleMetadata;var n=k(c,m);c.loads.push(m),b(n.done),"locate"==f?g(c,m):"fetch"==f?h(c,m,C.resolve(a.moduleAddress)):(m.address=a.moduleAddress,i(c,m,C.resolve(a.moduleSource)))}}function k(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new C(function(a,b){c.resolve=a,c.reject=b}),l(c,b),c}function l(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){l(a,e.loads[g]);break}}}function m(a){try{r(a)}catch(b){return o(a,b),!0}}function n(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0;ee;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==D.call(c.loaderObj.failed,g)&&c.loaderObj.failed.push(g);var h=D.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=D.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function p(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.kind}}b.name&&(a.modules[b.name]=b.module);var d=D.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=D.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function q(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==D.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0;e=0;f--){for(var g=c[f],h=0;hb;b++)if(this[b]===a)return b;return-1},E=0,F={};x.prototype={constructor:x,define:function(a,b,c){if(F[a])throw new TypeError("Module is already loading.");return z(a,new C(j({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(v(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,b){var c=this;return C.resolve(c.normalize(a,b&&b.name,b&&b.address)).then(function(a){var d=c._loader;return d.modules[a]?(v(d.modules[a],[],d._loader),d.modules[a].module):F[a]||z(a,e(d,a,b||{}).then(function(b){return delete F[a],t(d,b)}))})},load:function(a){return this._loader.modules[a]?(v(this._loader.modules[a],[],this._loader),C.resolve(this._loader.modules[a].module)):F[a]||z(a,e(this._loader,a,{}))},module:function(a,b){var c=d();c.address=b&&b.address;var e=k(this._loader,c),f=C.resolve(a),g=this._loader,h=e.done.then(function(){return t(g,c)});return i(g,c,f),h},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){B(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Set must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var G=x.prototype.newModule;"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.LoaderPolyfill=x}()}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function d(a,d){return d=b(d||""),a=b(a||""),d&&a?(d.protocol||a.protocol)+(d.protocol||d.authority?d.authority:a.authority)+c(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+d.pathname:a.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||a.search)+d.hash:null}function e(){document.removeEventListener("DOMContentLoaded",e,!1),window.removeEventListener("load",e,!1),f()}function f(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");1==g.length?c==f&&f.length>e.length&&(e=f):c.substr(0,g[0].length)==g[0]&&c.substr(c.length-g[1].length)==g[1]&&(e=f,b=c.substr(g[0].length,c.length-g[1].length-g[0].length))}var h=this.paths[e];return b&&(h=h.replace("*",b)),d(this.baseURL,h)},fetch:function(a){return new j(function(b,c){g(d(this.baseURL,a.address),function(a){b(a)},c)})}});if(h){var m=window.location.href.split("#")[0].split("?")[0];l.baseURL=m.substring(0,m.lastIndexOf("/")+1)}else l.baseURL="./";if(l.paths={"*":"*.js"},a.System&&a.traceur&&(a.traceurSystem=a.System),h&&(a.System=l),h){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(f):document.addEventListener&&(document.addEventListener("DOMContentLoaded",e,!1),window.addEventListener("load",e,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}"object"==typeof exports&&(module.exports=l)}("undefined"!=typeof global?global:this); \ No newline at end of file diff --git a/dist/es6-module-loader.js b/dist/es6-module-loader.js index 1e771f5..6e98670 100644 --- a/dist/es6-module-loader.js +++ b/dist/es6-module-loader.js @@ -1339,18 +1339,20 @@ function logloads(loads) { var traceur; var defineProperty; - try { - if (!!Object.defineProperty({}, 'a', {})) { - defineProperty = Object.defineProperty; - } - } catch (e) { - defineProperty = function (obj, prop, opt) { - try { - obj[prop] = opt.value || opt.get.call(obj); + (function () { + try { + if (!!Object.defineProperty({}, 'a', {})) { + defineProperty = Object.defineProperty; + } + } catch (e) { + defineProperty = function (obj, prop, opt) { + try { + obj[prop] = opt.value || opt.get.call(obj); + } + catch(e) {} } - catch(e) {} } - } + }()); console.assert = console.assert || function() {}; @@ -1419,64 +1421,66 @@ function logloads(loads) { console.assert(load.source, 'Non-empty source'); - var depsList; - try { - var parser = new traceur.syntax.Parser(new traceur.syntax.SourceFile(load.address, load.source)); - var body = parser.parseModule(); + var depsList, curRegister, curSystem, oldSourceMaps, oldModules; + (function () { + try { + var parser = new traceur.syntax.Parser(new traceur.syntax.SourceFile(load.address, load.source)); + var body = parser.parseModule(); - load.kind = 'declarative'; - depsList = getImports(body); + load.kind = 'declarative'; + depsList = getImports(body); - var oldSourceMaps = traceur.options.sourceMaps; - var oldModules = traceur.options.modules; + oldSourceMaps = traceur.options.sourceMaps; + oldModules = traceur.options.modules; - traceur.options.sourceMaps = true; - traceur.options.modules = 'instantiate'; + traceur.options.sourceMaps = true; + traceur.options.modules = 'instantiate'; - var reporter = new traceur.util.ErrorReporter(); + var reporter = new traceur.util.ErrorReporter(); - reporter.reportMessageInternal = function(location, kind, format, args) { - throw new SyntaxError(kind, location.start && location.start.line_, location.start && location.start.column_); - } + reporter.reportMessageInternal = function(location, kind, format, args) { + throw new SyntaxError(kind, location.start && location.start.line_, location.start && location.start.column_); + } - // traceur expects its version of System - var curSystem = __global.System; - __global.System = __global.traceurSystem; + // traceur expects its version of System + curSystem = __global.System; + __global.System = __global.traceurSystem; - var tree = (new traceur.codegeneration.module.AttachModuleNameTransformer(load.name)).transformAny(body); - tree = (new traceur.codegeneration.FromOptionsTransformer(reporter)).transform(tree); + var tree = (new traceur.codegeneration.module.AttachModuleNameTransformer(load.name)).transformAny(body); + tree = (new traceur.codegeneration.FromOptionsTransformer(reporter)).transform(tree); - var sourceMapGenerator = new traceur.outputgeneration.SourceMapGenerator({ file: load.address }); - var options = { sourceMapGenerator: sourceMapGenerator }; + var sourceMapGenerator = new traceur.outputgeneration.SourceMapGenerator({ file: load.address }); + var options = { sourceMapGenerator: sourceMapGenerator }; - var source = traceur.outputgeneration.TreeWriter.write(tree, options); + var source = traceur.outputgeneration.TreeWriter.write(tree, options); - if (__global.btoa) - source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(options.sourceMap))) + '\n'; + if (__global.btoa) + source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(options.sourceMap))) + '\n'; - // now run System.register - var curRegister = System.register; + // now run System.register + curRegister = System.register; - System.register = function(name, deps, declare) { - // store the registered declaration as load.declare - load.declare = typeof name == 'string' ? declare : deps; - } + System.register = function(name, deps, declare) { + // store the registered declaration as load.declare + load.declare = typeof name == 'string' ? declare : deps; + } - __eval(source, __global, load.name); - } - catch(e) { - if (e.name == 'SyntaxError' || e.name == 'TypeError') - e.message = 'Evaluating ' + (load.name || load.address) + '\n\t' + e.message; - if (curRegister) - System.register = curRegister; - if (curSystem) - __global.System = curSystem; - if (oldSourceMaps) - traceur.options.sourceMaps = oldSourceMaps; - if (oldModules) - traceur.options.modules = oldModules; - throw e; - } + __eval(source, __global, load.name); + } + catch(e) { + if (e.name == 'SyntaxError' || e.name == 'TypeError') + e.message = 'Evaluating ' + (load.name || load.address) + '\n\t' + e.message; + if (curRegister) + System.register = curRegister; + if (curSystem) + __global.System = curSystem; + if (oldSourceMaps) + traceur.options.sourceMaps = oldSourceMaps; + if (oldModules) + traceur.options.modules = oldModules; + throw e; + } + }()); System.register = curRegister; __global.System = curSystem; traceur.options.sourceMaps = oldSourceMaps; @@ -2098,7 +2102,7 @@ function logloads(loads) { function evaluateLoadedModule(loader, load) { console.assert(load.status == 'linked', 'is linked ' + load.name); - ensureEvaluated(load.module, [], loader); + doEnsureEvaluated(load.module, [], loader); return load.module.module; } @@ -2110,20 +2114,22 @@ function logloads(loads) { * module.dependencies list of module objects for dependencies * */ - - // execution errors don't propogate in the pipeline - // see https://bugs.ecmascript.org/show_bug.cgi?id=2993 function doExecute(module) { try { module.execute.call(__global); } catch(e) { - setTimeout(function() { - throw e; - }); + return e; } } + // propogate execution errors + // see https://bugs.ecmascript.org/show_bug.cgi?id=2993 + function doEnsureEvaluated(module, seen, loader) { + var err = ensureEvaluated(module, seen, loader); + if (err) + throw err; + } // 15.2.6.2 EnsureEvaluated adjusted function ensureEvaluated(module, seen, loader) { if (module.evaluated || !module.dependencies) @@ -2132,20 +2138,31 @@ function logloads(loads) { seen.push(module); var deps = module.dependencies; + var err; for (var i = 0; i < deps.length; i++) { var dep = deps[i]; - if (indexOf.call(seen, dep) == -1) - ensureEvaluated(dep, seen, loader); + if (indexOf.call(seen, dep) == -1) { + err = ensureEvaluated(dep, seen, loader); + // stop on error, see https://bugs.ecmascript.org/show_bug.cgi?id=2996 + if (err) + return err + '\n in module ' + dep.name; + } } + if (module.failed) + return new Error('Module failed execution.'); + if (module.evaluated) return; module.evaluated = true; - doExecute(module); + err = doExecute(module); + if (err) + module.failed = true; module.module = _newModule(module.exports); - delete module.execute; + module.execute = undefined; + return err; } // 26.3 Loader @@ -2223,7 +2240,7 @@ function logloads(loads) { get: function(key) { if (!this._loader.modules[key]) return; - ensureEvaluated(this._loader.modules[key], [], this); + doEnsureEvaluated(this._loader.modules[key], [], this); return this._loader.modules[key].module; }, // 26.3.3.7 @@ -2241,7 +2258,7 @@ function logloads(loads) { var loader = loaderObj._loader; if (loader.modules[name]) { - ensureEvaluated(loader.modules[name], [], loader._loader); + doEnsureEvaluated(loader.modules[name], [], loader._loader); return loader.modules[name].module; } @@ -2257,7 +2274,7 @@ function logloads(loads) { // 26.3.3.10 load: function(name, options) { if (this._loader.modules[name]) { - ensureEvaluated(this._loader.modules[name], [], this._loader); + doEnsureEvaluated(this._loader.modules[name], [], this._loader); return Promise.resolve(this._loader.modules[name].module); } return importPromises[name] || createImportPromise(name, loadModule(this._loader, name, {})); diff --git a/dist/es6-module-loader.min.js b/dist/es6-module-loader.min.js index b88c06a..24a830b 100644 --- a/dist/es6-module-loader.min.js +++ b/dist/es6-module-loader.min.js @@ -3,4 +3,4 @@ * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;gf;++f)e[f]=d[f];else{for(a=d.length,b=this.tail;a>c;++f,++c)e[f]=d[c];for(c=0;b>c;++f,++c)e[f]=d[c]}this.buffer=e,this.head=0,this.tail=this.length},a})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],4:[function(b,c){!function(a){"use strict";a(function(a){var b,c;return b="undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick?function(a){process.nextTick(a)}:(c="function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver)?function(a,b){function c(){var a=d;d=void 0,a()}var d,e=a.createElement("div"),f=new b(c);return f.observe(e,{attributes:!0}),function(a){d=a,e.setAttribute("class","x")}}(document,c):function(a){try{return a("vertx").runOnLoop||a("vertx").runOnContext}catch(b){}var c=setTimeout;return function(a){c(a,0)}}(a)})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],5:[function(b,c){!function(a){"use strict";a(function(a){function b(a){var b="object"==typeof a&&a.stack?a.stack:c(a);return a instanceof Error?b:b+" (WARNING: non-Error used)"}function c(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=d(a,b)),b}function d(a,b){try{return JSON.stringify(a)}catch(a){return b}}function e(a){throw a}function f(){}var g=a("../timer");return function(a){function d(a){a.handled||(n.push(a),k("Potentially unhandled rejection ["+a.id+"] "+b(a.value)))}function h(a){var b=n.indexOf(a);b>=0&&(n.splice(b,1),l("Handled previous rejection ["+a.id+"] "+c(a.value)))}function i(a,b){m.push(a,b),o||(o=!0,o=g.set(j,0))}function j(){for(o=!1;m.length>0;)m.shift()(m.shift())}var k=f,l=f;"undefined"!=typeof console&&(k="undefined"!=typeof console.error?function(a){}:function(a){},l="undefined"!=typeof console.info?function(a){}:function(a){}),a.onPotentiallyUnhandledRejection=function(a){i(d,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){i(h,a)},a.onFatalRejection=function(a){i(e,a.value)};var m=[],n=[],o=!1;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../timer":8}],6:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===m?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new n;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return k(a)?a:new b(m,new p(j(a)))}function e(a){return new b(m,new p(new t(a)))}function f(){return M}function g(){return new b(m,new n)}function h(a){function c(a,b,c,d){c.map(function(a){b[d]=a,0===--i&&this.become(new s(b))},a)}var d,e,f,g,h=new n,i=a.length>>>0,j=new Array(i);for(d=0;d0)){h.become(e);break}j[d]=e.value,--i}else j[d]=f,--i;else--i;return 0===i&&h.become(new s(j)),new b(m,h)}function i(a){if(Object(a)===a&&0===a.length)return f();var c,d,e=new n;for(c=0;c0)return new b(m,d);var e=this._beget(),f=e._handler;return d.when({resolve:f.resolve,notify:f.notify,context:f,receiver:d.receiver,fulfilled:a,rejected:c,progress:arguments.length>2?arguments[2]:void 0}),e},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._bindContext=function(a){return new b(m,new q(this._handler,a))},b.prototype._beget=function(){var a=this._handler,b=new n(a.receiver,a.join().context);return new this.constructor(m,b)},b.prototype._maybeFatal=function(a){if(C(a)){var b=j(a),c=this._handler.context;b.catchError(function(){this._fatal(c)},b)}},b.all=h,b.race=i,m.prototype.when=m.prototype.resolve=m.prototype.reject=m.prototype.notify=m.prototype._fatal=m.prototype._unreport=m.prototype._report=H,m.prototype.inspect=x,m.prototype._state=0,m.prototype.state=function(){return this._state},m.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},m.prototype.chain=function(a,b,c,d){this.when({resolve:H,notify:H,context:void 0,receiver:a,fulfilled:b,rejected:c,progress:d})},m.prototype.map=function(a,b){this.chain(b,a,b.reject,b.notify)},m.prototype.catchError=function(a,b){this.chain(b,b.resolve,a,b.notify)},m.prototype.fold=function(a,b,c){this.join().map(function(a){j(c).map(function(c){this.resolve(E(b,c,a,this.receiver))},this)},a)},G(m,n),n.prototype._state=0,n.prototype.inspect=function(){return this.resolved?this.join().inspect():x()},n.prototype.resolve=function(a){this.resolved||this.become(j(a))},n.prototype.reject=function(a){this.resolved||this.become(new t(a))},n.prototype.join=function(){if(this.resolved){for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=new w;return a}return this},n.prototype.run=function(){var a=this.consumers,b=this.join();this.consumers=void 0;for(var c=0;c0;)a.shift().run();for(this._running=!1,a=this._afterQueue;a.length>0;)a.shift()(a.shift(),a.shift())},b})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"./Queue":3}],8:[function(b,c){!function(a){"use strict";a(function(a){var b,c,d,e;b=a;try{c=b("vertx"),d=function(a,b){return c.setTimer(b,a)},e=c.cancelTimer}catch(f){d=function(a,b){return setTimeout(a,b)},e=function(a){return clearTimeout(a)}}return{set:d,clear:e}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}]},{},[1])(1)}),function(__global){function __eval(__source,__global,__moduleName){eval('var __moduleName = "'+(__moduleName||"").replace('"','"')+'"; (function() { '+__source+" \n }).call(__global);")}!function(){function a(b,c,d,e){var f,g;if(c(b,d,e)!==!1)for(f in b)b.hasOwnProperty(f)&&"location"!=f&&"type"!=f&&(g=b[f],"object"==typeof g&&null!==g&&a(g,c,b,f))}function b(b){function c(a){-1==D.call(d,a)&&d.push(a)}var d=[];return a(b,function(a){"EXPORT_DECLARATION"==a.type?a.declaration.moduleSpecifier&&c(a.declaration.moduleSpecifier.token.processedValue):"IMPORT_DECLARATION"==a.type?c(a.moduleSpecifier.token.processedValue):"MODULE_DECLARATION"==a.type&&c(a.expression.token.processedValue)}),d}function c(a){if(!z)if("undefined"==typeof window)z=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");z=__global.traceur}var c;try{var d=new z.syntax.Parser(new z.syntax.SourceFile(a.address,a.source)),e=d.parseModule();a.kind="declarative",c=b(e);var f=z.options.sourceMaps,g=z.options.modules;z.options.sourceMaps=!0,z.options.modules="instantiate";var h=new z.util.ErrorReporter;h.reportMessageInternal=function(a,b){throw new SyntaxError(b,a.start&&a.start.line_,a.start&&a.start.column_)};var i=__global.System;__global.System=__global.traceurSystem;var j=new z.codegeneration.module.AttachModuleNameTransformer(a.name).transformAny(e);j=new z.codegeneration.FromOptionsTransformer(h).transform(j);var k=new z.outputgeneration.SourceMapGenerator({file:a.address}),l={sourceMapGenerator:k},m=z.outputgeneration.TreeWriter.write(j,l);__global.btoa&&(m+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(l.sourceMap)))+"\n");var n=System.register;System.register=function(b,c,d){a.declare="string"==typeof b?d:c},__eval(m,__global,a.name)}catch(o){throw("SyntaxError"==o.name||"TypeError"==o.name)&&(o.message="Evaluating "+(a.name||a.address)+"\n "+o.message),n&&(System.register=n),i&&(__global.System=i),f&&(z.options.sourceMaps=f),g&&(z.options.modules=g),o}return System.register=n,__global.System=i,z.options.sourceMaps=f,z.options.modules=g,c}function d(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function e(a,b,c){return new B(j({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:{},moduleSource:c.source,moduleAddress:c.address}))}function f(a,b,c,e){return new B(function(d){d(a.loaderObj.normalize(b,c,e))}).then(function(b){var c;if(a.modules[b])return c=d(b),c.status="linked",c;for(var e=0,f=a.loads.length;f>e;e++)if(c=a.loads[e],c.name==b)return c;return c=d(b),a.loads.push(c),g(a,c),c})}function g(a,b){h(a,b,B.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function h(a,b,c){i(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function i(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){var e;if(void 0===d)b.address=b.address||"anon"+ ++E,e=c(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");e=d.deps||[],b.execute=d.execute,b.kind="dynamic"}b.dependencies=[],b.depsList=e;for(var g=[],h=0,i=e.length;i>h;h++)(function(c,d){g.push(f(a,c,b.name,b.address).then(function(a){if(b.dependencies[d]={key:c,value:a.name},"linked"!=a.status)for(var e=b.linkSets.concat([]),f=0,g=e.length;g>f;f++)l(e[f],a)}))})(e[h],h);return B.all(g)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)n(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)o(c[d],a)})}function j(a){return function(b){var c=a.loader,e=a.moduleName,f=a.step;if(c.modules[e])throw new TypeError('"'+e+'" already exists in the module table');for(var j=0,l=c.loads.length;l>j;j++)if(c.loads[j].name==e)throw new TypeError('"'+e+'" already loading');var m=d(e);m.metadata=a.moduleMetadata;var n=k(c,m);c.loads.push(m),b(n.done),"locate"==f?g(c,m):"fetch"==f?h(c,m,B.resolve(a.moduleAddress)):(m.address=a.moduleAddress,i(c,m,B.resolve(a.moduleSource)))}}function k(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new B(function(a,b){c.resolve=a,c.reject=b}),l(c,b),c}function l(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){l(a,e.loads[g]);break}}}function m(a){try{r(a)}catch(b){return o(a,b),!0}}function n(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0;ee;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==D.call(c.loaderObj.failed,g)&&c.loaderObj.failed.push(g);var h=D.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=D.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function p(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.kind}}b.name&&(a.modules[b.name]=b.module);var d=D.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=D.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function q(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==D.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0;e=0;f--){for(var g=c[f],h=0;hb;b++)if(this[b]===a)return b;return-1},E=0,F={};w.prototype={constructor:w,define:function(a,b,c){if(F[a])throw new TypeError("Module is already loading.");return y(a,new B(j({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(v(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,b){var c=this;return B.resolve(c.normalize(a,b&&b.name,b&&b.address)).then(function(a){var d=c._loader;return d.modules[a]?(v(d.modules[a],[],d._loader),d.modules[a].module):F[a]||y(a,e(d,a,b||{}).then(function(b){return delete F[a],t(d,b)}))})},load:function(a){return this._loader.modules[a]?(v(this._loader.modules[a],[],this._loader),B.resolve(this._loader.modules[a].module)):F[a]||y(a,e(this._loader,a,{}))},module:function(a,b){var c=d();c.address=b&&b.address;var e=k(this._loader,c),f=B.resolve(a),g=this._loader,h=e.done.then(function(){return t(g,c)});return i(g,c,f),h},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new x;for(var c in a)!function(c){A(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof x))throw new TypeError("Set must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var G=w.prototype.newModule;"object"==typeof exports&&(module.exports=w),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||w,__global.LoaderPolyfill=w}()}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function d(a,d){return d=b(d||""),a=b(a||""),d&&a?(d.protocol||a.protocol)+(d.protocol||d.authority?d.authority:a.authority)+c(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+d.pathname:a.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||a.search)+d.hash:null}function e(){document.removeEventListener("DOMContentLoaded",e,!1),window.removeEventListener("load",e,!1),f()}function f(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");1==g.length?c==f&&f.length>e.length&&(e=f):c.substr(0,g[0].length)==g[0]&&c.substr(c.length-g[1].length)==g[1]&&(e=f,b=c.substr(g[0].length,c.length-g[1].length-g[0].length))}var h=this.paths[e];return b&&(h=h.replace("*",b)),d(this.baseURL,h)},fetch:function(a){return new j(function(b,c){g(d(this.baseURL,a.address),function(a){b(a)},c)})}});if(h){var m=window.location.href.split("#")[0].split("?")[0];l.baseURL=m.substring(0,m.lastIndexOf("/")+1)}else l.baseURL="./";if(l.paths={"*":"*.js"},a.System&&a.traceur&&(a.traceurSystem=a.System),h&&(a.System=l),h){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(f):document.addEventListener&&(document.addEventListener("DOMContentLoaded",e,!1),window.addEventListener("load",e,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}"object"==typeof exports&&(module.exports=l)}("undefined"!=typeof global?global:this); \ No newline at end of file +!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;gf;++f)e[f]=d[f];else{for(a=d.length,b=this.tail;a>c;++f,++c)e[f]=d[c];for(c=0;b>c;++f,++c)e[f]=d[c]}this.buffer=e,this.head=0,this.tail=this.length},a})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],4:[function(b,c){!function(a){"use strict";a(function(a){var b,c;return b="undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick?function(a){process.nextTick(a)}:(c="function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver)?function(a,b){function c(){var a=d;d=void 0,a()}var d,e=a.createElement("div"),f=new b(c);return f.observe(e,{attributes:!0}),function(a){d=a,e.setAttribute("class","x")}}(document,c):function(a){try{return a("vertx").runOnLoop||a("vertx").runOnContext}catch(b){}var c=setTimeout;return function(a){c(a,0)}}(a)})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],5:[function(b,c){!function(a){"use strict";a(function(a){function b(a){var b="object"==typeof a&&a.stack?a.stack:c(a);return a instanceof Error?b:b+" (WARNING: non-Error used)"}function c(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=d(a,b)),b}function d(a,b){try{return JSON.stringify(a)}catch(a){return b}}function e(a){throw a}function f(){}var g=a("../timer");return function(a){function d(a){a.handled||(n.push(a),k("Potentially unhandled rejection ["+a.id+"] "+b(a.value)))}function h(a){var b=n.indexOf(a);b>=0&&(n.splice(b,1),l("Handled previous rejection ["+a.id+"] "+c(a.value)))}function i(a,b){m.push(a,b),o||(o=!0,o=g.set(j,0))}function j(){for(o=!1;m.length>0;)m.shift()(m.shift())}var k=f,l=f;"undefined"!=typeof console&&(k="undefined"!=typeof console.error?function(a){}:function(a){},l="undefined"!=typeof console.info?function(a){}:function(a){}),a.onPotentiallyUnhandledRejection=function(a){i(d,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){i(h,a)},a.onFatalRejection=function(a){i(e,a.value)};var m=[],n=[],o=!1;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../timer":8}],6:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===m?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new n;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return k(a)?a:new b(m,new p(j(a)))}function e(a){return new b(m,new p(new t(a)))}function f(){return M}function g(){return new b(m,new n)}function h(a){function c(a,b,c,d){c.map(function(a){b[d]=a,0===--i&&this.become(new s(b))},a)}var d,e,f,g,h=new n,i=a.length>>>0,j=new Array(i);for(d=0;d0)){h.become(e);break}j[d]=e.value,--i}else j[d]=f,--i;else--i;return 0===i&&h.become(new s(j)),new b(m,h)}function i(a){if(Object(a)===a&&0===a.length)return f();var c,d,e=new n;for(c=0;c0)return new b(m,d);var e=this._beget(),f=e._handler;return d.when({resolve:f.resolve,notify:f.notify,context:f,receiver:d.receiver,fulfilled:a,rejected:c,progress:arguments.length>2?arguments[2]:void 0}),e},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._bindContext=function(a){return new b(m,new q(this._handler,a))},b.prototype._beget=function(){var a=this._handler,b=new n(a.receiver,a.join().context);return new this.constructor(m,b)},b.prototype._maybeFatal=function(a){if(C(a)){var b=j(a),c=this._handler.context;b.catchError(function(){this._fatal(c)},b)}},b.all=h,b.race=i,m.prototype.when=m.prototype.resolve=m.prototype.reject=m.prototype.notify=m.prototype._fatal=m.prototype._unreport=m.prototype._report=H,m.prototype.inspect=x,m.prototype._state=0,m.prototype.state=function(){return this._state},m.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},m.prototype.chain=function(a,b,c,d){this.when({resolve:H,notify:H,context:void 0,receiver:a,fulfilled:b,rejected:c,progress:d})},m.prototype.map=function(a,b){this.chain(b,a,b.reject,b.notify)},m.prototype.catchError=function(a,b){this.chain(b,b.resolve,a,b.notify)},m.prototype.fold=function(a,b,c){this.join().map(function(a){j(c).map(function(c){this.resolve(E(b,c,a,this.receiver))},this)},a)},G(m,n),n.prototype._state=0,n.prototype.inspect=function(){return this.resolved?this.join().inspect():x()},n.prototype.resolve=function(a){this.resolved||this.become(j(a))},n.prototype.reject=function(a){this.resolved||this.become(new t(a))},n.prototype.join=function(){if(this.resolved){for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=new w;return a}return this},n.prototype.run=function(){var a=this.consumers,b=this.join();this.consumers=void 0;for(var c=0;c0;)a.shift().run();for(this._running=!1,a=this._afterQueue;a.length>0;)a.shift()(a.shift(),a.shift())},b})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"./Queue":3}],8:[function(b,c){!function(a){"use strict";a(function(a){var b,c,d,e;b=a;try{c=b("vertx"),d=function(a,b){return c.setTimer(b,a)},e=c.cancelTimer}catch(f){d=function(a,b){return setTimeout(a,b)},e=function(a){return clearTimeout(a)}}return{set:d,clear:e}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}]},{},[1])(1)}),function(__global){function __eval(__source,__global,__moduleName){eval('var __moduleName = "'+(__moduleName||"").replace('"','"')+'"; (function() { '+__source+" \n }).call(__global);")}!function(){function a(b,c,d,e){var f,g;if(c(b,d,e)!==!1)for(f in b)b.hasOwnProperty(f)&&"location"!=f&&"type"!=f&&(g=b[f],"object"==typeof g&&null!==g&&a(g,c,b,f))}function b(b){function c(a){-1==D.call(d,a)&&d.push(a)}var d=[];return a(b,function(a){"EXPORT_DECLARATION"==a.type?a.declaration.moduleSpecifier&&c(a.declaration.moduleSpecifier.token.processedValue):"IMPORT_DECLARATION"==a.type?c(a.moduleSpecifier.token.processedValue):"MODULE_DECLARATION"==a.type&&c(a.expression.token.processedValue)}),d}function c(a){if(!A)if("undefined"==typeof window)A=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");A=__global.traceur}var c,d,e,f,g;return function(){try{var h=new A.syntax.Parser(new A.syntax.SourceFile(a.address,a.source)),i=h.parseModule();a.kind="declarative",c=b(i),f=A.options.sourceMaps,g=A.options.modules,A.options.sourceMaps=!0,A.options.modules="instantiate";var j=new A.util.ErrorReporter;j.reportMessageInternal=function(a,b){throw new SyntaxError(b,a.start&&a.start.line_,a.start&&a.start.column_)},e=__global.System,__global.System=__global.traceurSystem;var k=new A.codegeneration.module.AttachModuleNameTransformer(a.name).transformAny(i);k=new A.codegeneration.FromOptionsTransformer(j).transform(k);var l=new A.outputgeneration.SourceMapGenerator({file:a.address}),m={sourceMapGenerator:l},n=A.outputgeneration.TreeWriter.write(k,m);__global.btoa&&(n+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(m.sourceMap)))+"\n"),d=System.register,System.register=function(b,c,d){a.declare="string"==typeof b?d:c},__eval(n,__global,a.name)}catch(o){throw("SyntaxError"==o.name||"TypeError"==o.name)&&(o.message="Evaluating "+(a.name||a.address)+"\n "+o.message),d&&(System.register=d),e&&(__global.System=e),f&&(A.options.sourceMaps=f),g&&(A.options.modules=g),o}}(),System.register=d,__global.System=e,A.options.sourceMaps=f,A.options.modules=g,c}function d(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function e(a,b,c){return new C(j({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:{},moduleSource:c.source,moduleAddress:c.address}))}function f(a,b,c,e){return new C(function(d){d(a.loaderObj.normalize(b,c,e))}).then(function(b){var c;if(a.modules[b])return c=d(b),c.status="linked",c;for(var e=0,f=a.loads.length;f>e;e++)if(c=a.loads[e],c.name==b)return c;return c=d(b),a.loads.push(c),g(a,c),c})}function g(a,b){h(a,b,C.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function h(a,b,c){i(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function i(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){var e;if(void 0===d)b.address=b.address||"anon"+ ++E,e=c(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");e=d.deps||[],b.execute=d.execute,b.kind="dynamic"}b.dependencies=[],b.depsList=e;for(var g=[],h=0,i=e.length;i>h;h++)(function(c,d){g.push(f(a,c,b.name,b.address).then(function(a){if(b.dependencies[d]={key:c,value:a.name},"linked"!=a.status)for(var e=b.linkSets.concat([]),f=0,g=e.length;g>f;f++)l(e[f],a)}))})(e[h],h);return C.all(g)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)n(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)o(c[d],a)})}function j(a){return function(b){var c=a.loader,e=a.moduleName,f=a.step;if(c.modules[e])throw new TypeError('"'+e+'" already exists in the module table');for(var j=0,l=c.loads.length;l>j;j++)if(c.loads[j].name==e)throw new TypeError('"'+e+'" already loading');var m=d(e);m.metadata=a.moduleMetadata;var n=k(c,m);c.loads.push(m),b(n.done),"locate"==f?g(c,m):"fetch"==f?h(c,m,C.resolve(a.moduleAddress)):(m.address=a.moduleAddress,i(c,m,C.resolve(a.moduleSource)))}}function k(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new C(function(a,b){c.resolve=a,c.reject=b}),l(c,b),c}function l(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){l(a,e.loads[g]);break}}}function m(a){try{r(a)}catch(b){return o(a,b),!0}}function n(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0;ee;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==D.call(c.loaderObj.failed,g)&&c.loaderObj.failed.push(g);var h=D.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=D.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function p(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.kind}}b.name&&(a.modules[b.name]=b.module);var d=D.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=D.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function q(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==D.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0;e=0;f--){for(var g=c[f],h=0;hb;b++)if(this[b]===a)return b;return-1},E=0,F={};x.prototype={constructor:x,define:function(a,b,c){if(F[a])throw new TypeError("Module is already loading.");return z(a,new C(j({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(v(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,b){var c=this;return C.resolve(c.normalize(a,b&&b.name,b&&b.address)).then(function(a){var d=c._loader;return d.modules[a]?(v(d.modules[a],[],d._loader),d.modules[a].module):F[a]||z(a,e(d,a,b||{}).then(function(b){return delete F[a],t(d,b)}))})},load:function(a){return this._loader.modules[a]?(v(this._loader.modules[a],[],this._loader),C.resolve(this._loader.modules[a].module)):F[a]||z(a,e(this._loader,a,{}))},module:function(a,b){var c=d();c.address=b&&b.address;var e=k(this._loader,c),f=C.resolve(a),g=this._loader,h=e.done.then(function(){return t(g,c)});return i(g,c,f),h},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){B(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Set must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var G=x.prototype.newModule;"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.LoaderPolyfill=x}()}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function d(a,d){return d=b(d||""),a=b(a||""),d&&a?(d.protocol||a.protocol)+(d.protocol||d.authority?d.authority:a.authority)+c(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+d.pathname:a.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||a.search)+d.hash:null}function e(){document.removeEventListener("DOMContentLoaded",e,!1),window.removeEventListener("load",e,!1),f()}function f(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");1==g.length?c==f&&f.length>e.length&&(e=f):c.substr(0,g[0].length)==g[0]&&c.substr(c.length-g[1].length)==g[1]&&(e=f,b=c.substr(g[0].length,c.length-g[1].length-g[0].length))}var h=this.paths[e];return b&&(h=h.replace("*",b)),d(this.baseURL,h)},fetch:function(a){return new j(function(b,c){g(d(this.baseURL,a.address),function(a){b(a)},c)})}});if(h){var m=window.location.href.split("#")[0].split("?")[0];l.baseURL=m.substring(0,m.lastIndexOf("/")+1)}else l.baseURL="./";if(l.paths={"*":"*.js"},a.System&&a.traceur&&(a.traceurSystem=a.System),h&&(a.System=l),h){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(f):document.addEventListener&&(document.addEventListener("DOMContentLoaded",e,!1),window.addEventListener("load",e,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}"object"==typeof exports&&(module.exports=l)}("undefined"!=typeof global?global:this); \ No newline at end of file diff --git a/package.json b/package.json index fe073fc..d3ba501 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "es6-module-loader", "description": "An ES6 Module Loader shim", - "version": "0.7.0", + "version": "0.7.1", "homepage": "https://github.com/ModuleLoader/es6-module-loader", "author": { "name": "Guy Bedford, Luke Hoban, Addy Osmani", @@ -41,7 +41,7 @@ "test": "cd test && node test" }, "dependencies": { - "traceur": "0.0.45", + "traceur": "0.0.49", "when": "^3.2.3" } } From 225d2089e107f25d48c92b57888cf9c22ae51fa9 Mon Sep 17 00:00:00 2001 From: Guy Bedford Date: Thu, 26 Jun 2014 12:42:12 -0700 Subject: [PATCH 014/482] update Traceur bin file links --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1cb73c2..1429c00 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ _Note the ES6 module specification is still in draft, and subject to change._ Download both [es6-module-loader.js](https://raw.githubusercontent.com/ModuleLoader/es6-module-loader/v0.7.1/dist/es6-module-loader.js) and traceur.js into the same folder. -If using ES6 syntax (optional), include `traceur.js` in the page first then include `es6-module-loader.js`: +If using ES6 syntax (optional), include [`traceur.js`](https://raw.githubusercontent.com/jmcriffey/bower-traceur/0.0.49/traceur.js) in the page first then include `es6-module-loader.js`: ```html @@ -181,7 +181,7 @@ A basic example of using this extension with a build would be the following: traceur --out app-build.js app/app.js --modules=instantiate ``` -2. If using additional ES6 features apart from modules syntax, load `traceur-runtime.js` (included in the `bin` folder when installing Traceur through Bower or npm). Then include `es6-module-loader.js` and then apply the register extension before doing the import or loading the bundle as a script: +2. If using additional ES6 features apart from modules syntax, load [`traceur-runtime.js`](https://raw.githubusercontent.com/jmcriffey/bower-traceur/0.0.49/traceur-runtime.js) (also included in the `bin` folder when installing Traceur through Bower or npm). Then include `es6-module-loader.js` and then apply the register extension before doing the import or loading the bundle as a script: ```html From 09e398abcca769d54ea74ee940d4905767bb87d6 Mon Sep 17 00:00:00 2001 From: Guy Bedford Date: Thu, 26 Jun 2014 17:23:19 -0700 Subject: [PATCH 015/482] add Reflect.global --- lib/loader.js | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/loader.js b/lib/loader.js index 5fc8d02..e53abf1 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -1129,6 +1129,7 @@ function logloads(loads) { __global.Reflect = __global.Reflect || {}; __global.Reflect.Loader = __global.Reflect.Loader || Loader; + __global.Reflect.global = __global.Reflect.global || __global; __global.LoaderPolyfill = Loader; })(); From 7bd753c49bf80c016bbe74bef45bea4a7e7722b8 Mon Sep 17 00:00:00 2001 From: johnjbarton Date: Thu, 26 Jun 2014 18:00:43 -0700 Subject: [PATCH 016/482] Make System global always. Otherwise we can't get to it in ES6 --- lib/system.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/lib/system.js b/lib/system.js index 9b6ca04..86ee247 100644 --- a/lib/system.js +++ b/lib/system.js @@ -217,12 +217,6 @@ } System.paths = { '*': '*.js' }; - if (global.System && global.traceur) - global.traceurSystem = global.System; - - if (isBrowser) - global.System = System; - // ``` From 1a4a2d50a53f1f6bc37a1d371c29351eb6e43539 Mon Sep 17 00:00:00 2001 From: guybedford Date: Tue, 8 Jul 2014 21:57:26 -0700 Subject: [PATCH 020/482] parse refactoring --- lib/system.js | 69 +++++++++++++++++++++++++-------------------------- 1 file changed, 34 insertions(+), 35 deletions(-) diff --git a/lib/system.js b/lib/system.js index a1a41d5..71f3622 100644 --- a/lib/system.js +++ b/lib/system.js @@ -16,7 +16,7 @@ var isBrowser = typeof window != 'undefined'; var Loader = global.Reflect && global.Reflect.Loader || require('./loader'); - var Promise = global.Promise || require('es6-promise').Promise; + var Promise = global.Promise || require('when/es6-shim/Promise'); // Helpers // Absolute URL parsing, from https://gist.github.com/Yaffle/1088850 @@ -266,6 +266,14 @@ System.traceurOptions = {modules: 'instantiate'}; + function checkForErrors(output, load) { + if (output.errors.length) { + for (var i = 0, l = output.errors.length; i < l; i++) + console.error(output.errors[i]); + throw new Error('Parse of ' + load.name + ', ' + load.address + ' failed, ' + output.errors.length); + } + } + // parse function is used to parse a load record // Returns an array of ModuleSpecifiers System.parse = function(load) { @@ -280,45 +288,29 @@ console.assert(load.source, 'Non-empty source'); - function checkForErrors(output) { - if (output.errors.length) { - output.errors.map(function(error) { - console.error(error); - }); - throw new Error('Parse failed, ' + output.errors.length); - } - } - var depsList; - (function () { - try { - load.kind = 'declarative'; - var compiler = new traceur.Compiler(); - var options = System.traceurOptions || {}; - var output = compiler.stringToTree({content: load.source, options: options}); - checkForErrors(output); + load.kind = 'declarative'; - depsList = getImports(output.tree); - output = compiler.treeToTree(output); - checkForErrors(output); + var compiler = new traceur.Compiler(); + var options = System.traceurOptions || {}; + var output = compiler.stringToTree({content: load.source, options: options}); + checkForErrors(output); - output = compiler.treeToString(output); - checkForErrors(output); - var source = output.js; - var sourceMap = output.generatedSourceMap; + depsList = getImports(output.tree); + output = compiler.treeToTree(output); + checkForErrors(output); - if (global.btoa && sourceMap) - source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(sourceMap))) + '\n'; + output = compiler.treeToString(output); + checkForErrors(output); + var source = output.js; + var sourceMap = output.generatedSourceMap; + + if (global.btoa && sourceMap) + source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(sourceMap))) + '\n'; + + __eval(source, global, load); - __eval(source, global, load); - } - catch(e) { - if (e.name == 'SyntaxError' || e.name == 'TypeError') - e.message = 'Evaluating ' + (load.name || load.address) + '\n\t' + e.message; - throw e; - } - }()); return depsList; } @@ -384,7 +376,14 @@ // store the registered declaration as load.declare load.declare = typeof name == 'string' ? declare : deps; } - eval('var __moduleName = "' + (load.name || '').replace('"', '\"') + '"; (function() { ' + __source + ' \n }).call(__global);'); + try { + eval('var __moduleName = "' + (load.name || '').replace('"', '\"') + '"; (function() { ' + __source + ' \n }).call(__global);'); + } + catch(e) { + if (e.name == 'SyntaxError' || e.name == 'TypeError') + e.message = 'Evaluating ' + (load.name || load.address) + '\n\t' + e.message; + throw e; + } System.register = System.__curRegister; delete System.__curRegister; From d751b21016ca3709b07837d84f50c11fc82f2cc6 Mon Sep 17 00:00:00 2001 From: guybedford Date: Fri, 11 Jul 2014 12:58:17 -0700 Subject: [PATCH 021/482] set baseURL to process.cwd --- lib/system.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/system.js b/lib/system.js index 71f3622..781e37c 100644 --- a/lib/system.js +++ b/lib/system.js @@ -319,7 +319,7 @@ System.baseURL = href.substring(0, href.lastIndexOf('/') + 1); } else { - System.baseURL = './'; + System.baseURL = process.cwd() + '/'; } System.paths = { '*': '*.js' }; From 6243ecad55ee44e39743a0507297f4fa44229690 Mon Sep 17 00:00:00 2001 From: guybedford Date: Tue, 8 Jul 2014 21:00:34 -0700 Subject: [PATCH 022/482] new system.register implementation --- lib/loader.js | 114 +++++++++++++++++++++++++++----------------------- 1 file changed, 62 insertions(+), 52 deletions(-) diff --git a/lib/loader.js b/lib/loader.js index 1e51966..3aa944f 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -471,7 +471,7 @@ function logloads(loads) { /***/ if (linkSet.loader.loaderObj.execute === false) { var loads = [].concat(linkSet.loads); - for (var i = 0; i < loads.length; i++) { + for (var i = 0, l = loads.length; i < l; i++) { var load = loads[i]; load.module = load.kind == 'dynamic' ? { module: _newModule({}) @@ -575,7 +575,7 @@ function logloads(loads) { // now add it to the group to indicate its been seen groups[load.groupIndex].push(load); - for (var i = 0; i < loads.length; i++) { + for (var i = 0, l = loads.length; i < l; i++) { var loadDep = loads[i]; // dependencies not found are already linked @@ -661,41 +661,63 @@ function logloads(loads) { } } + + // custom module records for binding graph + // store linking module records in a separate table + var moduleRecords = {}; + function getOrCreateModuleRecord(name) { + return moduleRecords[name] || (moduleRecords[name] = { + name: name, + dependencies: [], + module: new Module(), // start from an empty module and extend + importers: [], + evaluated: false + }); + } + // custom declarative linking function function linkDeclarativeModule(load, loads, loader) { if (load.module) return; - // declare the module with an empty depMap - var depMap = []; - - var registryEntry = load.declare.call(__global, depMap); - - var moduleDependencies = []; - - // module is just a plain object, until we evaluate it - var module = registryEntry.exports; - - console.assert(!load.module, 'Load module already declared!'); + var module = load.module = getOrCreateModuleRecord(load.name); + var moduleObj = load.module.module; + + var registryEntry = load.declare.call(__global, function(name, value) { + // NB This should be an Object.defineProperty, but that is very slow. + // By disaling this module write-protection we gain performance. + // It could be useful to allow an option to enable or disable this. + moduleObj[name] = value; + + for (var i = 0, l = module.importers.length; i < l; i++) { + var importerModule = module.importers[i]; + if (importerModule.setters) { + var importerIndex = importerModule.dependencies.indexOf(module); + if (importerIndex != -1) { + var setter = importerModule.setters[importerIndex]; + setter(moduleObj); + } + } + } + return value; + }); - load.module = { - name: load.name, - dependencies: moduleDependencies, - execute: registryEntry.execute, - exports: module, - evaluated: false - }; + // setup our setters and execution function + load.module.setters = registryEntry.setters; + load.module.execute = registryEntry.execute; // now link all the module dependencies // amending the depMap as we go - for (var i = 0; i < load.dependencies.length; i++) { + for (var i = 0, l = load.dependencies.length; i < l; i++) { var depName = load.dependencies[i].value; - var depModule; - // if dependency already a module, use that - if (loader.modules[depName]) { - depModule = loader.modules[depName]; - } - else { + var depModule = getOrCreateModuleRecord(depName); + + depModule.importers.push(module); + + // if not already a module in the registry, try and link it now + if (!loader.modules[depName]) { + + // get the dependency load record for (var j = 0; j < loads.length; j++) { if (loads[j].name != depName) continue; @@ -703,35 +725,16 @@ function logloads(loads) { // only link if already not already started linking (stops at circular / dynamic) if (!loads[j].module) linkDeclarativeModule(loads[j], loads, loader); - - depModule = loads[j].module; } } - var depModuleModule = depModule.exports || depModule.module; - console.assert(depModule, 'Dependency module not found!'); - if (registryEntry.exportStar && indexOf.call(registryEntry.exportStar, load.dependencies[i].key) != -1) { - // we are exporting * from this dependency - (function(depModuleModule) { - for (var p in depModuleModule) (function(p) { - // if the property is already defined throw? - defineProperty(module, p, { - enumerable: true, - get: function() { - return depModuleModule[p]; - }, - set: function(value) { - depModuleModule[p] = value; - } - }); - })(p); - })(depModuleModule); - } + module.dependencies.push(depModule); - moduleDependencies.push(depModule); - depMap[i] = depModuleModule; + // run the setter for this dependency + if (module.setters[i]) + module.setters[i](depModule.module); } load.status = 'linked'; @@ -759,6 +762,7 @@ function logloads(loads) { * module.module bound module object * module.execute execution function for module * module.dependencies list of module objects for dependencies + * See getOrCreateModuleRecord for all properties * */ function doExecute(module) { @@ -787,7 +791,7 @@ function logloads(loads) { var deps = module.dependencies; var err; - for (var i = 0; i < deps.length; i++) { + for (var i = 0, l = deps.length; i < l; i++) { var dep = deps[i]; if (indexOf.call(seen, dep) == -1) { err = ensureEvaluated(dep, seen, loader); @@ -807,7 +811,13 @@ function logloads(loads) { err = doExecute(module); if (err) module.failed = true; - module.module = _newModule(module.exports); + + // spec variation + // we don't create a new module here because it was created and ammended + // we just disable further extensions instead + if (Object.preventExtensions) + Object.preventExtensions(module.module); + module.execute = undefined; return err; } From 3dec46033c70ac2b3cb58188df509ba5d447af5f Mon Sep 17 00:00:00 2001 From: guybedford Date: Tue, 8 Jul 2014 21:01:45 -0700 Subject: [PATCH 023/482] rebinding fix --- test/test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test.js b/test/test.js index c55e701..62a2eb7 100644 --- a/test/test.js +++ b/test/test.js @@ -337,7 +337,7 @@ function runTests() { test('Re-export binding', function(assert, err) { System['import']('syntax/reexport-binding').then(function(m) { System['import']('syntax/rebinding').then(function(m) { - assert(m.p, 3); + assert(m.p, 4); }); }, err); }); From d9a99fb9f570564da9a2ded5a6623483c6f30ea7 Mon Sep 17 00:00:00 2001 From: johnjbarton Date: Mon, 14 Jul 2014 07:15:19 -0700 Subject: [PATCH 024/482] Add test System instanceof Loader --- test/test.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/test.js b/test/test.js index c55e701..284083f 100644 --- a/test/test.js +++ b/test/test.js @@ -558,4 +558,8 @@ function runTests() { assert(m.n, 'n'); }); }); + + test('System instanceof Loader', function(assert) { + assert(System instanceof Reflect.Loader, true); + }); } From 9d4f3ca5a2844ac5b825e8d56dc795bad0705d49 Mon Sep 17 00:00:00 2001 From: guybedford Date: Tue, 15 Jul 2014 17:07:16 -0700 Subject: [PATCH 025/482] remove setter conditionals, adjust tests --- lib/loader.js | 12 +++--------- test/syntax/circular2.js | 2 ++ test/syntax/even.js | 4 +++- test/test.js | 7 ++++--- 4 files changed, 12 insertions(+), 13 deletions(-) diff --git a/lib/loader.js b/lib/loader.js index 3aa944f..823d982 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -691,13 +691,8 @@ function logloads(loads) { for (var i = 0, l = module.importers.length; i < l; i++) { var importerModule = module.importers[i]; - if (importerModule.setters) { - var importerIndex = importerModule.dependencies.indexOf(module); - if (importerIndex != -1) { - var setter = importerModule.setters[importerIndex]; - setter(moduleObj); - } - } + var importerIndex = importerModule.dependencies.indexOf(module); + importerModule.setters[importerIndex](moduleObj); } return value; }); @@ -712,8 +707,6 @@ function logloads(loads) { var depName = load.dependencies[i].value; var depModule = getOrCreateModuleRecord(depName); - depModule.importers.push(module); - // if not already a module in the registry, try and link it now if (!loader.modules[depName]) { @@ -731,6 +724,7 @@ function logloads(loads) { console.assert(depModule, 'Dependency module not found!'); module.dependencies.push(depModule); + depModule.importers.push(module); // run the setter for this dependency if (module.setters[i]) diff --git a/test/syntax/circular2.js b/test/syntax/circular2.js index bf80499..1f04447 100644 --- a/test/syntax/circular2.js +++ b/test/syntax/circular2.js @@ -2,6 +2,8 @@ import {fn1, variable1} from './circular1'; export var variable2 = 'test circular 2'; +export { output as output1 } from './circular1'; + fn1(); export var output; diff --git a/test/syntax/even.js b/test/syntax/even.js index c6b6af7..ae99b74 100644 --- a/test/syntax/even.js +++ b/test/syntax/even.js @@ -5,4 +5,6 @@ export var counter = 0; export function even(n) { counter++; return n == 0 || odd(n - 1); -} \ No newline at end of file +} + +odd(1); \ No newline at end of file diff --git a/test/test.js b/test/test.js index 62a2eb7..77f0b54 100644 --- a/test/test.js +++ b/test/test.js @@ -211,7 +211,8 @@ function runTests() { System['import']('syntax/circular2').then(function(m2) { assert( [m2.output, 'test circular 1'], - [m1.output, 'test circular 2'] + [m1.output, 'test circular 2'], + [m2.output1, 'test circular 2'] ); }, err); }, err); @@ -221,9 +222,9 @@ function runTests() { System['import']('syntax/even').then(function(m) { assert( [m.even(10), true], - [m.counter, 6], + [m.counter, 7], [m.even(15), false], - [m.counter, 14] + [m.counter, 15] ); }, err); }); From 149dbf1fa50d297f66e263dcca38a0250b5e75de Mon Sep 17 00:00:00 2001 From: guybedford Date: Tue, 15 Jul 2014 17:58:45 -0700 Subject: [PATCH 026/482] early binding --- lib/loader.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/loader.js b/lib/loader.js index 823d982..dc0900e 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -707,6 +707,9 @@ function logloads(loads) { var depName = load.dependencies[i].value; var depModule = getOrCreateModuleRecord(depName); + depModule.importers.push(module); + module.dependencies.push(depModule); + // if not already a module in the registry, try and link it now if (!loader.modules[depName]) { @@ -723,9 +726,6 @@ function logloads(loads) { console.assert(depModule, 'Dependency module not found!'); - module.dependencies.push(depModule); - depModule.importers.push(module); - // run the setter for this dependency if (module.setters[i]) module.setters[i](depModule.module); From 92093ced7a3075bb4d74227b46bd0e7b06c5ee7e Mon Sep 17 00:00:00 2001 From: guybedford Date: Wed, 16 Jul 2014 15:25:20 -0700 Subject: [PATCH 027/482] implement locking --- lib/loader.js | 9 +++++++-- test/syntax/circular1.js | 2 ++ test/test.js | 3 ++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/loader.js b/lib/loader.js index dc0900e..b8c8afc 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -687,13 +687,18 @@ function logloads(loads) { // NB This should be an Object.defineProperty, but that is very slow. // By disaling this module write-protection we gain performance. // It could be useful to allow an option to enable or disable this. + module.locked = true; moduleObj[name] = value; for (var i = 0, l = module.importers.length; i < l; i++) { var importerModule = module.importers[i]; - var importerIndex = importerModule.dependencies.indexOf(module); - importerModule.setters[importerIndex](moduleObj); + if (!importerModule.locked) { + var importerIndex = importerModule.dependencies.indexOf(module); + importerModule.setters[importerIndex](moduleObj); + } } + + module.locked = false; return value; }); diff --git a/test/syntax/circular1.js b/test/syntax/circular1.js index 2646f39..ee8a350 100644 --- a/test/syntax/circular1.js +++ b/test/syntax/circular1.js @@ -2,6 +2,8 @@ import {fn2, variable2} from './circular2'; export var variable1 = 'test circular 1'; +export { output as output2 } from './circular2'; + fn2(); export var output; diff --git a/test/test.js b/test/test.js index 77f0b54..a705b3f 100644 --- a/test/test.js +++ b/test/test.js @@ -212,7 +212,8 @@ function runTests() { assert( [m2.output, 'test circular 1'], [m1.output, 'test circular 2'], - [m2.output1, 'test circular 2'] + [m2.output1, 'test circular 2'], + [m1.output2, 'test circular 1'] ); }, err); }, err); From 3cca2b776459bac8b7f8117f1580a18628481fbd Mon Sep 17 00:00:00 2001 From: Jan Sauer Date: Mon, 21 Jul 2014 02:38:40 +0200 Subject: [PATCH 028/482] Fix baseURL documentation in README.md As far as I can see the `baseURL` is trimmed until the last index of `/`. So in order to achieve the load from `/js/lib/module.js` there is a trailing slash needed. I have only tested it in the browser. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 61b9c83..8160cf9 100644 --- a/README.md +++ b/README.md @@ -85,7 +85,7 @@ All modules are loaded relative to the `baseURL`, which by default is set to the We can alter this with: ```javascript - System.baseURL = '/js/lib'; + System.baseURL = '/js/lib/'; System.import('module'); // now loads "/js/lib/module.js" ``` From cbf08b452f8932e2e62e0aef98b1f9efd14a1331 Mon Sep 17 00:00:00 2001 From: johnjbarton Date: Mon, 21 Jul 2014 08:51:06 -0700 Subject: [PATCH 029/482] Don't create a Module if the evaluation fails. --- lib/loader.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/loader.js b/lib/loader.js index 1e51966..6d9f559 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -807,7 +807,8 @@ function logloads(loads) { err = doExecute(module); if (err) module.failed = true; - module.module = _newModule(module.exports); + else + module.module = _newModule(module.exports); module.execute = undefined; return err; } @@ -968,7 +969,7 @@ function logloads(loads) { // 26.3.3.14 set: function(name, module) { if (!(module instanceof Module)) - throw new TypeError('Set must be a module'); + throw new TypeError('Loader.set(' + name + ', module) must be a module'); this._loader.modules[name] = { module: module }; From 541c51ed46e12e955506d81adc8f1d90a3da4357 Mon Sep 17 00:00:00 2001 From: Matthew Phillips Date: Thu, 24 Jul 2014 07:52:51 -0400 Subject: [PATCH 030/482] Make exact matches win for path lookup This fixes a bug where when a wildcard path is specified *after* an exact path the wildcard would win. The reason is that for/in loops go in the order that the keys were defined. Deleting the key and readding it shows the error. The fix is simply to break out the loop once we find an exact match. Fixes #189 --- lib/system.js | 4 +++- test/test.js | 2 ++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/system.js b/lib/system.js index 781e37c..81bd106 100644 --- a/lib/system.js +++ b/lib/system.js @@ -235,8 +235,10 @@ // exact path match if (pathParts.length == 1) { - if (name == p && p.length > pathMatch.length) + if (name == p && p.length > pathMatch.length) { pathMatch = p; + break; + } } // wildcard path match diff --git a/test/test.js b/test/test.js index c55e701..0862867 100644 --- a/test/test.js +++ b/test/test.js @@ -388,7 +388,9 @@ function runTests() { }); test('Custom path most specific', function(assert) { + delete System.paths['bar/*']; System.paths['bar/bar'] = 'loader/specific-path.js'; + System.paths['bar/*'] = 'loader/custom-folder/*.js'; System['import']('bar/bar').then(function(m) { assert(m.path, true); }); From af3722d274b8a6a4460baa9515d2b4ab08ea199c Mon Sep 17 00:00:00 2001 From: guybedford Date: Mon, 28 Jul 2014 16:07:14 -0700 Subject: [PATCH 031/482] updates, move Loader.prototype.parse into loader implementation --- lib/loader.js | 88 +++++++- lib/system.js | 540 +++++++++++++++++++------------------------------- package.json | 4 +- 3 files changed, 292 insertions(+), 340 deletions(-) diff --git a/lib/loader.js b/lib/loader.js index ca4f51e..231de8b 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -262,14 +262,14 @@ function logloads(loads) { if (load.status != 'loading') return; - var depsList; if (instantiateResult === undefined) { load.address = load.address || 'anon' + ++anonCnt; load.kind = 'declarative'; - depsList = loader.loaderObj.parse(load); + // parse sets load.declare, load.depsList + loader.loaderObj.parse(load); } else if (typeof instantiateResult == 'object') { - depsList = instantiateResult.deps || []; + load.depsList = instantiateResult.deps || []; load.execute = instantiateResult.execute; load.kind = 'dynamic'; } @@ -278,7 +278,7 @@ function logloads(loads) { // 15.2.4.6 ProcessLoadDependencies load.dependencies = []; - load.depsList = depsList; + var depsList = load.depsList; var loadPromises = []; for (var i = 0, l = depsList.length; i < l; i++) (function(request, index) { @@ -1012,6 +1012,58 @@ function logloads(loads) { var _newModule = Loader.prototype.newModule; + + /* + * Traceur-specific Parsing Code for Loader + */ + (function() { + function checkForErrors(output, load) { + if (output.errors.length) { + for (var i = 0, l = output.errors.length; i < l; i++) + console.error(output.errors[i]); + throw new Error('Parse of ' + load.name + ', ' + load.address + ' failed, ' + output.errors.length); + } + } + + // parse function is used to parse a load record + // Returns an array of ModuleSpecifiers + Loader.prototype.parse = function(load) { + if (!traceur) { + if (typeof window == 'undefined') + traceur = require('traceur'); + else if (__global.traceur) + traceur = __global.traceur; + else + throw new TypeError('Include Traceur for module syntax support'); + } + + console.assert(load.source, 'Non-empty source'); + + var depsList; + + load.kind = 'declarative'; + + var compiler = new traceur.Compiler(); + var options = System.traceurOptions || {}; + options.modules = 'instantiate'; + var output = compiler.stringToTree({content: load.source, options: options}); + checkForErrors(output); + + output = compiler.treeToTree(output); + checkForErrors(output); + + output = compiler.treeToString(output); + checkForErrors(output); + var source = output.js; + var sourceMap = output.generatedSourceMap; + + if (__global.btoa && sourceMap) + source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(sourceMap))) + '\n'; + + __eval(source, __global, load); + } + })(); + if (typeof exports === 'object') module.exports = Loader; @@ -1022,4 +1074,32 @@ function logloads(loads) { })(); + // Define our eval outside of the scope of any other reference defined in this + // file to avoid adding those references to the evaluation scope. + var __curRegister; + function __eval(__source, __global, load) { + // Hijack System.register to set declare function + __curRegister = System.register; + System.register = function(name, deps, declare) { + if (typeof name != 'string') { + declare = deps; + deps = name; + } + // store the registered declaration as load.declare + // store the deps as load.deps + load.declare = declare; + load.depsList = deps; + } + try { + eval('var __moduleName = "' + (load.name || '').replace('"', '\"') + '"; (function() { ' + __source + ' \n }).call(__global);'); + } + catch(e) { + if (e.name == 'SyntaxError' || e.name == 'TypeError') + e.message = 'Evaluating ' + (load.name || load.address) + '\n\t' + e.message; + throw e; + } + + System.register = __curRegister; + } + })(typeof global !== 'undefined' ? global : this); diff --git a/lib/system.js b/lib/system.js index 81bd106..7d26128 100644 --- a/lib/system.js +++ b/lib/system.js @@ -12,383 +12,255 @@ (function (global) { - (function() { - - var isBrowser = typeof window != 'undefined'; - var Loader = global.Reflect && global.Reflect.Loader || require('./loader'); - var Promise = global.Promise || require('when/es6-shim/Promise'); - - // Helpers - // Absolute URL parsing, from https://gist.github.com/Yaffle/1088850 - function parseURI(url) { - var m = String(url).replace(/^\s+|\s+$/g, '').match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/); - // authority = '//' + user + ':' + pass '@' + hostname + ':' port - return (m ? { - href : m[0] || '', - protocol : m[1] || '', - authority: m[2] || '', - host : m[3] || '', - hostname : m[4] || '', - port : m[5] || '', - pathname : m[6] || '', - search : m[7] || '', - hash : m[8] || '' - } : null); - } - function removeDotSegments(input) { - var output = []; - input.replace(/^(\.\.?(\/|$))+/, '') - .replace(/\/(\.(\/|$))+/g, '/') - .replace(/\/\.\.$/, '/../') - .replace(/\/?[^\/]*/g, function (p) { - if (p === '/..') - output.pop(); - else - output.push(p); - }); - return output.join('').replace(/^\//, input.charAt(0) === '/' ? '/' : ''); - } - function toAbsoluteURL(base, href) { + var isBrowser = typeof window != 'undefined'; + var Loader = global.Reflect && global.Reflect.Loader || require('./loader'); + var Promise = global.Promise || require('when/es6-shim/Promise'); + + // Helpers + // Absolute URL parsing, from https://gist.github.com/Yaffle/1088850 + function parseURI(url) { + var m = String(url).replace(/^\s+|\s+$/g, '').match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/); + // authority = '//' + user + ':' + pass '@' + hostname + ':' port + return (m ? { + href : m[0] || '', + protocol : m[1] || '', + authority: m[2] || '', + host : m[3] || '', + hostname : m[4] || '', + port : m[5] || '', + pathname : m[6] || '', + search : m[7] || '', + hash : m[8] || '' + } : null); + } + function removeDotSegments(input) { + var output = []; + input.replace(/^(\.\.?(\/|$))+/, '') + .replace(/\/(\.(\/|$))+/g, '/') + .replace(/\/\.\.$/, '/../') + .replace(/\/?[^\/]*/g, function (p) { + if (p === '/..') + output.pop(); + else + output.push(p); + }); + return output.join('').replace(/^\//, input.charAt(0) === '/' ? '/' : ''); + } + function toAbsoluteURL(base, href) { - href = parseURI(href || ''); - base = parseURI(base || ''); + href = parseURI(href || ''); + base = parseURI(base || ''); - return !href || !base ? null : (href.protocol || base.protocol) + - (href.protocol || href.authority ? href.authority : base.authority) + - removeDotSegments(href.protocol || href.authority || href.pathname.charAt(0) === '/' ? href.pathname : (href.pathname ? ((base.authority && !base.pathname ? '/' : '') + base.pathname.slice(0, base.pathname.lastIndexOf('/') + 1) + href.pathname) : base.pathname)) + - (href.protocol || href.authority || href.pathname ? href.search : (href.search || base.search)) + - href.hash; - } + return !href || !base ? null : (href.protocol || base.protocol) + + (href.protocol || href.authority ? href.authority : base.authority) + + removeDotSegments(href.protocol || href.authority || href.pathname.charAt(0) === '/' ? href.pathname : (href.pathname ? ((base.authority && !base.pathname ? '/' : '') + base.pathname.slice(0, base.pathname.lastIndexOf('/') + 1) + href.pathname) : base.pathname)) + + (href.protocol || href.authority || href.pathname ? href.search : (href.search || base.search)) + + href.hash; + } - var fetchTextFromURL; - if (isBrowser) { - fetchTextFromURL = function(url, fulfill, reject) { - var xhr = new XMLHttpRequest(); - var sameDomain = true; - if (!('withCredentials' in xhr)) { - // check if same domain - var domainCheck = /^(\w+:)?\/\/([^\/]+)/.exec(url); - if (domainCheck) { - sameDomain = domainCheck[2] === window.location.host; - if (domainCheck[1]) - sameDomain &= domainCheck[1] === window.location.protocol; - } + var fetchTextFromURL; + if (isBrowser) { + fetchTextFromURL = function(url, fulfill, reject) { + var xhr = new XMLHttpRequest(); + var sameDomain = true; + if (!('withCredentials' in xhr)) { + // check if same domain + var domainCheck = /^(\w+:)?\/\/([^\/]+)/.exec(url); + if (domainCheck) { + sameDomain = domainCheck[2] === window.location.host; + if (domainCheck[1]) + sameDomain &= domainCheck[1] === window.location.protocol; } - if (!sameDomain) { - xhr = new XDomainRequest(); - xhr.onload = load; - xhr.onerror = error; - xhr.ontimeout = error; - } - function load() { - fulfill(xhr.responseText); - } - function error() { - reject(xhr.statusText + ': ' + url || 'XHR error'); - } - - xhr.onreadystatechange = function () { - if (xhr.readyState === 4) { - if (xhr.status === 200 || (xhr.status == 0 && xhr.responseText)) { - load(); - } else { - error(); - } - } - }; - xhr.open("GET", url, true); - xhr.send(null); } - } - else { - var fs; - fetchTextFromURL = function(url, fulfill, reject) { - fs = fs || require('fs'); - return fs.readFile(url, function(err, data) { - if (err) - return reject(err); - else - fulfill(data + ''); - }); + if (!sameDomain) { + xhr = new XDomainRequest(); + xhr.onload = load; + xhr.onerror = error; + xhr.ontimeout = error; } - } - - // IE8 support - var indexOf = Array.prototype.indexOf || function(item) { - for (var i = 0, thisLen = this.length; i < thisLen; i++) { - if (this[i] === item) { - return i; - } + function load() { + fulfill(xhr.responseText); } - return -1; - }; - - // given a syntax tree, return the import list - function getImports(moduleTree) { - var imports = []; - - function addImport(name) { - if (indexOf.call(imports, name) == -1) - imports.push(name); - } - - // tree traversal, NB should use visitor pattern here - function traverse(object, iterator, parent, parentProperty) { - var key, child; - if (iterator(object, parent, parentProperty) === false) - return; - for (key in object) { - if (!object.hasOwnProperty(key)) - continue; - if (key == 'location' || key == 'type') - continue; - child = object[key]; - if (typeof child == 'object' && child !== null) - traverse(child, iterator, object, key); - } + function error() { + reject(xhr.statusText + ': ' + url || 'XHR error'); } - traverse(moduleTree, function(node) { - // import {} from 'foo'; - // export * from 'foo'; - // export { ... } from 'foo'; - // module x from 'foo'; - if (node.type == 'EXPORT_DECLARATION') { - if (node.declaration.moduleSpecifier) - addImport(node.declaration.moduleSpecifier.token.processedValue); + xhr.onreadystatechange = function () { + if (xhr.readyState === 4) { + if (xhr.status === 200 || (xhr.status == 0 && xhr.responseText)) { + load(); + } else { + error(); + } } - else if (node.type == 'IMPORT_DECLARATION') - addImport(node.moduleSpecifier.token.processedValue); - else if (node.type == 'MODULE_DECLARATION') - addImport(node.expression.token.processedValue); + }; + xhr.open("GET", url, true); + xhr.send(null); + } + } + else { + var fs; + fetchTextFromURL = function(url, fulfill, reject) { + fs = fs || require('fs'); + return fs.readFile(url, function(err, data) { + if (err) + return reject(err); + else + fulfill(data + ''); }); - return imports; } + } - var System = new Loader({ - global: isBrowser ? window : global, - strict: true, - normalize: function(name, parentName, parentAddress) { - if (typeof name != 'string') - throw new TypeError('Module name must be a string'); - - var segments = name.split('/'); - - if (segments.length == 0) - throw new TypeError('No module name provided'); - - // current segment - var i = 0; - // is the module name relative - var rel = false; - // number of backtracking segments - var dotdots = 0; - if (segments[0] == '.') { + var System = new Loader({ + global: isBrowser ? window : global, + strict: true, + normalize: function(name, parentName, parentAddress) { + if (typeof name != 'string') + throw new TypeError('Module name must be a string'); + + var segments = name.split('/'); + + if (segments.length == 0) + throw new TypeError('No module name provided'); + + // current segment + var i = 0; + // is the module name relative + var rel = false; + // number of backtracking segments + var dotdots = 0; + if (segments[0] == '.') { + i++; + if (i == segments.length) + throw new TypeError('Illegal module name "' + name + '"'); + rel = true; + } + else { + while (segments[i] == '..') { i++; if (i == segments.length) throw new TypeError('Illegal module name "' + name + '"'); - rel = true; - } - else { - while (segments[i] == '..') { - i++; - if (i == segments.length) - throw new TypeError('Illegal module name "' + name + '"'); - } - if (i) - rel = true; - dotdots = i; } + if (i) + rel = true; + dotdots = i; + } - for (var j = i; j < segments.length; j++) { - var segment = segments[j]; - if (segment == '' || segment == '.' || segment == '..') - throw new TypeError('Illegal module name "' + name + '"'); - } + for (var j = i; j < segments.length; j++) { + var segment = segments[j]; + if (segment == '' || segment == '.' || segment == '..') + throw new TypeError('Illegal module name "' + name + '"'); + } - if (!rel) - return name; + if (!rel) + return name; - // build the full module name - var normalizedParts = []; - var parentParts = (parentName || '').split('/'); - var normalizedLen = parentParts.length - 1 - dotdots; + // build the full module name + var normalizedParts = []; + var parentParts = (parentName || '').split('/'); + var normalizedLen = parentParts.length - 1 - dotdots; - normalizedParts = normalizedParts.concat(parentParts.splice(0, parentParts.length - 1 - dotdots)); - normalizedParts = normalizedParts.concat(segments.splice(i, segments.length - i)); + normalizedParts = normalizedParts.concat(parentParts.splice(0, parentParts.length - 1 - dotdots)); + normalizedParts = normalizedParts.concat(segments.splice(i, segments.length - i)); - return normalizedParts.join('/'); - }, - locate: function(load) { - var name = load.name; + return normalizedParts.join('/'); + }, + locate: function(load) { + var name = load.name; - // NB no specification provided for System.paths, used ideas discussed in https://github.com/jorendorff/js-loaders/issues/25 + // NB no specification provided for System.paths, used ideas discussed in https://github.com/jorendorff/js-loaders/issues/25 - // most specific (longest) match wins - var pathMatch = '', wildcard; + // most specific (longest) match wins + var pathMatch = '', wildcard; - // check to see if we have a paths entry - for (var p in this.paths) { - var pathParts = p.split('*'); - if (pathParts.length > 2) - throw new TypeError('Only one wildcard in a path is permitted'); + // check to see if we have a paths entry + for (var p in this.paths) { + var pathParts = p.split('*'); + if (pathParts.length > 2) + throw new TypeError('Only one wildcard in a path is permitted'); - // exact path match - if (pathParts.length == 1) { - if (name == p && p.length > pathMatch.length) { - pathMatch = p; - break; - } + // exact path match + if (pathParts.length == 1) { + if (name == p && p.length > pathMatch.length) { + pathMatch = p; + break; } + } - // wildcard path match - else { - if (name.substr(0, pathParts[0].length) == pathParts[0] && name.substr(name.length - pathParts[1].length) == pathParts[1]) { - pathMatch = p; - wildcard = name.substr(pathParts[0].length, name.length - pathParts[1].length - pathParts[0].length); - } + // wildcard path match + else { + if (name.substr(0, pathParts[0].length) == pathParts[0] && name.substr(name.length - pathParts[1].length) == pathParts[1]) { + pathMatch = p; + wildcard = name.substr(pathParts[0].length, name.length - pathParts[1].length - pathParts[0].length); } } - - var outPath = this.paths[pathMatch]; - if (wildcard) - outPath = outPath.replace('*', wildcard); - - return toAbsoluteURL(this.baseURL, outPath); - }, - fetch: function(load) { - return new Promise(function(resolve, reject) { - fetchTextFromURL(toAbsoluteURL(this.baseURL, load.address), function(source) { - resolve(source); - }, reject); - }); - }, - }); - // --- --- - - System.traceurOptions = {modules: 'instantiate'}; - - function checkForErrors(output, load) { - if (output.errors.length) { - for (var i = 0, l = output.errors.length; i < l; i++) - console.error(output.errors[i]); - throw new Error('Parse of ' + load.name + ', ' + load.address + ' failed, ' + output.errors.length); - } - } - - // parse function is used to parse a load record - // Returns an array of ModuleSpecifiers - System.parse = function(load) { - if (!traceur) { - if (typeof window == 'undefined') - traceur = require('traceur'); - else if (global.traceur) - traceur = global.traceur; - else - throw new TypeError('Include Traceur for module syntax support'); } - console.assert(load.source, 'Non-empty source'); - - var depsList; - - load.kind = 'declarative'; - - var compiler = new traceur.Compiler(); - var options = System.traceurOptions || {}; - var output = compiler.stringToTree({content: load.source, options: options}); - checkForErrors(output); - - depsList = getImports(output.tree); - output = compiler.treeToTree(output); - checkForErrors(output); - - output = compiler.treeToString(output); - checkForErrors(output); - var source = output.js; - var sourceMap = output.generatedSourceMap; - - if (global.btoa && sourceMap) - source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(sourceMap))) + '\n'; - - __eval(source, global, load); - - return depsList; - } + var outPath = this.paths[pathMatch]; + if (wildcard) + outPath = outPath.replace('*', wildcard); + + return toAbsoluteURL(this.baseURL, outPath); + }, + fetch: function(load) { + return new Promise(function(resolve, reject) { + fetchTextFromURL(toAbsoluteURL(this.baseURL, load.address), function(source) { + resolve(source); + }, reject); + }); + }, + }); - if (isBrowser) { - var href = window.location.href.split('#')[0].split('?')[0]; - System.baseURL = href.substring(0, href.lastIndexOf('/') + 1); - } - else { - System.baseURL = process.cwd() + '/'; + if (isBrowser) { + var href = window.location.href.split('#')[0].split('?')[0]; + System.baseURL = href.substring(0, href.lastIndexOf('/') + 1); + } + else { + System.baseURL = process.cwd() + '/'; + } + System.paths = { '*': '*.js' }; + + // @@ -177,7 +177,7 @@ A basic example of using this extension with a build would be the following: traceur --out app-build.js app/app.js --modules=instantiate ``` -2. If using additional ES6 features apart from modules syntax, load [`traceur-runtime.js`](https://raw.githubusercontent.com/jmcriffey/bower-traceur/0.0.49/traceur-runtime.js) (also included in the `bin` folder when installing Traceur through Bower or npm). Then include `es6-module-loader.js` and then apply the register extension before doing the import or loading the bundle as a script: +2. If using additional ES6 features apart from modules syntax, load [`traceur-runtime.js`](https://raw.githubusercontent.com/jmcriffey/bower-traceur/0.0.51/traceur-runtime.js) (also included in the `bin` folder when installing Traceur through Bower or npm). Then include `es6-module-loader.js` and then apply the register extension before doing the import or loading the bundle as a script: ```html From dcc176275211f8c80c251a505a4dc9c7c3ec20d2 Mon Sep 17 00:00:00 2001 From: nd0ut Date: Mon, 4 Aug 2014 13:46:08 +0400 Subject: [PATCH 043/482] Update bower.json bower-traceur last 0.0.51 --- bower.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bower.json b/bower.json index cecadcb..73560e3 100644 --- a/bower.json +++ b/bower.json @@ -5,7 +5,7 @@ "homepage": "https://github.com/ModuleLoader/es6-module-loader", "main": "dist/es6-module-loader-sans-promises.js", "dependencies": { - "traceur": "0.0.52" + "traceur": "0.0.51" }, "keywords": [ "es6", From 2087d507f51af8a595ed80dc1b90b5b4711df381 Mon Sep 17 00:00:00 2001 From: guybedford Date: Mon, 4 Aug 2014 19:46:22 -0700 Subject: [PATCH 044/482] fix source mapsg --- lib/loader.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/loader.js b/lib/loader.js index b7a5bcd..46755c8 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -1056,6 +1056,8 @@ function logloads(loads) { var compiler = new traceur.Compiler(); var options = System.traceurOptions || {}; options.modules = 'instantiate'; + options.sourceMaps = true; + options.filename = load.address; var output = compiler.stringToTree({content: load.source, options: options}); checkForErrors(output); @@ -1064,6 +1066,7 @@ function logloads(loads) { output = compiler.treeToString(output); checkForErrors(output); + var source = output.js; var sourceMap = output.generatedSourceMap; From 38f1c12466ae66b0cf5ad796ef7d8b3dd1b6cbcb Mon Sep 17 00:00:00 2001 From: guybedford Date: Tue, 5 Aug 2014 18:26:18 -0700 Subject: [PATCH 045/482] 0.8.0 module syntax update --- README.md | 8 ++++---- bower.json | 4 ++-- dist/es6-module-loader-sans-promises.min.js | 2 +- dist/es6-module-loader.min.js | 2 +- package.json | 4 ++-- test/syntax/es6-file.js | 2 +- test/syntax/import.js | 2 +- 7 files changed, 12 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index f3874bb..b434bb8 100644 --- a/README.md +++ b/README.md @@ -17,15 +17,15 @@ See the [demo folder](https://github.com/ModuleLoader/es6-module-loader/blob/mas For an example of a universal module loader based on this polyfill for loading AMD, CommonJS and globals, see [SystemJS](https://github.com/systemjs/systemjs). -_The current version is tested against **[Traceur 0.0.52](https://github.com/google/traceur-compiler/tree/0.0.52)**._ +_The current version is tested against **[Traceur 0.0.55](https://github.com/google/traceur-compiler/tree/0.0.55)**._ _Note the ES6 module specification is still in draft, and subject to change._ ### Basic Use -Download both [es6-module-loader.js](https://raw.githubusercontent.com/ModuleLoader/es6-module-loader/v0.7.2/dist/es6-module-loader.js) and traceur.js into the same folder. +Download both [es6-module-loader.js](https://raw.githubusercontent.com/ModuleLoader/es6-module-loader/v0.8.0/dist/es6-module-loader.js) and traceur.js into the same folder. -If using ES6 syntax (optional), include [`traceur.js`](https://raw.githubusercontent.com/jmcriffey/bower-traceur/0.0.51/traceur.js) in the page first then include `es6-module-loader.js`: +If using ES6 syntax (optional), include [`traceur.js`](https://raw.githubusercontent.com/jmcriffey/bower-traceur/0.0.55/traceur.js) in the page first then include `es6-module-loader.js`: ```html @@ -177,7 +177,7 @@ A basic example of using this extension with a build would be the following: traceur --out app-build.js app/app.js --modules=instantiate ``` -2. If using additional ES6 features apart from modules syntax, load [`traceur-runtime.js`](https://raw.githubusercontent.com/jmcriffey/bower-traceur/0.0.51/traceur-runtime.js) (also included in the `bin` folder when installing Traceur through Bower or npm). Then include `es6-module-loader.js` and then apply the register extension before doing the import or loading the bundle as a script: +2. If using additional ES6 features apart from modules syntax, load [`traceur-runtime.js`](https://raw.githubusercontent.com/jmcriffey/bower-traceur/0.0.55/traceur-runtime.js) (also included in the `bin` folder when installing Traceur through Bower or npm). Then include `es6-module-loader.js` and then apply the register extension before doing the import or loading the bundle as a script: ```html diff --git a/bower.json b/bower.json index 73560e3..581cb04 100644 --- a/bower.json +++ b/bower.json @@ -1,11 +1,11 @@ { "name": "es6-module-loader", - "version": "0.7.2", + "version": "0.8.0", "description": "An ES6 Module Loader polyfill based on the latest spec.", "homepage": "https://github.com/ModuleLoader/es6-module-loader", "main": "dist/es6-module-loader-sans-promises.js", "dependencies": { - "traceur": "0.0.51" + "traceur": "0.0.55" }, "keywords": [ "es6", diff --git a/dist/es6-module-loader-sans-promises.min.js b/dist/es6-module-loader-sans-promises.min.js index beaa2e1..52a8e4c 100644 --- a/dist/es6-module-loader-sans-promises.min.js +++ b/dist/es6-module-loader-sans-promises.min.js @@ -1,5 +1,5 @@ /* - * es6-module-loader v0.7.2 + * es6-module-loader v0.8.0 * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ diff --git a/dist/es6-module-loader.min.js b/dist/es6-module-loader.min.js index 8c35229..8804be7 100644 --- a/dist/es6-module-loader.min.js +++ b/dist/es6-module-loader.min.js @@ -1,5 +1,5 @@ /* - * es6-module-loader v0.7.2 + * es6-module-loader v0.8.0 * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ diff --git a/package.json b/package.json index 9abf262..f22a500 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "es6-module-loader", "description": "An ES6 Module Loader shim", - "version": "0.7.2", + "version": "0.8.0", "homepage": "https://github.com/ModuleLoader/es6-module-loader", "author": { "name": "Guy Bedford, Luke Hoban, Addy Osmani", @@ -41,7 +41,7 @@ "test": "cd test && node test" }, "dependencies": { - "traceur": "0.0.52", + "traceur": "0.0.55", "when": "^3.4.2" } } diff --git a/test/syntax/es6-file.js b/test/syntax/es6-file.js index 25d400f..b8d91b1 100644 --- a/test/syntax/es6-file.js +++ b/test/syntax/es6-file.js @@ -11,4 +11,4 @@ export default 4; var p = 5; -module Q from './test-file'; +import * as Q from './test-file'; diff --git a/test/syntax/import.js b/test/syntax/import.js index f8b7c42..4f4f7ad 100644 --- a/test/syntax/import.js +++ b/test/syntax/import.js @@ -8,6 +8,6 @@ import r from './reexport2'; import { z, q as r } from './reexport2'; -module q from './reexport1'; +import * as q from './reexport1'; export { d as a, p as b, z as c, r as d, q } \ No newline at end of file From e92b65403302ab6ba84e132004537870fbd60201 Mon Sep 17 00:00:00 2001 From: guybedford Date: Sat, 9 Aug 2014 13:25:43 -0700 Subject: [PATCH 046/482] fix linking evaluation bug --- lib/loader.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/lib/loader.js b/lib/loader.js index b7a5bcd..e15e73a 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -652,6 +652,7 @@ function logloads(loads) { if (!module || !(module instanceof Module)) throw new TypeError('Execution must define a Module instance'); load.module = { + name: load.name, module: module }; load.status = 'linked'; @@ -736,8 +737,12 @@ function logloads(loads) { // only declarative modules have dynamic bindings if (depModule.importers) { - depModule.importers.push(module); module.dependencies.push(depModule); + depModule.importers.push(module); + } + else { + // track dynamic records as null module records as already linked + module.dependencies.push(null); } // run the setter for this dependency @@ -801,6 +806,10 @@ function logloads(loads) { for (var i = 0, l = deps.length; i < l; i++) { var dep = deps[i]; + // dynamic dependencies are empty in module.dependencies + // as they are already linked + if (!dep) + continue; if (indexOf.call(seen, dep) == -1) { err = ensureEvaluated(dep, seen, loader); // stop on error, see https://bugs.ecmascript.org/show_bug.cgi?id=2996 From ec44a82f5c5a9b6a6485f00a995d4e4eb2e0db6e Mon Sep 17 00:00:00 2001 From: guybedford Date: Sun, 10 Aug 2014 17:34:18 -0700 Subject: [PATCH 047/482] fix data-init function --- dist/es6-module-loader-sans-promises.js | 22 +++++++++++++++------ dist/es6-module-loader-sans-promises.min.js | 2 +- dist/es6-module-loader.js | 22 +++++++++++++++------ dist/es6-module-loader.min.js | 2 +- lib/system.js | 11 ++++++----- 5 files changed, 40 insertions(+), 19 deletions(-) diff --git a/dist/es6-module-loader-sans-promises.js b/dist/es6-module-loader-sans-promises.js index 422dd4a..37d4564 100644 --- a/dist/es6-module-loader-sans-promises.js +++ b/dist/es6-module-loader-sans-promises.js @@ -652,6 +652,7 @@ function logloads(loads) { if (!module || !(module instanceof Module)) throw new TypeError('Execution must define a Module instance'); load.module = { + name: load.name, module: module }; load.status = 'linked'; @@ -736,8 +737,12 @@ function logloads(loads) { // only declarative modules have dynamic bindings if (depModule.importers) { - depModule.importers.push(module); module.dependencies.push(depModule); + depModule.importers.push(module); + } + else { + // track dynamic records as null module records as already linked + module.dependencies.push(null); } // run the setter for this dependency @@ -801,6 +806,10 @@ function logloads(loads) { for (var i = 0, l = deps.length; i < l; i++) { var dep = deps[i]; + // dynamic dependencies are empty in module.dependencies + // as they are already linked + if (!dep) + continue; if (indexOf.call(seen, dep) == -1) { err = ensureEvaluated(dep, seen, loader); // stop on error, see https://bugs.ecmascript.org/show_bug.cgi?id=2996 @@ -1337,6 +1346,12 @@ function logloads(loads) { } System.paths = { '*': '*.js' }; + // note we have to export before runing "init" below + if (typeof exports === 'object') + module.exports = System; + + global.System = System; + // @@ -177,7 +177,7 @@ A basic example of using this extension with a build would be the following: traceur --out app-build.js app/app.js --modules=instantiate ``` -2. If using additional ES6 features apart from modules syntax, load [`traceur-runtime.js`](https://raw.githubusercontent.com/jmcriffey/bower-traceur/0.0.55/traceur-runtime.js) (also included in the `bin` folder when installing Traceur through Bower or npm). Then include `es6-module-loader.js` and then apply the register extension before doing the import or loading the bundle as a script: +2. If using additional ES6 features apart from modules syntax, load [`traceur-runtime.js`](https://raw.githubusercontent.com/jmcriffey/bower-traceur/0.0.56/traceur-runtime.js) (also included in the `bin` folder when installing Traceur through Bower or npm). Then include `es6-module-loader.js` and then apply the register extension before doing the import or loading the bundle as a script: ```html diff --git a/bower.json b/bower.json index 581cb04..e9c523d 100644 --- a/bower.json +++ b/bower.json @@ -1,11 +1,11 @@ { "name": "es6-module-loader", - "version": "0.8.0", + "version": "0.8.1", "description": "An ES6 Module Loader polyfill based on the latest spec.", "homepage": "https://github.com/ModuleLoader/es6-module-loader", "main": "dist/es6-module-loader-sans-promises.js", "dependencies": { - "traceur": "0.0.55" + "traceur": "0.0.56" }, "keywords": [ "es6", diff --git a/dist/es6-module-loader-sans-promises.js b/dist/es6-module-loader-sans-promises.js index 3f3d5fd..0873157 100644 --- a/dist/es6-module-loader-sans-promises.js +++ b/dist/es6-module-loader-sans-promises.js @@ -1065,6 +1065,8 @@ function logloads(loads) { var compiler = new traceur.Compiler(); var options = System.traceurOptions || {}; options.modules = 'instantiate'; + options.sourceMaps = true; + options.filename = load.address; var output = compiler.stringToTree({content: load.source, options: options}); checkForErrors(output); @@ -1073,6 +1075,7 @@ function logloads(loads) { output = compiler.treeToString(output); checkForErrors(output); + var source = output.js; var sourceMap = output.generatedSourceMap; diff --git a/dist/es6-module-loader-sans-promises.min.js b/dist/es6-module-loader-sans-promises.min.js index e0f4b86..f319ee8 100644 --- a/dist/es6-module-loader-sans-promises.min.js +++ b/dist/es6-module-loader-sans-promises.min.js @@ -1,6 +1,6 @@ /* - * es6-module-loader v0.8.0 + * es6-module-loader v0.8.1 * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(__global){function __eval(__source,__global,load){__curRegister=System.register,System.register=function(a,b,c){"string"!=typeof a&&(c=b,b=a),load.declare=c,load.depsList=b};try{eval('(function() { var __moduleName = "'+(load.name||"").replace('"','"')+'"; '+__source+" \n }).call(__global);")}catch(e){throw("SyntaxError"==e.name||"TypeError"==e.name)&&(e.message="Evaluating "+(load.name||load.address)+"\n "+e.message),e}System.register=__curRegister}!function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new z(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:c&&c.metadata||{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new z(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return e=a(c),e.status="linked",e;for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,z.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"anon"+ ++B,b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return z.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,z.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,z.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new z(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){try{o(a)}catch(b){return l(a,b),!0}}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b){for(var c=a.loader,d=a.loads.concat([]),e=0,f=d.length;f>e;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==A.call(c.loaderObj.failed,g)&&c.loaderObj.failed.push(g);var h=A.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=A.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=A.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=A.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==A.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;f--){for(var g=c[f],h=0;hc;c++){var g=d.importers[c];if(!g.locked){var h=A.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==A.call(b,h)&&(d=u(h,b,c)))return d+"\n in module "+h.name}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=s(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function v(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{}},y(this,"global",{get:function(){return __global}})}function w(){}function x(a,b){return D[a]=b,b.then(function(){D[a]=void 0}),b["catch"](function(){D[a]=void 0}),b}var y,z=__global.Promise||require("when/es6-shim/Promise");!function(){try{Object.defineProperty({},"a",{})&&(y=Object.defineProperty)}catch(a){y=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),console.assert=console.assert||function(){};var A=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},B=0,C={},D={};v.prototype={constructor:v,define:function(a,b,c){if(D[a])throw new TypeError("Module is already loading.");return x(a,new z(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(t(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return z.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(t(e.modules[a],[],e._loader),e.modules[a].module):D[a]||x(a,b(e,a,c||{}).then(function(b){return delete D[a],r(e,b)}))})},load:function(a){return this._loader.modules[a]?(t(this._loader.modules[a],[],this._loader),z.resolve(this._loader.modules[a].module)):D[a]||x(a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=z.resolve(b),i=this._loader,j=e.done.then(function(){return r(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new w;for(var c in a)!function(c){y(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof w))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=v.prototype.newModule;!function(){function a(a,b){if(a.errors.length){for(var c=0,d=a.errors.length;d>c;c++);throw new Error("Parse of "+b.name+", "+b.address+" failed, "+a.errors.length)}}var b;v.prototype.parse=function(c){if(!b)if("undefined"==typeof window)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=new b.Compiler,e=System.traceurOptions||{};e.modules="instantiate";var f=d.stringToTree({content:c.source,options:e});a(f),f=d.treeToTree(f),a(f),f=d.treeToString(f),a(f);var g=f.js,h=f.generatedSourceMap;__global.btoa&&h&&(g+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(h)))+"\n"),__eval(g,__global,c)}}(),"object"==typeof exports&&(module.exports=v),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||v,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=v}();var __curRegister}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function d(a,d){return d=b(d||""),a=b(a||""),d&&a?(d.protocol||a.protocol)+(d.protocol||d.authority?d.authority:a.authority)+c(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+d.pathname:a.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||a.search)+d.hash:null}function e(){document.removeEventListener("DOMContentLoaded",e,!1),window.removeEventListener("load",e,!1),f()}function f(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(c==f&&f.length>e.length){e=f;break}}else c.substr(0,g[0].length)==g[0]&&c.substr(c.length-g[1].length)==g[1]&&(e=f,b=c.substr(g[0].length,c.length-g[1].length-g[0].length))}var i=this.paths[e];if(b&&(i=i.replace("*",b)),h){for(var j=i.split("/"),k=0,l=j.length;l>k;k++)j[k]=encodeURIComponent(j[k]);i=j.join("/")}return d(this.baseURL,i)},fetch:function(a){var b=this;return new j(function(c,e){g(d(b.baseURL,a.address),function(a){c(a)},e)})}});if(h){var m=window.location.href.split("#")[0].split("?")[0];l.baseURL=m.substring(0,m.lastIndexOf("/")+1)}else l.baseURL=process.cwd()+"/";if(l.paths={"*":"*.js"},"object"==typeof exports&&(module.exports=l),a.System=l,h){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(f):document.addEventListener&&(document.addEventListener("DOMContentLoaded",e,!1),window.addEventListener("load",e,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}("undefined"!=typeof global?global:this); \ No newline at end of file +!function(__global){function __eval(__source,__global,load){__curRegister=System.register,System.register=function(a,b,c){"string"!=typeof a&&(c=b,b=a),load.declare=c,load.depsList=b};try{eval('(function() { var __moduleName = "'+(load.name||"").replace('"','"')+'"; '+__source+" \n }).call(__global);")}catch(e){throw("SyntaxError"==e.name||"TypeError"==e.name)&&(e.message="Evaluating "+(load.name||load.address)+"\n "+e.message),e}System.register=__curRegister}!function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new z(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:c&&c.metadata||{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new z(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return e=a(c),e.status="linked",e;for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,z.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"anon"+ ++B,b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return z.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,z.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,z.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new z(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){try{o(a)}catch(b){return l(a,b),!0}}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b){for(var c=a.loader,d=a.loads.concat([]),e=0,f=d.length;f>e;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==A.call(c.loaderObj.failed,g)&&c.loaderObj.failed.push(g);var h=A.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=A.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=A.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=A.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==A.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;f--){for(var g=c[f],h=0;hc;c++){var g=d.importers[c];if(!g.locked){var h=A.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==A.call(b,h)&&(d=u(h,b,c)))return d+"\n in module "+h.name}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=s(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function v(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{}},y(this,"global",{get:function(){return __global}})}function w(){}function x(a,b){return D[a]=b,b.then(function(){D[a]=void 0}),b["catch"](function(){D[a]=void 0}),b}var y,z=__global.Promise||require("when/es6-shim/Promise");!function(){try{Object.defineProperty({},"a",{})&&(y=Object.defineProperty)}catch(a){y=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),console.assert=console.assert||function(){};var A=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},B=0,C={},D={};v.prototype={constructor:v,define:function(a,b,c){if(D[a])throw new TypeError("Module is already loading.");return x(a,new z(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(t(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return z.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(t(e.modules[a],[],e._loader),e.modules[a].module):D[a]||x(a,b(e,a,c||{}).then(function(b){return delete D[a],r(e,b)}))})},load:function(a){return this._loader.modules[a]?(t(this._loader.modules[a],[],this._loader),z.resolve(this._loader.modules[a].module)):D[a]||x(a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=z.resolve(b),i=this._loader,j=e.done.then(function(){return r(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new w;for(var c in a)!function(c){y(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof w))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=v.prototype.newModule;!function(){function a(a,b){if(a.errors.length){for(var c=0,d=a.errors.length;d>c;c++);throw new Error("Parse of "+b.name+", "+b.address+" failed, "+a.errors.length)}}var b;v.prototype.parse=function(c){if(!b)if("undefined"==typeof window)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=new b.Compiler,e=System.traceurOptions||{};e.modules="instantiate",e.sourceMaps=!0,e.filename=c.address;var f=d.stringToTree({content:c.source,options:e});a(f),f=d.treeToTree(f),a(f),f=d.treeToString(f),a(f);var g=f.js,h=f.generatedSourceMap;__global.btoa&&h&&(g+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(h)))+"\n"),__eval(g,__global,c)}}(),"object"==typeof exports&&(module.exports=v),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||v,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=v}();var __curRegister}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function d(a,d){return d=b(d||""),a=b(a||""),d&&a?(d.protocol||a.protocol)+(d.protocol||d.authority?d.authority:a.authority)+c(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+d.pathname:a.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||a.search)+d.hash:null}function e(){document.removeEventListener("DOMContentLoaded",e,!1),window.removeEventListener("load",e,!1),f()}function f(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(c==f&&f.length>e.length){e=f;break}}else c.substr(0,g[0].length)==g[0]&&c.substr(c.length-g[1].length)==g[1]&&(e=f,b=c.substr(g[0].length,c.length-g[1].length-g[0].length))}var i=this.paths[e];if(b&&(i=i.replace("*",b)),h){for(var j=i.split("/"),k=0,l=j.length;l>k;k++)j[k]=encodeURIComponent(j[k]);i=j.join("/")}return d(this.baseURL,i)},fetch:function(a){var b=this;return new j(function(c,e){g(d(b.baseURL,a.address),function(a){c(a)},e)})}});if(h){var m=window.location.href.split("#")[0].split("?")[0];l.baseURL=m.substring(0,m.lastIndexOf("/")+1)}else l.baseURL=process.cwd()+"/";if(l.paths={"*":"*.js"},"object"==typeof exports&&(module.exports=l),a.System=l,h){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(f):document.addEventListener&&(document.addEventListener("DOMContentLoaded",e,!1),window.addEventListener("load",e,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}("undefined"!=typeof global?global:this); \ No newline at end of file diff --git a/dist/es6-module-loader.js b/dist/es6-module-loader.js index 9d917da..47eace8 100644 --- a/dist/es6-module-loader.js +++ b/dist/es6-module-loader.js @@ -820,37 +820,26 @@ define(function() { }; /** - * Abstract base for handler that delegates to another handler + * Wrap another handler and force it into a future stack * @param {object} handler * @constructor */ - function Delegating(handler) { + function Async(handler) { this.handler = handler; } - inherit(Handler, Delegating); + inherit(Handler, Async); - Delegating.prototype._report = function(context) { - this.join()._report(context); + Async.prototype.when = function(continuation) { + tasks.enqueue(new ContinuationTask(continuation, this)); }; - Delegating.prototype._unreport = function() { - this.join()._unreport(); + Async.prototype._report = function(context) { + this.join()._report(context); }; - /** - * Wrap another handler and force it into a future stack - * @param {object} handler - * @constructor - */ - function Async(handler) { - Delegating.call(this, handler); - } - - inherit(Delegating, Async); - - Async.prototype.when = function(continuation) { - tasks.enqueue(new ContinuationTask(continuation, this)); + Async.prototype._unreport = function() { + this.join()._unreport(); }; /** @@ -2239,6 +2228,8 @@ function logloads(loads) { var compiler = new traceur.Compiler(); var options = System.traceurOptions || {}; options.modules = 'instantiate'; + options.sourceMaps = true; + options.filename = load.address; var output = compiler.stringToTree({content: load.source, options: options}); checkForErrors(output); @@ -2247,6 +2238,7 @@ function logloads(loads) { output = compiler.treeToString(output); checkForErrors(output); + var source = output.js; var sourceMap = output.generatedSourceMap; diff --git a/dist/es6-module-loader.min.js b/dist/es6-module-loader.min.js index 400ff45..e4a19fe 100644 --- a/dist/es6-module-loader.min.js +++ b/dist/es6-module-loader.min.js @@ -1,6 +1,6 @@ /* - * es6-module-loader v0.8.0 + * es6-module-loader v0.8.1 * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;gf;++f)e[f]=d[f];else{for(a=d.length,b=this.tail;a>c;++f,++c)e[f]=d[c];for(c=0;b>c;++f,++c)e[f]=d[c]}this.buffer=e,this.head=0,this.tail=this.length},a})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],4:[function(b,c){!function(a){"use strict";a(function(a){function b(a){this._async=a,this._queue=new d(15),this._afterQueue=new d(5),this._running=!1;var b=this;this.drain=function(){b._drain()}}function c(a){for(;a.length>0;)a.shift().run()}var d=a("./Queue");return b.prototype.enqueue=function(a){this._add(this._queue,a)},b.prototype.afterQueue=function(a){this._add(this._afterQueue,a)},b.prototype._drain=function(){c(this._queue),this._running=!1,c(this._afterQueue)},b.prototype._add=function(a,b){a.push(b),this._running||(this._running=!0,this._async(this.drain))},b})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"./Queue":3}],5:[function(b,c){!function(a){"use strict";a(function(a){var b,c;return b="undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick?function(a){process.nextTick(a)}:(c="function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver)?function(a,b){function c(){var a=d;d=void 0,a()}var d,e=a.createElement("div"),f=new b(c);return f.observe(e,{attributes:!0}),function(a){d=a,e.setAttribute("class","x")}}(document,c):function(a){try{return a("vertx").runOnLoop||a("vertx").runOnContext}catch(b){}var c=setTimeout;return function(a){c(a,0)}}(a)})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c){!function(a){"use strict";a(function(a){function b(a){var b="object"==typeof a&&a.stack?a.stack:c(a);return a instanceof Error?b:b+" (WARNING: non-Error used)"}function c(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=d(a,b)),b}function d(a,b){try{return JSON.stringify(a)}catch(a){return b}}function e(a){throw a}function f(){}var g=a("../timer");return function(a){function d(a){a.handled||(n.push(a),k("Potentially unhandled rejection ["+a.id+"] "+b(a.value)))}function h(a){var b=n.indexOf(a);b>=0&&(n.splice(b,1),l("Handled previous rejection ["+a.id+"] "+c(a.value)))}function i(a,b){m.push(a,b),o||(o=!0,o=g.set(j,0))}function j(){for(o=!1;m.length>0;)m.shift()(m.shift())}var k=f,l=f;"undefined"!=typeof console&&(k="undefined"!=typeof console.error?function(a){}:function(a){},l="undefined"!=typeof console.info?function(a){}:function(a){}),a.onPotentiallyUnhandledRejection=function(a){i(d,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){i(h,a)},a.onFatalRejection=function(a){i(e,a.value)};var m=[],n=[],o=!1;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../timer":8}],7:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===l?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new n;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return A(a)?a:new b(l,new p(j(a)))}function e(a){return new b(l,new p(new s(a)))}function f(){return P}function g(){return new b(l,new n)}function h(a){function c(a,b,c){this[a]=b,0===--i&&c.become(new r(this))}var d,e,f,g,h=new n,i=a.length>>>0,j=new Array(i);for(d=0;d0)){h.become(e);break}j[d]=e.value,--i}else j[d]=f,--i;else--i;return 0===i&&h.become(new r(j)),new b(l,h)}function i(a){if(Object(a)===a&&0===a.length)return f();var c,d,e=new n;for(c=0;c0)return new b(l,d);var e=this._beget(),f=e._handler;return d.chain(f,d.receiver,a,c,arguments.length>2?arguments[2]:void 0),e},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){var a=this._handler,b=new n(a.receiver,a.join().context);return new this.constructor(l,b)},b.all=h,b.race=i,l.prototype.when=l.prototype.become=l.prototype.notify=l.prototype.fail=l.prototype._unreport=l.prototype._report=J,l.prototype._state=0,l.prototype.state=function(){return this._state},l.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},l.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},l.prototype.visit=function(a,b,c,d){this.chain(M,a,b,c,d)},l.prototype.fold=function(a,b,c,d){this.visit(d,function(d){a.call(c,b,d,this)},d.reject,d.notify)},I(l,m),m.prototype.become=function(a){a.fail()};var M=new m;I(l,n),n.prototype._state=0,n.prototype.resolve=function(a){this.become(j(a))},n.prototype.reject=function(a){this.resolved||this.become(new s(a))},n.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=v();return a},n.prototype.run=function(){var a=this.consumers,b=this.join();this.consumers=void 0;for(var c=0;cf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,z.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"anon"+ ++B,b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return z.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,z.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,z.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new z(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){try{o(a)}catch(b){return l(a,b),!0}}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b){for(var c=a.loader,d=a.loads.concat([]),e=0,f=d.length;f>e;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==A.call(c.loaderObj.failed,g)&&c.loaderObj.failed.push(g);var h=A.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=A.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=A.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=A.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==A.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;f--){for(var g=c[f],h=0;hc;c++){var g=d.importers[c];if(!g.locked){var h=A.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==A.call(b,h)&&(d=u(h,b,c)))return d+"\n in module "+h.name}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=s(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function v(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{}},y(this,"global",{get:function(){return __global}})}function w(){}function x(a,b){return D[a]=b,b.then(function(){D[a]=void 0}),b["catch"](function(){D[a]=void 0}),b}var y,z=__global.Promise||require("when/es6-shim/Promise");!function(){try{Object.defineProperty({},"a",{})&&(y=Object.defineProperty)}catch(a){y=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),console.assert=console.assert||function(){};var A=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},B=0,C={},D={};v.prototype={constructor:v,define:function(a,b,c){if(D[a])throw new TypeError("Module is already loading.");return x(a,new z(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(t(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return z.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(t(e.modules[a],[],e._loader),e.modules[a].module):D[a]||x(a,b(e,a,c||{}).then(function(b){return delete D[a],r(e,b)}))})},load:function(a){return this._loader.modules[a]?(t(this._loader.modules[a],[],this._loader),z.resolve(this._loader.modules[a].module)):D[a]||x(a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=z.resolve(b),i=this._loader,j=e.done.then(function(){return r(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new w;for(var c in a)!function(c){y(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof w))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=v.prototype.newModule;!function(){function a(a,b){if(a.errors.length){for(var c=0,d=a.errors.length;d>c;c++);throw new Error("Parse of "+b.name+", "+b.address+" failed, "+a.errors.length)}}var b;v.prototype.parse=function(c){if(!b)if("undefined"==typeof window)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=new b.Compiler,e=System.traceurOptions||{};e.modules="instantiate";var f=d.stringToTree({content:c.source,options:e});a(f),f=d.treeToTree(f),a(f),f=d.treeToString(f),a(f);var g=f.js,h=f.generatedSourceMap;__global.btoa&&h&&(g+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(h)))+"\n"),__eval(g,__global,c)}}(),"object"==typeof exports&&(module.exports=v),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||v,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=v}();var __curRegister}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function d(a,d){return d=b(d||""),a=b(a||""),d&&a?(d.protocol||a.protocol)+(d.protocol||d.authority?d.authority:a.authority)+c(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+d.pathname:a.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||a.search)+d.hash:null}function e(){document.removeEventListener("DOMContentLoaded",e,!1),window.removeEventListener("load",e,!1),f()}function f(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(c==f&&f.length>e.length){e=f;break}}else c.substr(0,g[0].length)==g[0]&&c.substr(c.length-g[1].length)==g[1]&&(e=f,b=c.substr(g[0].length,c.length-g[1].length-g[0].length))}var i=this.paths[e];if(b&&(i=i.replace("*",b)),h){for(var j=i.split("/"),k=0,l=j.length;l>k;k++)j[k]=encodeURIComponent(j[k]);i=j.join("/")}return d(this.baseURL,i)},fetch:function(a){var b=this;return new j(function(c,e){g(d(b.baseURL,a.address),function(a){c(a)},e)})}});if(h){var m=window.location.href.split("#")[0].split("?")[0];l.baseURL=m.substring(0,m.lastIndexOf("/")+1)}else l.baseURL=process.cwd()+"/";if(l.paths={"*":"*.js"},"object"==typeof exports&&(module.exports=l),a.System=l,h){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(f):document.addEventListener&&(document.addEventListener("DOMContentLoaded",e,!1),window.addEventListener("load",e,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}("undefined"!=typeof global?global:this); \ No newline at end of file +!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;gf;++f)e[f]=d[f];else{for(a=d.length,b=this.tail;a>c;++f,++c)e[f]=d[c];for(c=0;b>c;++f,++c)e[f]=d[c]}this.buffer=e,this.head=0,this.tail=this.length},a})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],4:[function(b,c){!function(a){"use strict";a(function(a){function b(a){this._async=a,this._queue=new d(15),this._afterQueue=new d(5),this._running=!1;var b=this;this.drain=function(){b._drain()}}function c(a){for(;a.length>0;)a.shift().run()}var d=a("./Queue");return b.prototype.enqueue=function(a){this._add(this._queue,a)},b.prototype.afterQueue=function(a){this._add(this._afterQueue,a)},b.prototype._drain=function(){c(this._queue),this._running=!1,c(this._afterQueue)},b.prototype._add=function(a,b){a.push(b),this._running||(this._running=!0,this._async(this.drain))},b})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"./Queue":3}],5:[function(b,c){!function(a){"use strict";a(function(a){var b,c;return b="undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick?function(a){process.nextTick(a)}:(c="function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver)?function(a,b){function c(){var a=d;d=void 0,a()}var d,e=a.createElement("div"),f=new b(c);return f.observe(e,{attributes:!0}),function(a){d=a,e.setAttribute("class","x")}}(document,c):function(a){try{return a("vertx").runOnLoop||a("vertx").runOnContext}catch(b){}var c=setTimeout;return function(a){c(a,0)}}(a)})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c){!function(a){"use strict";a(function(a){function b(a){var b="object"==typeof a&&a.stack?a.stack:c(a);return a instanceof Error?b:b+" (WARNING: non-Error used)"}function c(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=d(a,b)),b}function d(a,b){try{return JSON.stringify(a)}catch(a){return b}}function e(a){throw a}function f(){}var g=a("../timer");return function(a){function d(a){a.handled||(n.push(a),k("Potentially unhandled rejection ["+a.id+"] "+b(a.value)))}function h(a){var b=n.indexOf(a);b>=0&&(n.splice(b,1),l("Handled previous rejection ["+a.id+"] "+c(a.value)))}function i(a,b){m.push(a,b),o||(o=!0,o=g.set(j,0))}function j(){for(o=!1;m.length>0;)m.shift()(m.shift())}var k=f,l=f;"undefined"!=typeof console&&(k="undefined"!=typeof console.error?function(a){}:function(a){},l="undefined"!=typeof console.info?function(a){}:function(a){}),a.onPotentiallyUnhandledRejection=function(a){i(d,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){i(h,a)},a.onFatalRejection=function(a){i(e,a.value)};var m=[],n=[],o=!1;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../timer":8}],7:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===l?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new n;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return z(a)?a:new b(l,new o(j(a)))}function e(a){return new b(l,new o(new r(a)))}function f(){return O}function g(){return new b(l,new n)}function h(a){function c(a,b,c){this[a]=b,0===--i&&c.become(new q(this))}var d,e,f,g,h=new n,i=a.length>>>0,j=new Array(i);for(d=0;d0)){h.become(e);break}j[d]=e.value,--i}else j[d]=f,--i;else--i;return 0===i&&h.become(new q(j)),new b(l,h)}function i(a){if(Object(a)===a&&0===a.length)return f();var c,d,e=new n;for(c=0;c0)return new b(l,d);var e=this._beget(),f=e._handler;return d.chain(f,d.receiver,a,c,arguments.length>2?arguments[2]:void 0),e},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){var a=this._handler,b=new n(a.receiver,a.join().context);return new this.constructor(l,b)},b.all=h,b.race=i,l.prototype.when=l.prototype.become=l.prototype.notify=l.prototype.fail=l.prototype._unreport=l.prototype._report=I,l.prototype._state=0,l.prototype.state=function(){return this._state},l.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},l.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},l.prototype.visit=function(a,b,c,d){this.chain(L,a,b,c,d)},l.prototype.fold=function(a,b,c,d){this.visit(d,function(d){a.call(c,b,d,this)},d.reject,d.notify)},H(l,m),m.prototype.become=function(a){a.fail()};var L=new m;H(l,n),n.prototype._state=0,n.prototype.resolve=function(a){this.become(j(a))},n.prototype.reject=function(a){this.resolved||this.become(new r(a))},n.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=u();return a},n.prototype.run=function(){var a=this.consumers,b=this.join();this.consumers=void 0;for(var c=0;cf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,z.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"anon"+ ++B,b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return z.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,z.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,z.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new z(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){try{o(a)}catch(b){return l(a,b),!0}}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b){for(var c=a.loader,d=a.loads.concat([]),e=0,f=d.length;f>e;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==A.call(c.loaderObj.failed,g)&&c.loaderObj.failed.push(g);var h=A.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=A.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=A.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=A.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==A.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;f--){for(var g=c[f],h=0;hc;c++){var g=d.importers[c];if(!g.locked){var h=A.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==A.call(b,h)&&(d=u(h,b,c)))return d+"\n in module "+h.name}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=s(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function v(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{}},y(this,"global",{get:function(){return __global}})}function w(){}function x(a,b){return D[a]=b,b.then(function(){D[a]=void 0}),b["catch"](function(){D[a]=void 0}),b}var y,z=__global.Promise||require("when/es6-shim/Promise");!function(){try{Object.defineProperty({},"a",{})&&(y=Object.defineProperty)}catch(a){y=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),console.assert=console.assert||function(){};var A=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},B=0,C={},D={};v.prototype={constructor:v,define:function(a,b,c){if(D[a])throw new TypeError("Module is already loading.");return x(a,new z(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(t(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return z.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(t(e.modules[a],[],e._loader),e.modules[a].module):D[a]||x(a,b(e,a,c||{}).then(function(b){return delete D[a],r(e,b)}))})},load:function(a){return this._loader.modules[a]?(t(this._loader.modules[a],[],this._loader),z.resolve(this._loader.modules[a].module)):D[a]||x(a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=z.resolve(b),i=this._loader,j=e.done.then(function(){return r(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new w;for(var c in a)!function(c){y(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof w))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=v.prototype.newModule;!function(){function a(a,b){if(a.errors.length){for(var c=0,d=a.errors.length;d>c;c++);throw new Error("Parse of "+b.name+", "+b.address+" failed, "+a.errors.length)}}var b;v.prototype.parse=function(c){if(!b)if("undefined"==typeof window)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=new b.Compiler,e=System.traceurOptions||{};e.modules="instantiate",e.sourceMaps=!0,e.filename=c.address;var f=d.stringToTree({content:c.source,options:e});a(f),f=d.treeToTree(f),a(f),f=d.treeToString(f),a(f);var g=f.js,h=f.generatedSourceMap;__global.btoa&&h&&(g+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(h)))+"\n"),__eval(g,__global,c)}}(),"object"==typeof exports&&(module.exports=v),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||v,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=v}();var __curRegister}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function d(a,d){return d=b(d||""),a=b(a||""),d&&a?(d.protocol||a.protocol)+(d.protocol||d.authority?d.authority:a.authority)+c(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+d.pathname:a.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||a.search)+d.hash:null}function e(){document.removeEventListener("DOMContentLoaded",e,!1),window.removeEventListener("load",e,!1),f()}function f(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(c==f&&f.length>e.length){e=f;break}}else c.substr(0,g[0].length)==g[0]&&c.substr(c.length-g[1].length)==g[1]&&(e=f,b=c.substr(g[0].length,c.length-g[1].length-g[0].length))}var i=this.paths[e];if(b&&(i=i.replace("*",b)),h){for(var j=i.split("/"),k=0,l=j.length;l>k;k++)j[k]=encodeURIComponent(j[k]);i=j.join("/")}return d(this.baseURL,i)},fetch:function(a){var b=this;return new j(function(c,e){g(d(b.baseURL,a.address),function(a){c(a)},e)})}});if(h){var m=window.location.href.split("#")[0].split("?")[0];l.baseURL=m.substring(0,m.lastIndexOf("/")+1)}else l.baseURL=process.cwd()+"/";if(l.paths={"*":"*.js"},"object"==typeof exports&&(module.exports=l),a.System=l,h){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(f):document.addEventListener&&(document.addEventListener("DOMContentLoaded",e,!1),window.addEventListener("load",e,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}("undefined"!=typeof global?global:this); \ No newline at end of file diff --git a/package.json b/package.json index f22a500..8b520b3 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "es6-module-loader", "description": "An ES6 Module Loader shim", - "version": "0.8.0", + "version": "0.8.1", "homepage": "https://github.com/ModuleLoader/es6-module-loader", "author": { "name": "Guy Bedford, Luke Hoban, Addy Osmani", @@ -41,7 +41,7 @@ "test": "cd test && node test" }, "dependencies": { - "traceur": "0.0.55", + "traceur": "0.0.56", "when": "^3.4.2" } } From b58346425f255fdb4dde8f35d6da9cd49967ab60 Mon Sep 17 00:00:00 2001 From: guybedford Date: Tue, 12 Aug 2014 15:02:36 -0700 Subject: [PATCH 050/482] only percent encode # --- lib/system.js | 14 ++++++-------- test/test.js | 5 +---- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/lib/system.js b/lib/system.js index b72d310..c083984 100644 --- a/lib/system.js +++ b/lib/system.js @@ -200,14 +200,12 @@ if (wildcard) outPath = outPath.replace('*', wildcard); - // percent encode each path part - if (isBrowser) { - var outParts = outPath.split('/'); - for (var i = 0, l = outParts.length; i < l; i++) { - outParts[i] = encodeURIComponent(outParts[i]); - } - outPath = outParts.join('/'); - } + // percent encode just '#' in module names + // according to https://github.com/jorendorff/js-loaders/blob/master/browser-loader.js#L238 + // we should encode everything, but it breaks for servers that don't expect it + // like in (https://github.com/systemjs/systemjs/issues/168) + if (isBrowser) + outPath = outPath.replace(/#/g, '%40'); return toAbsoluteURL(this.baseURL, outPath); }, diff --git a/test/test.js b/test/test.js index 79c4031..fce2892 100644 --- a/test/test.js +++ b/test/test.js @@ -144,10 +144,7 @@ function runTests() { System.baseURL = 'http://example.org/a/'; - if (typeof window != 'undefined') - test('Locate', System.locate({ name: '@abc/def' }), 'http://example.org/a/%40abc/def.js'); - else - test('Locate', System.locate({ name: '@abc/def' }), 'http://example.org/a/@abc/def.js'); + test('Locate', System.locate({ name: '@abc/def' }), 'http://example.org/a/@abc/def.js'); test('Locate', System.locate({ name: 'abc/def' }), 'http://example.org/a/abc/def.js'); // paths From ff429e242e81a6f050a584d2d0878638eb15b84f Mon Sep 17 00:00:00 2001 From: Matthew Phillips Date: Tue, 12 Aug 2014 18:49:25 -0400 Subject: [PATCH 051/482] Adds support for web workers This adds initial support for Web Workers; at least to add basic modules. Not as much work as you would think, most places where it checks if we are in a browser will work in a Worker as well. Fixes #201 --- lib/loader.js | 3 ++- lib/system.js | 13 +++++++------ test/test.js | 8 ++++++++ test/worker/es6.js | 1 + test/worker/worker.js | 10 ++++++++++ 5 files changed, 28 insertions(+), 7 deletions(-) create mode 100644 test/worker/es6.js create mode 100644 test/worker/worker.js diff --git a/lib/loader.js b/lib/loader.js index 7e12e4a..af790c7 100644 --- a/lib/loader.js +++ b/lib/loader.js @@ -1048,7 +1048,8 @@ function logloads(loads) { var traceur; Loader.prototype.parse = function(load) { if (!traceur) { - if (typeof window == 'undefined') + if (typeof window == 'undefined' && + typeof WorkerGlobalScope == 'undefined') traceur = require('traceur'); else if (__global.traceur) traceur = __global.traceur; diff --git a/lib/system.js b/lib/system.js index c083984..969b594 100644 --- a/lib/system.js +++ b/lib/system.js @@ -12,7 +12,8 @@ (function (global) { - var isBrowser = typeof window != 'undefined'; + var isWorker = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope; + var isBrowser = typeof window != 'undefined' && !isWorker; var Loader = global.Reflect && global.Reflect.Loader || require('./loader'); var Promise = global.Promise || require('when/es6-shim/Promise'); @@ -59,7 +60,7 @@ } var fetchTextFromURL; - if (isBrowser) { + if (isBrowser || isWorker) { fetchTextFromURL = function(url, fulfill, reject) { var xhr = new XMLHttpRequest(); var sameDomain = true; @@ -112,7 +113,7 @@ } var System = new Loader({ - global: isBrowser ? window : global, + global: isBrowser ? window : (isWorker ? self : global), strict: true, normalize: function(name, parentName, parentAddress) { if (typeof name != 'string') @@ -204,7 +205,7 @@ // according to https://github.com/jorendorff/js-loaders/blob/master/browser-loader.js#L238 // we should encode everything, but it breaks for servers that don't expect it // like in (https://github.com/systemjs/systemjs/issues/168) - if (isBrowser) + if (isBrowser || isWorker) outPath = outPath.replace(/#/g, '%40'); return toAbsoluteURL(this.baseURL, outPath); @@ -219,8 +220,8 @@ }, }); - if (isBrowser) { - var href = window.location.href.split('#')[0].split('?')[0]; + if (isBrowser || isWorker) { + var href = global.location.href.split('#')[0].split('?')[0]; System.baseURL = href.substring(0, href.lastIndexOf('/') + 1); } else { diff --git a/test/test.js b/test/test.js index fce2892..9c4fc88 100644 --- a/test/test.js +++ b/test/test.js @@ -566,4 +566,12 @@ function runTests() { test('System instanceof Loader', function(assert) { assert(System instanceof Reflect.Loader, true); }); + + test('Loading inside of a Web Worker', function(assert) { + var worker = new Worker('worker/worker.js'); + + worker.onmessage = function(e) { + assert(e.data, 'p'); + }; + }); } diff --git a/test/worker/es6.js b/test/worker/es6.js new file mode 100644 index 0000000..edcd3c7 --- /dev/null +++ b/test/worker/es6.js @@ -0,0 +1 @@ +export var p = 'p'; diff --git a/test/worker/worker.js b/test/worker/worker.js new file mode 100644 index 0000000..88088d5 --- /dev/null +++ b/test/worker/worker.js @@ -0,0 +1,10 @@ +importScripts("../../node_modules/traceur/bin/traceur.js", + "../../node_modules/when/es6-shim/Promise.js", + "../../lib/loader.js", + "../../lib/system.js"); + +System['import']('es6').then(function(m) { + postMessage(m.p); +}, function(err) { + console.error(err, err.stack); +}); From 985fb7a947e5d597468747ef6d752040e4c14742 Mon Sep 17 00:00:00 2001 From: guybedford Date: Tue, 12 Aug 2014 16:22:55 -0700 Subject: [PATCH 052/482] correct percent encoding --- dist/es6-module-loader-sans-promises.js | 28 ++++++++++----------- dist/es6-module-loader-sans-promises.min.js | 2 +- dist/es6-module-loader.js | 28 ++++++++++----------- dist/es6-module-loader.min.js | 2 +- lib/system.js | 4 +-- 5 files changed, 32 insertions(+), 32 deletions(-) diff --git a/dist/es6-module-loader-sans-promises.js b/dist/es6-module-loader-sans-promises.js index 0873157..4a03419 100644 --- a/dist/es6-module-loader-sans-promises.js +++ b/dist/es6-module-loader-sans-promises.js @@ -1048,7 +1048,8 @@ function logloads(loads) { var traceur; Loader.prototype.parse = function(load) { if (!traceur) { - if (typeof window == 'undefined') + if (typeof window == 'undefined' && + typeof WorkerGlobalScope == 'undefined') traceur = require('traceur'); else if (__global.traceur) traceur = __global.traceur; @@ -1140,7 +1141,8 @@ function logloads(loads) { (function (global) { - var isBrowser = typeof window != 'undefined'; + var isWorker = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope; + var isBrowser = typeof window != 'undefined' && !isWorker; var Loader = global.Reflect && global.Reflect.Loader || require('./loader'); var Promise = global.Promise || require('when/es6-shim/Promise'); @@ -1187,7 +1189,7 @@ function logloads(loads) { } var fetchTextFromURL; - if (isBrowser) { + if (isBrowser || isWorker) { fetchTextFromURL = function(url, fulfill, reject) { var xhr = new XMLHttpRequest(); var sameDomain = true; @@ -1240,7 +1242,7 @@ function logloads(loads) { } var System = new Loader({ - global: isBrowser ? window : global, + global: isBrowser ? window : (isWorker ? self : global), strict: true, normalize: function(name, parentName, parentAddress) { if (typeof name != 'string') @@ -1328,14 +1330,12 @@ function logloads(loads) { if (wildcard) outPath = outPath.replace('*', wildcard); - // percent encode each path part - if (isBrowser) { - var outParts = outPath.split('/'); - for (var i = 0, l = outParts.length; i < l; i++) { - outParts[i] = encodeURIComponent(outParts[i]); - } - outPath = outParts.join('/'); - } + // percent encode just '#' in module names + // according to https://github.com/jorendorff/js-loaders/blob/master/browser-loader.js#L238 + // we should encode everything, but it breaks for servers that don't expect it + // like in (https://github.com/systemjs/systemjs/issues/168) + if (isBrowser) + outPath = outPath.replace(/#/g, '%23'); return toAbsoluteURL(this.baseURL, outPath); }, @@ -1349,8 +1349,8 @@ function logloads(loads) { }, }); - if (isBrowser) { - var href = window.location.href.split('#')[0].split('?')[0]; + if (isBrowser || isWorker) { + var href = global.location.href.split('#')[0].split('?')[0]; System.baseURL = href.substring(0, href.lastIndexOf('/') + 1); } else { diff --git a/dist/es6-module-loader-sans-promises.min.js b/dist/es6-module-loader-sans-promises.min.js index f319ee8..799af21 100644 --- a/dist/es6-module-loader-sans-promises.min.js +++ b/dist/es6-module-loader-sans-promises.min.js @@ -3,4 +3,4 @@ * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(__global){function __eval(__source,__global,load){__curRegister=System.register,System.register=function(a,b,c){"string"!=typeof a&&(c=b,b=a),load.declare=c,load.depsList=b};try{eval('(function() { var __moduleName = "'+(load.name||"").replace('"','"')+'"; '+__source+" \n }).call(__global);")}catch(e){throw("SyntaxError"==e.name||"TypeError"==e.name)&&(e.message="Evaluating "+(load.name||load.address)+"\n "+e.message),e}System.register=__curRegister}!function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new z(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:c&&c.metadata||{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new z(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return e=a(c),e.status="linked",e;for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,z.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"anon"+ ++B,b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return z.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,z.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,z.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new z(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){try{o(a)}catch(b){return l(a,b),!0}}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b){for(var c=a.loader,d=a.loads.concat([]),e=0,f=d.length;f>e;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==A.call(c.loaderObj.failed,g)&&c.loaderObj.failed.push(g);var h=A.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=A.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=A.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=A.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==A.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;f--){for(var g=c[f],h=0;hc;c++){var g=d.importers[c];if(!g.locked){var h=A.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==A.call(b,h)&&(d=u(h,b,c)))return d+"\n in module "+h.name}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=s(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function v(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{}},y(this,"global",{get:function(){return __global}})}function w(){}function x(a,b){return D[a]=b,b.then(function(){D[a]=void 0}),b["catch"](function(){D[a]=void 0}),b}var y,z=__global.Promise||require("when/es6-shim/Promise");!function(){try{Object.defineProperty({},"a",{})&&(y=Object.defineProperty)}catch(a){y=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),console.assert=console.assert||function(){};var A=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},B=0,C={},D={};v.prototype={constructor:v,define:function(a,b,c){if(D[a])throw new TypeError("Module is already loading.");return x(a,new z(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(t(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return z.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(t(e.modules[a],[],e._loader),e.modules[a].module):D[a]||x(a,b(e,a,c||{}).then(function(b){return delete D[a],r(e,b)}))})},load:function(a){return this._loader.modules[a]?(t(this._loader.modules[a],[],this._loader),z.resolve(this._loader.modules[a].module)):D[a]||x(a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=z.resolve(b),i=this._loader,j=e.done.then(function(){return r(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new w;for(var c in a)!function(c){y(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof w))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=v.prototype.newModule;!function(){function a(a,b){if(a.errors.length){for(var c=0,d=a.errors.length;d>c;c++);throw new Error("Parse of "+b.name+", "+b.address+" failed, "+a.errors.length)}}var b;v.prototype.parse=function(c){if(!b)if("undefined"==typeof window)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=new b.Compiler,e=System.traceurOptions||{};e.modules="instantiate",e.sourceMaps=!0,e.filename=c.address;var f=d.stringToTree({content:c.source,options:e});a(f),f=d.treeToTree(f),a(f),f=d.treeToString(f),a(f);var g=f.js,h=f.generatedSourceMap;__global.btoa&&h&&(g+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(h)))+"\n"),__eval(g,__global,c)}}(),"object"==typeof exports&&(module.exports=v),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||v,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=v}();var __curRegister}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function d(a,d){return d=b(d||""),a=b(a||""),d&&a?(d.protocol||a.protocol)+(d.protocol||d.authority?d.authority:a.authority)+c(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+d.pathname:a.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||a.search)+d.hash:null}function e(){document.removeEventListener("DOMContentLoaded",e,!1),window.removeEventListener("load",e,!1),f()}function f(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(c==f&&f.length>e.length){e=f;break}}else c.substr(0,g[0].length)==g[0]&&c.substr(c.length-g[1].length)==g[1]&&(e=f,b=c.substr(g[0].length,c.length-g[1].length-g[0].length))}var i=this.paths[e];if(b&&(i=i.replace("*",b)),h){for(var j=i.split("/"),k=0,l=j.length;l>k;k++)j[k]=encodeURIComponent(j[k]);i=j.join("/")}return d(this.baseURL,i)},fetch:function(a){var b=this;return new j(function(c,e){g(d(b.baseURL,a.address),function(a){c(a)},e)})}});if(h){var m=window.location.href.split("#")[0].split("?")[0];l.baseURL=m.substring(0,m.lastIndexOf("/")+1)}else l.baseURL=process.cwd()+"/";if(l.paths={"*":"*.js"},"object"==typeof exports&&(module.exports=l),a.System=l,h){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(f):document.addEventListener&&(document.addEventListener("DOMContentLoaded",e,!1),window.addEventListener("load",e,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}("undefined"!=typeof global?global:this); \ No newline at end of file +!function(__global){function __eval(__source,__global,load){__curRegister=System.register,System.register=function(a,b,c){"string"!=typeof a&&(c=b,b=a),load.declare=c,load.depsList=b};try{eval('(function() { var __moduleName = "'+(load.name||"").replace('"','"')+'"; '+__source+" \n }).call(__global);")}catch(e){throw("SyntaxError"==e.name||"TypeError"==e.name)&&(e.message="Evaluating "+(load.name||load.address)+"\n "+e.message),e}System.register=__curRegister}!function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new z(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:c&&c.metadata||{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new z(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return e=a(c),e.status="linked",e;for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,z.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"anon"+ ++B,b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return z.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,z.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,z.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new z(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){try{o(a)}catch(b){return l(a,b),!0}}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b){for(var c=a.loader,d=a.loads.concat([]),e=0,f=d.length;f>e;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==A.call(c.loaderObj.failed,g)&&c.loaderObj.failed.push(g);var h=A.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=A.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=A.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=A.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==A.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;f--){for(var g=c[f],h=0;hc;c++){var g=d.importers[c];if(!g.locked){var h=A.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==A.call(b,h)&&(d=u(h,b,c)))return d+"\n in module "+h.name}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=s(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function v(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{}},y(this,"global",{get:function(){return __global}})}function w(){}function x(a,b){return D[a]=b,b.then(function(){D[a]=void 0}),b["catch"](function(){D[a]=void 0}),b}var y,z=__global.Promise||require("when/es6-shim/Promise");!function(){try{Object.defineProperty({},"a",{})&&(y=Object.defineProperty)}catch(a){y=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),console.assert=console.assert||function(){};var A=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},B=0,C={},D={};v.prototype={constructor:v,define:function(a,b,c){if(D[a])throw new TypeError("Module is already loading.");return x(a,new z(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(t(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return z.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(t(e.modules[a],[],e._loader),e.modules[a].module):D[a]||x(a,b(e,a,c||{}).then(function(b){return delete D[a],r(e,b)}))})},load:function(a){return this._loader.modules[a]?(t(this._loader.modules[a],[],this._loader),z.resolve(this._loader.modules[a].module)):D[a]||x(a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=z.resolve(b),i=this._loader,j=e.done.then(function(){return r(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new w;for(var c in a)!function(c){y(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof w))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=v.prototype.newModule;!function(){function a(a,b){if(a.errors.length){for(var c=0,d=a.errors.length;d>c;c++);throw new Error("Parse of "+b.name+", "+b.address+" failed, "+a.errors.length)}}var b;v.prototype.parse=function(c){if(!b)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=new b.Compiler,e=System.traceurOptions||{};e.modules="instantiate",e.sourceMaps=!0,e.filename=c.address;var f=d.stringToTree({content:c.source,options:e});a(f),f=d.treeToTree(f),a(f),f=d.treeToString(f),a(f);var g=f.js,h=f.generatedSourceMap;__global.btoa&&h&&(g+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(h)))+"\n"),__eval(g,__global,c)}}(),"object"==typeof exports&&(module.exports=v),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||v,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=v}();var __curRegister}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function d(a,d){return d=b(d||""),a=b(a||""),d&&a?(d.protocol||a.protocol)+(d.protocol||d.authority?d.authority:a.authority)+c(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+d.pathname:a.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||a.search)+d.hash:null}function e(){document.removeEventListener("DOMContentLoaded",e,!1),window.removeEventListener("load",e,!1),f()}function f(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(c==f&&f.length>e.length){e=f;break}}else c.substr(0,g[0].length)==g[0]&&c.substr(c.length-g[1].length)==g[1]&&(e=f,b=c.substr(g[0].length,c.length-g[1].length-g[0].length))}var h=this.paths[e];return b&&(h=h.replace("*",b)),i&&(h=h.replace(/#/g,"%23")),d(this.baseURL,h)},fetch:function(a){var b=this;return new k(function(c,e){g(d(b.baseURL,a.address),function(a){c(a)},e)})}});if(i||h){var n=a.location.href.split("#")[0].split("?")[0];m.baseURL=n.substring(0,n.lastIndexOf("/")+1)}else m.baseURL=process.cwd()+"/";if(m.paths={"*":"*.js"},"object"==typeof exports&&(module.exports=m),a.System=m,i){var o=document.getElementsByTagName("script");o=o[o.length-1],"complete"===document.readyState?setTimeout(f):document.addEventListener&&(document.addEventListener("DOMContentLoaded",e,!1),window.addEventListener("load",e,!1)),o.getAttribute("data-init")&&window[o.getAttribute("data-init")]()}}("undefined"!=typeof global?global:this); \ No newline at end of file diff --git a/dist/es6-module-loader.js b/dist/es6-module-loader.js index 47eace8..8df75dd 100644 --- a/dist/es6-module-loader.js +++ b/dist/es6-module-loader.js @@ -2211,7 +2211,8 @@ function logloads(loads) { var traceur; Loader.prototype.parse = function(load) { if (!traceur) { - if (typeof window == 'undefined') + if (typeof window == 'undefined' && + typeof WorkerGlobalScope == 'undefined') traceur = require('traceur'); else if (__global.traceur) traceur = __global.traceur; @@ -2303,7 +2304,8 @@ function logloads(loads) { (function (global) { - var isBrowser = typeof window != 'undefined'; + var isWorker = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope; + var isBrowser = typeof window != 'undefined' && !isWorker; var Loader = global.Reflect && global.Reflect.Loader || require('./loader'); var Promise = global.Promise || require('when/es6-shim/Promise'); @@ -2350,7 +2352,7 @@ function logloads(loads) { } var fetchTextFromURL; - if (isBrowser) { + if (isBrowser || isWorker) { fetchTextFromURL = function(url, fulfill, reject) { var xhr = new XMLHttpRequest(); var sameDomain = true; @@ -2403,7 +2405,7 @@ function logloads(loads) { } var System = new Loader({ - global: isBrowser ? window : global, + global: isBrowser ? window : (isWorker ? self : global), strict: true, normalize: function(name, parentName, parentAddress) { if (typeof name != 'string') @@ -2491,14 +2493,12 @@ function logloads(loads) { if (wildcard) outPath = outPath.replace('*', wildcard); - // percent encode each path part - if (isBrowser) { - var outParts = outPath.split('/'); - for (var i = 0, l = outParts.length; i < l; i++) { - outParts[i] = encodeURIComponent(outParts[i]); - } - outPath = outParts.join('/'); - } + // percent encode just '#' in module names + // according to https://github.com/jorendorff/js-loaders/blob/master/browser-loader.js#L238 + // we should encode everything, but it breaks for servers that don't expect it + // like in (https://github.com/systemjs/systemjs/issues/168) + if (isBrowser) + outPath = outPath.replace(/#/g, '%23'); return toAbsoluteURL(this.baseURL, outPath); }, @@ -2512,8 +2512,8 @@ function logloads(loads) { }, }); - if (isBrowser) { - var href = window.location.href.split('#')[0].split('?')[0]; + if (isBrowser || isWorker) { + var href = global.location.href.split('#')[0].split('?')[0]; System.baseURL = href.substring(0, href.lastIndexOf('/') + 1); } else { diff --git a/dist/es6-module-loader.min.js b/dist/es6-module-loader.min.js index e4a19fe..88deebc 100644 --- a/dist/es6-module-loader.min.js +++ b/dist/es6-module-loader.min.js @@ -3,4 +3,4 @@ * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;gf;++f)e[f]=d[f];else{for(a=d.length,b=this.tail;a>c;++f,++c)e[f]=d[c];for(c=0;b>c;++f,++c)e[f]=d[c]}this.buffer=e,this.head=0,this.tail=this.length},a})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],4:[function(b,c){!function(a){"use strict";a(function(a){function b(a){this._async=a,this._queue=new d(15),this._afterQueue=new d(5),this._running=!1;var b=this;this.drain=function(){b._drain()}}function c(a){for(;a.length>0;)a.shift().run()}var d=a("./Queue");return b.prototype.enqueue=function(a){this._add(this._queue,a)},b.prototype.afterQueue=function(a){this._add(this._afterQueue,a)},b.prototype._drain=function(){c(this._queue),this._running=!1,c(this._afterQueue)},b.prototype._add=function(a,b){a.push(b),this._running||(this._running=!0,this._async(this.drain))},b})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"./Queue":3}],5:[function(b,c){!function(a){"use strict";a(function(a){var b,c;return b="undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick?function(a){process.nextTick(a)}:(c="function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver)?function(a,b){function c(){var a=d;d=void 0,a()}var d,e=a.createElement("div"),f=new b(c);return f.observe(e,{attributes:!0}),function(a){d=a,e.setAttribute("class","x")}}(document,c):function(a){try{return a("vertx").runOnLoop||a("vertx").runOnContext}catch(b){}var c=setTimeout;return function(a){c(a,0)}}(a)})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c){!function(a){"use strict";a(function(a){function b(a){var b="object"==typeof a&&a.stack?a.stack:c(a);return a instanceof Error?b:b+" (WARNING: non-Error used)"}function c(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=d(a,b)),b}function d(a,b){try{return JSON.stringify(a)}catch(a){return b}}function e(a){throw a}function f(){}var g=a("../timer");return function(a){function d(a){a.handled||(n.push(a),k("Potentially unhandled rejection ["+a.id+"] "+b(a.value)))}function h(a){var b=n.indexOf(a);b>=0&&(n.splice(b,1),l("Handled previous rejection ["+a.id+"] "+c(a.value)))}function i(a,b){m.push(a,b),o||(o=!0,o=g.set(j,0))}function j(){for(o=!1;m.length>0;)m.shift()(m.shift())}var k=f,l=f;"undefined"!=typeof console&&(k="undefined"!=typeof console.error?function(a){}:function(a){},l="undefined"!=typeof console.info?function(a){}:function(a){}),a.onPotentiallyUnhandledRejection=function(a){i(d,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){i(h,a)},a.onFatalRejection=function(a){i(e,a.value)};var m=[],n=[],o=!1;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../timer":8}],7:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===l?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new n;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return z(a)?a:new b(l,new o(j(a)))}function e(a){return new b(l,new o(new r(a)))}function f(){return O}function g(){return new b(l,new n)}function h(a){function c(a,b,c){this[a]=b,0===--i&&c.become(new q(this))}var d,e,f,g,h=new n,i=a.length>>>0,j=new Array(i);for(d=0;d0)){h.become(e);break}j[d]=e.value,--i}else j[d]=f,--i;else--i;return 0===i&&h.become(new q(j)),new b(l,h)}function i(a){if(Object(a)===a&&0===a.length)return f();var c,d,e=new n;for(c=0;c0)return new b(l,d);var e=this._beget(),f=e._handler;return d.chain(f,d.receiver,a,c,arguments.length>2?arguments[2]:void 0),e},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){var a=this._handler,b=new n(a.receiver,a.join().context);return new this.constructor(l,b)},b.all=h,b.race=i,l.prototype.when=l.prototype.become=l.prototype.notify=l.prototype.fail=l.prototype._unreport=l.prototype._report=I,l.prototype._state=0,l.prototype.state=function(){return this._state},l.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},l.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},l.prototype.visit=function(a,b,c,d){this.chain(L,a,b,c,d)},l.prototype.fold=function(a,b,c,d){this.visit(d,function(d){a.call(c,b,d,this)},d.reject,d.notify)},H(l,m),m.prototype.become=function(a){a.fail()};var L=new m;H(l,n),n.prototype._state=0,n.prototype.resolve=function(a){this.become(j(a))},n.prototype.reject=function(a){this.resolved||this.become(new r(a))},n.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=u();return a},n.prototype.run=function(){var a=this.consumers,b=this.join();this.consumers=void 0;for(var c=0;cf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,z.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"anon"+ ++B,b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return z.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,z.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,z.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new z(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){try{o(a)}catch(b){return l(a,b),!0}}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b){for(var c=a.loader,d=a.loads.concat([]),e=0,f=d.length;f>e;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==A.call(c.loaderObj.failed,g)&&c.loaderObj.failed.push(g);var h=A.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=A.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=A.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=A.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==A.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;f--){for(var g=c[f],h=0;hc;c++){var g=d.importers[c];if(!g.locked){var h=A.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==A.call(b,h)&&(d=u(h,b,c)))return d+"\n in module "+h.name}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=s(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function v(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{}},y(this,"global",{get:function(){return __global}})}function w(){}function x(a,b){return D[a]=b,b.then(function(){D[a]=void 0}),b["catch"](function(){D[a]=void 0}),b}var y,z=__global.Promise||require("when/es6-shim/Promise");!function(){try{Object.defineProperty({},"a",{})&&(y=Object.defineProperty)}catch(a){y=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),console.assert=console.assert||function(){};var A=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},B=0,C={},D={};v.prototype={constructor:v,define:function(a,b,c){if(D[a])throw new TypeError("Module is already loading.");return x(a,new z(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(t(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return z.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(t(e.modules[a],[],e._loader),e.modules[a].module):D[a]||x(a,b(e,a,c||{}).then(function(b){return delete D[a],r(e,b)}))})},load:function(a){return this._loader.modules[a]?(t(this._loader.modules[a],[],this._loader),z.resolve(this._loader.modules[a].module)):D[a]||x(a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=z.resolve(b),i=this._loader,j=e.done.then(function(){return r(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new w;for(var c in a)!function(c){y(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof w))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=v.prototype.newModule;!function(){function a(a,b){if(a.errors.length){for(var c=0,d=a.errors.length;d>c;c++);throw new Error("Parse of "+b.name+", "+b.address+" failed, "+a.errors.length)}}var b;v.prototype.parse=function(c){if(!b)if("undefined"==typeof window)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=new b.Compiler,e=System.traceurOptions||{};e.modules="instantiate",e.sourceMaps=!0,e.filename=c.address;var f=d.stringToTree({content:c.source,options:e});a(f),f=d.treeToTree(f),a(f),f=d.treeToString(f),a(f);var g=f.js,h=f.generatedSourceMap;__global.btoa&&h&&(g+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(h)))+"\n"),__eval(g,__global,c)}}(),"object"==typeof exports&&(module.exports=v),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||v,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=v}();var __curRegister}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function d(a,d){return d=b(d||""),a=b(a||""),d&&a?(d.protocol||a.protocol)+(d.protocol||d.authority?d.authority:a.authority)+c(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+d.pathname:a.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||a.search)+d.hash:null}function e(){document.removeEventListener("DOMContentLoaded",e,!1),window.removeEventListener("load",e,!1),f()}function f(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(c==f&&f.length>e.length){e=f;break}}else c.substr(0,g[0].length)==g[0]&&c.substr(c.length-g[1].length)==g[1]&&(e=f,b=c.substr(g[0].length,c.length-g[1].length-g[0].length))}var i=this.paths[e];if(b&&(i=i.replace("*",b)),h){for(var j=i.split("/"),k=0,l=j.length;l>k;k++)j[k]=encodeURIComponent(j[k]);i=j.join("/")}return d(this.baseURL,i)},fetch:function(a){var b=this;return new j(function(c,e){g(d(b.baseURL,a.address),function(a){c(a)},e)})}});if(h){var m=window.location.href.split("#")[0].split("?")[0];l.baseURL=m.substring(0,m.lastIndexOf("/")+1)}else l.baseURL=process.cwd()+"/";if(l.paths={"*":"*.js"},"object"==typeof exports&&(module.exports=l),a.System=l,h){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(f):document.addEventListener&&(document.addEventListener("DOMContentLoaded",e,!1),window.addEventListener("load",e,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}("undefined"!=typeof global?global:this); \ No newline at end of file +!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;gf;++f)e[f]=d[f];else{for(a=d.length,b=this.tail;a>c;++f,++c)e[f]=d[c];for(c=0;b>c;++f,++c)e[f]=d[c]}this.buffer=e,this.head=0,this.tail=this.length},a})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],4:[function(b,c){!function(a){"use strict";a(function(a){function b(a){this._async=a,this._queue=new d(15),this._afterQueue=new d(5),this._running=!1;var b=this;this.drain=function(){b._drain()}}function c(a){for(;a.length>0;)a.shift().run()}var d=a("./Queue");return b.prototype.enqueue=function(a){this._add(this._queue,a)},b.prototype.afterQueue=function(a){this._add(this._afterQueue,a)},b.prototype._drain=function(){c(this._queue),this._running=!1,c(this._afterQueue)},b.prototype._add=function(a,b){a.push(b),this._running||(this._running=!0,this._async(this.drain))},b})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"./Queue":3}],5:[function(b,c){!function(a){"use strict";a(function(a){var b,c;return b="undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick?function(a){process.nextTick(a)}:(c="function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver)?function(a,b){function c(){var a=d;d=void 0,a()}var d,e=a.createElement("div"),f=new b(c);return f.observe(e,{attributes:!0}),function(a){d=a,e.setAttribute("class","x")}}(document,c):function(a){try{return a("vertx").runOnLoop||a("vertx").runOnContext}catch(b){}var c=setTimeout;return function(a){c(a,0)}}(a)})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c){!function(a){"use strict";a(function(a){function b(a){var b="object"==typeof a&&a.stack?a.stack:c(a);return a instanceof Error?b:b+" (WARNING: non-Error used)"}function c(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=d(a,b)),b}function d(a,b){try{return JSON.stringify(a)}catch(a){return b}}function e(a){throw a}function f(){}var g=a("../timer");return function(a){function d(a){a.handled||(n.push(a),k("Potentially unhandled rejection ["+a.id+"] "+b(a.value)))}function h(a){var b=n.indexOf(a);b>=0&&(n.splice(b,1),l("Handled previous rejection ["+a.id+"] "+c(a.value)))}function i(a,b){m.push(a,b),o||(o=!0,o=g.set(j,0))}function j(){for(o=!1;m.length>0;)m.shift()(m.shift())}var k=f,l=f;"undefined"!=typeof console&&(k="undefined"!=typeof console.error?function(a){}:function(a){},l="undefined"!=typeof console.info?function(a){}:function(a){}),a.onPotentiallyUnhandledRejection=function(a){i(d,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){i(h,a)},a.onFatalRejection=function(a){i(e,a.value)};var m=[],n=[],o=!1;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../timer":8}],7:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===l?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new n;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return z(a)?a:new b(l,new o(j(a)))}function e(a){return new b(l,new o(new r(a)))}function f(){return O}function g(){return new b(l,new n)}function h(a){function c(a,b,c){this[a]=b,0===--i&&c.become(new q(this))}var d,e,f,g,h=new n,i=a.length>>>0,j=new Array(i);for(d=0;d0)){h.become(e);break}j[d]=e.value,--i}else j[d]=f,--i;else--i;return 0===i&&h.become(new q(j)),new b(l,h)}function i(a){if(Object(a)===a&&0===a.length)return f();var c,d,e=new n;for(c=0;c0)return new b(l,d);var e=this._beget(),f=e._handler;return d.chain(f,d.receiver,a,c,arguments.length>2?arguments[2]:void 0),e},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){var a=this._handler,b=new n(a.receiver,a.join().context);return new this.constructor(l,b)},b.all=h,b.race=i,l.prototype.when=l.prototype.become=l.prototype.notify=l.prototype.fail=l.prototype._unreport=l.prototype._report=I,l.prototype._state=0,l.prototype.state=function(){return this._state},l.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},l.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},l.prototype.visit=function(a,b,c,d){this.chain(L,a,b,c,d)},l.prototype.fold=function(a,b,c,d){this.visit(d,function(d){a.call(c,b,d,this)},d.reject,d.notify)},H(l,m),m.prototype.become=function(a){a.fail()};var L=new m;H(l,n),n.prototype._state=0,n.prototype.resolve=function(a){this.become(j(a))},n.prototype.reject=function(a){this.resolved||this.become(new r(a))},n.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=u();return a},n.prototype.run=function(){var a=this.consumers,b=this.join();this.consumers=void 0;for(var c=0;cf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,z.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"anon"+ ++B,b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return z.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,z.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,z.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new z(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){try{o(a)}catch(b){return l(a,b),!0}}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b){for(var c=a.loader,d=a.loads.concat([]),e=0,f=d.length;f>e;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==A.call(c.loaderObj.failed,g)&&c.loaderObj.failed.push(g);var h=A.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=A.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=A.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=A.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==A.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;f--){for(var g=c[f],h=0;hc;c++){var g=d.importers[c];if(!g.locked){var h=A.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==A.call(b,h)&&(d=u(h,b,c)))return d+"\n in module "+h.name}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=s(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function v(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{}},y(this,"global",{get:function(){return __global}})}function w(){}function x(a,b){return D[a]=b,b.then(function(){D[a]=void 0}),b["catch"](function(){D[a]=void 0}),b}var y,z=__global.Promise||require("when/es6-shim/Promise");!function(){try{Object.defineProperty({},"a",{})&&(y=Object.defineProperty)}catch(a){y=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),console.assert=console.assert||function(){};var A=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},B=0,C={},D={};v.prototype={constructor:v,define:function(a,b,c){if(D[a])throw new TypeError("Module is already loading.");return x(a,new z(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(t(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return z.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(t(e.modules[a],[],e._loader),e.modules[a].module):D[a]||x(a,b(e,a,c||{}).then(function(b){return delete D[a],r(e,b)}))})},load:function(a){return this._loader.modules[a]?(t(this._loader.modules[a],[],this._loader),z.resolve(this._loader.modules[a].module)):D[a]||x(a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=z.resolve(b),i=this._loader,j=e.done.then(function(){return r(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new w;for(var c in a)!function(c){y(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof w))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=v.prototype.newModule;!function(){function a(a,b){if(a.errors.length){for(var c=0,d=a.errors.length;d>c;c++);throw new Error("Parse of "+b.name+", "+b.address+" failed, "+a.errors.length)}}var b;v.prototype.parse=function(c){if(!b)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=new b.Compiler,e=System.traceurOptions||{};e.modules="instantiate",e.sourceMaps=!0,e.filename=c.address;var f=d.stringToTree({content:c.source,options:e});a(f),f=d.treeToTree(f),a(f),f=d.treeToString(f),a(f);var g=f.js,h=f.generatedSourceMap;__global.btoa&&h&&(g+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(h)))+"\n"),__eval(g,__global,c)}}(),"object"==typeof exports&&(module.exports=v),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||v,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=v}();var __curRegister}("undefined"!=typeof global?global:this),function(a){function b(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function c(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function d(a,d){return d=b(d||""),a=b(a||""),d&&a?(d.protocol||a.protocol)+(d.protocol||d.authority?d.authority:a.authority)+c(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(a.authority&&!a.pathname?"/":"")+a.pathname.slice(0,a.pathname.lastIndexOf("/")+1)+d.pathname:a.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||a.search)+d.hash:null}function e(){document.removeEventListener("DOMContentLoaded",e,!1),window.removeEventListener("load",e,!1),f()}function f(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(c==f&&f.length>e.length){e=f;break}}else c.substr(0,g[0].length)==g[0]&&c.substr(c.length-g[1].length)==g[1]&&(e=f,b=c.substr(g[0].length,c.length-g[1].length-g[0].length))}var h=this.paths[e];return b&&(h=h.replace("*",b)),i&&(h=h.replace(/#/g,"%23")),d(this.baseURL,h)},fetch:function(a){var b=this;return new k(function(c,e){g(d(b.baseURL,a.address),function(a){c(a)},e)})}});if(i||h){var n=a.location.href.split("#")[0].split("?")[0];m.baseURL=n.substring(0,n.lastIndexOf("/")+1)}else m.baseURL=process.cwd()+"/";if(m.paths={"*":"*.js"},"object"==typeof exports&&(module.exports=m),a.System=m,i){var o=document.getElementsByTagName("script");o=o[o.length-1],"complete"===document.readyState?setTimeout(f):document.addEventListener&&(document.addEventListener("DOMContentLoaded",e,!1),window.addEventListener("load",e,!1)),o.getAttribute("data-init")&&window[o.getAttribute("data-init")]()}}("undefined"!=typeof global?global:this); \ No newline at end of file diff --git a/lib/system.js b/lib/system.js index 969b594..4bdca23 100644 --- a/lib/system.js +++ b/lib/system.js @@ -205,8 +205,8 @@ // according to https://github.com/jorendorff/js-loaders/blob/master/browser-loader.js#L238 // we should encode everything, but it breaks for servers that don't expect it // like in (https://github.com/systemjs/systemjs/issues/168) - if (isBrowser || isWorker) - outPath = outPath.replace(/#/g, '%40'); + if (isBrowser) + outPath = outPath.replace(/#/g, '%23'); return toAbsoluteURL(this.baseURL, outPath); }, From 55177e100a6194f0e9daf25c57a46a55352fc873 Mon Sep 17 00:00:00 2001 From: guybedford Date: Wed, 13 Aug 2014 11:05:50 -0700 Subject: [PATCH 053/482] 0.8.2 --- README.md | 8 ++++---- bower.json | 4 ++-- dist/es6-module-loader-sans-promises.min.js | 2 +- dist/es6-module-loader.min.js | 2 +- package.json | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index b376f85..1949c83 100644 --- a/README.md +++ b/README.md @@ -17,15 +17,15 @@ See the [demo folder](https://github.com/ModuleLoader/es6-module-loader/blob/mas For an example of a universal module loader based on this polyfill for loading AMD, CommonJS and globals, see [SystemJS](https://github.com/systemjs/systemjs). -_The current version is tested against **[Traceur 0.0.56](https://github.com/google/traceur-compiler/tree/0.0.56)**._ +_The current version is tested against **[Traceur 0.0.58](https://github.com/google/traceur-compiler/tree/0.0.58)**._ _Note the ES6 module specification is still in draft, and subject to change._ ### Basic Use -Download both [es6-module-loader.js](https://raw.githubusercontent.com/ModuleLoader/es6-module-loader/v0.8.1/dist/es6-module-loader.js) and traceur.js into the same folder. +Download both [es6-module-loader.js](https://raw.githubusercontent.com/ModuleLoader/es6-module-loader/v0.8.2/dist/es6-module-loader.js) and traceur.js into the same folder. -If using ES6 syntax (optional), include [`traceur.js`](https://raw.githubusercontent.com/jmcriffey/bower-traceur/0.0.56/traceur.js) in the page first then include `es6-module-loader.js`: +If using ES6 syntax (optional), include [`traceur.js`](https://raw.githubusercontent.com/jmcriffey/bower-traceur/0.0.58/traceur.js) in the page first then include `es6-module-loader.js`: ```html @@ -177,7 +177,7 @@ A basic example of using this extension with a build would be the following: traceur --out app-build.js app/app.js --modules=instantiate ``` -2. If using additional ES6 features apart from modules syntax, load [`traceur-runtime.js`](https://raw.githubusercontent.com/jmcriffey/bower-traceur/0.0.56/traceur-runtime.js) (also included in the `bin` folder when installing Traceur through Bower or npm). Then include `es6-module-loader.js` and then apply the register extension before doing the import or loading the bundle as a script: +2. If using additional ES6 features apart from modules syntax, load [`traceur-runtime.js`](https://raw.githubusercontent.com/jmcriffey/bower-traceur/0.0.58/traceur-runtime.js) (also included in the `bin` folder when installing Traceur through Bower or npm). Then include `es6-module-loader.js` and then apply the register extension before doing the import or loading the bundle as a script: ```html diff --git a/bower.json b/bower.json index e9c523d..849f954 100644 --- a/bower.json +++ b/bower.json @@ -1,11 +1,11 @@ { "name": "es6-module-loader", - "version": "0.8.1", + "version": "0.8.2", "description": "An ES6 Module Loader polyfill based on the latest spec.", "homepage": "https://github.com/ModuleLoader/es6-module-loader", "main": "dist/es6-module-loader-sans-promises.js", "dependencies": { - "traceur": "0.0.56" + "traceur": "0.0.58" }, "keywords": [ "es6", diff --git a/dist/es6-module-loader-sans-promises.min.js b/dist/es6-module-loader-sans-promises.min.js index 799af21..212afd5 100644 --- a/dist/es6-module-loader-sans-promises.min.js +++ b/dist/es6-module-loader-sans-promises.min.js @@ -1,5 +1,5 @@ /* - * es6-module-loader v0.8.1 + * es6-module-loader v0.8.2 * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ diff --git a/dist/es6-module-loader.min.js b/dist/es6-module-loader.min.js index 88deebc..4ead6fb 100644 --- a/dist/es6-module-loader.min.js +++ b/dist/es6-module-loader.min.js @@ -1,5 +1,5 @@ /* - * es6-module-loader v0.8.1 + * es6-module-loader v0.8.2 * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ diff --git a/package.json b/package.json index 8b520b3..83fe156 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "es6-module-loader", "description": "An ES6 Module Loader shim", - "version": "0.8.1", + "version": "0.8.2", "homepage": "https://github.com/ModuleLoader/es6-module-loader", "author": { "name": "Guy Bedford, Luke Hoban, Addy Osmani", @@ -41,7 +41,7 @@ "test": "cd test && node test" }, "dependencies": { - "traceur": "0.0.56", + "traceur": "0.0.58", "when": "^3.4.2" } } From 15ae1a5a7e25ab8d97afd207769698a3b56354ab Mon Sep 17 00:00:00 2001 From: Matthew Phillips Date: Tue, 9 Sep 2014 13:01:16 -0400 Subject: [PATCH 054/482] Ignore bower_components This was just annoying me when trying to develop. --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 6cb772b..ef3fd42 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ node_modules +bower_components tmp From 858c4a56cf73808019d344e63f7d038e40f03bc3 Mon Sep 17 00:00:00 2001 From: Matthew Phillips Date: Tue, 9 Sep 2014 18:36:39 -0400 Subject: [PATCH 055/482] Implement SystemLoader constructor This adds a SystemLoader constructor function used internally to inherit from Loader. `System` then becomes an instance of SystemLoader and `SystemLoader` is set as `System.constructor`. This way downstream code can do something like: ```js class MyLoader extends System.constructor { fetch() { } } ``` And doing so will have access to `super` and the like. I also added in `esnext` to build this and use es6 classes. We talked about doing it this way and it is *much* more elegant in my opinion (just look at the minimal amount of code changes). Let me know if this adds too much code or you don't like it for some reason and I'll implement this as regular old constructor functions, but I thought this turned out really well. Fixes #199 --- Gruntfile.js | 15 +- dist/loader.js | 1128 +++++++++++++++++++++++++++++++++++++++++ dist/system.js | 326 ++++++++++++ lib/index.js | 4 +- lib/system.js | 50 +- package.json | 4 +- test/test.html | 4 +- test/worker/worker.js | 4 +- 8 files changed, 1506 insertions(+), 29 deletions(-) create mode 100644 dist/loader.js create mode 100644 dist/system.js diff --git a/Gruntfile.js b/Gruntfile.js index aea8c42..a2a5fbe 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -18,16 +18,23 @@ module.exports = function (grunt) { 'lib/system.js' ] }, - concat: { + esnext: { dist: { src: [ - // 'node_modules/rsvp/dist/rsvp.js', 'node_modules/when/es6-shim/Promise.js', 'lib/loader.js', 'lib/system.js' ], dest: 'dist/<%= pkg.name %>.js' }, + loader: { + src: [ 'lib/loader.js' ], + dest: 'dist/loader.js' + }, + system: { + src: [ 'lib/system.js' ], + dest: 'dist/system.js' + }, polyfillOnly: { src: [ 'lib/loader.js', @@ -57,10 +64,10 @@ module.exports = function (grunt) { } }); - grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-contrib-uglify'); + grunt.loadNpmTasks('grunt-esnext'); grunt.registerTask('lint', ['jshint']); - grunt.registerTask('default', [/*'jshint', */'concat', 'uglify']); + grunt.registerTask('default', [/*'jshint', */'esnext', 'uglify']); }; diff --git a/dist/loader.js b/dist/loader.js new file mode 100644 index 0000000..1e99099 --- /dev/null +++ b/dist/loader.js @@ -0,0 +1,1128 @@ +/* +********************************************************************************************* + + Loader Polyfill + + - Implemented exactly to the 2014-07-18 Specification Draft. + + - Functions are commented with their spec numbers, with spec differences commented. + + - Spec bugs are commented in this code with links. + + - Abstract functions have been combined where possible, and their associated functions + commented. + + - Realm implementation is entirely omitted. + + - Loader module table iteration currently not yet implemented. + +********************************************************************************************* +*/ + +// Some Helpers + +// logs a linkset snapshot for debugging +/* function snapshot(loader) { + console.log('---Snapshot---'); + for (var i = 0; i < loader.loads.length; i++) { + var load = loader.loads[i]; + var linkSetLog = ' ' + load.name + ' (' + load.status + '): '; + + for (var j = 0; j < load.linkSets.length; j++) { + linkSetLog += '{' + logloads(load.linkSets[j].loads) + '} '; + } + console.log(linkSetLog); + } + console.log(''); +} +function logloads(loads) { + var log = ''; + for (var k = 0; k < loads.length; k++) + log += loads[k].name + (k != loads.length - 1 ? ' ' : ''); + return log; +} */ + + +/* function checkInvariants() { + // see https://bugs.ecmascript.org/show_bug.cgi?id=2603#c1 + + var loads = System._loader.loads; + var linkSets = []; + + for (var i = 0; i < loads.length; i++) { + var load = loads[i]; + console.assert(load.status == 'loading' || load.status == 'loaded', 'Each load is loading or loaded'); + + for (var j = 0; j < load.linkSets.length; j++) { + var linkSet = load.linkSets[j]; + + for (var k = 0; k < linkSet.loads.length; k++) + console.assert(loads.indexOf(linkSet.loads[k]) != -1, 'linkSet loads are a subset of loader loads'); + + if (linkSets.indexOf(linkSet) == -1) + linkSets.push(linkSet); + } + } + + for (var i = 0; i < loads.length; i++) { + var load = loads[i]; + for (var j = 0; j < linkSets.length; j++) { + var linkSet = linkSets[j]; + + if (linkSet.loads.indexOf(load) != -1) + console.assert(load.linkSets.indexOf(linkSet) != -1, 'linkSet contains load -> load contains linkSet'); + + if (load.linkSets.indexOf(linkSet) != -1) + console.assert(linkSet.loads.indexOf(load) != -1, 'load contains linkSet -> linkSet contains load'); + } + } + + for (var i = 0; i < linkSets.length; i++) { + var linkSet = linkSets[i]; + for (var j = 0; j < linkSet.loads.length; j++) { + var load = linkSet.loads[j]; + + for (var k = 0; k < load.dependencies.length; k++) { + var depName = load.dependencies[k].value; + var depLoad; + for (var l = 0; l < loads.length; l++) { + if (loads[l].name != depName) + continue; + depLoad = loads[l]; + break; + } + + // loading records are allowed not to have their dependencies yet + // if (load.status != 'loading') + // console.assert(depLoad, 'depLoad found'); + + // console.assert(linkSet.loads.indexOf(depLoad) != -1, 'linkset contains all dependencies'); + } + } + } +} */ + + +(function (__global) { + (function() { + var Promise = __global.Promise || require('when/es6-shim/Promise'); + + var defineProperty; + (function () { + try { + if (!!Object.defineProperty({}, 'a', {})) { + defineProperty = Object.defineProperty; + } + } catch (e) { + defineProperty = function (obj, prop, opt) { + try { + obj[prop] = opt.value || opt.get.call(obj); + } + catch(e) {} + } + } + }()); + + console.assert = console.assert || function() {}; + + // IE8 support + var indexOf = Array.prototype.indexOf || function(item) { + for (var i = 0, thisLen = this.length; i < thisLen; i++) { + if (this[i] === item) { + return i; + } + } + return -1; + }; + + // 15.2.3 - Runtime Semantics: Loader State + + // 15.2.3.11 + function createLoaderLoad(object) { + return { + // modules is an object for ES5 implementation + modules: {}, + loads: [], + loaderObj: object + }; + } + + // 15.2.3.2 Load Records and LoadRequest Objects + + // 15.2.3.2.1 + function createLoad(name) { + return { + status: 'loading', + name: name, + linkSets: [], + dependencies: [], + metadata: {} + }; + } + + // 15.2.3.2.2 createLoadRequestObject, absorbed into calling functions + + // 15.2.4 + + // 15.2.4.1 + function loadModule(loader, name, options) { + return new Promise(asyncStartLoadPartwayThrough({ + step: options.address ? 'fetch' : 'locate', + loader: loader, + moduleName: name, + // allow metadata for import https://bugs.ecmascript.org/show_bug.cgi?id=3091 + moduleMetadata: options && options.metadata || {}, + moduleSource: options.source, + moduleAddress: options.address + })); + } + + // 15.2.4.2 + function requestLoad(loader, request, refererName, refererAddress) { + // 15.2.4.2.1 CallNormalize + return new Promise(function(resolve, reject) { + resolve(loader.loaderObj.normalize(request, refererName, refererAddress)); + }) + // 15.2.4.2.2 GetOrCreateLoad + .then(function(name) { + var load; + if (loader.modules[name]) { + load = createLoad(name); + load.status = 'linked'; + // https://bugs.ecmascript.org/show_bug.cgi?id=2795 + // load.module = loader.modules[name]; + return load; + } + + for (var i = 0, l = loader.loads.length; i < l; i++) { + load = loader.loads[i]; + if (load.name != name) + continue; + console.assert(load.status == 'loading' || load.status == 'loaded', 'loading or loaded'); + return load; + } + + load = createLoad(name); + loader.loads.push(load); + + proceedToLocate(loader, load); + + return load; + }); + } + + // 15.2.4.3 + function proceedToLocate(loader, load) { + proceedToFetch(loader, load, + Promise.resolve() + // 15.2.4.3.1 CallLocate + .then(function() { + return loader.loaderObj.locate({ name: load.name, metadata: load.metadata }); + }) + ); + } + + // 15.2.4.4 + function proceedToFetch(loader, load, p) { + proceedToTranslate(loader, load, + p + // 15.2.4.4.1 CallFetch + .then(function(address) { + // adjusted, see https://bugs.ecmascript.org/show_bug.cgi?id=2602 + if (load.status != 'loading') + return; + load.address = address; + + return loader.loaderObj.fetch({ name: load.name, metadata: load.metadata, address: address }); + }) + ); + } + + var anonCnt = 0; + + // 15.2.4.5 + function proceedToTranslate(loader, load, p) { + p + // 15.2.4.5.1 CallTranslate + .then(function(source) { + if (load.status != 'loading') + return; + return loader.loaderObj.translate({ name: load.name, metadata: load.metadata, address: load.address, source: source }); + }) + + // 15.2.4.5.2 CallInstantiate + .then(function(source) { + if (load.status != 'loading') + return; + load.source = source; + return loader.loaderObj.instantiate({ name: load.name, metadata: load.metadata, address: load.address, source: source }); + }) + + // 15.2.4.5.3 InstantiateSucceeded + .then(function(instantiateResult) { + if (load.status != 'loading') + return; + + if (instantiateResult === undefined) { + load.address = load.address || 'anon' + ++anonCnt; + + // NB instead of load.kind, use load.isDeclarative + load.isDeclarative = true; + // parse sets load.declare, load.depsList + loader.loaderObj.parse(load); + } + else if (typeof instantiateResult == 'object') { + load.depsList = instantiateResult.deps || []; + load.execute = instantiateResult.execute; + load.isDeclarative = false; + } + else + throw TypeError('Invalid instantiate return value'); + + // 15.2.4.6 ProcessLoadDependencies + load.dependencies = []; + var depsList = load.depsList; + + var loadPromises = []; + for (var i = 0, l = depsList.length; i < l; i++) (function(request, index) { + loadPromises.push( + requestLoad(loader, request, load.name, load.address) + + // 15.2.4.6.1 AddDependencyLoad (load is parentLoad) + .then(function(depLoad) { + + console.assert(!load.dependencies.some(function(dep) { + return dep.key == request; + }), 'not already a dependency'); + + // adjusted from spec to maintain dependency order + // this is due to the System.register internal implementation needs + load.dependencies[index] = { + key: request, + value: depLoad.name + }; + + if (depLoad.status != 'linked') { + var linkSets = load.linkSets.concat([]); + for (var i = 0, l = linkSets.length; i < l; i++) + addLoadToLinkSet(linkSets[i], depLoad); + } + + // console.log('AddDependencyLoad ' + depLoad.name + ' for ' + load.name); + // snapshot(loader); + }) + ); + })(depsList[i], i); + + return Promise.all(loadPromises); + }) + + // 15.2.4.6.2 LoadSucceeded + .then(function() { + // console.log('LoadSucceeded ' + load.name); + // snapshot(loader); + + console.assert(load.status == 'loading', 'is loading'); + + load.status = 'loaded'; + + var linkSets = load.linkSets.concat([]); + for (var i = 0, l = linkSets.length; i < l; i++) + updateLinkSetOnLoad(linkSets[i], load); + }) + + // 15.2.4.5.4 LoadFailed + ['catch'](function(exc) { + console.assert(load.status == 'loading', 'is loading on fail'); + load.status = 'failed'; + load.exception = exc; + + var linkSets = load.linkSets.concat([]); + for (var i = 0, l = linkSets.length; i < l; i++) + linkSetFailed(linkSets[i], exc); + + console.assert(load.linkSets.length == 0, 'linkSets not removed'); + }); + } + + // 15.2.4.7 PromiseOfStartLoadPartwayThrough absorbed into calling functions + + // 15.2.4.7.1 + function asyncStartLoadPartwayThrough(stepState) { + return function(resolve, reject) { + var loader = stepState.loader; + var name = stepState.moduleName; + var step = stepState.step; + + if (loader.modules[name]) + throw new TypeError('"' + name + '" already exists in the module table'); + + // NB this still seems wrong for LoadModule as we may load a dependency + // of another module directly before it has finished loading. + // see https://bugs.ecmascript.org/show_bug.cgi?id=2994 + for (var i = 0, l = loader.loads.length; i < l; i++) + if (loader.loads[i].name == name) + throw new TypeError('"' + name + '" already loading'); + + var load = createLoad(name); + + load.metadata = stepState.moduleMetadata; + + var linkSet = createLinkSet(loader, load); + + loader.loads.push(load); + + resolve(linkSet.done); + + if (step == 'locate') + proceedToLocate(loader, load); + + else if (step == 'fetch') + proceedToFetch(loader, load, Promise.resolve(stepState.moduleAddress)); + + else { + console.assert(step == 'translate', 'translate step'); + load.address = stepState.moduleAddress; + proceedToTranslate(loader, load, Promise.resolve(stepState.moduleSource)); + } + } + } + + // Declarative linking functions run through alternative implementation: + // 15.2.5.1.1 CreateModuleLinkageRecord not implemented + // 15.2.5.1.2 LookupExport not implemented + // 15.2.5.1.3 LookupModuleDependency not implemented + + // 15.2.5.2.1 + function createLinkSet(loader, startingLoad) { + var linkSet = { + loader: loader, + loads: [], + startingLoad: startingLoad, // added see spec bug https://bugs.ecmascript.org/show_bug.cgi?id=2995 + loadingCount: 0 + }; + linkSet.done = new Promise(function(resolve, reject) { + linkSet.resolve = resolve; + linkSet.reject = reject; + }); + addLoadToLinkSet(linkSet, startingLoad); + return linkSet; + } + // 15.2.5.2.2 + function addLoadToLinkSet(linkSet, load) { + 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++) + if (linkSet.loads[i] == load) + return; + + linkSet.loads.push(load); + load.linkSets.push(linkSet); + + // adjustment, see https://bugs.ecmascript.org/show_bug.cgi?id=2603 + if (load.status != 'loaded') { + linkSet.loadingCount++; + } + + var loader = linkSet.loader; + + for (var i = 0, l = load.dependencies.length; i < l; i++) { + var name = load.dependencies[i].value; + + if (loader.modules[name]) + continue; + + for (var j = 0, d = loader.loads.length; j < d; j++) { + if (loader.loads[j].name != name) + continue; + + addLoadToLinkSet(linkSet, loader.loads[j]); + break; + } + } + // console.log('add to linkset ' + load.name); + // snapshot(linkSet.loader); + } + + function doLink(linkSet) { + try { + link(linkSet); + } + catch(exc) { + linkSetFailed(linkSet, exc); + return true; + } + } + + // 15.2.5.2.3 + function updateLinkSetOnLoad(linkSet, load) { + // console.log('update linkset on load ' + load.name); + // snapshot(linkSet.loader); + + console.assert(load.status == 'loaded' || load.status == 'linked', 'loaded or linked'); + + linkSet.loadingCount--; + + if (linkSet.loadingCount > 0) + return; + + // adjusted for spec bug https://bugs.ecmascript.org/show_bug.cgi?id=2995 + var startingLoad = linkSet.startingLoad; + + // non-executing link variation for loader tracing + // on the server. Not in spec. + /***/ + if (linkSet.loader.loaderObj.execute === false) { + var loads = [].concat(linkSet.loads); + for (var i = 0, l = loads.length; i < l; i++) { + var load = loads[i]; + load.module = !load.isDeclarative ? { + module: _newModule({}) + } : { + name: load.name, + module: _newModule({}), + evaluated: true + }; + load.status = 'linked'; + finishLoad(linkSet.loader, load); + } + return linkSet.resolve(startingLoad); + } + /***/ + + var abrupt = doLink(linkSet); + + if (abrupt) + return; + + console.assert(linkSet.loads.length == 0, 'loads cleared'); + + linkSet.resolve(startingLoad); + } + + // 15.2.5.2.4 + function linkSetFailed(linkSet, exc) { + var loader = linkSet.loader; + var loads = linkSet.loads.concat([]); + for (var i = 0, l = loads.length; i < l; i++) { + var load = loads[i]; + + // store all failed load records + loader.loaderObj.failed = loader.loaderObj.failed || []; + if (indexOf.call(loader.loaderObj.failed, load) == -1) + loader.loaderObj.failed.push(load); + + var linkIndex = indexOf.call(load.linkSets, linkSet); + console.assert(linkIndex != -1, 'link not present'); + load.linkSets.splice(linkIndex, 1); + if (load.linkSets.length == 0) { + var globalLoadsIndex = indexOf.call(linkSet.loader.loads, load); + if (globalLoadsIndex != -1) + linkSet.loader.loads.splice(globalLoadsIndex, 1); + } + } + linkSet.reject(exc); + } + + // 15.2.5.2.5 + function finishLoad(loader, load) { + // add to global trace if tracing + if (loader.loaderObj.trace) { + if (!loader.loaderObj.loads) + loader.loaderObj.loads = {}; + var depMap = {}; + load.dependencies.forEach(function(dep) { + depMap[dep.key] = dep.value; + }); + loader.loaderObj.loads[load.name] = { + name: load.name, + deps: load.dependencies.map(function(dep){ return dep.key }), + depMap: depMap, + address: load.address, + metadata: load.metadata, + source: load.source, + kind: load.isDeclarative ? 'declarative' : 'dynamic' + }; + } + // if not anonymous, add to the module table + if (load.name) { + console.assert(!loader.modules[load.name], 'load not in module table'); + loader.modules[load.name] = load.module; + } + var loadIndex = indexOf.call(loader.loads, load); + if (loadIndex != -1) + loader.loads.splice(loadIndex, 1); + for (var i = 0, l = load.linkSets.length; i < l; i++) { + loadIndex = indexOf.call(load.linkSets[i].loads, load); + if (loadIndex != -1) + load.linkSets[i].loads.splice(loadIndex, 1); + } + load.linkSets.splice(0, load.linkSets.length); + } + + // 15.2.5.3 Module Linking Groups + + // 15.2.5.3.2 BuildLinkageGroups alternative implementation + // Adjustments (also see https://bugs.ecmascript.org/show_bug.cgi?id=2755) + // 1. groups is an already-interleaved array of group kinds + // 2. load.groupIndex is set when this function runs + // 3. load.groupIndex is the interleaved index ie 0 declarative, 1 dynamic, 2 declarative, ... (or starting with dynamic) + function buildLinkageGroups(load, loads, groups, loader) { + groups[load.groupIndex] = groups[load.groupIndex] || []; + + // if the load already has a group index and its in its group, its already been done + // this logic naturally handles cycles + if (indexOf.call(groups[load.groupIndex], load) != -1) + return; + + // now add it to the group to indicate its been seen + groups[load.groupIndex].push(load); + + for (var i = 0, l = loads.length; i < l; i++) { + var loadDep = loads[i]; + + // dependencies not found are already linked + for (var j = 0; j < load.dependencies.length; j++) { + if (loadDep.name == load.dependencies[j].value) { + // by definition all loads in linkset are loaded, not linked + console.assert(loadDep.status == 'loaded', 'Load in linkSet not loaded!'); + + // if it is a group transition, the index of the dependency has gone up + // otherwise it is the same as the parent + var loadDepGroupIndex = load.groupIndex + (loadDep.isDeclarative != load.isDeclarative); + + // the group index of an entry is always the maximum + if (loadDep.groupIndex === undefined || loadDep.groupIndex < loadDepGroupIndex) { + + // if already in a group, remove from the old group + if (loadDep.groupIndex) { + groups[loadDep.groupIndex].splice(indexOf.call(groups[loadDep.groupIndex], loadDep), 1); + + // if the old group is empty, then we have a mixed depndency cycle + if (groups[loadDep.groupIndex].length == 0) + throw new TypeError("Mixed dependency cycle detected"); + } + + loadDep.groupIndex = loadDepGroupIndex; + } + + buildLinkageGroups(loadDep, loads, groups, loader); + } + } + } + } + + // 15.2.5.4 + function link(linkSet) { + + var loader = linkSet.loader; + + if (!linkSet.loads.length) + return; + + // console.log('linking {' + logloads(linkSet.loads) + '}'); + // snapshot(loader); + + // 15.2.5.3.1 LinkageGroups alternative implementation + + // build all the groups + // because the first load represents the top of the tree + // for a given linkset, we can work down from there + var groups = []; + var startingLoad = linkSet.loads[0]; + startingLoad.groupIndex = 0; + buildLinkageGroups(startingLoad, linkSet.loads, groups, loader); + + // determine the kind of the bottom group + var curGroupDeclarative = startingLoad.isDeclarative == groups.length % 2; + + // run through the groups from bottom to top + for (var i = groups.length - 1; i >= 0; i--) { + var group = groups[i]; + for (var j = 0; j < group.length; j++) { + var load = group[j]; + + // 15.2.5.5 LinkDeclarativeModules adjusted + if (curGroupDeclarative) { + linkDeclarativeModule(load, linkSet.loads, loader); + } + // 15.2.5.6 LinkDynamicModules adjusted + else { + var module = load.execute(); + if (!module || !(module instanceof Module)) + throw new TypeError('Execution must define a Module instance'); + load.module = { + name: load.name, + module: module + }; + load.status = 'linked'; + } + finishLoad(loader, load); + } + + // alternative current kind for next loop + curGroupDeclarative = !curGroupDeclarative; + } + } + + + // custom module records for binding graph + // store linking module records in a separate table + var moduleRecords = {}; + function getOrCreateModuleRecord(name) { + return moduleRecords[name] || (moduleRecords[name] = { + name: name, + dependencies: [], + module: new Module(), // start from an empty module and extend + importers: [] + }); + } + + // custom declarative linking function + function linkDeclarativeModule(load, loads, loader) { + if (load.module) + return; + + var module = load.module = getOrCreateModuleRecord(load.name); + var moduleObj = load.module.module; + + var registryEntry = load.declare.call(__global, function(name, value) { + // NB This should be an Object.defineProperty, but that is very slow. + // By disaling this module write-protection we gain performance. + // It could be useful to allow an option to enable or disable this. + module.locked = true; + moduleObj[name] = value; + + for (var i = 0, l = module.importers.length; i < l; i++) { + var importerModule = module.importers[i]; + if (!importerModule.locked) { + var importerIndex = indexOf.call(importerModule.dependencies, module); + importerModule.setters[importerIndex](moduleObj); + } + } + + module.locked = false; + return value; + }); + + // setup our setters and execution function + module.setters = registryEntry.setters; + module.execute = registryEntry.execute; + + // now link all the module dependencies + // amending the depMap as we go + for (var i = 0, l = load.dependencies.length; i < l; i++) { + var depName = load.dependencies[i].value; + var depModule = loader.modules[depName]; + + // if dependency not already in the module registry + // then try and link it now + if (!depModule) { + // get the dependency load record + for (var j = 0; j < loads.length; j++) { + if (loads[j].name != depName) + continue; + + // only link if already not already started linking (stops at circular / dynamic) + if (!loads[j].module) { + linkDeclarativeModule(loads[j], loads, loader); + depModule = loads[j].module; + } + // if circular, create the module record + else { + depModule = getOrCreateModuleRecord(depName); + } + } + } + + // only declarative modules have dynamic bindings + if (depModule.importers) { + module.dependencies.push(depModule); + depModule.importers.push(module); + } + else { + // track dynamic records as null module records as already linked + module.dependencies.push(null); + } + + // run the setter for this dependency + if (module.setters[i]) + module.setters[i](depModule.module); + } + + load.status = 'linked'; + } + + + + // 15.2.5.5.1 LinkImports not implemented + // 15.2.5.7 ResolveExportEntries not implemented + // 15.2.5.8 ResolveExports not implemented + // 15.2.5.9 ResolveExport not implemented + // 15.2.5.10 ResolveImportEntries not implemented + + // 15.2.6.1 + function evaluateLoadedModule(loader, load) { + console.assert(load.status == 'linked', 'is linked ' + load.name); + + doEnsureEvaluated(load.module, [], loader); + return load.module.module; + } + + /* + * Module Object non-exotic for ES5: + * + * module.module bound module object + * module.execute execution function for module + * module.dependencies list of module objects for dependencies + * See getOrCreateModuleRecord for all properties + * + */ + function doExecute(module) { + try { + module.execute.call(__global); + } + catch(e) { + return e; + } + } + + // propogate execution errors + // see https://bugs.ecmascript.org/show_bug.cgi?id=2993 + function doEnsureEvaluated(module, seen, loader) { + var err = ensureEvaluated(module, seen, loader); + if (err) + throw err; + } + // 15.2.6.2 EnsureEvaluated adjusted + function ensureEvaluated(module, seen, loader) { + if (module.evaluated || !module.dependencies) + return; + + seen.push(module); + + var deps = module.dependencies; + var err; + + for (var i = 0, l = deps.length; i < l; i++) { + var dep = deps[i]; + // dynamic dependencies are empty in module.dependencies + // as they are already linked + if (!dep) + continue; + if (indexOf.call(seen, dep) == -1) { + err = ensureEvaluated(dep, seen, loader); + // stop on error, see https://bugs.ecmascript.org/show_bug.cgi?id=2996 + if (err) + return err + '\n in module ' + dep.name; + } + } + + if (module.failed) + return new Error('Module failed execution.'); + + if (module.evaluated) + return; + + module.evaluated = true; + err = doExecute(module); + if (err) { + module.failed = true; + } else if (Object.preventExtensions) { + // spec variation + // we don't create a new module here because it was created and ammended + // we just disable further extensions instead + Object.preventExtensions(module.module); + } + + module.execute = undefined; + return err; + } + + // 26.3 Loader + + // 26.3.1.1 + function Loader(options) { + if (typeof options != 'object') + throw new TypeError('Options must be an object'); + + if (options.normalize) + this.normalize = options.normalize; + if (options.locate) + this.locate = options.locate; + if (options.fetch) + this.fetch = options.fetch; + if (options.translate) + this.translate = options.translate; + if (options.instantiate) + this.instantiate = options.instantiate; + + this._loader = { + loaderObj: this, + loads: [], + modules: {} + }; + + // 26.3.3.6 + defineProperty(this, 'global', { + get: function() { + return __global; + } + }); + + // 26.3.3.13 realm not implemented + } + + function Module() {} + + // importPromises adds ability to import a module twice without error - https://bugs.ecmascript.org/show_bug.cgi?id=2601 + var importPromises = {}; + function createImportPromise(name, promise) { + importPromises[name] = promise; + promise.then(function() { + importPromises[name] = undefined; + }); + promise['catch'](function() { + importPromises[name] = undefined; + }); + return promise; + } + + Loader.prototype = { + // 26.3.3.1 + constructor: Loader, + // 26.3.3.2 + define: function(name, source, options) { + // check if already defined + if (importPromises[name]) + throw new TypeError('Module is already loading.'); + return createImportPromise(name, new Promise(asyncStartLoadPartwayThrough({ + step: 'translate', + loader: this._loader, + moduleName: name, + moduleMetadata: options && options.metadata || {}, + moduleSource: source, + moduleAddress: options && options.address + }))); + }, + // 26.3.3.3 + 'delete': function(name) { + return this._loader.modules[name] ? delete this._loader.modules[name] : false; + }, + // 26.3.3.4 entries not implemented + // 26.3.3.5 + get: function(key) { + if (!this._loader.modules[key]) + return; + doEnsureEvaluated(this._loader.modules[key], [], this); + return this._loader.modules[key].module; + }, + // 26.3.3.7 + has: function(name) { + return !!this._loader.modules[name]; + }, + // 26.3.3.8 + 'import': function(name, options) { + // run normalize first + var loaderObj = this; + + // added, see https://bugs.ecmascript.org/show_bug.cgi?id=2659 + return Promise.resolve(loaderObj.normalize(name, options && options.name, options && options.address)) + .then(function(name) { + var loader = loaderObj._loader; + + if (loader.modules[name]) { + doEnsureEvaluated(loader.modules[name], [], loader._loader); + return loader.modules[name].module; + } + + return importPromises[name] || createImportPromise(name, + loadModule(loader, name, options || {}) + .then(function(load) { + delete importPromises[name]; + return evaluateLoadedModule(loader, load); + })); + }); + }, + // 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); + } + return importPromises[name] || createImportPromise(name, loadModule(this._loader, name, {})); + }, + // 26.3.3.11 + module: function(source, options) { + var load = createLoad(); + load.address = options && options.address; + var linkSet = createLinkSet(this._loader, load); + var sourcePromise = Promise.resolve(source); + var loader = this._loader; + var p = linkSet.done.then(function() { + return evaluateLoadedModule(loader, load); + }); + proceedToTranslate(loader, load, sourcePromise); + return p; + }, + // 26.3.3.12 + newModule: function (obj) { + if (typeof obj != 'object') + throw new TypeError('Expected object'); + + // we do this to be able to tell if a module is a module privately in ES5 + // by doing m instanceof Module + var m = new Module(); + + for (var key in obj) { + (function (key) { + defineProperty(m, key, { + configurable: false, + enumerable: true, + get: function () { + return obj[key]; + } + }); + })(key); + } + + if (Object.preventExtensions) + Object.preventExtensions(m); + + return m; + }, + // 26.3.3.14 + set: function(name, module) { + if (!(module instanceof Module)) + throw new TypeError('Loader.set(' + name + ', module) must be a module'); + this._loader.modules[name] = { + module: module + }; + }, + // 26.3.3.15 values not implemented + // 26.3.3.16 @@iterator not implemented + // 26.3.3.17 @@toStringTag not implemented + + // 26.3.3.18.1 + normalize: function(name, referrerName, referrerAddress) { + return name; + }, + // 26.3.3.18.2 + locate: function(load) { + return load.name; + }, + // 26.3.3.18.3 + fetch: function(load) { + throw new TypeError('Fetch not implemented'); + }, + // 26.3.3.18.4 + translate: function(load) { + return load.source; + }, + parse: function(load) { + throw new TypeError('Loader.parse is not implemented'); + }, + // 26.3.3.18.5 + instantiate: function(load) { + } + }; + + var _newModule = Loader.prototype.newModule; + + + /* + * Traceur-specific Parsing Code for Loader + */ + (function() { + function checkForErrors(output, load) { + if (output.errors.length) { + for (var i = 0, l = output.errors.length; i < l; i++) + console.error(output.errors[i]); + throw new Error('Parse of ' + load.name + ', ' + load.address + ' failed, ' + output.errors.length); + } + } + + // parse function is used to parse a load record + // Returns an array of ModuleSpecifiers + var traceur; + Loader.prototype.parse = function(load) { + if (!traceur) { + if (typeof window == 'undefined' && + typeof WorkerGlobalScope == 'undefined') + traceur = require('traceur'); + else if (__global.traceur) + traceur = __global.traceur; + else + throw new TypeError('Include Traceur for module syntax support'); + } + + console.assert(load.source, 'Non-empty source'); + + var depsList; + + load.isDeclarative = true; + + var compiler = new traceur.Compiler(); + var options = System.traceurOptions || {}; + options.modules = 'instantiate'; + options.sourceMaps = true; + options.filename = load.address; + var output = compiler.stringToTree({content: load.source, options: options}); + checkForErrors(output); + + output = compiler.treeToTree(output); + checkForErrors(output); + + output = compiler.treeToString(output); + checkForErrors(output); + + var source = output.js; + var sourceMap = output.generatedSourceMap; + + if (__global.btoa && sourceMap) + source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(sourceMap))) + '\n'; + + __eval(source, __global, load); + } + })(); + + if (typeof exports === 'object') + module.exports = Loader; + + __global.Reflect = __global.Reflect || {}; + __global.Reflect.Loader = __global.Reflect.Loader || Loader; + __global.Reflect.global = __global.Reflect.global || __global; + __global.LoaderPolyfill = Loader; + + })(); + + // Define our eval outside of the scope of any other reference defined in this + // file to avoid adding those references to the evaluation scope. + var __curRegister; + function __eval(__source, __global, load) { + // Hijack System.register to set declare function + __curRegister = System.register; + System.register = function(name, deps, declare) { + if (typeof name != 'string') { + declare = deps; + deps = name; + } + // store the registered declaration as load.declare + // store the deps as load.deps + load.declare = declare; + load.depsList = deps; + } + try { + eval('(function() { var __moduleName = "' + (load.name || '').replace('"', '\"') + '"; ' + __source + ' \n }).call(__global);'); + } + catch(e) { + if (e.name == 'SyntaxError' || e.name == 'TypeError') + e.message = 'Evaluating ' + ((load.name || load.address)) + '\n\t' + e.message; + throw e; + } + + System.register = __curRegister; + } + +})(typeof global !== 'undefined' ? global : this); diff --git a/dist/system.js b/dist/system.js new file mode 100644 index 0000000..abc2d86 --- /dev/null +++ b/dist/system.js @@ -0,0 +1,326 @@ +/* +********************************************************************************************* + + System Loader Implementation + + - Implemented to https://github.com/jorendorff/js-loaders/blob/master/browser-loader.js + + - - - + + - - + @@ -177,7 +177,7 @@ A basic example of using this extension with a build would be the following: traceur --out app-build.js app/app.js --modules=instantiate ``` -2. If using additional ES6 features apart from modules syntax, load [`traceur-runtime.js`](https://raw.githubusercontent.com/jmcriffey/bower-traceur/0.0.58/traceur-runtime.js) (also included in the `bin` folder when installing Traceur through Bower or npm). Then include `es6-module-loader.js` and then apply the register extension before doing the import or loading the bundle as a script: +2. If using additional ES6 features apart from modules syntax, load [`traceur-runtime.js`](https://raw.githubusercontent.com/jmcriffey/bower-traceur/0.0.66/traceur-runtime.js) (also included in the `bin` folder when installing Traceur through Bower or npm). Then include `es6-module-loader.js` and then apply the register extension before doing the import or loading the bundle as a script: ```html diff --git a/bower.json b/bower.json index 849f954..a42be36 100644 --- a/bower.json +++ b/bower.json @@ -1,11 +1,11 @@ { "name": "es6-module-loader", - "version": "0.8.2", + "version": "0.9.0", "description": "An ES6 Module Loader polyfill based on the latest spec.", "homepage": "https://github.com/ModuleLoader/es6-module-loader", "main": "dist/es6-module-loader-sans-promises.js", "dependencies": { - "traceur": "0.0.58" + "traceur": "0.0.66" }, "keywords": [ "es6", diff --git a/dist/es6-module-loader-sans-promises.js b/dist/es6-module-loader-sans-promises.js index 4a03419..b381871 100644 --- a/dist/es6-module-loader-sans-promises.js +++ b/dist/es6-module-loader-sans-promises.js @@ -1,3 +1,1278 @@ +(function(__global) { + +$__Object$getPrototypeOf = Object.getPrototypeOf || function(obj) { + return obj.__proto__; +}; + +var $__Object$defineProperty; +(function () { + try { + if (!!Object.defineProperty({}, 'a', {})) { + $__Object$defineProperty = Object.defineProperty; + } + } catch (e) { + $__Object$defineProperty = function (obj, prop, opt) { + try { + obj[prop] = opt.value || opt.get.call(obj); + } + catch(e) {} + } + } +}()); + +$__Object$create = Object.create || function(o, props) { + function F() {} + F.prototype = o; + + if (typeof(props) === "object") { + for (prop in props) { + if (props.hasOwnProperty((prop))) { + F[prop] = props[prop]; + } + } + } + return new F(); +}; + +!function(e){"object"==typeof exports?module.exports=e():"function"==typeof define&&define.amd?define(e):"undefined"!=typeof window?window.Promise=e():"undefined"!=typeof global?global.Promise=e():"undefined"!=typeof self&&(self.Promise=e())}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o 0) { + queue.shift().run(); + } + } + + return Scheduler; + +}); +}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); })); + +},{"./Queue":3}],5:[function(require,module,exports){ +/** @license MIT License (c) copyright 2010-2014 original author or authors */ +/** @author Brian Cavalier */ +/** @author John Hann */ + +(function(define) { 'use strict'; +define(function(require) { + + // Sniff "best" async scheduling option + // Prefer process.nextTick or MutationObserver, then check for + // vertx and finally fall back to setTimeout + + /*jshint maxcomplexity:6*/ + /*global process,document,setTimeout,MutationObserver,WebKitMutationObserver*/ + var nextTick, MutationObs; + + if (typeof process !== 'undefined' && process !== null && + typeof process.nextTick === 'function') { + nextTick = function(f) { + process.nextTick(f); + }; + + } else if (MutationObs = + (typeof MutationObserver === 'function' && MutationObserver) || + (typeof WebKitMutationObserver === 'function' && WebKitMutationObserver)) { + nextTick = (function (document, MutationObserver) { + var scheduled; + var el = document.createElement('div'); + var o = new MutationObserver(run); + o.observe(el, { attributes: true }); + + function run() { + var f = scheduled; + scheduled = void 0; + f(); + } + + return function (f) { + scheduled = f; + el.setAttribute('class', 'x'); + }; + }(document, MutationObs)); + + } else { + nextTick = (function(cjsRequire) { + var vertx; + try { + // vert.x 1.x || 2.x + vertx = cjsRequire('vertx'); + } catch (ignore) {} + + if (vertx) { + if (typeof vertx.runOnLoop === 'function') { + return vertx.runOnLoop; + } + if (typeof vertx.runOnContext === 'function') { + return vertx.runOnContext; + } + } + + // capture setTimeout to avoid being caught by fake timers + // used in time based tests + var capturedSetTimeout = setTimeout; + return function (t) { + capturedSetTimeout(t, 0); + }; + }(require)); + } + + return nextTick; +}); +}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); })); + +},{}],6:[function(require,module,exports){ +/** @license MIT License (c) copyright 2010-2014 original author or authors */ +/** @author Brian Cavalier */ +/** @author John Hann */ + +(function(define) { 'use strict'; +define(function(require) { + + var timer = require('../timer'); + + return function unhandledRejection(Promise) { + var logError = noop; + var logInfo = noop; + + if(typeof console !== 'undefined') { + logError = typeof console.error !== 'undefined' + ? function (e) { console.error(e); } + : function (e) { console.log(e); }; + + logInfo = typeof console.info !== 'undefined' + ? function (e) { console.info(e); } + : function (e) { console.log(e); }; + } + + Promise.onPotentiallyUnhandledRejection = function(rejection) { + enqueue(report, rejection); + }; + + Promise.onPotentiallyUnhandledRejectionHandled = function(rejection) { + enqueue(unreport, rejection); + }; + + Promise.onFatalRejection = function(rejection) { + enqueue(throwit, rejection.value); + }; + + var tasks = []; + var reported = []; + var running = false; + + function report(r) { + if(!r.handled) { + reported.push(r); + logError('Potentially unhandled rejection [' + r.id + '] ' + formatError(r.value)); + } + } + + function unreport(r) { + var i = reported.indexOf(r); + if(i >= 0) { + reported.splice(i, 1); + logInfo('Handled previous rejection [' + r.id + '] ' + formatObject(r.value)); + } + } + + function enqueue(f, x) { + tasks.push(f, x); + if(!running) { + running = true; + running = timer.set(flush, 0); + } + } + + function flush() { + running = false; + while(tasks.length > 0) { + tasks.shift()(tasks.shift()); + } + } + + return Promise; + }; + + function formatError(e) { + var s = typeof e === 'object' && e.stack ? e.stack : formatObject(e); + return e instanceof Error ? s : s + ' (WARNING: non-Error used)'; + } + + function formatObject(o) { + var s = String(o); + if(s === '[object Object]' && typeof JSON !== 'undefined') { + s = tryStringify(o, s); + } + return s; + } + + function tryStringify(e, defaultValue) { + try { + return JSON.stringify(e); + } catch(e) { + // Ignore. Cannot JSON.stringify e, stick with String(e) + return defaultValue; + } + } + + function throwit(e) { + throw e; + } + + function noop() {} + +}); +}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); })); + +},{"../timer":8}],7:[function(require,module,exports){ +/** @license MIT License (c) copyright 2010-2014 original author or authors */ +/** @author Brian Cavalier */ +/** @author John Hann */ + +(function(define) { 'use strict'; +define(function() { + + return function makePromise(environment) { + + var tasks = environment.scheduler; + + var objectCreate = Object.create || + function(proto) { + function Child() {} + Child.prototype = proto; + return new Child(); + }; + + /** + * Create a promise whose fate is determined by resolver + * @constructor + * @returns {Promise} promise + * @name Promise + */ + function Promise(resolver, handler) { + this._handler = resolver === Handler ? handler : init(resolver); + } + + /** + * Run the supplied resolver + * @param resolver + * @returns {Pending} + */ + function init(resolver) { + var handler = new Pending(); + + try { + resolver(promiseResolve, promiseReject, promiseNotify); + } catch (e) { + promiseReject(e); + } + + return handler; + + /** + * Transition from pre-resolution state to post-resolution state, notifying + * all listeners of the ultimate fulfillment or rejection + * @param {*} x resolution value + */ + function promiseResolve (x) { + handler.resolve(x); + } + /** + * Reject this promise with reason, which will be used verbatim + * @param {Error|*} reason rejection reason, strongly suggested + * to be an Error type + */ + function promiseReject (reason) { + handler.reject(reason); + } + + /** + * Issue a progress event, notifying all progress listeners + * @param {*} x progress event payload to pass to all listeners + */ + function promiseNotify (x) { + handler.notify(x); + } + } + + // Creation + + Promise.resolve = resolve; + Promise.reject = reject; + Promise.never = never; + + Promise._defer = defer; + Promise._handler = getHandler; + + /** + * Returns a trusted promise. If x is already a trusted promise, it is + * returned, otherwise returns a new trusted Promise which follows x. + * @param {*} x + * @return {Promise} promise + */ + function resolve(x) { + return isPromise(x) ? x + : new Promise(Handler, new Async(getHandler(x))); + } + + /** + * Return a reject promise with x as its reason (x is used verbatim) + * @param {*} x + * @returns {Promise} rejected promise + */ + function reject(x) { + return new Promise(Handler, new Async(new Rejected(x))); + } + + /** + * Return a promise that remains pending forever + * @returns {Promise} forever-pending promise. + */ + function never() { + return foreverPendingPromise; // Should be frozen + } + + /** + * Creates an internal {promise, resolver} pair + * @private + * @returns {Promise} + */ + function defer() { + return new Promise(Handler, new Pending()); + } + + // Transformation and flow control + + /** + * Transform this promise's fulfillment value, returning a new Promise + * for the transformed result. If the promise cannot be fulfilled, onRejected + * is called with the reason. onProgress *may* be called with updates toward + * this promise's fulfillment. + * @param {function=} onFulfilled fulfillment handler + * @param {function=} onRejected rejection handler + * @deprecated @param {function=} onProgress progress handler + * @return {Promise} new promise + */ + Promise.prototype.then = function(onFulfilled, onRejected) { + var parent = this._handler; + var state = parent.join().state(); + + if ((typeof onFulfilled !== 'function' && state > 0) || + (typeof onRejected !== 'function' && state < 0)) { + // Short circuit: value will not change, simply share handler + return new this.constructor(Handler, parent); + } + + var p = this._beget(); + var child = p._handler; + + parent.chain(child, parent.receiver, onFulfilled, onRejected, + arguments.length > 2 ? arguments[2] : void 0); + + return p; + }; + + /** + * If this promise cannot be fulfilled due to an error, call onRejected to + * handle the error. Shortcut for .then(undefined, onRejected) + * @param {function?} onRejected + * @return {Promise} + */ + Promise.prototype['catch'] = function(onRejected) { + return this.then(void 0, onRejected); + }; + + /** + * Creates a new, pending promise of the same type as this promise + * @private + * @returns {Promise} + */ + Promise.prototype._beget = function() { + var parent = this._handler; + var child = new Pending(parent.receiver, parent.join().context); + return new this.constructor(Handler, child); + }; + + // Array combinators + + Promise.all = all; + Promise.race = race; + + /** + * Return a promise that will fulfill when all promises in the + * input array have fulfilled, or will reject when one of the + * promises rejects. + * @param {array} promises array of promises + * @returns {Promise} promise for array of fulfillment values + */ + function all(promises) { + /*jshint maxcomplexity:8*/ + var resolver = new Pending(); + var pending = promises.length >>> 0; + var results = new Array(pending); + + var i, h, x, s; + for (i = 0; i < promises.length; ++i) { + x = promises[i]; + + if (x === void 0 && !(i in promises)) { + --pending; + continue; + } + + if (maybeThenable(x)) { + h = getHandlerMaybeThenable(x); + + s = h.state(); + if (s === 0) { + h.fold(settleAt, i, results, resolver); + } else if (s > 0) { + results[i] = h.value; + --pending; + } else { + unreportRemaining(promises, i+1, h); + resolver.become(h); + break; + } + + } else { + results[i] = x; + --pending; + } + } + + if(pending === 0) { + resolver.become(new Fulfilled(results)); + } + + return new Promise(Handler, resolver); + + function settleAt(i, x, resolver) { + /*jshint validthis:true*/ + this[i] = x; + if(--pending === 0) { + resolver.become(new Fulfilled(this)); + } + } + } + + function unreportRemaining(promises, start, rejectedHandler) { + var i, h, x; + for(i=start; i 0) - return; + if (linkSet.loadingCount > 0) + return; - // adjusted for spec bug https://bugs.ecmascript.org/show_bug.cgi?id=2995 - var startingLoad = linkSet.startingLoad; - - // non-executing link variation for loader tracing - // on the server. Not in spec. - /***/ - if (linkSet.loader.loaderObj.execute === false) { - var loads = [].concat(linkSet.loads); - for (var i = 0, l = loads.length; i < l; i++) { - var load = loads[i]; - load.module = !load.isDeclarative ? { - module: _newModule({}) - } : { - name: load.name, - module: _newModule({}), - evaluated: true - }; - load.status = 'linked'; - finishLoad(linkSet.loader, load); - } - return linkSet.resolve(startingLoad); - } - /***/ + // adjusted for spec bug https://bugs.ecmascript.org/show_bug.cgi?id=2995 + var startingLoad = linkSet.startingLoad; - var abrupt = doLink(linkSet); + // non-executing link variation for loader tracing + // on the server. Not in spec. + /***/ + if (linkSet.loader.loaderObj.execute === false) { + var loads = [].concat(linkSet.loads); + for (var i = 0, l = loads.length; i < l; i++) { + var load = loads[i]; + load.module = !load.isDeclarative ? { + module: _newModule({}) + } : { + name: load.name, + module: _newModule({}), + evaluated: true + }; + load.status = 'linked'; + finishLoad(linkSet.loader, load); + } + return linkSet.resolve(startingLoad); + } + /***/ - if (abrupt) - return; + var abrupt = doLink(linkSet); - console.assert(linkSet.loads.length == 0, 'loads cleared'); + if (abrupt) + return; - linkSet.resolve(startingLoad); - } + console.assert(linkSet.loads.length == 0, 'loads cleared'); - // 15.2.5.2.4 - function linkSetFailed(linkSet, exc) { - var loader = linkSet.loader; - var loads = linkSet.loads.concat([]); - for (var i = 0, l = loads.length; i < l; i++) { - var load = loads[i]; + linkSet.resolve(startingLoad); + } - // store all failed load records - loader.loaderObj.failed = loader.loaderObj.failed || []; - if (indexOf.call(loader.loaderObj.failed, load) == -1) - loader.loaderObj.failed.push(load); - - var linkIndex = indexOf.call(load.linkSets, linkSet); - console.assert(linkIndex != -1, 'link not present'); - load.linkSets.splice(linkIndex, 1); - if (load.linkSets.length == 0) { - var globalLoadsIndex = indexOf.call(linkSet.loader.loads, load); - if (globalLoadsIndex != -1) - linkSet.loader.loads.splice(globalLoadsIndex, 1); - } + // 15.2.5.2.4 + function linkSetFailed(linkSet, exc) { + var loader = linkSet.loader; + var loads = linkSet.loads.concat([]); + for (var i = 0, l = loads.length; i < l; i++) { + var load = loads[i]; + + // store all failed load records + loader.loaderObj.failed = loader.loaderObj.failed || []; + if (indexOf.call(loader.loaderObj.failed, load) == -1) + loader.loaderObj.failed.push(load); + + var linkIndex = indexOf.call(load.linkSets, linkSet); + console.assert(linkIndex != -1, 'link not present'); + load.linkSets.splice(linkIndex, 1); + if (load.linkSets.length == 0) { + var globalLoadsIndex = indexOf.call(linkSet.loader.loads, load); + if (globalLoadsIndex != -1) + linkSet.loader.loads.splice(globalLoadsIndex, 1); } - linkSet.reject(exc); } + linkSet.reject(exc); + } - // 15.2.5.2.5 - function finishLoad(loader, load) { - // add to global trace if tracing - if (loader.loaderObj.trace) { - if (!loader.loaderObj.loads) - loader.loaderObj.loads = {}; - var depMap = {}; - load.dependencies.forEach(function(dep) { - depMap[dep.key] = dep.value; - }); - loader.loaderObj.loads[load.name] = { - name: load.name, - deps: load.dependencies.map(function(dep){ return dep.key }), - depMap: depMap, - address: load.address, - metadata: load.metadata, - source: load.source, - kind: load.isDeclarative ? 'declarative' : 'dynamic' - }; - } - // if not anonymous, add to the module table - if (load.name) { - console.assert(!loader.modules[load.name], 'load not in module table'); - loader.modules[load.name] = load.module; - } - var loadIndex = indexOf.call(loader.loads, load); + // 15.2.5.2.5 + function finishLoad(loader, load) { + // add to global trace if tracing + if (loader.loaderObj.trace) { + if (!loader.loaderObj.loads) + loader.loaderObj.loads = {}; + var depMap = {}; + load.dependencies.forEach(function(dep) { + depMap[dep.key] = dep.value; + }); + loader.loaderObj.loads[load.name] = { + name: load.name, + deps: load.dependencies.map(function(dep){ return dep.key }), + depMap: depMap, + address: load.address, + metadata: load.metadata, + source: load.source, + kind: load.isDeclarative ? 'declarative' : 'dynamic' + }; + } + // if not anonymous, add to the module table + if (load.name) { + console.assert(!loader.modules[load.name], 'load not in module table'); + loader.modules[load.name] = load.module; + } + var loadIndex = indexOf.call(loader.loads, load); + if (loadIndex != -1) + loader.loads.splice(loadIndex, 1); + for (var i = 0, l = load.linkSets.length; i < l; i++) { + loadIndex = indexOf.call(load.linkSets[i].loads, load); if (loadIndex != -1) - loader.loads.splice(loadIndex, 1); - for (var i = 0, l = load.linkSets.length; i < l; i++) { - loadIndex = indexOf.call(load.linkSets[i].loads, load); - if (loadIndex != -1) - load.linkSets[i].loads.splice(loadIndex, 1); - } - load.linkSets.splice(0, load.linkSets.length); + load.linkSets[i].loads.splice(loadIndex, 1); } + load.linkSets.splice(0, load.linkSets.length); + } - // 15.2.5.3 Module Linking Groups - - // 15.2.5.3.2 BuildLinkageGroups alternative implementation - // Adjustments (also see https://bugs.ecmascript.org/show_bug.cgi?id=2755) - // 1. groups is an already-interleaved array of group kinds - // 2. load.groupIndex is set when this function runs - // 3. load.groupIndex is the interleaved index ie 0 declarative, 1 dynamic, 2 declarative, ... (or starting with dynamic) - function buildLinkageGroups(load, loads, groups, loader) { - groups[load.groupIndex] = groups[load.groupIndex] || []; + // 15.2.5.3 Module Linking Groups - // if the load already has a group index and its in its group, its already been done - // this logic naturally handles cycles - if (indexOf.call(groups[load.groupIndex], load) != -1) - return; + // 15.2.5.3.2 BuildLinkageGroups alternative implementation + // Adjustments (also see https://bugs.ecmascript.org/show_bug.cgi?id=2755) + // 1. groups is an already-interleaved array of group kinds + // 2. load.groupIndex is set when this function runs + // 3. load.groupIndex is the interleaved index ie 0 declarative, 1 dynamic, 2 declarative, ... (or starting with dynamic) + function buildLinkageGroups(load, loads, groups, loader) { + groups[load.groupIndex] = groups[load.groupIndex] || []; - // now add it to the group to indicate its been seen - groups[load.groupIndex].push(load); + // if the load already has a group index and its in its group, its already been done + // this logic naturally handles cycles + if (indexOf.call(groups[load.groupIndex], load) != -1) + return; - for (var i = 0, l = loads.length; i < l; i++) { - var loadDep = loads[i]; + // now add it to the group to indicate its been seen + groups[load.groupIndex].push(load); - // dependencies not found are already linked - for (var j = 0; j < load.dependencies.length; j++) { - if (loadDep.name == load.dependencies[j].value) { - // by definition all loads in linkset are loaded, not linked - console.assert(loadDep.status == 'loaded', 'Load in linkSet not loaded!'); + for (var i = 0, l = loads.length; i < l; i++) { + var loadDep = loads[i]; - // if it is a group transition, the index of the dependency has gone up - // otherwise it is the same as the parent - var loadDepGroupIndex = load.groupIndex + (loadDep.isDeclarative != load.isDeclarative); + // dependencies not found are already linked + for (var j = 0; j < load.dependencies.length; j++) { + if (loadDep.name == load.dependencies[j].value) { + // by definition all loads in linkset are loaded, not linked + console.assert(loadDep.status == 'loaded', 'Load in linkSet not loaded!'); - // the group index of an entry is always the maximum - if (loadDep.groupIndex === undefined || loadDep.groupIndex < loadDepGroupIndex) { + // if it is a group transition, the index of the dependency has gone up + // otherwise it is the same as the parent + var loadDepGroupIndex = load.groupIndex + (loadDep.isDeclarative != load.isDeclarative); - // if already in a group, remove from the old group - if (loadDep.groupIndex) { - groups[loadDep.groupIndex].splice(indexOf.call(groups[loadDep.groupIndex], loadDep), 1); + // the group index of an entry is always the maximum + if (loadDep.groupIndex === undefined || loadDep.groupIndex < loadDepGroupIndex) { - // if the old group is empty, then we have a mixed depndency cycle - if (groups[loadDep.groupIndex].length == 0) - throw new TypeError("Mixed dependency cycle detected"); - } + // if already in a group, remove from the old group + if (loadDep.groupIndex) { + groups[loadDep.groupIndex].splice(indexOf.call(groups[loadDep.groupIndex], loadDep), 1); - loadDep.groupIndex = loadDepGroupIndex; + // if the old group is empty, then we have a mixed depndency cycle + if (groups[loadDep.groupIndex].length == 0) + throw new TypeError("Mixed dependency cycle detected"); } - buildLinkageGroups(loadDep, loads, groups, loader); + loadDep.groupIndex = loadDepGroupIndex; } + + buildLinkageGroups(loadDep, loads, groups, loader); } } } + } - // 15.2.5.4 - function link(linkSet) { + // 15.2.5.4 + function link(linkSet) { - var loader = linkSet.loader; + var loader = linkSet.loader; - if (!linkSet.loads.length) - return; + if (!linkSet.loads.length) + return; - // console.log('linking {' + logloads(linkSet.loads) + '}'); - // snapshot(loader); + // console.log('linking {' + logloads(linkSet.loads) + '}'); + // snapshot(loader); - // 15.2.5.3.1 LinkageGroups alternative implementation + // 15.2.5.3.1 LinkageGroups alternative implementation - // build all the groups - // because the first load represents the top of the tree - // for a given linkset, we can work down from there - var groups = []; - var startingLoad = linkSet.loads[0]; - startingLoad.groupIndex = 0; - buildLinkageGroups(startingLoad, linkSet.loads, groups, loader); + // build all the groups + // because the first load represents the top of the tree + // for a given linkset, we can work down from there + var groups = []; + var startingLoad = linkSet.loads[0]; + startingLoad.groupIndex = 0; + buildLinkageGroups(startingLoad, linkSet.loads, groups, loader); - // determine the kind of the bottom group - var curGroupDeclarative = startingLoad.isDeclarative == groups.length % 2; + // determine the kind of the bottom group + var curGroupDeclarative = startingLoad.isDeclarative == groups.length % 2; - // run through the groups from bottom to top - for (var i = groups.length - 1; i >= 0; i--) { - var group = groups[i]; - for (var j = 0; j < group.length; j++) { - var load = group[j]; + // run through the groups from bottom to top + for (var i = groups.length - 1; i >= 0; i--) { + var group = groups[i]; + for (var j = 0; j < group.length; j++) { + var load = group[j]; - // 15.2.5.5 LinkDeclarativeModules adjusted - if (curGroupDeclarative) { - linkDeclarativeModule(load, linkSet.loads, loader); - } - // 15.2.5.6 LinkDynamicModules adjusted - else { - var module = load.execute(); - if (!module || !(module instanceof Module)) - throw new TypeError('Execution must define a Module instance'); - load.module = { - name: load.name, - module: module - }; - load.status = 'linked'; - } - finishLoad(loader, load); + // 15.2.5.5 LinkDeclarativeModules adjusted + if (curGroupDeclarative) { + linkDeclarativeModule(load, linkSet.loads, loader); } - - // alternative current kind for next loop - curGroupDeclarative = !curGroupDeclarative; + // 15.2.5.6 LinkDynamicModules adjusted + else { + var module = load.execute(); + if (!module || !(module instanceof Module)) + throw new TypeError('Execution must define a Module instance'); + load.module = { + name: load.name, + module: module + }; + load.status = 'linked'; + } + finishLoad(loader, load); } - } - - // custom module records for binding graph - // store linking module records in a separate table - var moduleRecords = {}; - function getOrCreateModuleRecord(name) { - return moduleRecords[name] || (moduleRecords[name] = { - name: name, - dependencies: [], - module: new Module(), // start from an empty module and extend - importers: [] - }); + // alternative current kind for next loop + curGroupDeclarative = !curGroupDeclarative; } + } - // custom declarative linking function - function linkDeclarativeModule(load, loads, loader) { - if (load.module) - return; - var module = load.module = getOrCreateModuleRecord(load.name); - var moduleObj = load.module.module; - - var registryEntry = load.declare.call(__global, function(name, value) { - // NB This should be an Object.defineProperty, but that is very slow. - // By disaling this module write-protection we gain performance. - // It could be useful to allow an option to enable or disable this. - module.locked = true; - moduleObj[name] = value; - - for (var i = 0, l = module.importers.length; i < l; i++) { - var importerModule = module.importers[i]; - if (!importerModule.locked) { - var importerIndex = indexOf.call(importerModule.dependencies, module); - importerModule.setters[importerIndex](moduleObj); - } + // custom module records for binding graph + // store linking module records in a separate table + var moduleRecords = {}; + function getOrCreateModuleRecord(name) { + return moduleRecords[name] || (moduleRecords[name] = { + name: name, + dependencies: [], + module: new Module(), // start from an empty module and extend + importers: [] + }); + } + + // custom declarative linking function + function linkDeclarativeModule(load, loads, loader) { + if (load.module) + return; + + var module = load.module = getOrCreateModuleRecord(load.name); + var moduleObj = load.module.module; + + var registryEntry = load.declare.call(__global, function(name, value) { + // NB This should be an Object.defineProperty, but that is very slow. + // By disaling this module write-protection we gain performance. + // It could be useful to allow an option to enable or disable this. + module.locked = true; + moduleObj[name] = value; + + for (var i = 0, l = module.importers.length; i < l; i++) { + var importerModule = module.importers[i]; + if (!importerModule.locked) { + var importerIndex = indexOf.call(importerModule.dependencies, module); + importerModule.setters[importerIndex](moduleObj); } + } - module.locked = false; - return value; - }); + module.locked = false; + return value; + }); - // setup our setters and execution function - module.setters = registryEntry.setters; - module.execute = registryEntry.execute; - - // now link all the module dependencies - // amending the depMap as we go - for (var i = 0, l = load.dependencies.length; i < l; i++) { - var depName = load.dependencies[i].value; - var depModule = loader.modules[depName]; - - // if dependency not already in the module registry - // then try and link it now - if (!depModule) { - // get the dependency load record - for (var j = 0; j < loads.length; j++) { - if (loads[j].name != depName) - continue; - - // only link if already not already started linking (stops at circular / dynamic) - if (!loads[j].module) { - linkDeclarativeModule(loads[j], loads, loader); - depModule = loads[j].module; - } - // if circular, create the module record - else { - depModule = getOrCreateModuleRecord(depName); - } - } - } + // setup our setters and execution function + module.setters = registryEntry.setters; + module.execute = registryEntry.execute; + + // now link all the module dependencies + // amending the depMap as we go + for (var i = 0, l = load.dependencies.length; i < l; i++) { + var depName = load.dependencies[i].value; + var depModule = loader.modules[depName]; + + // if dependency not already in the module registry + // then try and link it now + if (!depModule) { + // get the dependency load record + for (var j = 0; j < loads.length; j++) { + if (loads[j].name != depName) + continue; - // only declarative modules have dynamic bindings - if (depModule.importers) { - module.dependencies.push(depModule); - depModule.importers.push(module); - } - else { - // track dynamic records as null module records as already linked - module.dependencies.push(null); + // only link if already not already started linking (stops at circular / dynamic) + if (!loads[j].module) { + linkDeclarativeModule(loads[j], loads, loader); + depModule = loads[j].module; + } + // if circular, create the module record + else { + depModule = getOrCreateModuleRecord(depName); + } } + } - // run the setter for this dependency - if (module.setters[i]) - module.setters[i](depModule.module); + // only declarative modules have dynamic bindings + if (depModule.importers) { + module.dependencies.push(depModule); + depModule.importers.push(module); + } + else { + // track dynamic records as null module records as already linked + module.dependencies.push(null); } - load.status = 'linked'; + // run the setter for this dependency + if (module.setters[i]) + module.setters[i](depModule.module); } + load.status = 'linked'; + } + - // 15.2.5.5.1 LinkImports not implemented - // 15.2.5.7 ResolveExportEntries not implemented - // 15.2.5.8 ResolveExports not implemented - // 15.2.5.9 ResolveExport not implemented - // 15.2.5.10 ResolveImportEntries not implemented + // 15.2.5.5.1 LinkImports not implemented + // 15.2.5.7 ResolveExportEntries not implemented + // 15.2.5.8 ResolveExports not implemented + // 15.2.5.9 ResolveExport not implemented + // 15.2.5.10 ResolveImportEntries not implemented - // 15.2.6.1 - function evaluateLoadedModule(loader, load) { - console.assert(load.status == 'linked', 'is linked ' + load.name); + // 15.2.6.1 + function evaluateLoadedModule(loader, load) { + console.assert(load.status == 'linked', 'is linked ' + load.name); - doEnsureEvaluated(load.module, [], loader); - return load.module.module; + doEnsureEvaluated(load.module, [], loader); + return load.module.module; + } + + /* + * Module Object non-exotic for ES5: + * + * module.module bound module object + * module.execute execution function for module + * module.dependencies list of module objects for dependencies + * See getOrCreateModuleRecord for all properties + * + */ + function doExecute(module) { + try { + module.execute.call(__global); } + catch(e) { + return e; + } + } - /* - * Module Object non-exotic for ES5: - * - * module.module bound module object - * module.execute execution function for module - * module.dependencies list of module objects for dependencies - * See getOrCreateModuleRecord for all properties - * - */ - function doExecute(module) { - try { - module.execute.call(__global); - } - catch(e) { - return e; + // propogate execution errors + // see https://bugs.ecmascript.org/show_bug.cgi?id=2993 + function doEnsureEvaluated(module, seen, loader) { + var err = ensureEvaluated(module, seen, loader); + if (err) + throw err; + } + // 15.2.6.2 EnsureEvaluated adjusted + function ensureEvaluated(module, seen, loader) { + if (module.evaluated || !module.dependencies) + return; + + seen.push(module); + + var deps = module.dependencies; + var err; + + for (var i = 0, l = deps.length; i < l; i++) { + var dep = deps[i]; + // dynamic dependencies are empty in module.dependencies + // as they are already linked + if (!dep) + continue; + if (indexOf.call(seen, dep) == -1) { + err = ensureEvaluated(dep, seen, loader); + // stop on error, see https://bugs.ecmascript.org/show_bug.cgi?id=2996 + if (err) + return err + '\n in module ' + dep.name; } } - // propogate execution errors - // see https://bugs.ecmascript.org/show_bug.cgi?id=2993 - function doEnsureEvaluated(module, seen, loader) { - var err = ensureEvaluated(module, seen, loader); - if (err) - throw err; + if (module.failed) + return new Error('Module failed execution.'); + + if (module.evaluated) + return; + + module.evaluated = true; + err = doExecute(module); + if (err) { + module.failed = true; + } else if (Object.preventExtensions) { + // spec variation + // we don't create a new module here because it was created and ammended + // we just disable further extensions instead + Object.preventExtensions(module.module); } - // 15.2.6.2 EnsureEvaluated adjusted - function ensureEvaluated(module, seen, loader) { - if (module.evaluated || !module.dependencies) - return; - seen.push(module); + module.execute = undefined; + return err; + } - var deps = module.dependencies; - var err; + // 26.3 Loader + + // 26.3.1.1 + function Loader(options) { + if (typeof options != 'object') + throw new TypeError('Options must be an object'); + + if (options.normalize) + this.normalize = options.normalize; + if (options.locate) + this.locate = options.locate; + if (options.fetch) + this.fetch = options.fetch; + if (options.translate) + this.translate = options.translate; + if (options.instantiate) + this.instantiate = options.instantiate; + + this._loader = { + loaderObj: this, + loads: [], + modules: {}, + importPromises: {} + }; - for (var i = 0, l = deps.length; i < l; i++) { - var dep = deps[i]; - // dynamic dependencies are empty in module.dependencies - // as they are already linked - if (!dep) - continue; - if (indexOf.call(seen, dep) == -1) { - err = ensureEvaluated(dep, seen, loader); - // stop on error, see https://bugs.ecmascript.org/show_bug.cgi?id=2996 - if (err) - return err + '\n in module ' + dep.name; - } + // 26.3.3.6 + defineProperty(this, 'global', { + get: function() { + return __global; } + }); - if (module.failed) - return new Error('Module failed execution.'); + // 26.3.3.13 realm not implemented + } - if (module.evaluated) - return; + function Module() {} - module.evaluated = true; - err = doExecute(module); - if (err) { - module.failed = true; - } else if (Object.preventExtensions) { - // spec variation - // we don't create a new module here because it was created and ammended - // we just disable further extensions instead - Object.preventExtensions(module.module); - } + // importPromises adds ability to import a module twice without error - https://bugs.ecmascript.org/show_bug.cgi?id=2601 + function createImportPromise(loader, name, promise) { + var importPromises = loader._loader.importPromises; + importPromises[name] = promise; + promise.then(function() { + importPromises[name] = undefined; + }); + promise['catch'](function() { + importPromises[name] = undefined; + }); + return promise; + } - module.execute = undefined; - return err; - } + Loader.prototype = { + // 26.3.3.1 + constructor: Loader, + // 26.3.3.2 + define: function(name, source, options) { + // check if already defined + if (this._loader.importPromises[name]) + throw new TypeError('Module is already loading.'); + return createImportPromise(this, name, new Promise(asyncStartLoadPartwayThrough({ + step: 'translate', + loader: this._loader, + moduleName: name, + moduleMetadata: options && options.metadata || {}, + moduleSource: source, + moduleAddress: options && options.address + }))); + }, + // 26.3.3.3 + 'delete': function(name) { + return this._loader.modules[name] ? delete this._loader.modules[name] : false; + }, + // 26.3.3.4 entries not implemented + // 26.3.3.5 + get: function(key) { + if (!this._loader.modules[key]) + return; + doEnsureEvaluated(this._loader.modules[key], [], this); + return this._loader.modules[key].module; + }, + // 26.3.3.7 + has: function(name) { + return !!this._loader.modules[name]; + }, + // 26.3.3.8 + 'import': function(name, options) { + // run normalize first + var loaderObj = this; - // 26.3 Loader - - // 26.3.1.1 - function Loader(options) { - if (typeof options != 'object') - throw new TypeError('Options must be an object'); - - if (options.normalize) - this.normalize = options.normalize; - if (options.locate) - this.locate = options.locate; - if (options.fetch) - this.fetch = options.fetch; - if (options.translate) - this.translate = options.translate; - if (options.instantiate) - this.instantiate = options.instantiate; - - this._loader = { - loaderObj: this, - loads: [], - modules: {} - }; + // added, see https://bugs.ecmascript.org/show_bug.cgi?id=2659 + return Promise.resolve(loaderObj.normalize(name, options && options.name, options && options.address)) + .then(function(name) { + var loader = loaderObj._loader; - // 26.3.3.6 - defineProperty(this, 'global', { - get: function() { - return __global; + if (loader.modules[name]) { + doEnsureEvaluated(loader.modules[name], [], loader._loader); + return loader.modules[name].module; } - }); - - // 26.3.3.13 realm not implemented - } - - function Module() {} - // importPromises adds ability to import a module twice without error - https://bugs.ecmascript.org/show_bug.cgi?id=2601 - var importPromises = {}; - function createImportPromise(name, promise) { - importPromises[name] = promise; - promise.then(function() { - importPromises[name] = undefined; + return loader.importPromises[name] || createImportPromise(loaderObj, name, + loadModule(loader, name, options || {}) + .then(function(load) { + delete loader.importPromises[name]; + return evaluateLoadedModule(loader, load); + })); }); - promise['catch'](function() { - importPromises[name] = undefined; + }, + // 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); + } + return this._loader.importPromises[name] || createImportPromise(this, name, loadModule(this._loader, name, {})); + }, + // 26.3.3.11 + module: function(source, options) { + var load = createLoad(); + load.address = options && options.address; + var linkSet = createLinkSet(this._loader, load); + var sourcePromise = Promise.resolve(source); + var loader = this._loader; + var p = linkSet.done.then(function() { + return evaluateLoadedModule(loader, load); }); - return promise; - } - - Loader.prototype = { - // 26.3.3.1 - constructor: Loader, - // 26.3.3.2 - define: function(name, source, options) { - // check if already defined - if (importPromises[name]) - throw new TypeError('Module is already loading.'); - return createImportPromise(name, new Promise(asyncStartLoadPartwayThrough({ - step: 'translate', - loader: this._loader, - moduleName: name, - moduleMetadata: options && options.metadata || {}, - moduleSource: source, - moduleAddress: options && options.address - }))); - }, - // 26.3.3.3 - 'delete': function(name) { - return this._loader.modules[name] ? delete this._loader.modules[name] : false; - }, - // 26.3.3.4 entries not implemented - // 26.3.3.5 - get: function(key) { - if (!this._loader.modules[key]) - return; - doEnsureEvaluated(this._loader.modules[key], [], this); - return this._loader.modules[key].module; - }, - // 26.3.3.7 - has: function(name) { - return !!this._loader.modules[name]; - }, - // 26.3.3.8 - 'import': function(name, options) { - // run normalize first - var loaderObj = this; - - // added, see https://bugs.ecmascript.org/show_bug.cgi?id=2659 - return Promise.resolve(loaderObj.normalize(name, options && options.name, options && options.address)) - .then(function(name) { - var loader = loaderObj._loader; - - if (loader.modules[name]) { - doEnsureEvaluated(loader.modules[name], [], loader._loader); - return loader.modules[name].module; - } - - return importPromises[name] || createImportPromise(name, - loadModule(loader, name, options || {}) - .then(function(load) { - delete importPromises[name]; - return evaluateLoadedModule(loader, load); - })); - }); - }, - // 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); - } - return importPromises[name] || createImportPromise(name, loadModule(this._loader, name, {})); - }, - // 26.3.3.11 - module: function(source, options) { - var load = createLoad(); - load.address = options && options.address; - var linkSet = createLinkSet(this._loader, load); - var sourcePromise = Promise.resolve(source); - var loader = this._loader; - var p = linkSet.done.then(function() { - return evaluateLoadedModule(loader, load); - }); - proceedToTranslate(loader, load, sourcePromise); - return p; - }, - // 26.3.3.12 - newModule: function (obj) { - if (typeof obj != 'object') - throw new TypeError('Expected object'); - - // we do this to be able to tell if a module is a module privately in ES5 - // by doing m instanceof Module - var m = new Module(); - - for (var key in obj) { - (function (key) { - defineProperty(m, key, { - configurable: false, - enumerable: true, - get: function () { - return obj[key]; - } - }); - })(key); - } - - if (Object.preventExtensions) - Object.preventExtensions(m); - - return m; - }, - // 26.3.3.14 - set: function(name, module) { - if (!(module instanceof Module)) - throw new TypeError('Loader.set(' + name + ', module) must be a module'); - this._loader.modules[name] = { - module: module - }; - }, - // 26.3.3.15 values not implemented - // 26.3.3.16 @@iterator not implemented - // 26.3.3.17 @@toStringTag not implemented - - // 26.3.3.18.1 - normalize: function(name, referrerName, referrerAddress) { - return name; - }, - // 26.3.3.18.2 - locate: function(load) { - return load.name; - }, - // 26.3.3.18.3 - fetch: function(load) { - throw new TypeError('Fetch not implemented'); - }, - // 26.3.3.18.4 - translate: function(load) { - return load.source; - }, - parse: function(load) { - throw new TypeError('Loader.parse is not implemented'); - }, - // 26.3.3.18.5 - instantiate: function(load) { + proceedToTranslate(loader, load, sourcePromise); + return p; + }, + // 26.3.3.12 + newModule: function (obj) { + if (typeof obj != 'object') + throw new TypeError('Expected object'); + + // we do this to be able to tell if a module is a module privately in ES5 + // by doing m instanceof Module + var m = new Module(); + + for (var key in obj) { + (function (key) { + defineProperty(m, key, { + configurable: false, + enumerable: true, + get: function () { + return obj[key]; + } + }); + })(key); } - }; - - var _newModule = Loader.prototype.newModule; + if (Object.preventExtensions) + Object.preventExtensions(m); - /* - * Traceur-specific Parsing Code for Loader - */ - (function() { - function checkForErrors(output, load) { - if (output.errors.length) { - for (var i = 0, l = output.errors.length; i < l; i++) - console.error(output.errors[i]); - throw new Error('Parse of ' + load.name + ', ' + load.address + ' failed, ' + output.errors.length); - } - } - - // parse function is used to parse a load record - // Returns an array of ModuleSpecifiers - var traceur; - Loader.prototype.parse = function(load) { - if (!traceur) { - if (typeof window == 'undefined' && - typeof WorkerGlobalScope == 'undefined') - traceur = require('traceur'); - else if (__global.traceur) - traceur = __global.traceur; - else - throw new TypeError('Include Traceur for module syntax support'); - } + return m; + }, + // 26.3.3.14 + set: function(name, module) { + if (!(module instanceof Module)) + throw new TypeError('Loader.set(' + name + ', module) must be a module'); + this._loader.modules[name] = { + module: module + }; + }, + // 26.3.3.15 values not implemented + // 26.3.3.16 @@iterator not implemented + // 26.3.3.17 @@toStringTag not implemented - console.assert(load.source, 'Non-empty source'); + // 26.3.3.18.1 + normalize: function(name, referrerName, referrerAddress) { + return name; + }, + // 26.3.3.18.2 + locate: function(load) { + return load.name; + }, + // 26.3.3.18.3 + fetch: function(load) { + throw new TypeError('Fetch not implemented'); + }, + // 26.3.3.18.4 + translate: function(load) { + return load.source; + }, + parse: function(load) { + throw new TypeError('Loader.parse is not implemented'); + }, + // 26.3.3.18.5 + instantiate: function(load) { + } + }; - var depsList; + var _newModule = Loader.prototype.newModule; - load.isDeclarative = true; - var compiler = new traceur.Compiler(); - var options = System.traceurOptions || {}; - options.modules = 'instantiate'; - options.sourceMaps = true; - options.filename = load.address; - var output = compiler.stringToTree({content: load.source, options: options}); - checkForErrors(output); + /* + * Traceur-specific Parsing Code for Loader + */ + (function() { + function checkForErrors(output, load) { + if (output.errors.length) { + for (var i = 0, l = output.errors.length; i < l; i++) + console.error(output.errors[i]); + throw new Error('Parse of ' + load.name + ', ' + load.address + ' failed, ' + output.errors.length); + } + } - output = compiler.treeToTree(output); - checkForErrors(output); + // parse function is used to parse a load record + // Returns an array of ModuleSpecifiers + var traceur; + Loader.prototype.parse = function(load) { + if (!traceur) { + if (typeof window == 'undefined' && + typeof WorkerGlobalScope == 'undefined') + traceur = require('traceur'); + else if (__global.traceur) + traceur = __global.traceur; + else + throw new TypeError('Include Traceur for module syntax support'); + } - output = compiler.treeToString(output); - checkForErrors(output); + console.assert(load.source, 'Non-empty source'); - var source = output.js; - var sourceMap = output.generatedSourceMap; + var depsList; - if (__global.btoa && sourceMap) - source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(sourceMap))) + '\n'; + load.isDeclarative = true; - __eval(source, __global, load); - } - })(); + var options = traceur.options || {}; + options.modules = 'instantiate'; + options.sourceMaps = true; + options.filename = load.address; - if (typeof exports === 'object') - module.exports = Loader; + var compiler = new traceur.Compiler(options); + var source = compiler.compile(load.source, options.filename); + var sourceMap = compiler.getSourceMap(); - __global.Reflect = __global.Reflect || {}; - __global.Reflect.Loader = __global.Reflect.Loader || Loader; - __global.Reflect.global = __global.Reflect.global || __global; - __global.LoaderPolyfill = Loader; + if (__global.btoa && sourceMap) + source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(sourceMap))) + '\n'; + __eval(source, __global, load); + } })(); - // Define our eval outside of the scope of any other reference defined in this - // file to avoid adding those references to the evaluation scope. - var __curRegister; - function __eval(__source, __global, load) { - // Hijack System.register to set declare function - __curRegister = System.register; - System.register = function(name, deps, declare) { - if (typeof name != 'string') { - declare = deps; - deps = name; - } - // store the registered declaration as load.declare - // store the deps as load.deps - load.declare = declare; - load.depsList = deps; - } - try { - eval('(function() { var __moduleName = "' + (load.name || '').replace('"', '\"') + '"; ' + __source + ' \n }).call(__global);'); - } - catch(e) { - if (e.name == 'SyntaxError' || e.name == 'TypeError') - e.message = 'Evaluating ' + (load.name || load.address) + '\n\t' + e.message; - throw e; - } + if (typeof exports === 'object') + module.exports = Loader; - System.register = __curRegister; - } + __global.Reflect = __global.Reflect || {}; + __global.Reflect.Loader = __global.Reflect.Loader || Loader; + __global.Reflect.global = __global.Reflect.global || __global; + __global.LoaderPolyfill = Loader; -})(typeof global !== 'undefined' ? global : this); +})(); /* ********************************************************************************************* @@ -1139,12 +2360,12 @@ function logloads(loads) { ********************************************************************************************* */ -(function (global) { + +(function() { var isWorker = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' && self instanceof WorkerGlobalScope; var isBrowser = typeof window != 'undefined' && !isWorker; - var Loader = global.Reflect && global.Reflect.Loader || require('./loader'); - var Promise = global.Promise || require('when/es6-shim/Promise'); + var Promise = __global.Promise || require('when/es6-shim/Promise'); // Helpers // Absolute URL parsing, from https://gist.github.com/Yaffle/1088850 @@ -1163,6 +2384,7 @@ function logloads(loads) { hash : m[8] || '' } : null); } + function removeDotSegments(input) { var output = []; input.replace(/^(\.\.?(\/|$))+/, '') @@ -1176,6 +2398,7 @@ function logloads(loads) { }); return output.join('').replace(/^\//, input.charAt(0) === '/' ? '/' : ''); } + function toAbsoluteURL(base, href) { href = parseURI(href || ''); @@ -1189,6 +2412,7 @@ function logloads(loads) { } var fetchTextFromURL; + if (isBrowser || isWorker) { fetchTextFromURL = function(url, fulfill, reject) { var xhr = new XMLHttpRequest(); @@ -1241,128 +2465,172 @@ function logloads(loads) { } } - var System = new Loader({ - global: isBrowser ? window : (isWorker ? self : global), - strict: true, - normalize: function(name, parentName, parentAddress) { - if (typeof name != 'string') - throw new TypeError('Module name must be a string'); - - var segments = name.split('/'); - - if (segments.length == 0) - throw new TypeError('No module name provided'); - - // current segment - var i = 0; - // is the module name relative - var rel = false; - // number of backtracking segments - var dotdots = 0; - if (segments[0] == '.') { - i++; - if (i == segments.length) - throw new TypeError('Illegal module name "' + name + '"'); - rel = true; + var SystemLoader = function($__super) { + function SystemLoader(options) { + $__Object$getPrototypeOf(SystemLoader.prototype).constructor.call(this, options || {}); + + // Set default baseURL and paths + if (isBrowser || isWorker) { + var href = __global.location.href.split('#')[0].split('?')[0]; + this.baseURL = href.substring(0, href.lastIndexOf('/') + 1); } else { - while (segments[i] == '..') { + this.baseURL = process.cwd() + '/'; + } + this.paths = { '*': '*.js' }; + } + + SystemLoader.__proto__ = ($__super !== null ? $__super : Function.prototype); + SystemLoader.prototype = $__Object$create(($__super !== null ? $__super.prototype : null)); + + $__Object$defineProperty(SystemLoader.prototype, "constructor", { + value: SystemLoader + }); + + $__Object$defineProperty(SystemLoader.prototype, "global", { + get: function() { + return isBrowser ? window : (isWorker ? self : __global); + }, + + enumerable: false + }); + + $__Object$defineProperty(SystemLoader.prototype, "strict", { + get: function() { return true; }, + enumerable: false + }); + + $__Object$defineProperty(SystemLoader.prototype, "normalize", { + value: function(name, parentName, parentAddress) { + if (typeof name != 'string') + throw new TypeError('Module name must be a string'); + + var segments = name.split('/'); + + if (segments.length == 0) + throw new TypeError('No module name provided'); + + // current segment + var i = 0; + // is the module name relative + var rel = false; + // number of backtracking segments + var dotdots = 0; + if (segments[0] == '.') { i++; if (i == segments.length) throw new TypeError('Illegal module name "' + name + '"'); - } - if (i) rel = true; - dotdots = i; - } + } + else { + while (segments[i] == '..') { + i++; + if (i == segments.length) + throw new TypeError('Illegal module name "' + name + '"'); + } + if (i) + rel = true; + dotdots = i; + } - for (var j = i; j < segments.length; j++) { - var segment = segments[j]; - if (segment == '' || segment == '.' || segment == '..') - throw new TypeError('Illegal module name "' + name + '"'); - } + for (var j = i; j < segments.length; j++) { + var segment = segments[j]; + if (segment == '' || segment == '.' || segment == '..') + throw new TypeError('Illegal module name "' + name + '"'); + } - if (!rel) - return name; + if (!rel) + return name; - // build the full module name - var normalizedParts = []; - var parentParts = (parentName || '').split('/'); - var normalizedLen = parentParts.length - 1 - dotdots; + // build the full module name + var normalizedParts = []; + var parentParts = (parentName || '').split('/'); + var normalizedLen = parentParts.length - 1 - dotdots; - normalizedParts = normalizedParts.concat(parentParts.splice(0, parentParts.length - 1 - dotdots)); - normalizedParts = normalizedParts.concat(segments.splice(i, segments.length - i)); + normalizedParts = normalizedParts.concat(parentParts.splice(0, parentParts.length - 1 - dotdots)); + normalizedParts = normalizedParts.concat(segments.splice(i, segments.length - i)); - return normalizedParts.join('/'); - }, - locate: function(load) { - var name = load.name; + return normalizedParts.join('/'); + }, + + enumerable: false, + writable: true + }); + + $__Object$defineProperty(SystemLoader.prototype, "locate", { + value: function(load) { + var name = load.name; - // NB no specification provided for System.paths, used ideas discussed in https://github.com/jorendorff/js-loaders/issues/25 + // NB no specification provided for System.paths, used ideas discussed in https://github.com/jorendorff/js-loaders/issues/25 - // most specific (longest) match wins - var pathMatch = '', wildcard; + // most specific (longest) match wins + var pathMatch = '', wildcard; - // check to see if we have a paths entry - for (var p in this.paths) { - var pathParts = p.split('*'); - if (pathParts.length > 2) - throw new TypeError('Only one wildcard in a path is permitted'); + // check to see if we have a paths entry + for (var p in this.paths) { + var pathParts = p.split('*'); + if (pathParts.length > 2) + throw new TypeError('Only one wildcard in a path is permitted'); - // exact path match - if (pathParts.length == 1) { - if (name == p && p.length > pathMatch.length) { - pathMatch = p; - break; + // exact path match + if (pathParts.length == 1) { + if (name == p && p.length > pathMatch.length) { + pathMatch = p; + break; + } } - } - // wildcard path match - else { - if (name.substr(0, pathParts[0].length) == pathParts[0] && name.substr(name.length - pathParts[1].length) == pathParts[1]) { - pathMatch = p; - wildcard = name.substr(pathParts[0].length, name.length - pathParts[1].length - pathParts[0].length); + // wildcard path match + else { + if (name.substr(0, pathParts[0].length) == pathParts[0] && name.substr(name.length - pathParts[1].length) == pathParts[1]) { + pathMatch = p; + wildcard = name.substr(pathParts[0].length, name.length - pathParts[1].length - pathParts[0].length); + } } } - } - var outPath = this.paths[pathMatch]; - if (wildcard) - outPath = outPath.replace('*', wildcard); + var outPath = this.paths[pathMatch]; + if (wildcard) + outPath = outPath.replace('*', wildcard); - // percent encode just '#' in module names - // according to https://github.com/jorendorff/js-loaders/blob/master/browser-loader.js#L238 - // we should encode everything, but it breaks for servers that don't expect it - // like in (https://github.com/systemjs/systemjs/issues/168) - if (isBrowser) - outPath = outPath.replace(/#/g, '%23'); + // percent encode just '#' in module names + // according to https://github.com/jorendorff/js-loaders/blob/master/browser-loader.js#L238 + // we should encode everything, but it breaks for servers that don't expect it + // like in (https://github.com/systemjs/systemjs/issues/168) + if (isBrowser) + outPath = outPath.replace(/#/g, '%23'); - return toAbsoluteURL(this.baseURL, outPath); - }, - fetch: function(load) { - var self = this; - return new Promise(function(resolve, reject) { - fetchTextFromURL(toAbsoluteURL(self.baseURL, load.address), function(source) { - resolve(source); - }, reject); - }); - }, - }); + return toAbsoluteURL(this.baseURL, outPath); + }, - if (isBrowser || isWorker) { - var href = global.location.href.split('#')[0].split('?')[0]; - System.baseURL = href.substring(0, href.lastIndexOf('/') + 1); - } - else { - System.baseURL = process.cwd() + '/'; - } - System.paths = { '*': '*.js' }; + enumerable: false, + writable: true + }); + + $__Object$defineProperty(SystemLoader.prototype, "fetch", { + value: function(load) { + var self = this; + return new Promise(function(resolve, reject) { + fetchTextFromURL(toAbsoluteURL(self.baseURL, load.address), function(source) { + resolve(source); + }, reject); + }); + }, + + enumerable: false, + writable: true + }); + + return SystemLoader; + }(__global.LoaderPolyfill); + + var System = new SystemLoader(); // note we have to export before runing "init" below if (typeof exports === 'object') module.exports = System; - global.System = System; + __global.System = System; // @@ -177,7 +177,7 @@ A basic example of using this extension with a build would be the following: traceur --out app-build.js app/app.js --modules=instantiate ``` -2. If using additional ES6 features apart from modules syntax, load [`traceur-runtime.js`](https://raw.githubusercontent.com/jmcriffey/bower-traceur/0.0.66/traceur-runtime.js) (also included in the `bin` folder when installing Traceur through Bower or npm). Then include `es6-module-loader.js` and then apply the register extension before doing the import or loading the bundle as a script: +2. If using additional ES6 features apart from modules syntax, load [`traceur-runtime.js`](https://raw.githubusercontent.com/jmcriffey/bower-traceur/0.0.72/traceur-runtime.js) (also included in the `bin` folder when installing Traceur through Bower or npm). Then include `es6-module-loader.js` and then apply the register extension before doing the import or loading the bundle as a script: ```html diff --git a/bower.json b/bower.json index 186c4b5..2f8fe4c 100644 --- a/bower.json +++ b/bower.json @@ -1,11 +1,11 @@ { "name": "es6-module-loader", - "version": "0.9.2", + "version": "0.9.3", "description": "An ES6 Module Loader polyfill based on the latest spec.", "homepage": "https://github.com/ModuleLoader/es6-module-loader", "main": "dist/es6-module-loader-sans-promises.js", "dependencies": { - "traceur": "0.0.66" + "traceur": "0.0.72" }, "keywords": [ "es6", diff --git a/dist/es6-module-loader-sans-promises.js b/dist/es6-module-loader-sans-promises.js index 41a99cf..3f69e27 100644 --- a/dist/es6-module-loader-sans-promises.js +++ b/dist/es6-module-loader-sans-promises.js @@ -1,8 +1,8 @@ /* - * es6-module-loader v0.9.1 + * es6-module-loader v0.9.3 * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(__global){function __eval(__source,__global,load){var __curRegister=System.register;System.register=function(a,b,c){"string"!=typeof a&&(c=b,b=a),load.declare=c,load.depsList=b};try{eval('(function() { var __moduleName = "'+(load.name||"").replace('"','"')+'"; '+__source+" \n }).call(__global);")}catch(e){throw("SyntaxError"==e.name||"TypeError"==e.name)&&(e.message="Evaluating "+(load.name||load.address)+"\n "+e.message),e}System.register=__curRegister}$__Object$getPrototypeOf=Object.getPrototypeOf||function(a){return a.__proto__};var $__Object$defineProperty;!function(){try{Object.defineProperty({},"a",{})&&($__Object$defineProperty=Object.defineProperty)}catch(a){$__Object$defineProperty=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),$__Object$create=Object.create||function(a,b){function c(){}if(c.prototype=a,"object"==typeof b)for(prop in b)b.hasOwnProperty(prop)&&(c[prop]=b[prop]);return new c},function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new y(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:c&&c.metadata||{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new y(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return e=a(c),e.status="linked",e;for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,y.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"anon"+ ++B,b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return y.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,y.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,y.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new y(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){try{o(a)}catch(b){return l(a,b),!0}}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:C({}),evaluated:!0}:{module:C({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b){for(var c=a.loader,d=a.loads.concat([]),e=0,f=d.length;f>e;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==z.call(c.loaderObj.failed,g)&&c.loaderObj.failed.push(g);var h=z.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=z.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=z.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=z.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==z.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;f--){for(var g=c[f],h=0;hc;c++){var g=d.importers[c];if(!g.locked){var h=z.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==z.call(b,h)&&(d=u(h,b,c)))return d+"\n in module "+h.name}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=s(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function v(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},A(this,"global",{get:function(){return __global}})}function w(){}function x(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var y=__global.Promise||require("when/es6-shim/Promise");console.assert=console.assert||function(){};var z=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},A=$__Object$defineProperty,B=0;v.prototype={constructor:v,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return x(this,a,new y(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(t(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return y.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(t(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||x(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],r(e,b)}))})},load:function(a){return this._loader.modules[a]?(t(this._loader.modules[a],[],this._loader),y.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||x(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=y.resolve(b),i=this._loader,j=e.done.then(function(){return r(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new w;for(var c in a)!function(c){A(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof w))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var C=v.prototype.newModule;!function(){var a;v.prototype.parse=function(b){if(!a)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)a=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");a=__global.traceur}b.isDeclarative=!0;var c=a.options||{};c.modules="instantiate",c.sourceMaps=!0,c.filename=b.address;var d=new a.Compiler(c),e=d.compile(b.source,c.filename),f=d.getSourceMap();__global.btoa&&f&&(e+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(f)))+"\n"),__eval(e,__global,b)}}(),"object"==typeof exports&&(module.exports=v),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||v,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=v}(),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new i(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),l=new k;if("object"==typeof exports&&(module.exports=l),__global.System=l,h){var m=document.getElementsByTagName("script");m=m[m.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),m.getAttribute("data-init")&&window[m.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); +!function(__global){function __eval(__source,__global,load){var __curRegister=System.register;System.register=function(a,b,c){"string"!=typeof a&&(c=b,b=a),load.declare=c,load.depsList=b};try{eval('(function() { var __moduleName = "'+(load.name||"").replace('"','"')+'"; '+__source+" \n }).call(__global);")}catch(e){throw("SyntaxError"==e.name||"TypeError"==e.name)&&(e.message="Evaluating "+(load.name||load.address)+"\n "+e.message),e}System.register=__curRegister}$__Object$getPrototypeOf=Object.getPrototypeOf||function(a){return a.__proto__};var $__Object$defineProperty;!function(){try{Object.defineProperty({},"a",{})&&($__Object$defineProperty=Object.defineProperty)}catch(a){$__Object$defineProperty=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),$__Object$create=Object.create||function(a,b){function c(){}if(c.prototype=a,"object"==typeof b)for(prop in b)b.hasOwnProperty(prop)&&(c[prop]=b[prop]);return new c},function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new y(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:c&&c.metadata||{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new y(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return e=a(c),e.status="linked",e;for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,y.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"anon"+ ++B,b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return y.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,y.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,y.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new y(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){try{o(a)}catch(b){return l(a,b),!0}}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:C({}),evaluated:!0}:{module:C({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b){for(var c=a.loader,d=a.loads.concat([]),e=0,f=d.length;f>e;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==z.call(c.loaderObj.failed,g)&&c.loaderObj.failed.push(g);var h=z.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=z.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=z.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=z.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==z.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;f--){for(var g=c[f],h=0;hc;c++){var g=d.importers[c];if(!g.locked){var h=z.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==z.call(b,h)&&(d=u(h,b,c)))return d+"\n in module "+h.name}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=s(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function v(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},A(this,"global",{get:function(){return __global}})}function w(){}function x(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var y=__global.Promise||require("when/es6-shim/Promise");console.assert=console.assert||function(){};var z=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},A=$__Object$defineProperty,B=0;v.prototype={constructor:v,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return x(this,a,new y(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(t(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return y.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(t(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||x(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],r(e,b)}))})},load:function(a){return this._loader.modules[a]?(t(this._loader.modules[a],[],this._loader),y.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||x(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=y.resolve(b),i=this._loader,j=e.done.then(function(){return r(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new w;for(var c in a)!function(c){A(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof w))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var C=v.prototype.newModule;!function(){var a;v.prototype.parse=function(b){if(!a)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)a=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");a=__global.traceur}b.isDeclarative=!0;var c=a.options||{};c.modules="instantiate",c.script=!1,c.sourceMaps=!0,c.filename=b.address;var d=new a.Compiler(c),e=d.compile(b.source,c.filename),f=d.getSourceMap();__global.btoa&&f&&(e+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(f)))+"\n"),__eval(e,__global,b)}}(),"object"==typeof exports&&(module.exports=v),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||v,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=v}(),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new i(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),l=new k;if("object"==typeof exports&&(module.exports=l),__global.System=l,h){var m=document.getElementsByTagName("script");m=m[m.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),m.getAttribute("data-init")&&window[m.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); //# sourceMappingURL=es6-module-loader-sans-promises.js.map \ No newline at end of file diff --git a/dist/es6-module-loader-sans-promises.js.map b/dist/es6-module-loader-sans-promises.js.map index 6f4d747..1d6b411 100644 --- a/dist/es6-module-loader-sans-promises.js.map +++ b/dist/es6-module-loader-sans-promises.js.map @@ -1 +1 @@ -{"version":3,"file":"es6-module-loader-sans-promises.js","sources":["es6-module-loader-sans-promises.src.js"],"names":["__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","e","message","address","$__Object$getPrototypeOf","Object","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","value","get","call","$__Object$create","create","o","props","F","prototype","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","Promise","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","resolve","loaderObj","normalize","then","modules","i","l","loads","length","push","proceedToLocate","proceedToFetch","locate","p","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","TypeError","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","all","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","linkSet","createLinkSet","done","startingLoad","loadingCount","reject","j","d","doLink","link","module","_newModule","evaluated","finishLoad","abrupt","failed","indexOf","linkIndex","splice","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","curGroupDeclarative","group","linkDeclarativeModule","Module","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","Error","preventExtensions","Loader","this","_loader","importPromises","createImportPromise","promise","m","require","console","assert","Array","item","thisLen","constructor","define","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","traceur","window","WorkerGlobalScope","sourceMaps","filename","compiler","Compiler","compile","sourceMap","getSourceMap","btoa","unescape","encodeURIComponent","exports","Reflect","global","LoaderPolyfill","parseURI","url","String","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","join","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","document","removeEventListener","ready","scripts","getElementsByTagName","script","type","innerHTML","setTimeout","fetchTextFromURL","isWorker","self","isBrowser","fulfill","xhr","responseText","error","statusText","XMLHttpRequest","sameDomain","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onreadystatechange","readyState","open","send","fs","readFile","data","SystemLoader","$__super","split","baseURL","substring","process","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","substr","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"es6-module-loader-sans-promises.js","sources":["es6-module-loader-sans-promises.src.js"],"names":["__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","e","message","address","$__Object$getPrototypeOf","Object","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","value","get","call","$__Object$create","create","o","props","F","prototype","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","Promise","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","resolve","loaderObj","normalize","then","modules","i","l","loads","length","push","proceedToLocate","proceedToFetch","locate","p","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","TypeError","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","all","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","linkSet","createLinkSet","done","startingLoad","loadingCount","reject","j","d","doLink","link","module","_newModule","evaluated","finishLoad","abrupt","failed","indexOf","linkIndex","splice","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","curGroupDeclarative","group","linkDeclarativeModule","Module","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","Error","preventExtensions","Loader","this","_loader","importPromises","createImportPromise","promise","m","require","console","assert","Array","item","thisLen","constructor","define","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","traceur","window","WorkerGlobalScope","script","sourceMaps","filename","compiler","Compiler","compile","sourceMap","getSourceMap","btoa","unescape","encodeURIComponent","exports","Reflect","global","LoaderPolyfill","parseURI","url","String","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","join","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","document","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","setTimeout","fetchTextFromURL","isWorker","self","isBrowser","fulfill","xhr","responseText","error","statusText","XMLHttpRequest","sameDomain","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","data","SystemLoader","$__super","split","baseURL","substring","process","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","substr","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6-module-loader-sans-promises.src.js b/dist/es6-module-loader-sans-promises.src.js index 8e74aee..f339857 100644 --- a/dist/es6-module-loader-sans-promises.src.js +++ b/dist/es6-module-loader-sans-promises.src.js @@ -1077,6 +1077,7 @@ function logloads(loads) { var options = traceur.options || {}; options.modules = 'instantiate'; + options.script = false; options.sourceMaps = true; options.filename = load.address; @@ -1184,6 +1185,10 @@ function logloads(loads) { xhr.onload = load; xhr.onerror = error; xhr.ontimeout = error; + // IE8/IE9 bug may hang requests unless all properties are defined. + // See: http://stackoverflow.com/a/9928073/3949247 + xhr.onprogress = function() {}; + xhr.timeout = 0; } function load() { fulfill(xhr.responseText); @@ -1424,6 +1429,7 @@ function logloads(loads) { } })(); + // Define our eval outside of the scope of any other reference defined in this // file to avoid adding those references to the evaluation scope. function __eval(__source, __global, load) { diff --git a/dist/es6-module-loader.js b/dist/es6-module-loader.js index 9efe829..9ab4bb4 100644 --- a/dist/es6-module-loader.js +++ b/dist/es6-module-loader.js @@ -1,8 +1,8 @@ /* - * es6-module-loader v0.9.1 + * es6-module-loader v0.9.3 * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;gf;++f)e[f]=d[f];else{for(a=d.length,b=this.tail;a>c;++f,++c)e[f]=d[c];for(c=0;b>c;++f,++c)e[f]=d[c]}this.buffer=e,this.head=0,this.tail=this.length},a})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],4:[function(b,c){!function(a){"use strict";a(function(a){function b(a){this._async=a,this._queue=new d(15),this._afterQueue=new d(5),this._running=!1;var b=this;this.drain=function(){b._drain()}}function c(a){for(;a.length>0;)a.shift().run()}var d=a("./Queue");return b.prototype.enqueue=function(a){this._add(this._queue,a)},b.prototype.afterQueue=function(a){this._add(this._afterQueue,a)},b.prototype._drain=function(){c(this._queue),this._running=!1,c(this._afterQueue)},b.prototype._add=function(a,b){a.push(b),this._running||(this._running=!0,this._async(this.drain))},b})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"./Queue":3}],5:[function(b,c){!function(a){"use strict";a(function(a){var b,c;return b="undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick?function(a){process.nextTick(a)}:(c="function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver)?function(a,b){function c(){var a=d;d=void 0,a()}var d,e=a.createElement("div"),f=new b(c);return f.observe(e,{attributes:!0}),function(a){d=a,e.setAttribute("class","x")}}(document,c):function(a){var b;try{b=a("vertx")}catch(c){}if(b){if("function"==typeof b.runOnLoop)return b.runOnLoop;if("function"==typeof b.runOnContext)return b.runOnContext}var d=setTimeout;return function(a){d(a,0)}}(a)})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c){!function(a){"use strict";a(function(a){function b(a){var b="object"==typeof a&&a.stack?a.stack:c(a);return a instanceof Error?b:b+" (WARNING: non-Error used)"}function c(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=d(a,b)),b}function d(a,b){try{return JSON.stringify(a)}catch(a){return b}}function e(a){throw a}function f(){}var g=a("../timer");return function(a){function d(a){a.handled||(n.push(a),k("Potentially unhandled rejection ["+a.id+"] "+b(a.value)))}function h(a){var b=n.indexOf(a);b>=0&&(n.splice(b,1),l("Handled previous rejection ["+a.id+"] "+c(a.value)))}function i(a,b){m.push(a,b),o||(o=!0,o=g.set(j,0))}function j(){for(o=!1;m.length>0;)m.shift()(m.shift())}var k=f,l=f;"undefined"!=typeof console&&(k="undefined"!=typeof console.error?function(a){}:function(a){},l="undefined"!=typeof console.info?function(a){}:function(a){}),a.onPotentiallyUnhandledRejection=function(a){i(d,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){i(h,a)},a.onFatalRejection=function(a){i(e,a.value)};var m=[],n=[],o=!1;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../timer":8}],7:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===n?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new p;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return B(a)?a:new b(n,new q(k(a)))}function e(a){return new b(n,new q(new t(a)))}function f(){return Q}function g(){return new b(n,new p)}function h(a){function c(a,b,c){this[a]=b,0===--j&&c.become(new s(this))}var d,e,f,g,h=new p,j=a.length>>>0,k=new Array(j);for(d=0;d0)){i(a,d+1,e),h.become(e);break}k[d]=e.value,--j}else k[d]=f,--j;else--j;return 0===j&&h.become(new s(k)),new b(n,h)}function i(a,b,c){var d,e,f;for(d=b;d0||"function"!=typeof b&&0>d)return new this.constructor(n,c);var e=this._beget(),f=e._handler;return c.chain(f,c.receiver,a,b,arguments.length>2?arguments[2]:void 0),e},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){var a=this._handler,b=new p(a.receiver,a.join().context);return new this.constructor(n,b)},b.all=h,b.race=j,n.prototype.when=n.prototype.become=n.prototype.notify=n.prototype.fail=n.prototype._unreport=n.prototype._report=K,n.prototype._state=0,n.prototype.state=function(){return this._state},n.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},n.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},n.prototype.visit=function(a,b,c,d){this.chain(N,a,b,c,d)},n.prototype.fold=function(a,b,c,d){this.visit(d,function(d){a.call(c,b,d,this)},d.reject,d.notify)},J(n,o),o.prototype.become=function(a){a.fail()};var N=new o;J(n,p),p.prototype._state=0,p.prototype.resolve=function(a){this.become(k(a))},p.prototype.reject=function(a){this.resolved||this.become(new t(a))},p.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=w();return a},p.prototype.run=function(){var a=this.consumers,b=this.join();this.consumers=void 0;for(var c=0;cf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,y.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"anon"+ ++B,b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return y.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,y.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,y.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new y(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){try{o(a)}catch(b){return l(a,b),!0}}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:C({}),evaluated:!0}:{module:C({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b){for(var c=a.loader,d=a.loads.concat([]),e=0,f=d.length;f>e;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==z.call(c.loaderObj.failed,g)&&c.loaderObj.failed.push(g);var h=z.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=z.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=z.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=z.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==z.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;f--){for(var g=c[f],h=0;hc;c++){var g=d.importers[c];if(!g.locked){var h=z.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==z.call(b,h)&&(d=u(h,b,c)))return d+"\n in module "+h.name}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=s(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function v(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},A(this,"global",{get:function(){return __global}})}function w(){}function x(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var y=__global.Promise||require("when/es6-shim/Promise");console.assert=console.assert||function(){};var z=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},A=$__Object$defineProperty,B=0;v.prototype={constructor:v,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return x(this,a,new y(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(t(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return y.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(t(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||x(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],r(e,b)}))})},load:function(a){return this._loader.modules[a]?(t(this._loader.modules[a],[],this._loader),y.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||x(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=y.resolve(b),i=this._loader,j=e.done.then(function(){return r(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new w;for(var c in a)!function(c){A(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof w))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var C=v.prototype.newModule;!function(){var a;v.prototype.parse=function(b){if(!a)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)a=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");a=__global.traceur}b.isDeclarative=!0;var c=a.options||{};c.modules="instantiate",c.sourceMaps=!0,c.filename=b.address;var d=new a.Compiler(c),e=d.compile(b.source,c.filename),f=d.getSourceMap();__global.btoa&&f&&(e+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(f)))+"\n"),__eval(e,__global,b)}}(),"object"==typeof exports&&(module.exports=v),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||v,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=v}(),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new i(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),l=new k;if("object"==typeof exports&&(module.exports=l),__global.System=l,h){var m=document.getElementsByTagName("script");m=m[m.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),m.getAttribute("data-init")&&window[m.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); +!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;gf;++f)e[f]=d[f];else{for(a=d.length,b=this.tail;a>c;++f,++c)e[f]=d[c];for(c=0;b>c;++f,++c)e[f]=d[c]}this.buffer=e,this.head=0,this.tail=this.length},a})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],4:[function(b,c){!function(a){"use strict";a(function(a){function b(a){this._async=a,this._queue=new d(15),this._afterQueue=new d(5),this._running=!1;var b=this;this.drain=function(){b._drain()}}function c(a){for(;a.length>0;)a.shift().run()}var d=a("./Queue");return b.prototype.enqueue=function(a){this._add(this._queue,a)},b.prototype.afterQueue=function(a){this._add(this._afterQueue,a)},b.prototype._drain=function(){c(this._queue),this._running=!1,c(this._afterQueue)},b.prototype._add=function(a,b){a.push(b),this._running||(this._running=!0,this._async(this.drain))},b})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"./Queue":3}],5:[function(b,c){!function(a){"use strict";a(function(a){var b,c;return b="undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick?function(a){process.nextTick(a)}:(c="function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver)?function(a,b){function c(){var a=d;d=void 0,a()}var d,e=a.createElement("div"),f=new b(c);return f.observe(e,{attributes:!0}),function(a){d=a,e.setAttribute("class","x")}}(document,c):function(a){var b;try{b=a("vertx")}catch(c){}if(b){if("function"==typeof b.runOnLoop)return b.runOnLoop;if("function"==typeof b.runOnContext)return b.runOnContext}var d=setTimeout;return function(a){d(a,0)}}(a)})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c){!function(a){"use strict";a(function(a){function b(a){var b="object"==typeof a&&a.stack?a.stack:c(a);return a instanceof Error?b:b+" (WARNING: non-Error used)"}function c(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=d(a,b)),b}function d(a,b){try{return JSON.stringify(a)}catch(a){return b}}function e(a){throw a}function f(){}var g=a("../timer");return function(a){function d(a){a.handled||(n.push(a),k("Potentially unhandled rejection ["+a.id+"] "+b(a.value)))}function h(a){var b=n.indexOf(a);b>=0&&(n.splice(b,1),l("Handled previous rejection ["+a.id+"] "+c(a.value)))}function i(a,b){m.push(a,b),o||(o=!0,o=g.set(j,0))}function j(){for(o=!1;m.length>0;)m.shift()(m.shift())}var k=f,l=f;"undefined"!=typeof console&&(k="undefined"!=typeof console.error?function(a){}:function(a){},l="undefined"!=typeof console.info?function(a){}:function(a){}),a.onPotentiallyUnhandledRejection=function(a){i(d,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){i(h,a)},a.onFatalRejection=function(a){i(e,a.value)};var m=[],n=[],o=!1;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../timer":8}],7:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===n?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new p;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return B(a)?a:new b(n,new q(k(a)))}function e(a){return new b(n,new q(new t(a)))}function f(){return Q}function g(){return new b(n,new p)}function h(a){function c(a,b,c){this[a]=b,0===--j&&c.become(new s(this))}var d,e,f,g,h=new p,j=a.length>>>0,k=new Array(j);for(d=0;d0)){i(a,d+1,e,h);break}k[d]=e.value,--j}else k[d]=f,--j;else--j;return 0===j&&h.become(new s(k)),new b(n,h)}function i(a,b,c,d){d.become(c);var e,f,g;for(e=b;e0||"function"!=typeof b&&0>d)return new this.constructor(n,c);var e=this._beget(),f=e._handler;return c.chain(f,c.receiver,a,b,arguments.length>2?arguments[2]:void 0),e},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){var a=this._handler,b=new p(a.receiver,a.join().context);return new this.constructor(n,b)},b.all=h,b.race=j,n.prototype.when=n.prototype.become=n.prototype.notify=n.prototype.fail=n.prototype._unreport=n.prototype._report=K,n.prototype._state=0,n.prototype.state=function(){return this._state},n.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},n.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},n.prototype.visit=function(a,b,c,d){this.chain(N,a,b,c,d)},n.prototype.fold=function(a,b,c,d){this.visit(d,function(d){a.call(c,b,d,this)},d.reject,d.notify)},J(n,o),o.prototype.become=function(a){a.fail()};var N=new o;J(n,p),p.prototype._state=0,p.prototype.resolve=function(a){this.become(k(a))},p.prototype.reject=function(a){this.resolved||this.become(new t(a))},p.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=w();return a},p.prototype.run=function(){var a=this.consumers,b=this.join();this.consumers=void 0;for(var c=0;cf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,y.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"anon"+ ++B,b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return y.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,y.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,y.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new y(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){try{o(a)}catch(b){return l(a,b),!0}}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:C({}),evaluated:!0}:{module:C({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b){for(var c=a.loader,d=a.loads.concat([]),e=0,f=d.length;f>e;e++){var g=d[e];c.loaderObj.failed=c.loaderObj.failed||[],-1==z.call(c.loaderObj.failed,g)&&c.loaderObj.failed.push(g);var h=z.call(g.linkSets,a);if(g.linkSets.splice(h,1),0==g.linkSets.length){var i=z.call(a.loader.loads,g);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(b)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=z.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=z.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==z.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;f--){for(var g=c[f],h=0;hc;c++){var g=d.importers[c];if(!g.locked){var h=z.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==z.call(b,h)&&(d=u(h,b,c)))return d+"\n in module "+h.name}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=s(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function v(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},A(this,"global",{get:function(){return __global}})}function w(){}function x(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var y=__global.Promise||require("when/es6-shim/Promise");console.assert=console.assert||function(){};var z=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},A=$__Object$defineProperty,B=0;v.prototype={constructor:v,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return x(this,a,new y(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(t(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return y.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(t(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||x(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],r(e,b)}))})},load:function(a){return this._loader.modules[a]?(t(this._loader.modules[a],[],this._loader),y.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||x(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=y.resolve(b),i=this._loader,j=e.done.then(function(){return r(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new w;for(var c in a)!function(c){A(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof w))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var C=v.prototype.newModule;!function(){var a;v.prototype.parse=function(b){if(!a)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)a=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");a=__global.traceur}b.isDeclarative=!0;var c=a.options||{};c.modules="instantiate",c.script=!1,c.sourceMaps=!0,c.filename=b.address;var d=new a.Compiler(c),e=d.compile(b.source,c.filename),f=d.getSourceMap();__global.btoa&&f&&(e+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(f)))+"\n"),__eval(e,__global,b)}}(),"object"==typeof exports&&(module.exports=v),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||v,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=v}(),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@]*(?::[^:@]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new i(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),l=new k;if("object"==typeof exports&&(module.exports=l),__global.System=l,h){var m=document.getElementsByTagName("script");m=m[m.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),m.getAttribute("data-init")&&window[m.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); //# sourceMappingURL=es6-module-loader.js.map \ No newline at end of file diff --git a/dist/es6-module-loader.js.map b/dist/es6-module-loader.js.map index 778f0ec..4553c59 100644 --- a/dist/es6-module-loader.js.map +++ b/dist/es6-module-loader.js.map @@ -1 +1 @@ -{"version":3,"file":"es6-module-loader.js","sources":["es6-module-loader.src.js"],"names":["e","exports","module","define","amd","window","Promise","global","self","t","n","r","s","o","u","a","require","i","Error","f","call","length",1,"unhandledRejections","PromiseConstructor","../lib/Promise","../lib/decorators/unhandledRejection",2,"makePromise","Scheduler","async","scheduler","factory","./Scheduler","./async","./makePromise",3,"Queue","capacityPow2","this","head","tail","buffer","Array","prototype","push","x","_ensureCapacity","shift","capacity","len","newBuffer",4,"_async","_queue","_afterQueue","_running","drain","_drain","runQueue","queue","run","enqueue","task","_add","afterQueue","./Queue",5,"nextTick","MutationObs","process","MutationObserver","WebKitMutationObserver","document","scheduled","el","createElement","observe","attributes","setAttribute","cjsRequire","vertx","ignore","runOnLoop","runOnContext","capturedSetTimeout","setTimeout",6,"formatError","stack","formatObject","String","JSON","tryStringify","defaultValue","stringify","throwit","noop","timer","report","handled","reported","logError","id","value","unreport","indexOf","splice","logInfo","tasks","running","set","flush","console","error","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","../timer",7,"environment","resolver","handler","_handler","Handler","init","promiseResolve","resolve","promiseReject","reason","reject","promiseNotify","notify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","all","promises","settleAt","pending","become","Fulfilled","h","results","maybeThenable","getHandlerMaybeThenable","state","fold","unreportRemaining","start","rejectedHandler","visit","_unreport","race","Object","join","getHandlerUntrusted","untrustedThen","then","Thenable","FailIfRejected","receiver","inheritedContext","createContext","consumers","resolved","thenable","AssimilateTask","errorId","_report","ReportTask","context","UnreportTask","cycle","TypeError","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","runContinuation1","next","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","thisArg","y","inherit","Parent","Child","objectCreate","constructor","create","proto","_defer","onFulfilled","onRejected","parent","p","_beget","child","chain","arguments","when","fail","_state","to","fulfilled","rejected","progress","failIfRejected","z","c","q","cont","foreverPendingHandler","_resolve","_reject","_notify",8,"setTimer","clearTimer","ms","cancelTimer","clearTimeout","clear","__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","message","address","$__Object$getPrototypeOf","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","get","$__Object$create","props","F","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","loaderObj","normalize","modules","l","loads","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","linkSet","createLinkSet","done","startingLoad","loadingCount","j","d","doLink","link","_newModule","evaluated","finishLoad","abrupt","failed","linkIndex","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","curGroupDeclarative","group","linkDeclarativeModule","Module","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","preventExtensions","Loader","_loader","importPromises","createImportPromise","promise","m","assert","item","thisLen","delete","has","import","sourcePromise","newModule","configurable","enumerable","traceur","WorkerGlobalScope","sourceMaps","filename","compiler","Compiler","compile","sourceMap","getSourceMap","btoa","unescape","encodeURIComponent","Reflect","LoaderPolyfill","parseURI","url","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","removeEventListener","ready","scripts","getElementsByTagName","script","type","innerHTML","fetchTextFromURL","isWorker","isBrowser","fulfill","xhr","responseText","statusText","XMLHttpRequest","sameDomain","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onreadystatechange","readyState","open","send","fs","readFile","data","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","substr","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"es6-module-loader.js","sources":["es6-module-loader.src.js"],"names":["e","exports","module","define","amd","window","Promise","global","self","t","n","r","s","o","u","a","require","i","Error","f","call","length",1,"unhandledRejections","PromiseConstructor","../lib/Promise","../lib/decorators/unhandledRejection",2,"makePromise","Scheduler","async","scheduler","factory","./Scheduler","./async","./makePromise",3,"Queue","capacityPow2","this","head","tail","buffer","Array","prototype","push","x","_ensureCapacity","shift","capacity","len","newBuffer",4,"_async","_queue","_afterQueue","_running","drain","_drain","runQueue","queue","run","enqueue","task","_add","afterQueue","./Queue",5,"nextTick","MutationObs","process","MutationObserver","WebKitMutationObserver","document","scheduled","el","createElement","observe","attributes","setAttribute","cjsRequire","vertx","ignore","runOnLoop","runOnContext","capturedSetTimeout","setTimeout",6,"formatError","stack","formatObject","String","JSON","tryStringify","defaultValue","stringify","throwit","noop","timer","report","handled","reported","logError","id","value","unreport","indexOf","splice","logInfo","tasks","running","set","flush","console","error","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","../timer",7,"environment","resolver","handler","_handler","Handler","init","promiseResolve","resolve","promiseReject","reason","reject","promiseNotify","notify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","all","promises","settleAt","pending","become","Fulfilled","h","results","maybeThenable","getHandlerMaybeThenable","state","fold","resolveAndObserveRemaining","start","visit","_unreport","race","Object","join","getHandlerUntrusted","untrustedThen","then","Thenable","FailIfRejected","receiver","inheritedContext","createContext","consumers","resolved","thenable","AssimilateTask","errorId","_report","ReportTask","context","UnreportTask","cycle","TypeError","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","runContinuation1","next","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","thisArg","y","inherit","Parent","Child","objectCreate","constructor","create","proto","_defer","onFulfilled","onRejected","parent","p","_beget","child","chain","arguments","when","fail","_state","to","fulfilled","rejected","progress","failIfRejected","z","c","q","cont","foreverPendingHandler","_resolve","_reject","_notify",8,"setTimer","clearTimer","ignored","ms","cancelTimer","clearTimeout","clear","__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","message","address","$__Object$getPrototypeOf","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","get","$__Object$create","props","F","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","loaderObj","normalize","modules","l","loads","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","linkSet","createLinkSet","done","startingLoad","loadingCount","j","d","doLink","link","_newModule","evaluated","finishLoad","abrupt","failed","linkIndex","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","curGroupDeclarative","group","linkDeclarativeModule","Module","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","preventExtensions","Loader","_loader","importPromises","createImportPromise","promise","m","assert","item","thisLen","delete","has","import","sourcePromise","newModule","configurable","enumerable","traceur","WorkerGlobalScope","script","sourceMaps","filename","compiler","Compiler","compile","sourceMap","getSourceMap","btoa","unescape","encodeURIComponent","Reflect","LoaderPolyfill","parseURI","url","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","fetchTextFromURL","isWorker","isBrowser","fulfill","xhr","responseText","statusText","XMLHttpRequest","sameDomain","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","data","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","substr","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6-module-loader.src.js b/dist/es6-module-loader.src.js index f6aa57e..e078ca1 100644 --- a/dist/es6-module-loader.src.js +++ b/dist/es6-module-loader.src.js @@ -428,6 +428,7 @@ define(function() { } /** + * @deprecated * Issue a progress event, notifying all progress listeners * @param {*} x progress event payload to pass to all listeners */ @@ -571,8 +572,7 @@ define(function() { results[i] = h.value; --pending; } else { - unreportRemaining(promises, i+1, h); - resolver.become(h); + resolveAndObserveRemaining(promises, i+1, h, resolver); break; } @@ -597,14 +597,15 @@ define(function() { } } - function unreportRemaining(promises, start, rejectedHandler) { + function resolveAndObserveRemaining(promises, start, handler, resolver) { + resolver.become(handler); + var i, h, x; for(i=start; i Date: Sat, 18 Oct 2014 11:53:52 -0500 Subject: [PATCH 082/482] Fixing broken module tag explainer link --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 929152e..b700d4a 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,7 @@ Ideally this should be based on polyfilling the `` tag, as ` - + + - + - + ``` The dynamic loader returns a `Module` object, which contains getters for the named exports (in this case, `q`). -_Because the loader is promise-based we need to add a catch handler in order to detect loading errors._ - [Read the wiki on overview of ES6 modules and syntax](https://github.com/ModuleLoader/es6-module-loader/wiki/A-Brief-ES6-Modules-Overview). +### Custom Compilation Options + +Custom [Traceur compilation options](https://github.com/google/traceur-compiler/blob/master/src/Options.js#L25) can be set through `System.traceurOptions`, eg: + +```javascript +System.traceurOptions.annotations = true; +``` + ### Module Tag A simple analog to the module tag is provided with: From 6c55b142e402c3b33129e92643fcecb02ccf8ff1 Mon Sep 17 00:00:00 2001 From: Guy Bedford Date: Tue, 18 Nov 2014 16:13:57 +0200 Subject: [PATCH 098/482] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 4bb40bd..4a0b8c6 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ Dynamically loads ES6 modules in NodeJS and current browsers. * Polyfills ES6 Promises in the browser with an optionally bundled ES6 promise implementation. * [Compatible with NodeJS](#nodejs-usage) allowing for server-side module loading and tracing extensions. * Supports ES6 module loading in IE8+. Other ES6 features only supported by Traceur in IE9+. -* The complete combined polyfill, including ES6 promises, comes to 8.7KB minified and gzipped, making it suitable for production use, provided that modules are [built into ES5 making them independent of Traceur](#moving-to-production). +* The complete combined polyfill, including ES6 promises, comes to 9KB minified and gzipped, making it suitable for production use, provided that modules are [built into ES5 making them independent of Traceur](#moving-to-production). For an overview of build workflows, [see the production guide](#moving-to-production). From 5f8a11f84dacdc4f43efb8409ebc836a33f14a85 Mon Sep 17 00:00:00 2001 From: guybedford Date: Tue, 18 Nov 2014 16:38:07 +0200 Subject: [PATCH 099/482] 0.10.0 --- bower.json | 4 +- dist/es6-module-loader.js | 2 +- dist/es6-module-loader.js.map | 2 +- dist/es6-module-loader.src.js | 337 +++++++++++++++++----------------- package.json | 6 +- 5 files changed, 171 insertions(+), 180 deletions(-) diff --git a/bower.json b/bower.json index 771965d..c708b98 100644 --- a/bower.json +++ b/bower.json @@ -1,11 +1,11 @@ { "name": "es6-module-loader", - "version": "0.9.4", + "version": "0.10.0", "description": "An ES6 Module Loader polyfill based on the latest spec.", "homepage": "https://github.com/ModuleLoader/es6-module-loader", "main": "dist/es6-module-loader-sans-promises.js", "dependencies": { - "traceur": "0.0.72" + "traceur": "0.0.74" }, "keywords": [ "es6", diff --git a/dist/es6-module-loader.js b/dist/es6-module-loader.js index 6b0c135..b1b3e6e 100644 --- a/dist/es6-module-loader.js +++ b/dist/es6-module-loader.js @@ -4,5 +4,5 @@ * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(a){if("object"==typeof exports)module.exports=a();else if("function"==typeof define&&define.amd)define(a);else{var b;"undefined"!=typeof window?b=window:"undefined"!=typeof global?b=global:"undefined"!=typeof self&&(b=self),b.Promise=a()}}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;gf;++f)e[f]=d[f];else{for(a=d.length,b=this.tail;a>c;++f,++c)e[f]=d[c];for(c=0;b>c;++f,++c)e[f]=d[c]}this.buffer=e,this.head=0,this.tail=this.length},a})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],4:[function(b,c){!function(a){"use strict";a(function(a){function b(a){this._async=a,this._queue=new d(15),this._afterQueue=new d(5),this._running=!1;var b=this;this.drain=function(){b._drain()}}function c(a){for(;a.length>0;)a.shift().run()}var d=a("./Queue");return b.prototype.enqueue=function(a){this._add(this._queue,a)},b.prototype.afterQueue=function(a){this._add(this._afterQueue,a)},b.prototype._drain=function(){c(this._queue),this._running=!1,c(this._afterQueue)},b.prototype._add=function(a,b){a.push(b),this._running||(this._running=!0,this._async(this.drain))},b})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"./Queue":3}],5:[function(b,c){!function(a){"use strict";a(function(a){function b(a){var b="object"==typeof a&&a.stack?a.stack:c(a);return a instanceof Error?b:b+" (WARNING: non-Error used)"}function c(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=d(a,b)),b}function d(a,b){try{return JSON.stringify(a)}catch(a){return b}}function e(a){throw a}function f(){}var g=a("../env").setTimer;return function(a){function d(a){a.handled||(o.push(a),l("Potentially unhandled rejection ["+a.id+"] "+b(a.value)))}function h(a){var b=o.indexOf(a);b>=0&&(o.splice(b,1),m("Handled previous rejection ["+a.id+"] "+c(a.value)))}function i(a,b){n.push(a,b),p||(p=!0,p=g(j,0))}function j(){for(p=!1;n.length>0;)n.shift()(n.shift())}var k,l=f,m=f;"undefined"!=typeof console&&(k=console,l="undefined"!=typeof k.error?function(a){k.error(a)}:function(a){k.log(a)},m="undefined"!=typeof k.info?function(a){k.info(a)}:function(a){k.log(a)}),a.onPotentiallyUnhandledRejection=function(a){i(d,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){i(h,a)},a.onFatalRejection=function(a){i(e,a.value)};var n=[],o=[],p=!1;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../env":6}],6:[function(b,c){!function(a){"use strict";a(function(a){function b(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick}function c(){return"function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver}function d(a){function b(){var a=c;c=void 0,a()}var c,d=document.createTextNode(""),e=new a(b);e.observe(d,{characterData:!0});var f=0;return function(a){c=a,d.data=f^=1}}var e,f="undefined"!=typeof setTimeout&&setTimeout,g=function(a,b){return setTimeout(a,b)},h=function(a){return clearTimeout(a)},i=function(a){return f(a,0)};if(b())i=function(a){return process.nextTick(a)};else if(e=c())i=d(e);else if(!f){var j=a,k=j("vertx");g=function(a,b){return k.setTimer(b,a)},h=k.cancelTimer,i=k.runOnLoop||k.runOnContext}return{setTimer:g,clearTimer:h,asap:i}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],7:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===o?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new q;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return C(a)?a:new b(o,new r(l(a)))}function e(a){return new b(o,new r(new u(a)))}function f(){return R}function g(){return new b(o,new q)}function h(a){function c(a,b,c){this[a]=b,0===--j&&c.become(new t(this))}var d,e,f,g,h=new q,j=a.length>>>0,k=new Array(j);for(d=0;d0)){i(a,d+1,e,h);break}k[d]=e.value,--j}else k[d]=f,--j;else--j;return 0===j&&h.become(new t(k)),new b(o,h)}function i(a,b,c,d){d.become(c);var e,f,g;for(e=b;e0||"function"!=typeof b&&0>d)return new this.constructor(o,c);var e=this._beget(),f=e._handler;return c.chain(f,c.receiver,a,b,arguments.length>2?arguments[2]:void 0),e},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){var a=this._handler,b=new q(a.receiver,a.join().context);return new this.constructor(o,b)},b.all=h,b.race=j,o.prototype.when=o.prototype.become=o.prototype.notify=o.prototype.fail=o.prototype._unreport=o.prototype._report=L,o.prototype._state=0,o.prototype.state=function(){return this._state},o.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},o.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},o.prototype.visit=function(a,b,c,d){this.chain(O,a,b,c,d)},o.prototype.fold=function(a,b,c,d){this.visit(d,function(d){a.call(c,b,d,this)},d.reject,d.notify)},K(o,p),p.prototype.become=function(a){a.fail()};var O=new p;K(o,q),q.prototype._state=0,q.prototype.resolve=function(a){this.become(l(a))},q.prototype.reject=function(a){this.resolved||this.become(new u(a))},q.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=x();return a},q.prototype.run=function(){var a=this.consumers,b=this.join();this.consumers=void 0;for(var c=0;cf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,A.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");console.assert=console.assert||function(){};var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=x.prototype.newModule;!function(){function a(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}var b;x.prototype.parse=function(c){if(!b)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=this.traceurOptions||{};d.modules="instantiate",d.script=!1,d.sourceMaps=!0,d.filename=c.address;var e=new b.Compiler(d),f=a(c.source,e,d.filename);if(!f)throw new Error("Error evaluating module "+c.address);var g=e.getSourceMap();__global.btoa&&g&&(f+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(g)))+"\n"),f='var __moduleAddress = "'+c.address+'";'+f,__eval(f,__global,c)}}(),"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); +!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=0&&(o.splice(b,1),m("Handled previous rejection ["+a.id+"] "+c(a.value)))}function i(a,b){n.push(a,b),null===p&&(p=g(j,0))}function j(){for(p=null;n.length>0;)n.shift()(n.shift())}var k,l=f,m=f;"undefined"!=typeof console&&(k=console,l="undefined"!=typeof k.error?function(a){k.error(a)}:function(a){k.log(a)},m="undefined"!=typeof k.info?function(a){k.info(a)}:function(a){k.log(a)}),a.onPotentiallyUnhandledRejection=function(a){i(d,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){i(h,a)},a.onFatalRejection=function(a){i(e,a.value)};var n=[],o=[],p=null;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../env":5}],5:[function(b,c){!function(a){"use strict";a(function(a){function b(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick}function c(){return"function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver}function d(a){function b(){var a=c;c=void 0,a()}var c,d=document.createTextNode(""),e=new a(b);e.observe(d,{characterData:!0});var f=0;return function(a){c=a,d.data=f^=1}}var e,f="undefined"!=typeof setTimeout&&setTimeout,g=function(a,b){return setTimeout(a,b)},h=function(a){return clearTimeout(a)},i=function(a){return f(a,0)};if(b())i=function(a){return process.nextTick(a)};else if(e=c())i=d(e);else if(!f){var j=a,k=j("vertx");g=function(a,b){return k.setTimer(b,a)},h=k.cancelTimer,i=k.runOnLoop||k.runOnContext}return{setTimer:g,clearTimer:h,asap:i}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===t?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new v;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return I(a)?a:new b(t,new w(q(a)))}function e(a){return new b(t,new w(new z(a)))}function f(){return Z}function g(){return new b(t,new v)}function h(a,b){var c=new v(a.receiver,a.join().context);return new b(t,c)}function i(a){return k(S,null,a)}function j(a,b){return k(N,a,b)}function k(a,c,d){function e(b,e,g){g.resolved||l(d,f,b,a(c,e,b),g)}function f(a,b,c){k[a]=b,0===--j&&c.become(new y(k))}for(var g,h="function"==typeof c?e:f,i=new v,j=d.length>>>0,k=new Array(j),m=0;m0?b(c,f.value,e):(e.become(f),m(a,c+1,f))}else b(c,d,e)}function m(a,b,c){for(var d=b;dc&&a._unreport()}}function o(a){return"object"!=typeof a||null===a?e(new TypeError("non-iterable passed to race()")):0===a.length?f():1===a.length?d(a[0]):p(a)}function p(a){var c,d,e,f=new v;for(c=0;c0||"function"!=typeof b&&0>e)return new this.constructor(t,d);var f=this._beget(),g=f._handler;return d.chain(g,d.receiver,a,b,c),f},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){return h(this._handler,this.constructor)},b.all=i,b.race=o,b._traverse=j,b._visitRemaining=m,t.prototype.when=t.prototype.become=t.prototype.notify=t.prototype.fail=t.prototype._unreport=t.prototype._report=T,t.prototype._state=0,t.prototype.state=function(){return this._state},t.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},t.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},t.prototype.visit=function(a,b,c,d){this.chain(W,a,b,c,d)},t.prototype.fold=function(a,b,c,d){this.when(new H(a,b,c,d))},R(t,u),u.prototype.become=function(a){a.fail()};var W=new u;R(t,v),v.prototype._state=0,v.prototype.resolve=function(a){this.become(q(a))},v.prototype.reject=function(a){this.resolved||this.become(new z(a))},v.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=C();return a},v.prototype.run=function(){var a=this.consumers,b=this.join();this.consumers=void 0;for(var c=0;cf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,A.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");console.assert=console.assert||function(){};var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=x.prototype.newModule;!function(){function a(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}var b;x.prototype.parse=function(c){if(!b)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=this.traceurOptions||{};d.modules="instantiate",d.script=!1,d.sourceMaps=!0,d.filename=c.address;var e=new b.Compiler(d),f=a(c.source,e,d.filename);if(!f)throw new Error("Error evaluating module "+c.address);var g=e.getSourceMap();__global.btoa&&g&&(f+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(g)))+"\n"),f='var __moduleAddress = "'+c.address+'";'+f,__eval(f,__global,c)}}(),"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); //# sourceMappingURL=es6-module-loader.js.map \ No newline at end of file diff --git a/dist/es6-module-loader.js.map b/dist/es6-module-loader.js.map index f0c6db3..b9d6116 100644 --- a/dist/es6-module-loader.js.map +++ b/dist/es6-module-loader.js.map @@ -1 +1 @@ -{"version":3,"file":"es6-module-loader.js","sources":["es6-module-loader.src.js"],"names":["e","exports","module","define","amd","f","window","global","self","Promise","t","n","r","s","o","u","a","require","i","Error","call","length",1,"_dereq_","unhandledRejections","PromiseConstructor","../lib/Promise","../lib/decorators/unhandledRejection",2,"makePromise","Scheduler","async","asap","scheduler","factory","./Scheduler","./env","./makePromise",3,"Queue","capacityPow2","this","head","tail","buffer","Array","prototype","push","x","_ensureCapacity","shift","capacity","len","newBuffer",4,"_async","_queue","_afterQueue","_running","drain","_drain","runQueue","queue","run","enqueue","task","_add","afterQueue","./Queue",5,"formatError","stack","formatObject","String","JSON","tryStringify","defaultValue","stringify","throwit","noop","setTimer","report","handled","reported","logError","id","value","unreport","indexOf","splice","logInfo","tasks","running","flush","localConsole","console","error","log","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","../env",6,"isNode","process","nextTick","hasMutationObserver","MutationObserver","WebKitMutationObserver","initMutationObserver","scheduled","node","document","createTextNode","observe","characterData","data","MutationObs","capturedSetTimeout","setTimeout","ms","clearTimer","clearTimeout","vertxRequire","vertx","cancelTimer","runOnLoop","runOnContext",7,"environment","resolver","handler","_handler","Handler","init","promiseResolve","resolve","promiseReject","reason","reject","promiseNotify","notify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","all","promises","settleAt","pending","become","Fulfilled","h","results","maybeThenable","getHandlerMaybeThenable","state","fold","resolveAndObserveRemaining","start","visit","_unreport","race","TypeError","runRace","join","getHandlerUntrusted","untrustedThen","then","Thenable","FailIfRejected","receiver","inheritedContext","createContext","consumers","resolved","thenable","AssimilateTask","errorId","_report","ReportTask","context","UnreportTask","cycle","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","runContinuation1","next","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","thisArg","y","inherit","Parent","Child","objectCreate","constructor","Object","create","proto","_defer","onFulfilled","onRejected","parent","p","_beget","child","chain","arguments","when","fail","_state","to","fulfilled","rejected","progress","failIfRejected","z","c","q","cont","foreverPendingHandler","_resolve","_reject","_notify","__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","message","address","$__Object$getPrototypeOf","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","get","$__Object$create","props","F","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","loaderObj","normalize","modules","l","loads","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","linkSet","createLinkSet","done","startingLoad","loadingCount","j","d","doLink","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","linkIndex","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","preventExtensions","msg","Loader","_loader","importPromises","createImportPromise","promise","m","assert","item","thisLen","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","doCompile","compiler","filename","compile","traceur","WorkerGlobalScope","traceurOptions","script","sourceMaps","Compiler","sourceMap","getSourceMap","btoa","unescape","encodeURIComponent","Reflect","LoaderPolyfill","parseURI","url","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","fetchTextFromURL","isWorker","isBrowser","isWindows","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"es6-module-loader.js","sources":["es6-module-loader.src.js"],"names":["e","exports","module","define","amd","window","Promise","global","self","t","n","r","s","o","u","a","require","i","Error","f","call","length",1,"unhandledRejections","PromiseConstructor","../lib/Promise","../lib/decorators/unhandledRejection",2,"makePromise","Scheduler","async","asap","scheduler","factory","./Scheduler","./env","./makePromise",3,"this","_async","_running","_queue","Array","_queueLen","_afterQueue","_afterQueueLen","drain","_drain","prototype","enqueue","task","run","afterQueue",4,"formatError","stack","formatObject","String","JSON","tryStringify","defaultValue","stringify","throwit","noop","setTimer","report","handled","reported","push","logError","id","value","unreport","indexOf","splice","logInfo","x","tasks","running","flush","shift","localConsole","console","error","log","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","../env",5,"isNode","process","nextTick","hasMutationObserver","MutationObserver","WebKitMutationObserver","initMutationObserver","scheduled","node","document","createTextNode","observe","characterData","data","MutationObs","capturedSetTimeout","setTimeout","ms","clearTimer","clearTimeout","vertxRequire","vertx","cancelTimer","runOnLoop","runOnContext",6,"environment","resolver","handler","_handler","Handler","init","promiseResolve","resolve","promiseReject","reason","reject","promiseNotify","notify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","begetFrom","parent","child","receiver","join","context","all","promises","traverseWith","snd","traverse","tryCatch2","tryMap","mapAt","resolved","traverseAt","settleAt","results","pending","become","Fulfilled","maybeThenable","h","getHandlerMaybeThenable","state","fold","visitRemaining","start","markAsHandled","visit","_unreport","race","TypeError","runRace","getHandlerUntrusted","untrustedThen","then","Thenable","FailIfRejected","inheritedContext","createContext","consumers","thenable","AssimilateTask","errorId","_report","ReportTask","UnreportTask","cycle","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","Fold","z","c","to","failIfRejected","runContinuation1","next","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","b","thisArg","y","inherit","Parent","Child","objectCreate","constructor","Object","create","proto","_defer","onFulfilled","onRejected","onProgress","p","_beget","chain","_traverse","_visitRemaining","when","fail","_state","fulfilled","rejected","progress","q","cont","foreverPendingHandler","_resolve","_reject","_notify","__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","message","address","$__Object$getPrototypeOf","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","get","$__Object$create","props","F","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","loaderObj","normalize","modules","l","loads","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","linkSet","createLinkSet","done","startingLoad","loadingCount","j","d","doLink","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","linkIndex","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","preventExtensions","msg","Loader","_loader","importPromises","createImportPromise","promise","m","assert","item","thisLen","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","doCompile","compiler","filename","compile","traceur","WorkerGlobalScope","traceurOptions","script","sourceMaps","Compiler","sourceMap","getSourceMap","btoa","unescape","encodeURIComponent","Reflect","LoaderPolyfill","parseURI","url","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","fetchTextFromURL","isWorker","isBrowser","isWindows","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":";;;;;;CAAC,SAASA,GAAG,gBAAiBC,SAAQC,OAAOD,QAAQD,IAAI,kBAAmBG,SAAQA,OAAOC,IAAID,OAAOH,GAAG,mBAAoBK,QAAOA,OAAOC,QAAQN,IAAI,mBAAoBO,QAAOA,OAAOD,QAAQN,IAAI,mBAAoBQ,QAAOA,KAAKF,QAAQN,MAAM,WAAW,GAAIG,EAAsB,OAAO,SAAUH,GAAES,EAAEC,EAAEC,GAAG,QAASC,GAAEC,EAAEC,GAAG,IAAIJ,EAAEG,GAAG,CAAC,IAAIJ,EAAEI,GAAG,CAAC,GAAIE,GAAkB,kBAATC,UAAqBA,OAAQ,KAAIF,GAAGC,EAAE,MAAOA,GAAEF,GAAE,EAAI,IAAGI,EAAE,MAAOA,GAAEJ,GAAE,EAAI,MAAM,IAAIK,OAAM,uBAAuBL,EAAE,KAAK,GAAIM,GAAET,EAAEG,IAAIZ,WAAYQ,GAAEI,GAAG,GAAGO,KAAKD,EAAElB,QAAQ,SAASD,GAAG,GAAIU,GAAED,EAAEI,GAAG,GAAGb,EAAG,OAAOY,GAAEF,EAAEA,EAAEV,IAAImB,EAAEA,EAAElB,QAAQD,EAAES,EAAEC,EAAEC,GAAG,MAAOD,GAAEG,GAAGZ,QAAkD,IAAI,GAA1CgB,GAAkB,kBAATD,UAAqBA,QAAgBH,EAAE,EAAEA,EAAEF,EAAEU,OAAOR,IAAID,EAAED,EAAEE,GAAI,OAAOD,KAAKU,GAAG,SAASN,EAAQd,GAQ7sB,GAAIqB,GAAsBP,EAAQ,wCAC9BQ,EAAqBD,EAAoBP,EAAQ,kBAErDd,GAAOD,QAA2B,mBAAVM,QAAyBA,OAAOD,QAAUkB,EACnC,mBAAVhB,MAAyBA,KAAKF,QAAYkB,EACjDA,IAEXC,iBAAiB,EAAEC,uCAAuC,IAAIC,GAAG,SAASX,EAAQd,IAKrF,SAAUC,GAAU,YACpBA,GAAO,SAAUa,GAEhB,GAAIY,GAAcZ,EAAQ,iBACtBa,EAAYb,EAAQ,eACpBc,EAAQd,EAAQ,SAASe,IAE7B,OAAOH,IACNI,UAAW,GAAIH,GAAUC,QAIN,kBAAX3B,IAAyBA,EAAOC,IAAMD,EAAS,SAAU8B,GAAW/B,EAAOD,QAAUgC,EAAQjB,OAEpGkB,cAAc,EAAEC,QAAQ,EAAEC,gBAAgB,IAAIC,GAAG,SAASrB,EAAQd,IAKpE,SAASC,GAAU,YACpBA,GAAO,WAUN,QAAS0B,GAAUC,GAClBQ,KAAKC,OAAST,EACdQ,KAAKE,UAAW,EAEhBF,KAAKG,OAAS,GAAIC,OAAM,OACxBJ,KAAKK,UAAY,EACjBL,KAAKM,YAAc,GAAIF,OAAM,IAC7BJ,KAAKO,eAAiB,CAEtB,IAAIrC,GAAO8B,IACXA,MAAKQ,MAAQ,WACZtC,EAAKuC,UAkDP,MA1CAlB,GAAUmB,UAAUC,QAAU,SAASC,GACtCZ,KAAKG,OAAOH,KAAKK,aAAeO,EAChCZ,KAAKa,OAONtB,EAAUmB,UAAUI,WAAa,SAASF,GACzCZ,KAAKM,YAAYN,KAAKO,kBAAoBK,EAC1CZ,KAAKa,OAGNtB,EAAUmB,UAAUG,IAAM,WACpBb,KAAKE,WACTF,KAAKE,UAAW,EAChBF,KAAKC,OAAOD,KAAKQ,SAOnBjB,EAAUmB,UAAUD,OAAS,WAE5B,IADA,GAAI9B,GAAI,EACDA,EAAIqB,KAAKK,YAAa1B,EAC5BqB,KAAKG,OAAOxB,GAAGkC,MACfb,KAAKG,OAAOxB,GAAK,MAMlB,KAHAqB,KAAKK,UAAY,EACjBL,KAAKE,UAAW,EAEXvB,EAAI,EAAGA,EAAIqB,KAAKO,iBAAkB5B,EACtCqB,KAAKM,YAAY3B,GAAGkC,MACpBb,KAAKM,YAAY3B,GAAK,MAGvBqB,MAAKO,eAAiB,GAGhBhB,KAGY,kBAAX1B,IAAyBA,EAAOC,IAAMD,EAAS,SAAS8B,GAAW/B,EAAOD,QAAUgC,WAEvFoB,GAAG,SAASrC,EAAQd,IAKzB,SAASC,GAAU,YACpBA,GAAO,SAASa,GAuEf,QAASsC,GAAYtD,GACpB,GAAIY,GAAiB,gBAANZ,IAAkBA,EAAEuD,MAAQvD,EAAEuD,MAAQC,EAAaxD,EAClE,OAAOA,aAAakB,OAAQN,EAAIA,EAAI,6BAGrC,QAAS4C,GAAa3C,GACrB,GAAID,GAAI6C,OAAO5C,EAIf,OAHS,oBAAND,GAA2C,mBAAT8C,QACpC9C,EAAI+C,EAAa9C,EAAGD,IAEdA,EAGR,QAAS+C,GAAa3D,EAAG4D,GACxB,IACC,MAAOF,MAAKG,UAAU7D,GACrB,MAAMA,GAEP,MAAO4D,IAIT,QAASE,GAAQ9D,GAChB,KAAMA,GAGP,QAAS+D,MA/FT,GAAIC,GAAWhD,EAAQ,UAAUgD,QAEjC,OAAO,UAA4B1D,GAmClC,QAAS2D,GAAOtD,GACXA,EAAEuD,UACLC,EAASC,KAAKzD,GACd0D,EAAS,oCAAsC1D,EAAE2D,GAAK,KAAOhB,EAAY3C,EAAE4D,SAI7E,QAASC,GAAS7D,GACjB,GAAIM,GAAIkD,EAASM,QAAQ9D,EACtBM,IAAK,IACPkD,EAASO,OAAOzD,EAAG,GACnB0D,EAAQ,+BAAiChE,EAAE2D,GAAK,KAAOd,EAAa7C,EAAE4D,SAIxE,QAAStB,GAAQ9B,EAAGyD,GACnBC,EAAMT,KAAKjD,EAAGyD,GACC,OAAZE,IACFA,EAAUd,EAASe,EAAO,IAI5B,QAASA,KAER,IADAD,EAAU,KACJD,EAAMxD,OAAS,GACpBwD,EAAMG,QAAQH,EAAMG,SA3DtB,GAEIC,GAFAZ,EAAWN,EACXY,EAAUZ,CAGQ,oBAAZmB,WAITD,EAAeC,QACfb,EAAyC,mBAAvBY,GAAaE,MAC5B,SAAUnF,GAAKiF,EAAaE,MAAMnF,IAClC,SAAUA,GAAKiF,EAAaG,IAAIpF,IAEnC2E,EAAuC,mBAAtBM,GAAaI,KAC3B,SAAUrF,GAAKiF,EAAaI,KAAKrF,IACjC,SAAUA,GAAKiF,EAAaG,IAAIpF,KAGpCM,EAAQgF,gCAAkC,SAASC,GAClDtC,EAAQgB,EAAQsB,IAGjBjF,EAAQkF,uCAAyC,SAASD,GACzDtC,EAAQuB,EAAUe,IAGnBjF,EAAQmF,iBAAmB,SAASF,GACnCtC,EAAQa,EAASyB,EAAUhB,OAG5B,IAAIM,MACAV,KACAW,EAAU,IA+Bd,OAAOxE,OAgCW,kBAAXH,IAAyBA,EAAOC,IAAMD,EAAS,SAAS8B,GAAW/B,EAAOD,QAAUgC,EAAQjB,OAElG0E,SAAS,IAAIC,GAAG,SAAS3E,EAAQd,IAMnC,SAASC,GAAU,YACpBA,GAAO,SAASa,GAqCf,QAAS4E,KACR,MAA0B,mBAAZC,UAAuC,OAAZA,SACZ,kBAArBA,SAAQC,SAGjB,QAASC,KACR,MAAoC,kBAArBC,mBAAmCA,kBACd,kBAA3BC,yBAAyCA,uBAGnD,QAASC,GAAqBF,GAM7B,QAAS7C,KACR,GAAIhC,GAAIgF,CACRA,GAAY,OACZhF,IARD,GAAIgF,GACAC,EAAOC,SAASC,eAAe,IAC/BzF,EAAI,GAAImF,GAAiB7C,EAC7BtC,GAAE0F,QAAQH,GAAQI,eAAe,GAQjC,IAAIvF,GAAI,CACR,OAAO,UAAUE,GAChBgF,EAAYhF,EACZiF,EAAKK,KAAQxF,GAAK,GAtDpB,GAAIyF,GACAC,EAA2C,mBAAfC,aAA8BA,WAG1D5C,EAAW,SAAS7C,EAAG0F,GAAM,MAAOD,YAAWzF,EAAG0F,IAClDC,EAAa,SAASrG,GAAK,MAAOsG,cAAatG,IAC/CsB,EAAO,SAAUZ,GAAK,MAAOwF,GAAmBxF,EAAG,GAGvD,IAAIyE,IACH7D,EAAO,SAAUZ,GAAK,MAAO0E,SAAQC,SAAS3E,QAExC,IAAIuF,EAAcX,IACxBhE,EAAOmE,EAAqBQ,OAEtB,KAAKC,EAAoB,CAC/B,GAAIK,GAAehG,EACfiG,EAAQD,EAAa,QACzBhD,GAAW,SAAU7C,EAAG0F,GAAM,MAAOI,GAAMjD,SAAS6C,EAAI1F,IACxD2F,EAAaG,EAAMC,YACnBnF,EAAOkF,EAAME,WAAaF,EAAMG,aAGjC,OACCpD,SAAUA,EACV8C,WAAYA,EACZ/E,KAAMA,MAgCY,kBAAX5B,IAAyBA,EAAOC,IAAMD,EAAS,SAAS8B,GAAW/B,EAAOD,QAAUgC,EAAQjB,UAE/FqG,GAAG,SAASrG,EAAQd,IAKzB,SAASC,GAAU,YACpBA,GAAO,WAEN,MAAO,UAAqBmH,GAiB3B,QAAShH,GAAQiH,EAAUC,GAC1BlF,KAAKmF,SAAWF,IAAaG,EAAUF,EAAUG,EAAKJ,GAQvD,QAASI,GAAKJ,GAgBb,QAASK,GAAgBhD,GACxB4C,EAAQK,QAAQjD,GAOjB,QAASkD,GAAeC,GACvBP,EAAQQ,OAAOD,GAQhB,QAASE,GAAerD,GACvB4C,EAAQU,OAAOtD,GAjChB,GAAI4C,GAAU,GAAIW,EAElB,KACCZ,EAASK,EAAgBE,EAAeG,GACvC,MAAOjI,GACR8H,EAAc9H,GAGf,MAAOwH,GA4CR,QAASK,GAAQjD,GAChB,MAAOwD,GAAUxD,GAAKA,EACnB,GAAItE,GAAQoH,EAAS,GAAIW,GAAMC,EAAW1D,KAQ9C,QAASoD,GAAOpD,GACf,MAAO,IAAItE,GAAQoH,EAAS,GAAIW,GAAM,GAAIE,GAAS3D,KAOpD,QAAS4D,KACR,MAAOC,GAQR,QAASC,KACR,MAAO,IAAIpI,GAAQoH,EAAS,GAAIS,IAoDjC,QAASQ,GAAUC,EAAQtI,GAC1B,GAAIuI,GAAQ,GAAIV,GAAQS,EAAOE,SAAUF,EAAOG,OAAOC,QACvD,OAAO,IAAI1I,GAAQoH,EAASmB,GAgB7B,QAASI,GAAIC,GACZ,MAAOC,GAAaC,EAAK,KAAMF,GAUhC,QAASG,GAASlI,EAAG+H,GACpB,MAAOC,GAAaG,EAAWnI,EAAG+H,GAGnC,QAASC,GAAaI,EAAQpI,EAAG+H,GAwBhC,QAASM,GAAMvI,EAAG2D,EAAG2C,GAChBA,EAASkC,UACZC,EAAWR,EAAUS,EAAU1I,EAAGsI,EAAOpI,EAAGyD,EAAG3D,GAAIsG,GAIrD,QAASoC,GAAS1I,EAAG2D,EAAG2C,GACvBqC,EAAQ3I,GAAK2D,EACI,MAAZiF,GACJtC,EAASuC,OAAO,GAAIC,GAAUH,IA1BhC,IAAK,GAAWhF,GANZ4C,EAAuB,kBAANrG,GAAmBqI,EAAQG,EAE5CpC,EAAW,GAAIY,GACf0B,EAAUX,EAAS7H,SAAW,EAC9BuI,EAAU,GAAIlH,OAAMmH,GAEf5I,EAAI,EAAMA,EAAIiI,EAAS7H,SAAWkG,EAASkC,WAAYxI,EAC/D2D,EAAIsE,EAASjI,GAEH,SAAN2D,GAAkB3D,IAAKiI,GAK3BQ,EAAWR,EAAU1B,EAASvG,EAAG2D,EAAG2C,KAJjCsC,CAWJ,OAJe,KAAZA,GACFtC,EAASuC,OAAO,GAAIC,GAAUH,IAGxB,GAAItJ,GAAQoH,EAASH,GAgB7B,QAASmC,GAAWR,EAAU1B,EAASvG,EAAG2D,EAAG2C,GAC5C,GAAIyC,EAAcpF,GAAI,CACrB,GAAIqF,GAAIC,EAAwBtF,GAC5BhE,EAAIqJ,EAAEE,OAEA,KAANvJ,EACHqJ,EAAEG,KAAK5C,EAASvG,EAAG,OAAQsG,GACjB3G,EAAI,EACd4G,EAAQvG,EAAGgJ,EAAE1F,MAAOgD,IAEpBA,EAASuC,OAAOG,GAChBI,EAAenB,EAAUjI,EAAE,EAAGgJ,QAG/BzC,GAAQvG,EAAG2D,EAAG2C,GAKhB,QAAS8C,GAAenB,EAAUoB,EAAO9C,GACxC,IAAI,GAAIvG,GAAEqJ,EAAOrJ,EAAEiI,EAAS7H,SAAUJ,EACrCsJ,EAAcjC,EAAWY,EAASjI,IAAKuG,GAIzC,QAAS+C,GAAcN,EAAGzC,GACzB,GAAGyC,IAAMzC,EAAT,CAIA,GAAI5G,GAAIqJ,EAAEE,OACD,KAANvJ,EACFqJ,EAAEO,MAAMP,EAAG,OAAQA,EAAEQ,WACR,EAAJ7J,GACTqJ,EAAEQ,aAkBJ,QAASC,GAAKxB,GACb,MAAuB,gBAAbA,IAAsC,OAAbA,EAC3BlB,EAAO,GAAI2C,WAAU,kCAKF,IAApBzB,EAAS7H,OAAemH,IACP,IAApBU,EAAS7H,OAAewG,EAAQqB,EAAS,IACzC0B,EAAQ1B,GAGb,QAAS0B,GAAQ1B,GAChB,GACIjI,GAAG2D,EAAGqF,EADN1C,EAAW,GAAIY,EAEnB,KAAIlH,EAAE,EAAGA,EAAEiI,EAAS7H,SAAUJ,EAE7B,GADA2D,EAAIsE,EAASjI,GACH,SAAN2D,GAAkB3D,IAAKiI,GAA3B,CAKA,GADAe,EAAI3B,EAAW1D,GACE,IAAdqF,EAAEE,QAAe,CACnB5C,EAASuC,OAAOG,GAChBI,EAAenB,EAAUjI,EAAE,EAAGgJ,EAC9B,OAEAA,EAAEO,MAAMjD,EAAUA,EAASM,QAASN,EAASS,QAG/C,MAAO,IAAI1H,GAAQoH,EAASH,GAW7B,QAASe,GAAW1D,GACnB,MAAGwD,GAAUxD,GACLA,EAAE6C,SAASsB,OAEZiB,EAAcpF,GAAKiG,EAAoBjG,GAAK,GAAImF,GAAUnF,GASlE,QAASsF,GAAwBtF,GAChC,MAAOwD,GAAUxD,GAAKA,EAAE6C,SAASsB,OAAS8B,EAAoBjG,GAQ/D,QAASiG,GAAoBjG,GAC5B,IACC,GAAIkG,GAAgBlG,EAAEmG,IACtB,OAAgC,kBAAlBD,GACX,GAAIE,GAASF,EAAelG,GAC5B,GAAImF,GAAUnF,GAChB,MAAM5E,GACP,MAAO,IAAIuI,GAASvI,IAQtB,QAAS0H,MAmDT,QAASuD,MAcT,QAAS9C,GAAQW,EAAUoC,GAC1B5K,EAAQ6K,cAAc7I,KAAM4I,GAE5B5I,KAAK8I,UAAY,OACjB9I,KAAKwG,SAAWA,EAChBxG,KAAKkF,QAAU,OACflF,KAAKmH,UAAW,EAqGjB,QAASpB,GAAMb,GACdlF,KAAKkF,QAAUA,EAuBhB,QAASwD,GAASD,EAAMM,GACvBlD,EAAQ/G,KAAKkB,MACbuC,EAAM5B,QAAQ,GAAIqI,GAAeP,EAAMM,EAAU/I,OAUlD,QAASyH,GAAUnF,GAClBtE,EAAQ6K,cAAc7I,MACtBA,KAAKiC,MAAQK,EAsBd,QAAS2D,GAAS3D,GACjBtE,EAAQ6K,cAAc7I,MAEtBA,KAAKgC,KAAOiH,EACZjJ,KAAKiC,MAAQK,EACbtC,KAAK4B,SAAU,EACf5B,KAAK6B,UAAW,EAEhB7B,KAAKkJ,UAkCN,QAASC,GAAWlG,EAAWyD,GAC9B1G,KAAKiD,UAAYA,EACjBjD,KAAK0G,QAAUA,EAUhB,QAAS0C,GAAanG,GACrBjD,KAAKiD,UAAYA,EA0BlB,QAASoG,KACR,MAAO,IAAIpD,GAAS,GAAIoC,WAAU,kBASnC,QAASiB,GAAiBC,EAAcrE,GACvClF,KAAKuJ,aAAeA,EACpBvJ,KAAKkF,QAAUA,EAWhB,QAASsE,GAAavH,EAAOiD,GAC5BlF,KAAKkF,QAAUA,EACflF,KAAKiC,MAAQA,EAsBd,QAAS+G,GAAeP,EAAMM,EAAU9D,GACvCjF,KAAKyJ,MAAQhB,EACbzI,KAAK+I,SAAWA,EAChB/I,KAAKiF,SAAWA,EAYjB,QAASyE,GAAcjB,EAAMM,EAAUxD,EAASG,EAAQE,GACvD,IACC6C,EAAK3J,KAAKiK,EAAUxD,EAASG,EAAQE,GACpC,MAAOlI,GACRgI,EAAOhI,IAQT,QAASiM,GAAK9K,EAAG+K,EAAGC,EAAGC,GACtB9J,KAAKnB,EAAIA,EAAGmB,KAAK4J,EAAIA,EAAG5J,KAAK6J,EAAIA,EAAG7J,KAAK8J,GAAKA,EAC9C9J,KAAKiF,SAAW8E,EAChB/J,KAAKwG,SAAWxG,KAqBjB,QAAS8F,GAAUxD,GAClB,MAAOA,aAAatE,GASrB,QAAS0J,GAAcpF,GACtB,OAAqB,gBAANA,IAA+B,kBAANA,KAA2B,OAANA,EAG9D,QAAS0H,GAAiBnL,EAAG8I,EAAGnB,EAAUyD,GACzC,MAAgB,kBAANpL,GACFoL,EAAKzC,OAAOG,IAGpB3J,EAAQkM,aAAavC,GACrBwC,EAAetL,EAAG8I,EAAE1F,MAAOuE,EAAUyD,OACrCjM,GAAQoM,eAGT,QAASC,GAAiBxL,EAAGyD,EAAGqF,EAAGnB,EAAUyD,GAC5C,MAAgB,kBAANpL,GACFoL,EAAKzC,OAAOG,IAGpB3J,EAAQkM,aAAavC,GACrB2C,EAAgBzL,EAAGyD,EAAGqF,EAAE1F,MAAOuE,EAAUyD,OACzCjM,GAAQoM,eAMT,QAASG,GAAU1L,EAAGyD,EAAGqF,EAAGnB,EAAUyD,GACrC,MAAgB,kBAANpL,GACFoL,EAAKrE,OAAOtD,IAGpBtE,EAAQkM,aAAavC,GACrB6C,EAAe3L,EAAGyD,EAAGkE,EAAUyD,OAC/BjM,GAAQoM,eAGT,QAASpD,GAAUnI,EAAGJ,EAAGgM,GACxB,IACC,MAAO5L,GAAEJ,EAAGgM,GACX,MAAM/M,GACP,MAAOgI,GAAOhI,IAQhB,QAASyM,GAAetL,EAAGyD,EAAGoI,EAAST,GACtC,IACCA,EAAKzC,OAAOxB,EAAWnH,EAAEC,KAAK4L,EAASpI,KACtC,MAAM5E,GACPuM,EAAKzC,OAAO,GAAIvB,GAASvI,KAO3B,QAAS4M,GAAgBzL,EAAGyD,EAAGqI,EAAGD,EAAST,GAC1C,IACCpL,EAAEC,KAAK4L,EAASpI,EAAGqI,EAAGV,GACrB,MAAMvM,GACPuM,EAAKzC,OAAO,GAAIvB,GAASvI,KAQ3B,QAAS8M,GAAe3L,EAAGyD,EAAGoI,EAAST,GACtC,IACCA,EAAKrE,OAAO/G,EAAEC,KAAK4L,EAASpI,IAC3B,MAAM5E,GACPuM,EAAKrE,OAAOlI,IAId,QAASkN,GAAQC,EAAQC,GACxBA,EAAMpK,UAAYqK,EAAaF,EAAOnK,WACtCoK,EAAMpK,UAAUsK,YAAcF,EAG/B,QAAShE,GAAIxE,EAAGqI,GACf,MAAOA,GAGR,QAASlJ,MAp2BT,GAAIc,GAAQyC,EAAYtF,UAEpBqL,EAAeE,OAAOC,QACzB,SAASC,GACR,QAASL,MAET,MADAA,GAAMpK,UAAYyK,EACX,GAAIL,GA0Db9M,GAAQuH,QAAUA,EAClBvH,EAAQ0H,OAASA,EACjB1H,EAAQkI,MAAQA,EAEhBlI,EAAQoN,OAAShF,EACjBpI,EAAQmH,SAAWa,EAmDnBhI,EAAQ0C,UAAU+H,KAAO,SAAS4C,EAAaC,EAAYC,GAC1D,GAAIjF,GAAStG,KAAKmF,SACd0C,EAAQvB,EAAOG,OAAOoB,OAE1B,IAA4B,kBAAhBwD,IAA8BxD,EAAQ,GAC1B,kBAAfyD,IAAqC,EAARzD,EAErC,MAAO,IAAI7H,MAAKgL,YAAY5F,EAASkB,EAGtC,IAAIkF,GAAIxL,KAAKyL,SACTlF,EAAQiF,EAAErG,QAId,OAFAmB,GAAOoF,MAAMnF,EAAOD,EAAOE,SAAU6E,EAAaC,EAAYC,GAEvDC,GASRxN,EAAQ0C,UAAU,SAAW,SAAS4K,GACrC,MAAOtL,MAAKyI,KAAK,OAAQ6C,IAQ1BtN,EAAQ0C,UAAU+K,OAAS,WAC1B,MAAOpF,GAAUrG,KAAKmF,SAAUnF,KAAKgL,cAUtChN,EAAQ2I,IAAMA,EACd3I,EAAQoK,KAAOA,EACfpK,EAAQ2N,UAAY5E,EAgFpB/I,EAAQ4N,gBAAkB7D,EAkH1B3C,EAAQ1E,UAAUmL,KACfzG,EAAQ1E,UAAU8G,OAClBpC,EAAQ1E,UAAUkF,OAClBR,EAAQ1E,UAAUoL,KAClB1G,EAAQ1E,UAAUyH,UAClB/C,EAAQ1E,UAAUwI,QAClBzH,EAEH2D,EAAQ1E,UAAUqL,OAAS,EAE3B3G,EAAQ1E,UAAUmH,MAAQ,WACzB,MAAO7H,MAAK+L,QAQb3G,EAAQ1E,UAAU+F,KAAO,WAExB,IADA,GAAIkB,GAAI3H,KACY,SAAd2H,EAAEzC,SACPyC,EAAIA,EAAEzC,OAEP,OAAOyC,IAGRvC,EAAQ1E,UAAUgL,MAAQ,SAAS5B,EAAItD,EAAUwF,EAAWC,EAAUC,GACrElM,KAAK6L,MACJ5G,SAAU6E,EACVtD,SAAUA,EACVwF,UAAWA,EACXC,SAAUA,EACVC,SAAUA,KAIZ9G,EAAQ1E,UAAUwH,MAAQ,SAAS1B,EAAUwF,EAAWC,EAAUC,GACjElM,KAAK0L,MAAM3B,EAAgBvD,EAAUwF,EAAWC,EAAUC,IAG3D9G,EAAQ1E,UAAUoH,KAAO,SAASjJ,EAAG+K,EAAGC,EAAGC,GAC1C9J,KAAK6L,KAAK,GAAIlC,GAAK9K,EAAG+K,EAAGC,EAAGC,KAS7Bc,EAAQxF,EAASuD,GAEjBA,EAAejI,UAAU8G,OAAS,SAASG,GAC1CA,EAAEmE,OAGH,IAAI/B,GAAiB,GAAIpB,EAezBiC,GAAQxF,EAASS,GAEjBA,EAAQnF,UAAUqL,OAAS,EAE3BlG,EAAQnF,UAAU6E,QAAU,SAASjD,GACpCtC,KAAKwH,OAAOxB,EAAW1D,KAGxBuD,EAAQnF,UAAUgF,OAAS,SAASpD,GAChCtC,KAAKmH,UAIRnH,KAAKwH,OAAO,GAAIvB,GAAS3D,KAG1BuD,EAAQnF,UAAU+F,KAAO,WACxB,IAAKzG,KAAKmH,SACT,MAAOnH,KAKR,KAFA,GAAI2H,GAAI3H,KAEa,SAAd2H,EAAEzC,SAER,GADAyC,EAAIA,EAAEzC,QACFyC,IAAM3H,KACT,MAAOA,MAAKkF,QAAUmE,GAIxB,OAAO1B,IAGR9B,EAAQnF,UAAUG,IAAM,WACvB,GAAIsL,GAAInM,KAAK8I,UACT5D,EAAUlF,KAAKyG,MACnBzG,MAAK8I,UAAY,MAEjB,KAAK,GAAInK,GAAI,EAAGA,EAAIwN,EAAEpN,SAAUJ,EAC/BuG,EAAQ2G,KAAKM,EAAExN,KAIjBkH,EAAQnF,UAAU8G,OAAS,SAAStC,GAChClF,KAAKmH,WAIRnH,KAAKmH,UAAW,EAChBnH,KAAKkF,QAAUA,EACO,SAAnBlF,KAAK8I,WACPvG,EAAM5B,QAAQX,MAGK,SAAjBA,KAAK0G,SACPxB,EAAQgE,QAAQlJ,KAAK0G,WAIvBb,EAAQnF,UAAUmL,KAAO,SAAStC,GAC9BvJ,KAAKmH,SACP5E,EAAM5B,QAAQ,GAAI2I,GAAiBC,EAAcvJ,KAAKkF,UAEhC,SAAnBlF,KAAK8I,UACP9I,KAAK8I,WAAaS,GAElBvJ,KAAK8I,UAAUhH,KAAKyH,IAQvB1D,EAAQnF,UAAUkF,OAAS,SAAStD,GAC/BtC,KAAKmH,UACR5E,EAAM5B,QAAQ,GAAI6I,GAAalH,EAAGtC,QAIpC6F,EAAQnF,UAAUoL,KAAO,SAASpF,GACjC,GAAImD,GAAuB,mBAAZnD,GAA0B1G,KAAK0G,QAAUA,CACxD1G,MAAKmH,UAAYnH,KAAKkF,QAAQuB,OAAOqF,KAAKjC,IAG3ChE,EAAQnF,UAAUwI,QAAU,SAASxC,GACpC1G,KAAKmH,UAAYnH,KAAKkF,QAAQuB,OAAOyC,QAAQxC,IAG9Cb,EAAQnF,UAAUyH,UAAY,WAC7BnI,KAAKmH,UAAYnH,KAAKkF,QAAQuB,OAAO0B,aAYtCyC,EAAQxF,EAASW,GAEjBA,EAAMrF,UAAUmL,KAAO,SAAStC,GAC/BhH,EAAM5B,QAAQ,GAAI2I,GAAiBC,EAAcvJ,QAGlD+F,EAAMrF,UAAUwI,QAAU,SAASxC,GAClC1G,KAAKyG,OAAOyC,QAAQxC,IAGrBX,EAAMrF,UAAUyH,UAAY,WAC3BnI,KAAKyG,OAAO0B,aAcbyC,EAAQ/E,EAAS6C,GAYjBkC,EAAQxF,EAASqC,GAEjBA,EAAU/G,UAAUqL,OAAS,EAE7BtE,EAAU/G,UAAUoH,KAAO,SAASjJ,EAAG+K,EAAGC,EAAGC,GAC5CO,EAAiBxL,EAAG+K,EAAG5J,KAAM6J,EAAGC,IAGjCrC,EAAU/G,UAAUmL,KAAO,SAASO,GACnCpC,EAAiBoC,EAAKJ,UAAWhM,KAAMoM,EAAK5F,SAAU4F,EAAKnH,UAG5D,IAAIgE,GAAU,CAkBd2B,GAAQxF,EAASa,GAEjBA,EAASvF,UAAUqL,OAAS,GAE5B9F,EAASvF,UAAUoH,KAAO,SAASjJ,EAAG+K,EAAGC,EAAGC,GAC3CA,EAAGtC,OAAOxH,OAGXiG,EAASvF,UAAUmL,KAAO,SAASO,GACN,kBAAlBA,GAAKH,UACdjM,KAAKmI,YAEN6B,EAAiBoC,EAAKH,SAAUjM,KAAMoM,EAAK5F,SAAU4F,EAAKnH,WAG3DgB,EAASvF,UAAUwI,QAAU,SAASxC,GACrCnE,EAAMzB,WAAW,GAAIqI,GAAWnJ,KAAM0G,KAGvCT,EAASvF,UAAUyH,UAAY,WAC3BnI,KAAK4B,UAGR5B,KAAK4B,SAAU,EACfW,EAAMzB,WAAW,GAAIsI,GAAapJ,SAGnCiG,EAASvF,UAAUoL,KAAO,SAASpF,GAClC1I,EAAQmF,iBAAiBnD,KAAkB,SAAZ0G,EAAqB1G,KAAK0G,QAAUA,IAQpEyC,EAAWzI,UAAUG,IAAM,WACtBb,KAAKiD,UAAUrB,UAClB5B,KAAKiD,UAAUpB,UAAW,EAC1B7D,EAAQgF,gCAAgChD,KAAKiD,UAAWjD,KAAK0G,WAQ/D0C,EAAa1I,UAAUG,IAAM,WACzBb,KAAKiD,UAAUpB,UACjB7D,EAAQkF,uCAAuClD,KAAKiD,YAQtDjF,EAAQ6K,cACL7K,EAAQkM,aACRlM,EAAQoM,YACRpM,EAAQgF,gCACRhF,EAAQkF,uCACRlF,EAAQmF,iBACR1B,CAIH,IAAI4K,GAAwB,GAAIjH,GAC5Be,EAAwB,GAAInI,GAAQoH,EAASiH,EAyMjD,OAxLA/C,GAAiB5I,UAAUG,IAAM,WAChCb,KAAKkF,QAAQuB,OAAOoF,KAAK7L,KAAKuJ,eAY/BC,EAAa9I,UAAUG,IAAM,WAC5B,GAAIsL,GAAInM,KAAKkF,QAAQ4D,SACrB,IAAS,SAANqD,EAIH,IAAK,GAAItC,GAAGlL,EAAI,EAAGA,EAAIwN,EAAEpN,SAAUJ,EAClCkL,EAAIsC,EAAExN,GACN4L,EAAUV,EAAEqC,SAAUlM,KAAKiC,MAAOjC,KAAKkF,QAAS2E,EAAErD,SAAUqD,EAAE5E,WAiBhE+D,EAAetI,UAAUG,IAAM,WAI9B,QAASyL,GAAShK,GAAKqF,EAAEpC,QAAQjD,GACjC,QAASiK,GAAQjK,GAAMqF,EAAEjC,OAAOpD,GAChC,QAASkK,GAAQlK,GAAMqF,EAAE/B,OAAOtD,GALhC,GAAIqF,GAAI3H,KAAKiF,QACbyE,GAAc1J,KAAKyJ,MAAOzJ,KAAK+I,SAAUuD,EAAUC,EAASC,IAyB7D7C,EAAKjJ,UAAUsL,UAAY,SAAS1J,GACnCtC,KAAKnB,EAAEC,KAAKkB,KAAK6J,EAAG7J,KAAK4J,EAAGtH,EAAGtC,KAAK8J,KAGrCH,EAAKjJ,UAAUuL,SAAW,SAAS3J,GAClCtC,KAAK8J,GAAGpE,OAAOpD,IAGhBqH,EAAKjJ,UAAUwL,SAAW,SAAS5J,GAClCtC,KAAK8J,GAAGlE,OAAOtD,IA8GTtE,MAGW,kBAAXH,IAAyBA,EAAOC,IAAMD,EAAS,SAAS8B,GAAW/B,EAAOD,QAAUgC,gBAElF,IACV,KAGD,SAAU8M,UA+9CV,QAASC,QAAOC,SAAUF,SAAUG,MAElC,GAAIC,eAAgBC,OAAOC,QAC3BD,QAAOC,SAAW,SAASC,EAAMC,EAAMC,GAClB,gBAARF,KACTE,EAAUD,EACVA,EAAOD,GAITJ,KAAKM,QAAUA,EACfN,KAAKO,SAAWF,EAElB,KACEG,KAAK,sCAAwCR,KAAKI,MAAQ,IAAIK,QAAQ,IAAK,KAAQ,MAAQV,SAAW,0BAExG,MAAMjP,GAGJ,MAFc,eAAVA,EAAEsP,MAAmC,aAAVtP,EAAEsP,QAC/BtP,EAAE4P,QAAU,eAAiBV,KAAKI,MAAQJ,KAAKW,SAAW,MAAS7P,EAAE4P,SACjE5P,EAGRoP,OAAOC,SAAWF,cAn/CpBW,yBAA2BvC,OAAOwC,gBAAkB,SAASC,GAC3D,MAAOA,GAAIC,UAGb,IAAIC,2BACH,WACC,IACQ3C,OAAO4C,kBAAmB,UAC9BD,yBAA2B3C,OAAO4C,gBAEpC,MAAOnQ,GACPkQ,yBAA2B,SAAUF,EAAKI,EAAMC,GAC9C,IACEL,EAAII,GAAQC,EAAI9L,OAAS8L,EAAIC,IAAIlP,KAAK4O,GAExC,MAAMhQ,UAKZuQ,iBAAmBhD,OAAOC,QAAU,SAAS3M,EAAG2P,GAC9C,QAASC,MAGT,GAFAA,EAAEzN,UAAYnC,EAEQ,gBAAZ,GACR,IAAKuP,OAAQI,GACPA,EAAME,eAAe,QACvBD,EAAEL,MAAQI,EAAMJ,MAItB,OAAO,IAAIK,IA4Gb,WA8BE,QAASE,GAAWrB,GAClB,OACEsB,OAAQ,UACRtB,KAAMA,EACNuB,YACAC,gBACAC,aASJ,QAASC,GAAWC,EAAQ3B,EAAM4B,GAChC,MAAO,IAAI5Q,GAAQ6Q,GACjBC,KAAMF,EAAQrB,QAAU,QAAU,SAClCoB,OAAQA,EACRI,WAAY/B,EAEZgC,eAAgBJ,GAAWA,EAAQH,aACnCQ,aAAcL,EAAQM,OACtBC,cAAeP,EAAQrB,WAK3B,QAAS6B,GAAYT,EAAQU,EAASC,EAAaC,GAEjD,MAAO,IAAIvR,GAAQ,SAASuH,GAC1BA,EAAQoJ,EAAOa,UAAUC,UAAUJ,EAASC,EAAaC,MAG1D9G,KAAK,SAASuE,GACb,GAAIJ,EACJ,IAAI+B,EAAOe,QAAQ1C,GAKjB,MAJAJ,GAAOyB,EAAWrB,GAClBJ,EAAK0B,OAAS,SAGP1B,CAGT,KAAK,GAAIjO,GAAI,EAAGgR,EAAIhB,EAAOiB,MAAM7Q,OAAY4Q,EAAJhR,EAAOA,IAE9C,GADAiO,EAAO+B,EAAOiB,MAAMjR,GAChBiO,EAAKI,MAAQA,EAGjB,MAAOJ,EAQT,OALAA,GAAOyB,EAAWrB,GAClB2B,EAAOiB,MAAM9N,KAAK8K,GAElBiD,EAAgBlB,EAAQ/B,GAEjBA,IAKX,QAASiD,GAAgBlB,EAAQ/B,GAC/BkD,EAAenB,EAAQ/B,EACrB5O,EAAQuH,UAEPkD,KAAK,WACJ,MAAOkG,GAAOa,UAAUO,QAAS/C,KAAMJ,EAAKI,KAAMyB,SAAU7B,EAAK6B,cAMvE,QAASqB,GAAenB,EAAQ/B,EAAMpB,GACpCwE,EAAmBrB,EAAQ/B,EACzBpB,EAEC/C,KAAK,SAAS8E,GAEb,MAAmB,WAAfX,EAAK0B,QAET1B,EAAKW,QAAUA,EAERoB,EAAOa,UAAUS,OAAQjD,KAAMJ,EAAKI,KAAMyB,SAAU7B,EAAK6B,SAAUlB,QAASA,KAJnF,UAYN,QAASyC,GAAmBrB,EAAQ/B,EAAMpB,GACxCA,EAEC/C,KAAK,SAASyG,GACb,MAAmB,WAAftC,EAAK0B,OAEFK,EAAOa,UAAUU,WAAYlD,KAAMJ,EAAKI,KAAMyB,SAAU7B,EAAK6B,SAAUlB,QAASX,EAAKW,QAAS2B,OAAQA,IAF7G,SAMDzG,KAAK,SAASyG,GACb,MAAmB,WAAftC,EAAK0B,QAET1B,EAAKsC,OAASA,EACPP,EAAOa,UAAUW,aAAcnD,KAAMJ,EAAKI,KAAMyB,SAAU7B,EAAK6B,SAAUlB,QAASX,EAAKW,QAAS2B,OAAQA,KAH/G,SAODzG,KAAK,SAAS2H,GACb,GAAmB,WAAfxD,EAAK0B,OAAT,CAGA,GAA0B+B,SAAtBD,EACFxD,EAAKW,QAAUX,EAAKW,SAAW,wBAAyB+C,EAAU,IAGlE1D,EAAK2D,eAAgB,EAErB5B,EAAOa,UAAUgB,MAAM5D,OAEpB,CAAA,GAAgC,gBAArBwD,GAMd,KAAM/H,WAAU,mCALhBuE,GAAKO,SAAWiD,EAAkBnD,SAClCL,EAAK6D,QAAUL,EAAkBK,QACjC7D,EAAK2D,eAAgB,EAMvB3D,EAAK4B,eAIL,KAAK,GAHDrB,GAAWP,EAAKO,SAEhBuD,KACK/R,EAAI,EAAGgR,EAAIxC,EAASpO,OAAY4Q,EAAJhR,EAAOA,KAAK,SAAU0Q,EAASsB,GAClED,EAAa5O,KACXsN,EAAYT,EAAQU,EAASzC,EAAKI,KAAMJ,EAAKW,SAG5C9E,KAAK,SAASmI,GAab,GALAhE,EAAK4B,aAAamC,IAChBE,IAAKxB,EACLpN,MAAO2O,EAAQ5D,MAGK,UAAlB4D,EAAQtC,OAEV,IAAK,GADDC,GAAW3B,EAAK2B,SAASuC,WACpBnS,EAAI,EAAGgR,EAAIpB,EAASxP,OAAY4Q,EAAJhR,EAAOA,IAC1CoS,EAAiBxC,EAAS5P,GAAIiS,QAOrCzD,EAASxO,GAAIA,EAEhB,OAAOX,GAAQ2I,IAAI+J,MAIpBjI,KAAK,WAMJmE,EAAK0B,OAAS,QAGd,KAAK,GADDC,GAAW3B,EAAK2B,SAASuC,WACpBnS,EAAI,EAAGgR,EAAIpB,EAASxP,OAAY4Q,EAAJhR,EAAOA,IAC1CqS,EAAoBzC,EAAS5P,GAAIiO,KAIpC,SAAS,SAASqE,GAEjBrE,EAAK0B,OAAS,SACd1B,EAAKsE,UAAYD,CAGjB,KAAK,GADD1C,GAAW3B,EAAK2B,SAASuC,WACpBnS,EAAI,EAAGgR,EAAIpB,EAASxP,OAAY4Q,EAAJhR,EAAOA,IAC1CwS,EAAc5C,EAAS5P,GAAIiO,EAAMqE,KAUvC,QAASpC,GAA6BuC,GACpC,MAAO,UAAS7L,GACd,GAAIoJ,GAASyC,EAAUzC,OACnB3B,EAAOoE,EAAUrC,WACjBD,EAAOsC,EAAUtC,IAErB,IAAIH,EAAOe,QAAQ1C,GACjB,KAAM,IAAI3E,WAAU,IAAM2E,EAAO,uCAKnC,KAAK,GAAIrO,GAAI,EAAGgR,EAAIhB,EAAOiB,MAAM7Q,OAAY4Q,EAAJhR,EAAOA,IAC9C,GAAIgQ,EAAOiB,MAAMjR,GAAGqO,MAAQA,EAC1B,KAAM,IAAI3E,WAAU,IAAM2E,EAAO,oBAErC,IAAIJ,GAAOyB,EAAWrB,EAEtBJ,GAAK6B,SAAW2C,EAAUpC,cAE1B,IAAIqC,GAAUC,EAAc3C,EAAQ/B,EAEpC+B,GAAOiB,MAAM9N,KAAK8K,GAElBrH,EAAQ8L,EAAQE,MAEJ,UAARzC,EACFe,EAAgBlB,EAAQ/B,GAET,SAARkC,EACPgB,EAAenB,EAAQ/B,EAAM5O,EAAQuH,QAAQ6L,EAAUjC,iBAIvDvC,EAAKW,QAAU6D,EAAUjC,cACzBa,EAAmBrB,EAAQ/B,EAAM5O,EAAQuH,QAAQ6L,EAAUnC,iBAWjE,QAASqC,GAAc3C,EAAQ6C,GAC7B,GAAIH,IACF1C,OAAQA,EACRiB,SACA4B,aAAcA,EACdC,aAAc,EAOhB,OALAJ,GAAQE,KAAO,GAAIvT,GAAQ,SAASuH,EAASG,GAC3C2L,EAAQ9L,QAAUA,EAClB8L,EAAQ3L,OAASA,IAEnBqL,EAAiBM,EAASG,GACnBH,EAGT,QAASN,GAAiBM,EAASzE,GAGjC,IAAK,GAAIjO,GAAI,EAAGgR,EAAI0B,EAAQzB,MAAM7Q,OAAY4Q,EAAJhR,EAAOA,IAC/C,GAAI0S,EAAQzB,MAAMjR,IAAMiO,EACtB,MAEJyE,GAAQzB,MAAM9N,KAAK8K,GACnBA,EAAK2B,SAASzM,KAAKuP,GAGA,UAAfzE,EAAK0B,QACP+C,EAAQI,cAKV,KAAK,GAFD9C,GAAS0C,EAAQ1C,OAEZhQ,EAAI,EAAGgR,EAAI/C,EAAK4B,aAAazP,OAAY4Q,EAAJhR,EAAOA,IAAK,CACxD,GAAIqO,GAAOJ,EAAK4B,aAAa7P,GAAGsD,KAEhC,KAAI0M,EAAOe,QAAQ1C,GAGnB,IAAK,GAAI0E,GAAI,EAAGC,EAAIhD,EAAOiB,MAAM7Q,OAAY4S,EAAJD,EAAOA,IAC9C,GAAI/C,EAAOiB,MAAM8B,GAAG1E,MAAQA,EAA5B,CAGA+D,EAAiBM,EAAS1C,EAAOiB,MAAM8B,GACvC,SASN,QAASE,GAAOP,GACd,GAAIxO,IAAQ,CACZ,KACEgP,EAAKR,EAAS,SAASzE,EAAMqE,GAC3BE,EAAcE,EAASzE,EAAMqE,GAC7BpO,GAAQ,IAGZ,MAAMnF,GACJyT,EAAcE,EAAS,KAAM3T,GAC7BmF,GAAQ,EAEV,MAAOA,GAIT,QAASmO,GAAoBK,EAASzE,GAQpC,GAFAyE,EAAQI,iBAEJJ,EAAQI,aAAe,GAA3B,CAIA,GAAID,GAAeH,EAAQG,YAK3B,IAAIH,EAAQ1C,OAAOa,UAAUiB,WAAY,EAAO,CAE9C,IAAK,GADDb,MAAWkB,OAAOO,EAAQzB,OACrBjR,EAAI,EAAGgR,EAAIC,EAAM7Q,OAAY4Q,EAAJhR,EAAOA,IAAK,CAC5C,GAAIiO,GAAOgD,EAAMjR,EACjBiO,GAAKhP,OAAUgP,EAAK2D,eAGlBvD,KAAMJ,EAAKI,KACXpP,OAAQkU,MACRC,WAAW,IAJXnU,OAAQkU,OAMVlF,EAAK0B,OAAS,SACd0D,EAAWX,EAAQ1C,OAAQ/B,GAE7B,MAAOyE,GAAQ9L,QAAQiM,GAIzB,GAAIS,GAASL,EAAOP,EAEhBY,IAKJZ,EAAQ9L,QAAQiM,IAIlB,QAASL,GAAcE,EAASzE,EAAMqE,GACpC,GAAItC,GAAS0C,EAAQ1C,MAEjB0C,GAAQzB,MAAM,GAAG5C,MAAQJ,EAAKI,OAChCiE,EAAMiB,EAAWjB,EAAK,kBAAoBrE,EAAKI,KAAO,WAAaqE,EAAQzB,MAAM,GAAG5C,KAAO,SAAWqE,EAAQzB,MAAM,GAAGrC,SAAW,aAAe,OAEnJ0D,EAAMiB,EAAWjB,EAAK,kBAAoBrE,EAAKI,KAAO,SAAWJ,EAAKW,SAAW,aAAe,KAGhG,KAAK,GADDqC,GAAQyB,EAAQzB,MAAMkB,WACjBnS,EAAI,EAAGgR,EAAIC,EAAM7Q,OAAY4Q,EAAJhR,EAAOA,IAAK,CAC5C,GAAIiO,GAAOgD,EAAMjR,EAGjBgQ,GAAOa,UAAU2C,OAASxD,EAAOa,UAAU2C,WACQ,IAA/ChQ,EAAQrD,KAAK6P,EAAOa,UAAU2C,OAAQvF,IACxC+B,EAAOa,UAAU2C,OAAOrQ,KAAK8K,EAE/B,IAAIwF,GAAYjQ,EAAQrD,KAAK8N,EAAK2B,SAAU8C,EAG5C,IADAzE,EAAK2B,SAASnM,OAAOgQ,EAAW,GACJ,GAAxBxF,EAAK2B,SAASxP,OAAa,CAC7B,GAAIsT,GAAmBlQ,EAAQrD,KAAKuS,EAAQ1C,OAAOiB,MAAOhD,EAClC,KAApByF,GACFhB,EAAQ1C,OAAOiB,MAAMxN,OAAOiQ,EAAkB,IAGpDhB,EAAQ3L,OAAOuL,GAIjB,QAASe,GAAWrD,EAAQ/B,GAE1B,GAAI+B,EAAOa,UAAU8C,MAAO,CACrB3D,EAAOa,UAAUI,QACpBjB,EAAOa,UAAUI,SACnB,IAAI2C,KACJ3F,GAAK4B,aAAagE,QAAQ,SAASC,GACjCF,EAAOE,EAAI5B,KAAO4B,EAAIxQ,QAExB0M,EAAOa,UAAUI,MAAMhD,EAAKI,OAC1BA,KAAMJ,EAAKI,KACXC,KAAML,EAAK4B,aAAakE,IAAI,SAASD,GAAM,MAAOA,GAAI5B,MACtD0B,OAAQA,EACRhF,QAASX,EAAKW,QACdkB,SAAU7B,EAAK6B,SACfS,OAAQtC,EAAKsC,OACbyD,KAAM/F,EAAK2D,cAAgB,cAAgB,WAI3C3D,EAAKI,OAEP2B,EAAOe,QAAQ9C,EAAKI,MAAQJ,EAAKhP,OAEnC,IAAIgV,GAAYzQ,EAAQrD,KAAK6P,EAAOiB,MAAOhD,EAC1B,KAAbgG,GACFjE,EAAOiB,MAAMxN,OAAOwQ,EAAW,EACjC,KAAK,GAAIjU,GAAI,EAAGgR,EAAI/C,EAAK2B,SAASxP,OAAY4Q,EAAJhR,EAAOA,IAC/CiU,EAAYzQ,EAAQrD,KAAK8N,EAAK2B,SAAS5P,GAAGiR,MAAOhD,GAChC,IAAbgG,GACFhG,EAAK2B,SAAS5P,GAAGiR,MAAMxN,OAAOwQ,EAAW,EAE7ChG,GAAK2B,SAASnM,OAAO,EAAGwK,EAAK2B,SAASxP,QAUxC,QAAS8T,GAAmBjG,EAAMgD,EAAOkD,EAAQnE,GAK/C,GAJAmE,EAAOlG,EAAKmG,YAAcD,EAAOlG,EAAKmG,gBAIa,IAA/C5Q,EAAQrD,KAAKgU,EAAOlG,EAAKmG,YAAanG,GAA1C,CAIAkG,EAAOlG,EAAKmG,YAAYjR,KAAK8K,EAE7B,KAAK,GAAIjO,GAAI,EAAGgR,EAAIC,EAAM7Q,OAAY4Q,EAAJhR,EAAOA,IAIvC,IAAK,GAHDqU,GAAUpD,EAAMjR,GAGX+S,EAAI,EAAGA,EAAI9E,EAAK4B,aAAazP,OAAQ2S,IAC5C,GAAIsB,EAAQhG,MAAQJ,EAAK4B,aAAakD,GAAGzP,MAAO,CAM9C,GAAIgR,GAAoBrG,EAAKmG,YAAcC,EAAQzC,eAAiB3D,EAAK2D,cAGzE,IAA2BF,SAAvB2C,EAAQD,YAA4BC,EAAQD,WAAaE,EAAmB,CAG9E,GAAID,EAAQD,aACVD,EAAOE,EAAQD,YAAY3Q,OAAOD,EAAQrD,KAAKgU,EAAOE,EAAQD,YAAaC,GAAU,GAG5C,GAArCF,EAAOE,EAAQD,YAAYhU,QAC7B,KAAM,IAAIsJ,WAAU,kCAGxB2K,GAAQD,WAAaE,EAGvBJ,EAAmBG,EAASpD,EAAOkD,EAAQnE,KAMnD,QAASuE,GAAiB7B,EAASzE,EAAMuG,GACvC,IACE,GAAIvV,GAASgP,EAAK6D,UAEpB,MAAM/S,GAEJ,WADAyV,GAAUvG,EAAMlP,GAGlB,MAAKE,IAAYA,YAAkBwV,GAG1BxV,MAFPuV,GAAUvG,EAAM,GAAIvE,WAAU,4CAMlC,QAASwJ,GAAKR,EAAS8B,GAErB,GAAIxE,GAAS0C,EAAQ1C,MAErB,IAAK0C,EAAQzB,MAAM7Q,OAAnB,CAWA,GAAI+T,MACAtB,EAAeH,EAAQzB,MAAM,EACjC4B,GAAauB,WAAa,EAC1BF,EAAmBrB,EAAcH,EAAQzB,MAAOkD,EAAQnE,EAMxD,KAAK,GAHD0E,GAAsB7B,EAAajB,eAAiBuC,EAAO/T,OAAS,EAG/DJ,EAAImU,EAAO/T,OAAS,EAAGJ,GAAK,EAAGA,IAAK,CAE3C,IAAK,GADD2U,GAAQR,EAAOnU,GACV+S,EAAI,EAAGA,EAAI4B,EAAMvU,OAAQ2S,IAAK,CACrC,GAAI9E,GAAO0G,EAAM5B,EAGjB,IAAI2B,EACFE,EAAsB3G,EAAMyE,EAAQzB,MAAOjB,OAGxC,CACH,GAAI/Q,GAASsV,EAAiB7B,EAASzE,EAAMuG,EAC7C,KAAKvV,EACH,MACFgP,GAAKhP,QACHoP,KAAMJ,EAAKI,KACXpP,OAAQA,GAEVgP,EAAK0B,OAAS,SAEhB0D,EAAWrD,EAAQ/B,GAIrByG,GAAuBA,IAO3B,QAASG,GAAwBxG,EAAM2B,GACrC,GAAI8E,GAAgB9E,EAAO8E,aAC3B,OAAOA,GAAczG,KAAUyG,EAAczG,IAC3CA,KAAMA,EACNwB,gBACA5Q,OAAQ,GAAIwV,GACZM,eAKJ,QAASH,GAAsB3G,EAAMgD,EAAOjB,GAC1C,IAAI/B,EAAKhP,OAAT,CAGA,GAAIA,GAASgP,EAAKhP,OAAS4V,EAAwB5G,EAAKI,KAAM2B,GAC1DgF,EAAY/G,EAAKhP,OAAOA,OAExBgW,EAAgBhH,EAAKM,QAAQpO,KAAK2N,SAAU,SAASO,EAAM/K,GAI7DrE,EAAOiW,QAAS,EAChBF,EAAU3G,GAAQ/K,CAElB,KAAK,GAAItD,GAAI,EAAGgR,EAAI/R,EAAO8V,UAAU3U,OAAY4Q,EAAJhR,EAAOA,IAAK,CACvD,GAAImV,GAAiBlW,EAAO8V,UAAU/U,EACtC,KAAKmV,EAAeD,OAAQ,CAC1B,GAAIE,GAAgB5R,EAAQrD,KAAKgV,EAAetF,aAAc5Q,EAC9DkW,GAAeE,QAAQD,GAAeJ,IAK1C,MADA/V,GAAOiW,QAAS,EACT5R,GAITrE,GAAOoW,QAAUJ,EAAcI,QAC/BpW,EAAO6S,QAAUmD,EAAcnD,OAI/B,KAAK,GAAI9R,GAAI,EAAGgR,EAAI/C,EAAK4B,aAAazP,OAAY4Q,EAAJhR,EAAOA,IAAK,CACxD,GAAIsV,GAAUrH,EAAK4B,aAAa7P,GAAGsD,MAC/BiS,EAAYvF,EAAOe,QAAQuE,EAI/B,KAAKC,EAEH,IAAK,GAAIxC,GAAI,EAAGA,EAAI9B,EAAM7Q,OAAQ2S,IAC5B9B,EAAM8B,GAAG1E,MAAQiH,IAIhBrE,EAAM8B,GAAG9T,OAMZsW,EAAYV,EAAwBS,EAAStF,IAL7C4E,EAAsB3D,EAAM8B,GAAI9B,EAAOjB,GACvCuF,EAAYtE,EAAM8B,GAAG9T,QAUvBsW,GAAUR,WACZ9V,EAAO4Q,aAAa1M,KAAKoS,GACzBA,EAAUR,UAAU5R,KAAKlE,IAIzBA,EAAO4Q,aAAa1M,KAAK,MAIvBlE,EAAOoW,QAAQrV,IACjBf,EAAOoW,QAAQrV,GAAGuV,EAAUtW,QAGhCgP,EAAK0B,OAAS,UAYhB,QAAS6F,GAAqBxF,EAAQ/B,GAIpC,MADAwH,GAAkBxH,EAAKhP,UAAY+Q,GAC5B/B,EAAKhP,OAAOA,OAYrB,QAASyW,GAAUzW,GACjB,IACEA,EAAO6S,QAAQ3R,KAAK2N,UAEtB,MAAM/O,GACJ,MAAOA,IAMX,QAAS0W,GAAkBxW,EAAQ0W,EAAM3F,GACvC,GAAI4F,GAAMC,EAAgB5W,EAAQ0W,EAAM3F,EACxC,IAAI4F,EACF,KAAMA,GAGV,QAASC,GAAgB5W,EAAQ0W,EAAM3F,GACrC,IAAI/Q,EAAOmU,WAAcnU,EAAO4Q,aAAhC,CAGA8F,EAAKxS,KAAKlE,EAKV,KAAK,GAFD2W,GADAtH,EAAOrP,EAAO4Q,aAGT7P,EAAI,EAAGgR,EAAI1C,EAAKlO,OAAY4Q,EAAJhR,EAAOA,IAAK,CAC3C,GAAI8T,GAAMxF,EAAKtO,EAGf,IAAK8T,GAE0B,IAA3BtQ,EAAQrD,KAAKwV,EAAM7B,KACrB8B,EAAMC,EAAgB/B,EAAK6B,EAAM3F,IAI/B,MADA4F,GAAMrC,EAAWqC,EAAK,oBAAsB9B,EAAIzF,KAAO,MAM7D,GAAIpP,EAAOuU,OACT,MAAO,IAAIvT,OAAM,2BAEnB,KAAIhB,EAAOmU,UAgBX,MAbAnU,GAAOmU,WAAY,EACnBwC,EAAMF,EAAUzW,GACZ2W,EACF3W,EAAOuU,QAAS,EAETlH,OAAOwJ,mBAIdxJ,OAAOwJ,kBAAkB7W,EAAOA,QAGlCA,EAAO6S,QAAUJ,OACVkE,GAGT,QAASrC,GAAWqC,EAAKG,GAKvB,MAJIH,aAAe3V,OACjB2V,EAAIjH,QAAUoH,EAAMH,EAAIjH,QAExBiH,EAAMG,EAAMH,EACPA,EAMT,QAASI,GAAO/F,GACd,GAAsB,gBAAXA,GACT,KAAM,IAAIvG,WAAU,4BAElBuG,GAAQa,YACVzP,KAAKyP,UAAYb,EAAQa,WACvBb,EAAQmB,SACV/P,KAAK+P,OAASnB,EAAQmB,QACpBnB,EAAQqB,QACVjQ,KAAKiQ,MAAQrB,EAAQqB,OACnBrB,EAAQsB,YACVlQ,KAAKkQ,UAAYtB,EAAQsB,WACvBtB,EAAQuB,cACVnQ,KAAKmQ,YAAcvB,EAAQuB,aAE7BnQ,KAAK4U,SACHpF,UAAWxP,KACX4P,SACAF,WACAmF,kBACApB,kBAIF5F,EAAe7N,KAAM,UACnBgO,IAAK,WACH,MAAOvB,aAOb,QAAS2G,MAGT,QAAS0B,GAAoBnG,EAAQ3B,EAAM+H,GACzC,GAAIF,GAAiBlG,EAAOiG,QAAQC,cACpC,OAAOA,GAAe7H,GAAQ+H,EAAQtM,KAAK,SAASuM,GAElD,MADAH,GAAe7H,GAAQqD,OAChB2E,GACN,SAAStX,GAEV,KADAmX,GAAe7H,GAAQqD,OACjB3S,IAnyBV,GAAIM,GAAUyO,SAASzO,SAAWU,QAAQ,wBAC1CkE,SAAQqS,OAASrS,QAAQqS,QAAU,YAGnC,IAAI9S,GAAU/B,MAAMM,UAAUyB,SAAW,SAAS+S,GAChD,IAAK,GAAIvW,GAAI,EAAGwW,EAAUnV,KAAKjB,OAAYoW,EAAJxW,EAAaA,IAClD,GAAIqB,KAAKrB,KAAOuW,EACd,MAAOvW,EAGX,OAAO,IAELkP,EAAiBD,yBAyGjB0C,EAAU,CAkrBdqE,GAAOjU,WAELsK,YAAa2J,EAEb9W,OAAQ,SAASmP,EAAMkC,EAAQN,GAE7B,GAAI5O,KAAK4U,QAAQC,eAAe7H,GAC9B,KAAM,IAAI3E,WAAU,6BACtB,OAAOyM,GAAoB9U,KAAMgN,EAAM,GAAIhP,GAAQ6Q,GACjDC,KAAM,YACNH,OAAQ3O,KAAK4U,QACb7F,WAAY/B,EACZgC,eAAgBJ,GAAWA,EAAQH,aACnCQ,aAAcC,EACdC,cAAeP,GAAWA,EAAQrB,aAItC6H,SAAU,SAASpI,GACjB,MAAOhN,MAAK4U,QAAQlF,QAAQ1C,SAAehN,MAAK4U,QAAQlF,QAAQ1C,IAAQ,GAI1EgB,IAAK,SAAS6C,GACZ,MAAK7Q,MAAK4U,QAAQlF,QAAQmB,IAE1BuD,EAAkBpU,KAAK4U,QAAQlF,QAAQmB,MAAU7Q,MAC1CA,KAAK4U,QAAQlF,QAAQmB,GAAKjT,QAHjC,QAMFyX,IAAK,SAASrI,GACZ,QAAShN,KAAK4U,QAAQlF,QAAQ1C,IAGhCsI,SAAU,SAAStI,EAAM4B,GAEvB,GAAIY,GAAYxP,IAGhB,OAAOhC,GAAQuH,QAAQiK,EAAUC,UAAUzC,EAAM4B,GAAWA,EAAQ5B,KAAM4B,GAAWA,EAAQrB,UAC5F9E,KAAK,SAASuE,GACb,GAAI2B,GAASa,EAAUoF,OAEvB,OAAIjG,GAAOe,QAAQ1C,IACjBoH,EAAkBzF,EAAOe,QAAQ1C,MAAW2B,EAAOiG,SAC5CjG,EAAOe,QAAQ1C,GAAMpP,QAGvB+Q,EAAOkG,eAAe7H,IAAS8H,EAAoBtF,EAAWxC,EACnE0B,EAAWC,EAAQ3B,EAAM4B,OACxBnG,KAAK,SAASmE,GAEb,aADO+B,GAAOkG,eAAe7H,GACtBmH,EAAqBxF,EAAQ/B,SAM5CA,KAAM,SAASI,GACb,MAAIhN,MAAK4U,QAAQlF,QAAQ1C,IACvBoH,EAAkBpU,KAAK4U,QAAQlF,QAAQ1C,MAAWhN,KAAK4U,SAChD5W,EAAQuH,QAAQvF,KAAK4U,QAAQlF,QAAQ1C,GAAMpP,SAE7CoC,KAAK4U,QAAQC,eAAe7H,IAAS8H,EAAoB9U,KAAMgN,EAAM0B,EAAW1O,KAAK4U,QAAS5H,QAGvGpP,OAAQ,SAASsR,EAAQN,GACvB,GAAIhC,GAAOyB,GACXzB,GAAKW,QAAUqB,GAAWA,EAAQrB,OAClC,IAAI8D,GAAUC,EAActR,KAAK4U,QAAShI,GACtC2I,EAAgBvX,EAAQuH,QAAQ2J,GAChCP,EAAS3O,KAAK4U,QACdpJ,EAAI6F,EAAQE,KAAK9I,KAAK,WACxB,MAAO0L,GAAqBxF,EAAQ/B,IAGtC,OADAoD,GAAmBrB,EAAQ/B,EAAM2I,GAC1B/J,GAGTgK,UAAW,SAAU9H,GACnB,GAAkB,gBAAPA,GACT,KAAM,IAAIrF,WAAU,kBAItB,IAAI2M,GAAI,GAAI5B,EAEZ,KAAK,GAAIvC,KAAOnD,IACd,SAAWmD,GACThD,EAAemH,EAAGnE,GAChB4E,cAAc,EACdC,YAAY,EACZ1H,IAAK,WACH,MAAON,GAAImD,OAGdA,EAML,OAHI5F,QAAOwJ,mBACTxJ,OAAOwJ,kBAAkBO,GAEpBA,GAGTW,IAAK,SAAS3I,EAAMpP,GAClB,KAAMA,YAAkBwV,IACtB,KAAM,IAAI/K,WAAU,cAAgB2E,EAAO,6BAC7ChN,MAAK4U,QAAQlF,QAAQ1C,IACnBpP,OAAQA,IAQZ6R,UAAW,SAASzC,GAClB,MAAOA,IAGT+C,OAAQ,SAASnD,GACf,MAAOA,GAAKI,MAGdiD,MAAO,WACL,KAAM,IAAI5H,WAAU,0BAGtB6H,UAAW,SAAStD,GAClB,MAAOA,GAAKsC,QAEdsB,MAAO,WACL,KAAM,IAAInI,WAAU,oCAGtB8H,YAAa,aAIf,IAAI2B,GAAa6C,EAAOjU,UAAU8U,WAMlC,WAKE,QAASI,GAAU1G,EAAQ2G,EAAUC,GACnC,IACE,MAAOD,GAASE,QAAQ7G,EAAQ4G,GAElC,MAAMpY,GAEJ,KAAMA,GAAE,IARZ,GAAIsY,EAWJrB,GAAOjU,UAAU8P,MAAQ,SAAS5D,GAChC,IAAKoJ,EACH,GAAqB,mBAAVjY,SACoB,mBAArBkY,mBACRD,EAAUtX,QAAQ,eACf,CAAA,IAAI+N,SAASuJ,QAGhB,KAAM,IAAI3N,WAAU,4CAFpB2N,GAAUvJ,SAASuJ,QASvBpJ,EAAK2D,eAAgB,CAErB,IAAI3B,GAAU5O,KAAKkW,kBACnBtH,GAAQc,QAAU,cAClBd,EAAQuH,QAAS,EACjBvH,EAAQwH,YAAa,EACrBxH,EAAQkH,SAAWlJ,EAAKW,OAExB,IAAIsI,GAAW,GAAIG,GAAQK,SAASzH,GAEhCM,EAAS0G,EAAUhJ,EAAKsC,OAAQ2G,EAAUjH,EAAQkH,SAEtD,KAAK5G,EACH,KAAM,IAAItQ,OAAM,2BAA6BgO,EAAKW,QAEpD,IAAI+I,GAAYT,EAASU,cAErB9J,UAAS+J,MAAQF,IACnBpH,GAAU,uDAAyDsH,KAAKC,SAASC,mBAAmBJ,KAAe,MAErHpH,EAAS,0BAA4BtC,EAAKW,QAAU,KAAO2B,EAE3DxC,OAAOwC,EAAQzC,SAAUG,OAIN,gBAAZjP,WACTC,OAAOD,QAAUgX,GAEnBlI,SAASkK,QAAUlK,SAASkK,YAC5BlK,SAASkK,QAAQhC,OAASlI,SAASkK,QAAQhC,QAAUA,EACrDlI,SAASkK,QAAQ1Y,OAASwO,SAASkK,QAAQ1Y,QAAUwO,SACrDA,SAASmK,eAAiBjC,KAkB5B,WAQE,QAASkC,GAASC,GAChB,GAAI9B,GAAI7T,OAAO2V,GAAKzJ,QAAQ,aAAc,IAAI0J,MAAM,6GAEpD,OAAQ/B,IACNgC,KAAWhC,EAAE,IAAM,GACnBiC,SAAWjC,EAAE,IAAM,GACnBkC,UAAWlC,EAAE,IAAM,GACnBmC,KAAWnC,EAAE,IAAM,GACnBoC,SAAWpC,EAAE,IAAM,GACnBqC,KAAWrC,EAAE,IAAM,GACnBsC,SAAWtC,EAAE,IAAM,GACnBuC,OAAWvC,EAAE,IAAM,GACnBwC,KAAWxC,EAAE,IAAM,IACjB,KAGN,QAASyC,GAAkBC,GACzB,GAAIC,KAUJ,OATAD,GAAMrK,QAAQ,kBAAmB,IAC9BA,QAAQ,iBAAkB,KAC1BA,QAAQ,UAAW,QACnBA,QAAQ,aAAc,SAAU7B,GACrB,QAANA,EACFmM,EAAOC,MAEPD,EAAO7V,KAAK0J,KAEXmM,EAAOlR,KAAK,IAAI4G,QAAQ,MAA2B,MAApBqK,EAAMG,OAAO,GAAa,IAAM,IAGxE,QAASC,GAAcC,EAAMf,GAK3B,MAHAA,GAAOH,EAASG,GAAQ,IACxBe,EAAOlB,EAASkB,GAAQ,IAEhBf,GAASe,GAAef,EAAKC,UAAYc,EAAKd,WACnDD,EAAKC,UAAYD,EAAKE,UAAYF,EAAKE,UAAYa,EAAKb,WACzDO,EAAkBT,EAAKC,UAAYD,EAAKE,WAAyC,MAA5BF,EAAKM,SAASO,OAAO,GAAab,EAAKM,SAAYN,EAAKM,UAAaS,EAAKb,YAAca,EAAKT,SAAW,IAAM,IAAMS,EAAKT,SAASU,MAAM,EAAGD,EAAKT,SAASW,YAAY,KAAO,GAAKjB,EAAKM,SAAYS,EAAKT,WAC3PN,EAAKC,UAAYD,EAAKE,WAAaF,EAAKM,SAAWN,EAAKO,OAAUP,EAAKO,QAAUQ,EAAKR,QACvFP,EAAKQ,KAJiB,KA2PxB,QAASU,KACPnU,SAASoU,oBAAqB,mBAAoBD,GAAW,GAC7Dna,OAAOoa,oBAAqB,OAAQD,GAAW,GAC/CE,IAGF,QAASA,KAEP,IAAK,GADDC,GAAUtU,SAASuU,qBAAqB,UACnC3Z,EAAI,EAAGA,EAAI0Z,EAAQtZ,OAAQJ,IAAK,CACvC,GAAIwX,GAASkC,EAAQ1Z,EACrB,IAAmB,UAAfwX,EAAOoC,KAAkB,CAC3B,GAAIrJ,GAASiH,EAAOqC,UAAUC,OAAO,EACrC3L,GAAOlP,OAAOsR,GAAQ,SAAS,SAASqF,GAAOjQ,WAAW,WAAa,KAAMiQ,SAjTrF,GAiDImE,GAjDAC,EAA2B,mBAATza,OAAqD,mBAAtB+X,oBAAqC/X,eAAgB+X,mBACtG2C,EAA6B,mBAAV7a,UAA0B4a,EAC7CE,EAA8B,mBAAXtV,YAA4BA,QAAQuV,SAAS/B,MAAM,QACtE/Y,EAAUyO,SAASzO,SAAWU,QAAQ,wBAgD1C,IAA6B,mBAAlBqa,gBACTL,EAAmB,SAAS5B,EAAKkC,EAAStT,GAsBxC,QAASkH,KACPoM,EAAQC,EAAIC,cAEd,QAASrW,KACP6C,EAAOuT,EAAIE,WAAa,KAAOrC,GAAO,aAzBxC,GAAImC,GAAM,GAAIF,gBACVK,GAAa,CACjB,MAAM,mBAAqBH,IAAM,CAE/B,GAAII,GAAc,uBAAuBC,KAAKxC,EAC1CuC,KACFD,EAAaC,EAAY,KAAOtb,OAAOwb,SAASpC,KAC5CkC,EAAY,KACdD,GAAcC,EAAY,KAAOtb,OAAOwb,SAAStC,WAGlDmC,GAAuC,mBAAlBI,kBACxBP,EAAM,GAAIO,gBACVP,EAAIQ,OAAS7M,EACbqM,EAAIS,QAAU7W,EACdoW,EAAIU,UAAY9W,EAGhBoW,EAAIW,WAAa,aACjBX,EAAIY,QAAU,GAShBZ,EAAIa,mBAAqB,WACA,IAAnBb,EAAIc,aACa,MAAfd,EAAI3K,QAAiC,GAAd2K,EAAI3K,QAAe2K,EAAIC,aAChDtM,IAEA/J,MAINoW,EAAIe,KAAK,MAAOlD,GAAK,GACrBmC,EAAIgB,KAAK,WAGR,CAAA,GAAsB,mBAAXvb,SAkBd,KAAM,IAAI2J,WAAU,sCAjBpB,IAAI6R,EACJxB,GAAmB,SAAS5B,EAAKkC,EAAStT,GACxC,GAAwB,SAApBoR,EAAI2B,OAAO,EAAG,GAChB,KAAM,2DAKR,OAJAyB,GAAKA,GAAMxb,QAAQ,MACnBoY,EAAMA,EAAI2B,OAAO,GACbI,IACF/B,EAAMA,EAAIzJ,QAAQ,MAAO,OACpB6M,EAAGC,SAASrD,EAAK,SAASvC,EAAKpQ,GACpC,MAAIoQ,GACK7O,EAAO6O,OAEdyE,GAAQ7U,EAAO,OAQvB,GAAIiW,GAAe,SAASC,GAC1B,QAASD,GAAaxL,GAIpB,GAHAyL,EAASvb,KAAKkB,KAAM4O,OAGG,mBAAZ2K,WAA2BA,SAASvC,KAAM,CACnD,GAAIA,GAAOvK,SAAS8M,SAASvC,KAAKsD,MAAM,KAAK,GAAGA,MAAM,KAAK,EAC3Dta,MAAKua,QAAUvD,EAAKwD,UAAU,EAAGxD,EAAKiB,YAAY,KAAO,OAEtD,CAAA,GAAsB,mBAAX1U,WAA0BA,QAAQkX,IAMhD,KAAM,IAAIpS,WAAU,yBALpBrI,MAAKua,QAAU,QAAUhX,QAAQkX,MAAQ,IACrC5B,IACF7Y,KAAKua,QAAUva,KAAKua,QAAQlN,QAAQ,MAAO,MAK/CrN,KAAK0a,OAAUC,IAAK,QAgJtB,MA7IAP,GAAazM,UAA0B,OAAb0M,EAAoBA,EAAWO,SAASla,UAClE0Z,EAAa1Z,UAAYuN,iBAA+B,OAAboM,EAAoBA,EAAS3Z,UAAY,MAEpFkN,yBAAyBwM,EAAa1Z,UAAW,eAC/CuB,MAAOmY,IAGTxM,yBAAyBwM,EAAa1Z,UAAW,UAC/CsN,IAAK,WACH,MAAO4K,GAAY7a,OAAU4a,EAAWza,KAAOuO,UAGjDiJ,YAAY,IAGd9H,yBAAyBwM,EAAa1Z,UAAW,UAC/CsN,IAAK,WAAa,OAAO,GACzB0H,YAAY,IAGd9H,yBAAyBwM,EAAa1Z,UAAW,aAC/CuB,MAAO,SAAS+K,EAAM6N,GACpB,GAAmB,gBAAR7N,GACT,KAAM,IAAI3E,WAAU,+BAEtB,IAAIyS,GAAW9N,EAAKsN,MAAM,IAE1B,IAAuB,GAAnBQ,EAAS/b,OACX,KAAM,IAAIsJ,WAAU,0BAGtB,IAAI1J,GAAI,EAEJoc,GAAM,EAENC,EAAU,CACd,IAAmB,KAAfF,EAAS,GAAW,CAEtB,GADAnc,IACIA,GAAKmc,EAAS/b,OAChB,KAAM,IAAIsJ,WAAU,wBAA0B2E,EAAO,IACvD+N,IAAM,MAEH,CACH,KAAsB,MAAfD,EAASnc,IAEd,GADAA,IACIA,GAAKmc,EAAS/b,OAChB,KAAM,IAAIsJ,WAAU,wBAA0B2E,EAAO,IAErDrO,KACFoc,GAAM,GACRC,EAAUrc,EAGZ,IAAK,GAAI+S,GAAI/S,EAAG+S,EAAIoJ,EAAS/b,OAAQ2S,IAAK,CACxC,GAAIuJ,GAAUH,EAASpJ,EACvB,IAAe,IAAXuJ,GAA4B,KAAXA,GAA6B,MAAXA,EACrC,KAAM,IAAI5S,WAAU,wBAA0B2E,EAAO,KAGzD,IAAK+N,EACH,MAAO/N,EAGT,EAAA,GAAIkO,MACAC,GAAeN,GAAc,IAAIP,MAAM,IACvBa,GAAYpc,OAAS,EAAIic,EAK7C,MAHAE,GAAkBA,EAAgBpK,OAAOqK,EAAY/Y,OAAO,EAAG+Y,EAAYpc,OAAS,EAAIic,IACxFE,EAAkBA,EAAgBpK,OAAOgK,EAAS1Y,OAAOzD,EAAGmc,EAAS/b,OAASJ,IAEvEuc,EAAgBzU,KAAK,MAG9BiP,YAAY,EACZ0F,UAAU,IAGZxN,yBAAyBwM,EAAa1Z,UAAW,UAC/CuB,MAAO,SAAS2K,GACd,GAKoByO,GALhBrO,EAAOJ,EAAKI,KAKZsO,EAAY,EAGhB,KAAK,GAAI9P,KAAKxL,MAAK0a,MAAO,CACxB,GAAIa,GAAY/P,EAAE8O,MAAM,IACxB,IAAIiB,EAAUxc,OAAS,EACrB,KAAM,IAAIsJ,WAAU,2CAGtB,IAAwB,GAApBkT,EAAUxc,QACZ,GAAIiO,GAAQxB,GAAKA,EAAEzM,OAASuc,EAAUvc,OAAQ,CAC5Cuc,EAAY9P,CACZ,YAMEwB,GAAKyL,OAAO,EAAG8C,EAAU,GAAGxc,SAAWwc,EAAU,IAAMvO,EAAKyL,OAAOzL,EAAKjO,OAASwc,EAAU,GAAGxc,SAAWwc,EAAU,KACrHD,EAAY9P,EACZ6P,EAAWrO,EAAKyL,OAAO8C,EAAU,GAAGxc,OAAQiO,EAAKjO,OAASwc,EAAU,GAAGxc,OAASwc,EAAU,GAAGxc,SAKnG,GAAIyc,GAAUxb,KAAK0a,MAAMY,EAWzB,OAVID,KACFG,EAAUA,EAAQnO,QAAQ,IAAKgO,IAM7BzC,IACF4C,EAAUA,EAAQnO,QAAQ,KAAM,QAE3ByK,EAAc9X,KAAKua,QAASiB,IAGrC9F,YAAY,EACZ0F,UAAU,IAGZxN,yBAAyBwM,EAAa1Z,UAAW,SAC/CuB,MAAO,SAAS2K,GACd,GAAI1O,GAAO8B,IACX,OAAO,IAAIhC,GAAQ,SAASuH,EAASG,GACnCgT,EAAiBZ,EAAc5Z,EAAKqc,QAAS3N,EAAKW,SAAU,SAAS2B,GACnE3J,EAAQ2J,IACPxJ,MAIPgQ,YAAY,EACZ0F,UAAU,IAGLhB,GACP3N,SAASmK,gBAEP9J,EAAS,GAAIsN,EAUjB,IAPuB,gBAAZzc,WACTC,OAAOD,QAAUmP,GAEnBL,SAASK,OAASA,EAId8L,GAAqD,mBAAjC7U,UAASuU,qBAAqC,CACpE,GAAImD,GAAY1X,SAASuU,qBAAqB,SAC9CmD,GAAYA,EAAUA,EAAU1c,OAAS,GAoBb,aAAxBgF,SAASgW,WACXzV,WAAW8T,GAEJrU,SAAS2X,mBAChB3X,SAAS2X,iBAAiB,mBAAoBxD,GAAW,GACzDna,OAAO2d,iBAAiB,OAAQxD,GAAW,IAIzCuD,EAAUE,aAAa,cACzB5d,OAAO0d,EAAUE,aAAa,qBAgChB,mBAAV5d,QAAwBA,OAAsC,mBAArBkY,mBACR/X,KAAOD"} \ No newline at end of file diff --git a/dist/es6-module-loader.src.js b/dist/es6-module-loader.src.js index 8fe8f5e..c3fc1a4 100644 --- a/dist/es6-module-loader.src.js +++ b/dist/es6-module-loader.src.js @@ -1,4 +1,4 @@ -!function(e){if("object"==typeof exports)module.exports=e();else if("function"==typeof define&&define.amd)define(e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.Promise=e()}}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o 0) { - queue.shift().run(); + Scheduler.prototype._drain = function() { + var i = 0; + for (; i < this._queueLen; ++i) { + this._queue[i].run(); + this._queue[i] = void 0; } - } + + this._queueLen = 0; + this._running = false; + + for (i = 0; i < this._afterQueueLen; ++i) { + this._afterQueue[i].run(); + this._afterQueue[i] = void 0; + } + + this._afterQueueLen = 0; + }; return Scheduler; }); -}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(_dereq_); })); +}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); })); -},{"./Queue":3}],5:[function(_dereq_,module,exports){ +},{}],4:[function(require,module,exports){ /** @license MIT License (c) copyright 2010-2014 original author or authors */ /** @author Brian Cavalier */ /** @author John Hann */ (function(define) { 'use strict'; -define(function(_dereq_) { +define(function(require) { - var setTimer = _dereq_('../env').setTimer; + var setTimer = require('../env').setTimer; return function unhandledRejection(Promise) { var logError = noop; @@ -231,7 +157,7 @@ define(function(_dereq_) { var tasks = []; var reported = []; - var running = false; + var running = null; function report(r) { if(!r.handled) { @@ -250,14 +176,13 @@ define(function(_dereq_) { function enqueue(f, x) { tasks.push(f, x); - if(!running) { - running = true; + if(running === null) { running = setTimer(flush, 0); } } function flush() { - running = false; + running = null; while(tasks.length > 0) { tasks.shift()(tasks.shift()); } @@ -295,16 +220,16 @@ define(function(_dereq_) { function noop() {} }); -}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(_dereq_); })); +}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); })); -},{"../env":6}],6:[function(_dereq_,module,exports){ +},{"../env":5}],5:[function(require,module,exports){ /** @license MIT License (c) copyright 2010-2014 original author or authors */ /** @author Brian Cavalier */ /** @author John Hann */ /*global process,document,setTimeout,clearTimeout,MutationObserver,WebKitMutationObserver*/ (function(define) { 'use strict'; -define(function(_dereq_) { +define(function(require) { /*jshint maxcomplexity:6*/ // Sniff "best" async scheduling option @@ -328,7 +253,7 @@ define(function(_dereq_) { asap = initMutationObserver(MutationObs); } else if (!capturedSetTimeout) { // vert.x - var vertxRequire = _dereq_; + var vertxRequire = require; var vertx = vertxRequire('vertx'); setTimer = function (f, ms) { return vertx.setTimer(ms, f); }; clearTimer = vertx.cancelTimer; @@ -370,9 +295,9 @@ define(function(_dereq_) { }; } }); -}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(_dereq_); })); +}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); })); -},{}],7:[function(_dereq_,module,exports){ +},{}],6:[function(require,module,exports){ /** @license MIT License (c) copyright 2010-2014 original author or authors */ /** @author Brian Cavalier */ /** @author John Hann */ @@ -499,10 +424,10 @@ define(function() { * this promise's fulfillment. * @param {function=} onFulfilled fulfillment handler * @param {function=} onRejected rejection handler - * @deprecated @param {function=} onProgress progress handler + * @param {function=} onProgress @deprecated progress handler * @return {Promise} new promise */ - Promise.prototype.then = function(onFulfilled, onRejected) { + Promise.prototype.then = function(onFulfilled, onRejected, onProgress) { var parent = this._handler; var state = parent.join().state(); @@ -515,8 +440,7 @@ define(function() { var p = this._beget(); var child = p._handler; - parent.chain(child, parent.receiver, onFulfilled, onRejected, - arguments.length > 2 ? arguments[2] : void 0); + parent.chain(child, parent.receiver, onFulfilled, onRejected, onProgress); return p; }; @@ -537,15 +461,19 @@ define(function() { * @returns {Promise} */ Promise.prototype._beget = function() { - var parent = this._handler; - var child = new Pending(parent.receiver, parent.join().context); - return new this.constructor(Handler, child); + return begetFrom(this._handler, this.constructor); }; + function begetFrom(parent, Promise) { + var child = new Pending(parent.receiver, parent.join().context); + return new Promise(Handler, child); + } + // Array combinators Promise.all = all; Promise.race = race; + Promise._traverse = traverse; /** * Return a promise that will fulfill when all promises in the @@ -555,13 +483,28 @@ define(function() { * @returns {Promise} promise for array of fulfillment values */ function all(promises) { - /*jshint maxcomplexity:8*/ + return traverseWith(snd, null, promises); + } + + /** + * Array> -> Promise> + * @private + * @param {function} f function to apply to each promise's value + * @param {Array} promises array of promises + * @returns {Promise} promise for transformed values + */ + function traverse(f, promises) { + return traverseWith(tryCatch2, f, promises); + } + + function traverseWith(tryMap, f, promises) { + var handler = typeof f === 'function' ? mapAt : settleAt; + var resolver = new Pending(); var pending = promises.length >>> 0; var results = new Array(pending); - var i, h, x, s; - for (i = 0; i < promises.length; ++i) { + for (var i = 0, x; i < promises.length && !resolver.resolved; ++i) { x = promises[i]; if (x === void 0 && !(i in promises)) { @@ -569,24 +512,7 @@ define(function() { continue; } - if (maybeThenable(x)) { - h = getHandlerMaybeThenable(x); - - s = h.state(); - if (s === 0) { - h.fold(settleAt, i, results, resolver); - } else if (s > 0) { - results[i] = h.value; - --pending; - } else { - resolveAndObserveRemaining(promises, i+1, h, resolver); - break; - } - - } else { - results[i] = x; - --pending; - } + traverseAt(promises, handler, i, x, resolver); } if(pending === 0) { @@ -595,27 +521,55 @@ define(function() { return new Promise(Handler, resolver); + function mapAt(i, x, resolver) { + if(!resolver.resolved) { + traverseAt(promises, settleAt, i, tryMap(f, x, i), resolver); + } + } + function settleAt(i, x, resolver) { - /*jshint validthis:true*/ - this[i] = x; + results[i] = x; if(--pending === 0) { - resolver.become(new Fulfilled(this)); + resolver.become(new Fulfilled(results)); } } } - function resolveAndObserveRemaining(promises, start, handler, resolver) { - resolver.become(handler); + function traverseAt(promises, handler, i, x, resolver) { + if (maybeThenable(x)) { + var h = getHandlerMaybeThenable(x); + var s = h.state(); - var i, h, x; - for(i=start; i 0) { + handler(i, h.value, resolver); + } else { + resolver.become(h); + visitRemaining(promises, i+1, h); } + } else { + handler(i, x, resolver); + } + } + + Promise._visitRemaining = visitRemaining; + function visitRemaining(promises, start, handler) { + for(var i=start; i Date: Thu, 20 Nov 2014 14:17:35 +0100 Subject: [PATCH 100/482] fix(test): result is not defined on error --- test/test.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test.js b/test/test.js index bcf70c3..a784f3c 100644 --- a/test/test.js +++ b/test/test.js @@ -73,7 +73,7 @@ else { tests = { addTest: function(id, name) {}, completeTest: function(id, name, failure, summary) { - console.log(name + ': ' + (!failure ? 'Passed' : 'Failed: ' + result.failedAssertion)); + console.log(name + ': ' + (!failure ? 'Passed' : 'Failed: ' + failure)); console.log(summary.passed + '/' + summary.total + ' passed. '); }, }; From 25304eab6f2cf7f115fa7e382880e86b29402b51 Mon Sep 17 00:00:00 2001 From: Douglas Duteil Date: Thu, 20 Nov 2014 15:34:00 +0100 Subject: [PATCH 101/482] feat(travis): add travis conf --- .travis.yml | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..9f83187 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,5 @@ +--- +language: node_js +node_js: + - 0.10 + - 0.11 From e2e6a96aac8e0d9895be5084054784c8d05a5d03 Mon Sep 17 00:00:00 2001 From: Douglas Duteil Date: Thu, 20 Nov 2014 15:49:39 +0100 Subject: [PATCH 102/482] doc(README): add travis badge --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4a0b8c6..9135c2a 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# ES6 Module Loader Polyfill +# ES6 Module Loader Polyfill [![Build Status][travis-image]][travis-url] Dynamically loads ES6 modules in NodeJS and current browsers. @@ -312,3 +312,6 @@ Copyright (c) 2014 Luke Hoban, Addy Osmani, Guy Bedford ## License Licensed under the MIT license. + +[travis-url]: https://travis-ci.org/ModuleLoader/es6-module-loader +[travis-image]: https://travis-ci.org/ModuleLoader/es6-module-loader.svg?branch=master From 86ee1d91f7a8e7f969c8a1545d7848672837e5e4 Mon Sep 17 00:00:00 2001 From: guybedford Date: Sun, 23 Nov 2014 11:20:31 +0200 Subject: [PATCH 103/482] ie8/9 cors fix --- dist/es6-module-loader-sans-promises.js | 4 ++-- dist/es6-module-loader-sans-promises.js.map | 2 +- dist/es6-module-loader-sans-promises.src.js | 10 ++++++++-- dist/es6-module-loader.js | 4 ++-- dist/es6-module-loader.js.map | 2 +- dist/es6-module-loader.src.js | 10 ++++++++-- src/system.js | 10 ++++++++-- 7 files changed, 30 insertions(+), 12 deletions(-) diff --git a/dist/es6-module-loader-sans-promises.js b/dist/es6-module-loader-sans-promises.js index 0c3a55e..ff4e0b0 100644 --- a/dist/es6-module-loader-sans-promises.js +++ b/dist/es6-module-loader-sans-promises.js @@ -1,8 +1,8 @@ /* - * es6-module-loader v0.9.4 + * es6-module-loader v0.10.0 * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(__global){function __eval(__source,__global,load){var __curRegister=System.register;System.register=function(a,b,c){"string"!=typeof a&&(c=b,b=a),load.declare=c,load.depsList=b};try{eval('(function() { var __moduleName = "'+(load.name||"").replace('"','"')+'"; '+__source+" \n }).call(__global);")}catch(e){throw("SyntaxError"==e.name||"TypeError"==e.name)&&(e.message="Evaluating "+(load.name||load.address)+"\n "+e.message),e}System.register=__curRegister}$__Object$getPrototypeOf=Object.getPrototypeOf||function(a){return a.__proto__};var $__Object$defineProperty;!function(){try{Object.defineProperty({},"a",{})&&($__Object$defineProperty=Object.defineProperty)}catch(a){$__Object$defineProperty=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),$__Object$create=Object.create||function(a,b){function c(){}if(c.prototype=a,"object"==typeof b)for(prop in b)b.hasOwnProperty(prop)&&(c[prop]=b[prop]);return new c},function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new A(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:c&&c.metadata||{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new A(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return e=a(c),e.status="linked",e;for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,A.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");console.assert=console.assert||function(){};var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=x.prototype.newModule;!function(){function a(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}var b;x.prototype.parse=function(c){if(!b)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=this.traceurOptions||{};d.modules="instantiate",d.script=!1,d.sourceMaps=!0,d.filename=c.address;var e=new b.Compiler(d),f=a(c.source,e,d.filename);if(!f)throw new Error("Error evaluating module "+c.address);var g=e.getSourceMap();__global.btoa&&g&&(f+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(g)))+"\n"),f='var __moduleAddress = "'+c.address+'";'+f,__eval(f,__global,c)}}(),"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); +!function(__global){function __eval(__source,__global,load){var __curRegister=System.register;System.register=function(a,b,c){"string"!=typeof a&&(c=b,b=a),load.declare=c,load.depsList=b};try{eval('(function() { var __moduleName = "'+(load.name||"").replace('"','"')+'"; '+__source+" \n }).call(__global);")}catch(e){throw("SyntaxError"==e.name||"TypeError"==e.name)&&(e.message="Evaluating "+(load.name||load.address)+"\n "+e.message),e}System.register=__curRegister}$__Object$getPrototypeOf=Object.getPrototypeOf||function(a){return a.__proto__};var $__Object$defineProperty;!function(){try{Object.defineProperty({},"a",{})&&($__Object$defineProperty=Object.defineProperty)}catch(a){$__Object$defineProperty=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),$__Object$create=Object.create||function(a,b){function c(){}if(c.prototype=a,"object"==typeof b)for(prop in b)b.hasOwnProperty(prop)&&(c[prop]=b[prop]);return new c},function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new A(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:c&&c.metadata||{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new A(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return e=a(c),e.status="linked",e;for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,A.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");console.assert=console.assert||function(){};var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=x.prototype.newModule;!function(){function a(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}var b;x.prototype.parse=function(c){if(!b)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=this.traceurOptions||{};d.modules="instantiate",d.script=!1,d.sourceMaps=!0,d.filename=c.address;var e=new b.Compiler(d),f=a(c.source,e,d.filename);if(!f)throw new Error("Error evaluating module "+c.address);var g=e.getSourceMap();__global.btoa&&g&&(f+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(g)))+"\n"),f='var __moduleAddress = "'+c.address+'";'+f,__eval(f,__global,c)}}(),"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); //# sourceMappingURL=es6-module-loader-sans-promises.js.map \ No newline at end of file diff --git a/dist/es6-module-loader-sans-promises.js.map b/dist/es6-module-loader-sans-promises.js.map index 0dce160..e2f34ec 100644 --- a/dist/es6-module-loader-sans-promises.js.map +++ b/dist/es6-module-loader-sans-promises.js.map @@ -1 +1 @@ -{"version":3,"file":"es6-module-loader-sans-promises.js","sources":["es6-module-loader-sans-promises.src.js"],"names":["__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","e","message","address","$__Object$getPrototypeOf","Object","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","value","get","call","$__Object$create","create","o","props","F","prototype","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","Promise","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","resolve","loaderObj","normalize","then","modules","i","l","loads","length","push","proceedToLocate","proceedToFetch","locate","p","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","TypeError","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","all","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","linkSet","createLinkSet","done","startingLoad","loadingCount","reject","j","d","doLink","error","link","module","_newModule","evaluated","finishLoad","abrupt","addToError","failed","indexOf","linkIndex","splice","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","Error","preventExtensions","msg","Loader","this","_loader","importPromises","createImportPromise","promise","m","require","console","assert","Array","item","thisLen","constructor","define","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","doCompile","compiler","filename","compile","traceur","window","WorkerGlobalScope","traceurOptions","script","sourceMaps","Compiler","sourceMap","getSourceMap","btoa","unescape","encodeURIComponent","exports","Reflect","global","LoaderPolyfill","parseURI","url","String","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","join","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","document","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","setTimeout","fetchTextFromURL","isWorker","self","isBrowser","isWindows","process","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","data","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"es6-module-loader-sans-promises.js","sources":["es6-module-loader-sans-promises.src.js"],"names":["__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","e","message","address","$__Object$getPrototypeOf","Object","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","value","get","call","$__Object$create","create","o","props","F","prototype","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","Promise","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","resolve","loaderObj","normalize","then","modules","i","l","loads","length","push","proceedToLocate","proceedToFetch","locate","p","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","TypeError","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","all","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","linkSet","createLinkSet","done","startingLoad","loadingCount","reject","j","d","doLink","error","link","module","_newModule","evaluated","finishLoad","abrupt","addToError","failed","indexOf","linkIndex","splice","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","Error","preventExtensions","msg","Loader","this","_loader","importPromises","createImportPromise","promise","m","require","console","assert","Array","item","thisLen","constructor","define","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","doCompile","compiler","filename","compile","traceur","window","WorkerGlobalScope","traceurOptions","script","sourceMaps","Compiler","sourceMap","getSourceMap","btoa","unescape","encodeURIComponent","exports","Reflect","global","LoaderPolyfill","parseURI","url","String","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","join","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","document","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","setTimeout","fetchTextFromURL","isWorker","self","isBrowser","isWindows","process","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","data","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":";;;;;;CAAA,SAAUA,UAq+CV,QAASC,QAAOC,SAAUF,SAAUG,MAElC,GAAIC,eAAgBC,OAAOC,QAC3BD,QAAOC,SAAW,SAASC,EAAMC,EAAMC,GAClB,gBAARF,KACTE,EAAUD,EACVA,EAAOD,GAITJ,KAAKM,QAAUA,EACfN,KAAKO,SAAWF,EAElB,KACEG,KAAK,sCAAwCR,KAAKI,MAAQ,IAAIK,QAAQ,IAAK,KAAQ,MAAQV,SAAW,0BAExG,MAAMW,GAGJ,MAFc,eAAVA,EAAEN,MAAmC,aAAVM,EAAEN,QAC/BM,EAAEC,QAAU,eAAiBX,KAAKI,MAAQJ,KAAKY,SAAW,MAASF,EAAEC,SACjED,EAGRR,OAAOC,SAAWF,cAz/CpBY,yBAA2BC,OAAOC,gBAAkB,SAASC,GAC3D,MAAOA,GAAIC,UAGb,IAAIC,2BACH,WACC,IACQJ,OAAOK,kBAAmB,UAC9BD,yBAA2BJ,OAAOK,gBAEpC,MAAOT,GACPQ,yBAA2B,SAAUF,EAAKI,EAAMC,GAC9C,IACEL,EAAII,GAAQC,EAAIC,OAASD,EAAIE,IAAIC,KAAKR,GAExC,MAAMN,UAKZe,iBAAmBX,OAAOY,QAAU,SAASC,EAAGC,GAC9C,QAASC,MAGT,GAFAA,EAAEC,UAAYH,EAEQ,gBAAZ,GACR,IAAKP,OAAQQ,GACPA,EAAMG,eAAe,QACvBF,EAAET,MAAQQ,EAAMR,MAItB,OAAO,IAAIS,IA4Gb,WA8BE,QAASG,GAAW5B,GAClB,OACE6B,OAAQ,UACR7B,KAAMA,EACN8B,YACAC,gBACAC,aASJ,QAASC,GAAWC,EAAQlC,EAAMmC,GAChC,MAAO,IAAIC,GAAQC,GACjBC,KAAMH,EAAQ3B,QAAU,QAAU,SAClC0B,OAAQA,EACRK,WAAYvC,EAEZwC,eAAgBL,GAAWA,EAAQH,aACnCS,aAAcN,EAAQO,OACtBC,cAAeR,EAAQ3B,WAK3B,QAASoC,GAAYV,EAAQW,EAASC,EAAaC,GAEjD,MAAO,IAAIX,GAAQ,SAASY,GAC1BA,EAAQd,EAAOe,UAAUC,UAAUL,EAASC,EAAaC,MAG1DI,KAAK,SAASnD,GACb,GAAIJ,EACJ,IAAIsC,EAAOkB,QAAQpD,GAKjB,MAJAJ,GAAOgC,EAAW5B,GAClBJ,EAAKiC,OAAS,SAGPjC,CAGT,KAAK,GAAIyD,GAAI,EAAGC,EAAIpB,EAAOqB,MAAMC,OAAYF,EAAJD,EAAOA,IAE9C,GADAzD,EAAOsC,EAAOqB,MAAMF,GAChBzD,EAAKI,MAAQA,EAGjB,MAAOJ,EAQT,OALAA,GAAOgC,EAAW5B,GAClBkC,EAAOqB,MAAME,KAAK7D,GAElB8D,EAAgBxB,EAAQtC,GAEjBA,IAKX,QAAS8D,GAAgBxB,EAAQtC,GAC/B+D,EAAezB,EAAQtC,EACrBwC,EAAQY,UAEPG,KAAK,WACJ,MAAOjB,GAAOe,UAAUW,QAAS5D,KAAMJ,EAAKI,KAAMgC,SAAUpC,EAAKoC,cAMvE,QAAS2B,GAAezB,EAAQtC,EAAMiE,GACpCC,EAAmB5B,EAAQtC,EACzBiE,EAECV,KAAK,SAAS3C,GAEb,MAAmB,WAAfZ,EAAKiC,QAETjC,EAAKY,QAAUA,EAER0B,EAAOe,UAAUc,OAAQ/D,KAAMJ,EAAKI,KAAMgC,SAAUpC,EAAKoC,SAAUxB,QAASA,KAJnF,UAYN,QAASsD,GAAmB5B,EAAQtC,EAAMiE,GACxCA,EAECV,KAAK,SAAST,GACb,MAAmB,WAAf9C,EAAKiC,OAEFK,EAAOe,UAAUe,WAAYhE,KAAMJ,EAAKI,KAAMgC,SAAUpC,EAAKoC,SAAUxB,QAASZ,EAAKY,QAASkC,OAAQA,IAF7G,SAMDS,KAAK,SAAST,GACb,MAAmB,WAAf9C,EAAKiC,QAETjC,EAAK8C,OAASA,EACPR,EAAOe,UAAUgB,aAAcjE,KAAMJ,EAAKI,KAAMgC,SAAUpC,EAAKoC,SAAUxB,QAASZ,EAAKY,QAASkC,OAAQA,KAH/G,SAODS,KAAK,SAASe,GACb,GAAmB,WAAftE,EAAKiC,OAAT,CAGA,GAA0BsC,SAAtBD,EACFtE,EAAKY,QAAUZ,EAAKY,SAAW,wBAAyB4D,EAAU,IAGlExE,EAAKyE,eAAgB,EAErBnC,EAAOe,UAAUqB,MAAM1E,OAEpB,CAAA,GAAgC,gBAArBsE,GAMd,KAAMK,WAAU,mCALhB3E,GAAKO,SAAW+D,EAAkBjE,SAClCL,EAAK4E,QAAUN,EAAkBM,QACjC5E,EAAKyE,eAAgB,EAMvBzE,EAAKmC,eAIL,KAAK,GAHD5B,GAAWP,EAAKO,SAEhBsE,KACKpB,EAAI,EAAGC,EAAInD,EAASqD,OAAYF,EAAJD,EAAOA,KAAK,SAAUR,EAAS6B,GAClED,EAAahB,KACXb,EAAYV,EAAQW,EAASjD,EAAKI,KAAMJ,EAAKY,SAG5C2C,KAAK,SAASwB,GAab,GALA/E,EAAKmC,aAAa2C,IAChBE,IAAK/B,EACL3B,MAAOyD,EAAQ3E,MAGK,UAAlB2E,EAAQ9C,OAEV,IAAK,GADDC,GAAWlC,EAAKkC,SAAS+C,WACpBxB,EAAI,EAAGC,EAAIxB,EAAS0B,OAAYF,EAAJD,EAAOA,IAC1CyB,EAAiBhD,EAASuB,GAAIsB,QAOrCxE,EAASkD,GAAIA,EAEhB,OAAOjB,GAAQ2C,IAAIN,MAIpBtB,KAAK,WAMJvD,EAAKiC,OAAS,QAGd,KAAK,GADDC,GAAWlC,EAAKkC,SAAS+C,WACpBxB,EAAI,EAAGC,EAAIxB,EAAS0B,OAAYF,EAAJD,EAAOA,IAC1C2B,EAAoBlD,EAASuB,GAAIzD,KAIpC,SAAS,SAASqF,GAEjBrF,EAAKiC,OAAS,SACdjC,EAAKsF,UAAYD,CAGjB,KAAK,GADDnD,GAAWlC,EAAKkC,SAAS+C,WACpBxB,EAAI,EAAGC,EAAIxB,EAAS0B,OAAYF,EAAJD,EAAOA,IAC1C8B,EAAcrD,EAASuB,GAAIzD,EAAMqF,KAUvC,QAAS5C,GAA6B+C,GACpC,MAAO,UAASpC,GACd,GAAId,GAASkD,EAAUlD,OACnBlC,EAAOoF,EAAU7C,WACjBD,EAAO8C,EAAU9C,IAErB,IAAIJ,EAAOkB,QAAQpD,GACjB,KAAM,IAAIuE,WAAU,IAAMvE,EAAO,uCAKnC,KAAK,GAAIqD,GAAI,EAAGC,EAAIpB,EAAOqB,MAAMC,OAAYF,EAAJD,EAAOA,IAC9C,GAAInB,EAAOqB,MAAMF,GAAGrD,MAAQA,EAC1B,KAAM,IAAIuE,WAAU,IAAMvE,EAAO,oBAErC,IAAIJ,GAAOgC,EAAW5B,EAEtBJ,GAAKoC,SAAWoD,EAAU5C,cAE1B,IAAI6C,GAAUC,EAAcpD,EAAQtC,EAEpCsC,GAAOqB,MAAME,KAAK7D,GAElBoD,EAAQqC,EAAQE,MAEJ,UAARjD,EACFoB,EAAgBxB,EAAQtC,GAET,SAAR0C,EACPqB,EAAezB,EAAQtC,EAAMwC,EAAQY,QAAQoC,EAAUzC,iBAIvD/C,EAAKY,QAAU4E,EAAUzC,cACzBmB,EAAmB5B,EAAQtC,EAAMwC,EAAQY,QAAQoC,EAAU3C,iBAWjE,QAAS6C,GAAcpD,EAAQsD,GAC7B,GAAIH,IACFnD,OAAQA,EACRqB,SACAiC,aAAcA,EACdC,aAAc,EAOhB,OALAJ,GAAQE,KAAO,GAAInD,GAAQ,SAASY,EAAS0C,GAC3CL,EAAQrC,QAAUA,EAClBqC,EAAQK,OAASA,IAEnBZ,EAAiBO,EAASG,GACnBH,EAGT,QAASP,GAAiBO,EAASzF,GAGjC,IAAK,GAAIyD,GAAI,EAAGC,EAAI+B,EAAQ9B,MAAMC,OAAYF,EAAJD,EAAOA,IAC/C,GAAIgC,EAAQ9B,MAAMF,IAAMzD,EACtB,MAEJyF,GAAQ9B,MAAME,KAAK7D,GACnBA,EAAKkC,SAAS2B,KAAK4B,GAGA,UAAfzF,EAAKiC,QACPwD,EAAQI,cAKV,KAAK,GAFDvD,GAASmD,EAAQnD,OAEZmB,EAAI,EAAGC,EAAI1D,EAAKmC,aAAayB,OAAYF,EAAJD,EAAOA,IAAK,CACxD,GAAIrD,GAAOJ,EAAKmC,aAAasB,GAAGnC,KAEhC,KAAIgB,EAAOkB,QAAQpD,GAGnB,IAAK,GAAI2F,GAAI,EAAGC,EAAI1D,EAAOqB,MAAMC,OAAYoC,EAAJD,EAAOA,IAC9C,GAAIzD,EAAOqB,MAAMoC,GAAG3F,MAAQA,EAA5B,CAGA8E,EAAiBO,EAASnD,EAAOqB,MAAMoC,GACvC,SASN,QAASE,GAAOR,GACd,GAAIS,IAAQ,CACZ,KACEC,EAAKV,EAAS,SAASzF,EAAMqF,GAC3BE,EAAcE,EAASzF,EAAMqF,GAC7Ba,GAAQ,IAGZ,MAAMxF,GACJ6E,EAAcE,EAAS,KAAM/E,GAC7BwF,GAAQ,EAEV,MAAOA,GAIT,QAASd,GAAoBK,EAASzF,GAQpC,GAFAyF,EAAQI,iBAEJJ,EAAQI,aAAe,GAA3B,CAIA,GAAID,GAAeH,EAAQG,YAK3B,IAAIH,EAAQnD,OAAOe,UAAUuB,WAAY,EAAO,CAE9C,IAAK,GADDjB,MAAWsB,OAAOQ,EAAQ9B,OACrBF,EAAI,EAAGC,EAAIC,EAAMC,OAAYF,EAAJD,EAAOA,IAAK,CAC5C,GAAIzD,GAAO2D,EAAMF,EACjBzD,GAAKoG,OAAUpG,EAAKyE,eAGlBrE,KAAMJ,EAAKI,KACXgG,OAAQC,MACRC,WAAW,IAJXF,OAAQC,OAMVrG,EAAKiC,OAAS,SACdsE,EAAWd,EAAQnD,OAAQtC,GAE7B,MAAOyF,GAAQrC,QAAQwC,GAIzB,GAAIY,GAASP,EAAOR,EAEhBe,IAKJf,EAAQrC,QAAQwC,IAIlB,QAASL,GAAcE,EAASzF,EAAMqF,GACpC,GAAI/C,GAASmD,EAAQnD,MAEjBmD,GAAQ9B,MAAM,GAAGvD,MAAQJ,EAAKI,OAChCiF,EAAMoB,EAAWpB,EAAK,kBAAoBrF,EAAKI,KAAO,WAAaqF,EAAQ9B,MAAM,GAAGvD,KAAO,SAAWqF,EAAQ9B,MAAM,GAAG/C,SAAW,aAAe,OAEnJyE,EAAMoB,EAAWpB,EAAK,kBAAoBrF,EAAKI,KAAO,SAAWJ,EAAKY,SAAW,aAAe,KAGhG,KAAK,GADD+C,GAAQ8B,EAAQ9B,MAAMsB,WACjBxB,EAAI,EAAGC,EAAIC,EAAMC,OAAYF,EAAJD,EAAOA,IAAK,CAC5C,GAAIzD,GAAO2D,EAAMF,EAGjBnB,GAAOe,UAAUqD,OAASpE,EAAOe,UAAUqD,WACQ,IAA/CC,EAAQnF,KAAKc,EAAOe,UAAUqD,OAAQ1G,IACxCsC,EAAOe,UAAUqD,OAAO7C,KAAK7D,EAE/B,IAAI4G,GAAYD,EAAQnF,KAAKxB,EAAKkC,SAAUuD,EAG5C,IADAzF,EAAKkC,SAAS2E,OAAOD,EAAW,GACJ,GAAxB5G,EAAKkC,SAAS0B,OAAa,CAC7B,GAAIkD,GAAmBH,EAAQnF,KAAKiE,EAAQnD,OAAOqB,MAAO3D,EAClC,KAApB8G,GACFrB,EAAQnD,OAAOqB,MAAMkD,OAAOC,EAAkB,IAGpDrB,EAAQK,OAAOT,GAIjB,QAASkB,GAAWjE,EAAQtC,GAE1B,GAAIsC,EAAOe,UAAU0D,MAAO,CACrBzE,EAAOe,UAAUM,QACpBrB,EAAOe,UAAUM,SACnB,IAAIqD,KACJhH,GAAKmC,aAAa8E,QAAQ,SAASC,GACjCF,EAAOE,EAAIlC,KAAOkC,EAAI5F,QAExBgB,EAAOe,UAAUM,MAAM3D,EAAKI,OAC1BA,KAAMJ,EAAKI,KACXC,KAAML,EAAKmC,aAAagF,IAAI,SAASD,GAAM,MAAOA,GAAIlC,MACtDgC,OAAQA,EACRpG,QAASZ,EAAKY,QACdwB,SAAUpC,EAAKoC,SACfU,OAAQ9C,EAAK8C,OACbsE,KAAMpH,EAAKyE,cAAgB,cAAgB,WAI3CzE,EAAKI,OAEPkC,EAAOkB,QAAQxD,EAAKI,MAAQJ,EAAKoG,OAEnC,IAAIiB,GAAYV,EAAQnF,KAAKc,EAAOqB,MAAO3D,EAC1B,KAAbqH,GACF/E,EAAOqB,MAAMkD,OAAOQ,EAAW,EACjC,KAAK,GAAI5D,GAAI,EAAGC,EAAI1D,EAAKkC,SAAS0B,OAAYF,EAAJD,EAAOA,IAC/C4D,EAAYV,EAAQnF,KAAKxB,EAAKkC,SAASuB,GAAGE,MAAO3D,GAChC,IAAbqH,GACFrH,EAAKkC,SAASuB,GAAGE,MAAMkD,OAAOQ,EAAW,EAE7CrH,GAAKkC,SAAS2E,OAAO,EAAG7G,EAAKkC,SAAS0B,QAUxC,QAAS0D,GAAmBtH,EAAM2D,EAAO4D,EAAQjF,GAK/C,GAJAiF,EAAOvH,EAAKwH,YAAcD,EAAOvH,EAAKwH,gBAIa,IAA/Cb,EAAQnF,KAAK+F,EAAOvH,EAAKwH,YAAaxH,GAA1C,CAIAuH,EAAOvH,EAAKwH,YAAY3D,KAAK7D,EAE7B,KAAK,GAAIyD,GAAI,EAAGC,EAAIC,EAAMC,OAAYF,EAAJD,EAAOA,IAIvC,IAAK,GAHDgE,GAAU9D,EAAMF,GAGXsC,EAAI,EAAGA,EAAI/F,EAAKmC,aAAayB,OAAQmC,IAC5C,GAAI0B,EAAQrH,MAAQJ,EAAKmC,aAAa4D,GAAGzE,MAAO,CAM9C,GAAIoG,GAAoB1H,EAAKwH,YAAcC,EAAQhD,eAAiBzE,EAAKyE,cAGzE,IAA2BF,SAAvBkD,EAAQD,YAA4BC,EAAQD,WAAaE,EAAmB,CAG9E,GAAID,EAAQD,aACVD,EAAOE,EAAQD,YAAYX,OAAOF,EAAQnF,KAAK+F,EAAOE,EAAQD,YAAaC,GAAU,GAG5C,GAArCF,EAAOE,EAAQD,YAAY5D,QAC7B,KAAM,IAAIe,WAAU,kCAGxB8C,GAAQD,WAAaE,EAGvBJ,EAAmBG,EAAS9D,EAAO4D,EAAQjF,KAMnD,QAASqF,GAAiBlC,EAASzF,EAAM4H,GACvC,IACE,GAAIxB,GAASpG,EAAK4E,UAEpB,MAAMlE,GAEJ,WADAkH,GAAU5H,EAAMU,GAGlB,MAAK0F,IAAYA,YAAkByB,GAG1BzB,MAFPwB,GAAU5H,EAAM,GAAI2E,WAAU,4CAMlC,QAASwB,GAAKV,EAASmC,GAErB,GAAItF,GAASmD,EAAQnD,MAErB,IAAKmD,EAAQ9B,MAAMC,OAAnB,CAWA,GAAI2D,MACA3B,EAAeH,EAAQ9B,MAAM,EACjCiC,GAAa4B,WAAa,EAC1BF,EAAmB1B,EAAcH,EAAQ9B,MAAO4D,EAAQjF,EAMxD,KAAK,GAHDwF,GAAsBlC,EAAanB,eAAiB8C,EAAO3D,OAAS,EAG/DH,EAAI8D,EAAO3D,OAAS,EAAGH,GAAK,EAAGA,IAAK,CAE3C,IAAK,GADDsE,GAAQR,EAAO9D,GACVsC,EAAI,EAAGA,EAAIgC,EAAMnE,OAAQmC,IAAK,CACrC,GAAI/F,GAAO+H,EAAMhC,EAGjB,IAAI+B,EACFE,EAAsBhI,EAAMyF,EAAQ9B,MAAOrB,OAGxC,CACH,GAAI8D,GAASuB,EAAiBlC,EAASzF,EAAM4H,EAC7C,KAAKxB,EACH,MACFpG,GAAKoG,QACHhG,KAAMJ,EAAKI,KACXgG,OAAQA,GAEVpG,EAAKiC,OAAS,SAEhBsE,EAAWjE,EAAQtC,GAIrB8H,GAAuBA,IAO3B,QAASG,GAAwB7H,EAAMkC,GACrC,GAAI4F,GAAgB5F,EAAO4F,aAC3B,OAAOA,GAAc9H,KAAU8H,EAAc9H,IAC3CA,KAAMA,EACN+B,gBACAiE,OAAQ,GAAIyB,GACZM,eAKJ,QAASH,GAAsBhI,EAAM2D,EAAOrB,GAC1C,IAAItC,EAAKoG,OAAT,CAGA,GAAIA,GAASpG,EAAKoG,OAAS6B,EAAwBjI,EAAKI,KAAMkC,GAC1D8F,EAAYpI,EAAKoG,OAAOA,OAExBiC,EAAgBrI,EAAKM,QAAQkB,KAAK3B,SAAU,SAASO,EAAMkB,GAI7D8E,EAAOkC,QAAS,EAChBF,EAAUhI,GAAQkB,CAElB,KAAK,GAAImC,GAAI,EAAGC,EAAI0C,EAAO+B,UAAUvE,OAAYF,EAAJD,EAAOA,IAAK,CACvD,GAAI8E,GAAiBnC,EAAO+B,UAAU1E,EACtC,KAAK8E,EAAeD,OAAQ,CAC1B,GAAIE,GAAgB7B,EAAQnF,KAAK+G,EAAepG,aAAciE,EAC9DmC,GAAeE,QAAQD,GAAeJ,IAK1C,MADAhC,GAAOkC,QAAS,EACThH,GAIT8E,GAAOqC,QAAUJ,EAAcI,QAC/BrC,EAAOxB,QAAUyD,EAAczD,OAI/B,KAAK,GAAInB,GAAI,EAAGC,EAAI1D,EAAKmC,aAAayB,OAAYF,EAAJD,EAAOA,IAAK,CACxD,GAAIiF,GAAU1I,EAAKmC,aAAasB,GAAGnC,MAC/BqH,EAAYrG,EAAOkB,QAAQkF,EAI/B,KAAKC,EAEH,IAAK,GAAI5C,GAAI,EAAGA,EAAIpC,EAAMC,OAAQmC,IAC5BpC,EAAMoC,GAAG3F,MAAQsI,IAIhB/E,EAAMoC,GAAGK,OAMZuC,EAAYV,EAAwBS,EAASpG,IAL7C0F,EAAsBrE,EAAMoC,GAAIpC,EAAOrB,GACvCqG,EAAYhF,EAAMoC,GAAGK,QAUvBuC,GAAUR,WACZ/B,EAAOjE,aAAa0B,KAAK8E,GACzBA,EAAUR,UAAUtE,KAAKuC,IAIzBA,EAAOjE,aAAa0B,KAAK,MAIvBuC,EAAOqC,QAAQhF,IACjB2C,EAAOqC,QAAQhF,GAAGkF,EAAUvC,QAGhCpG,EAAKiC,OAAS,UAYhB,QAAS2G,GAAqBtG,EAAQtC,GAIpC,MADA6I,GAAkB7I,EAAKoG,UAAY9D,GAC5BtC,EAAKoG,OAAOA,OAYrB,QAAS0C,GAAU1C,GACjB,IACEA,EAAOxB,QAAQpD,KAAK3B,UAEtB,MAAMa,GACJ,MAAOA,IAMX,QAASmI,GAAkBzC,EAAQ2C,EAAMzG,GACvC,GAAI0G,GAAMC,EAAgB7C,EAAQ2C,EAAMzG,EACxC,IAAI0G,EACF,KAAMA,GAGV,QAASC,GAAgB7C,EAAQ2C,EAAMzG,GACrC,IAAI8D,EAAOE,WAAcF,EAAOjE,aAAhC,CAGA4G,EAAKlF,KAAKuC,EAKV,KAAK,GAFD4C,GADA3I,EAAO+F,EAAOjE,aAGTsB,EAAI,EAAGC,EAAIrD,EAAKuD,OAAYF,EAAJD,EAAOA,IAAK,CAC3C,GAAIyD,GAAM7G,EAAKoD,EAGf,IAAKyD,GAE0B,IAA3BP,EAAQnF,KAAKuH,EAAM7B,KACrB8B,EAAMC,EAAgB/B,EAAK6B,EAAMzG,IAI/B,MADA0G,GAAMvC,EAAWuC,EAAK,oBAAsB9B,EAAI9G,KAAO,MAM7D,GAAIgG,EAAOM,OACT,MAAO,IAAIwC,OAAM,2BAEnB,KAAI9C,EAAOE,UAgBX,MAbAF,GAAOE,WAAY,EACnB0C,EAAMF,EAAU1C,GACZ4C,EACF5C,EAAOM,QAAS,EAET5F,OAAOqI,mBAIdrI,OAAOqI,kBAAkB/C,EAAOA,QAGlCA,EAAOxB,QAAUL,OACVyE,GAGT,QAASvC,GAAWuC,EAAKI,GAKvB,MAJIJ,aAAeE,OACjBF,EAAIrI,QAAUyI,EAAMJ,EAAIrI,QAExBqI,EAAMI,EAAMJ,EACPA,EAMT,QAASK,GAAO9G,GACd,GAAsB,gBAAXA,GACT,KAAM,IAAIoC,WAAU,4BAElBpC,GAAQe,YACVgG,KAAKhG,UAAYf,EAAQe,WACvBf,EAAQyB,SACVsF,KAAKtF,OAASzB,EAAQyB,QACpBzB,EAAQ4B,QACVmF,KAAKnF,MAAQ5B,EAAQ4B,OACnB5B,EAAQ6B,YACVkF,KAAKlF,UAAY7B,EAAQ6B,WACvB7B,EAAQ8B,cACViF,KAAKjF,YAAc9B,EAAQ8B,aAE7BiF,KAAKC,SACHlG,UAAWiG,KACX3F,SACAH,WACAgG,kBACAtB,kBAIF/G,EAAemI,KAAM,UACnB/H,IAAK,WACH,MAAO1B,aAOb,QAASgI,MAGT,QAAS4B,GAAoBnH,EAAQlC,EAAMsJ,GACzC,GAAIF,GAAiBlH,EAAOiH,QAAQC,cACpC,OAAOA,GAAepJ,GAAQsJ,EAAQnG,KAAK,SAASoG,GAElD,MADAH,GAAepJ,GAAQmE,OAChBoF,GACN,SAASjJ,GAEV,KADA8I,GAAepJ,GAAQmE,OACjB7D,IAnyBV,GAAI8B,GAAU3C,SAAS2C,SAAWoH,QAAQ,wBAC1CC,SAAQC,OAASD,QAAQC,QAAU,YAGnC,IAAInD,GAAUoD,MAAMjI,UAAU6E,SAAW,SAASqD,GAChD,IAAK,GAAIvG,GAAI,EAAGwG,EAAUX,KAAK1F,OAAYqG,EAAJxG,EAAaA,IAClD,GAAI6F,KAAK7F,KAAOuG,EACd,MAAOvG,EAGX,OAAO,IAELtC,EAAiBD,yBAyGjBsD,EAAU,CAkrBd6E,GAAOvH,WAELoI,YAAab,EAEbc,OAAQ,SAAS/J,EAAM0C,EAAQP,GAE7B,GAAI+G,KAAKC,QAAQC,eAAepJ,GAC9B,KAAM,IAAIuE,WAAU,6BACtB,OAAO8E,GAAoBH,KAAMlJ,EAAM,GAAIoC,GAAQC,GACjDC,KAAM,YACNJ,OAAQgH,KAAKC,QACb5G,WAAYvC,EACZwC,eAAgBL,GAAWA,EAAQH,aACnCS,aAAcC,EACdC,cAAeR,GAAWA,EAAQ3B,aAItCwJ,SAAU,SAAShK,GACjB,MAAOkJ,MAAKC,QAAQ/F,QAAQpD,SAAekJ,MAAKC,QAAQ/F,QAAQpD,IAAQ,GAI1EmB,IAAK,SAASyD,GACZ,MAAKsE,MAAKC,QAAQ/F,QAAQwB,IAE1B6D,EAAkBS,KAAKC,QAAQ/F,QAAQwB,MAAUsE,MAC1CA,KAAKC,QAAQ/F,QAAQwB,GAAKoB,QAHjC,QAMFiE,IAAK,SAASjK,GACZ,QAASkJ,KAAKC,QAAQ/F,QAAQpD,IAGhCkK,SAAU,SAASlK,EAAMmC,GAEvB,GAAIc,GAAYiG,IAGhB,OAAO9G,GAAQY,QAAQC,EAAUC,UAAUlD,EAAMmC,GAAWA,EAAQnC,KAAMmC,GAAWA,EAAQ3B,UAC5F2C,KAAK,SAASnD,GACb,GAAIkC,GAASe,EAAUkG,OAEvB,OAAIjH,GAAOkB,QAAQpD,IACjByI,EAAkBvG,EAAOkB,QAAQpD,MAAWkC,EAAOiH,SAC5CjH,EAAOkB,QAAQpD,GAAMgG,QAGvB9D,EAAOkH,eAAepJ,IAASqJ,EAAoBpG,EAAWjD,EACnEiC,EAAWC,EAAQlC,EAAMmC,OACxBgB,KAAK,SAASvD,GAEb,aADOsC,GAAOkH,eAAepJ,GACtBwI,EAAqBtG,EAAQtC,SAM5CA,KAAM,SAASI,GACb,MAAIkJ,MAAKC,QAAQ/F,QAAQpD,IACvByI,EAAkBS,KAAKC,QAAQ/F,QAAQpD,MAAWkJ,KAAKC,SAChD/G,EAAQY,QAAQkG,KAAKC,QAAQ/F,QAAQpD,GAAMgG,SAE7CkD,KAAKC,QAAQC,eAAepJ,IAASqJ,EAAoBH,KAAMlJ,EAAMiC,EAAWiH,KAAKC,QAASnJ,QAGvGgG,OAAQ,SAAStD,EAAQP,GACvB,GAAIvC,GAAOgC,GACXhC,GAAKY,QAAU2B,GAAWA,EAAQ3B,OAClC,IAAI6E,GAAUC,EAAc4D,KAAKC,QAASvJ,GACtCuK,EAAgB/H,EAAQY,QAAQN,GAChCR,EAASgH,KAAKC,QACdtF,EAAIwB,EAAQE,KAAKpC,KAAK,WACxB,MAAOqF,GAAqBtG,EAAQtC,IAGtC,OADAkE,GAAmB5B,EAAQtC,EAAMuK,GAC1BtG,GAGTuG,UAAW,SAAUxJ,GACnB,GAAkB,gBAAPA,GACT,KAAM,IAAI2D,WAAU,kBAItB,IAAIgF,GAAI,GAAI9B,EAEZ,KAAK,GAAI7C,KAAOhE,IACd,SAAWgE,GACT7D,EAAewI,EAAG3E,GAChByF,cAAc,EACdC,YAAY,EACZnJ,IAAK,WACH,MAAOP,GAAIgE,OAGdA,EAML,OAHIlE,QAAOqI,mBACTrI,OAAOqI,kBAAkBQ,GAEpBA,GAGTgB,IAAK,SAASvK,EAAMgG,GAClB,KAAMA,YAAkByB,IACtB,KAAM,IAAIlD,WAAU,cAAgBvE,EAAO,6BAC7CkJ,MAAKC,QAAQ/F,QAAQpD,IACnBgG,OAAQA,IAQZ9C,UAAW,SAASlD,GAClB,MAAOA,IAGT4D,OAAQ,SAAShE,GACf,MAAOA,GAAKI,MAGd+D,MAAO,WACL,KAAM,IAAIQ,WAAU,0BAGtBP,UAAW,SAASpE,GAClB,MAAOA,GAAK8C,QAEd4B,MAAO,WACL,KAAM,IAAIC,WAAU,oCAGtBN,YAAa,aAIf,IAAIgC,GAAagD,EAAOvH,UAAU0I,WAMlC,WAKE,QAASI,GAAU9H,EAAQ+H,EAAUC,GACnC,IACE,MAAOD,GAASE,QAAQjI,EAAQgI,GAElC,MAAMpK,GAEJ,KAAMA,GAAE,IARZ,GAAIsK,EAWJ3B,GAAOvH,UAAU4C,MAAQ,SAAS1E,GAChC,IAAKgL,EACH,GAAqB,mBAAVC,SACoB,mBAArBC,mBACRF,EAAUpB,QAAQ,eACf,CAAA,IAAI/J,SAASmL,QAGhB,KAAM,IAAIrG,WAAU,4CAFpBqG,GAAUnL,SAASmL,QASvBhL,EAAKyE,eAAgB,CAErB,IAAIlC,GAAU+G,KAAK6B,kBACnB5I,GAAQiB,QAAU,cAClBjB,EAAQ6I,QAAS,EACjB7I,EAAQ8I,YAAa,EACrB9I,EAAQuI,SAAW9K,EAAKY,OAExB,IAAIiK,GAAW,GAAIG,GAAQM,SAAS/I,GAEhCO,EAAS8H,EAAU5K,EAAK8C,OAAQ+H,EAAUtI,EAAQuI,SAEtD,KAAKhI,EACH,KAAM,IAAIoG,OAAM,2BAA6BlJ,EAAKY,QAEpD,IAAI2K,GAAYV,EAASW,cAErB3L,UAAS4L,MAAQF,IACnBzI,GAAU,uDAAyD2I,KAAKC,SAASC,mBAAmBJ,KAAe,MAErHzI,EAAS,0BAA4B9C,EAAKY,QAAU,KAAOkC,EAE3DhD,OAAOgD,EAAQjD,SAAUG,OAIN,gBAAZ4L,WACTxF,OAAOwF,QAAUvC,GAEnBxJ,SAASgM,QAAUhM,SAASgM,YAC5BhM,SAASgM,QAAQxC,OAASxJ,SAASgM,QAAQxC,QAAUA,EACrDxJ,SAASgM,QAAQC,OAASjM,SAASgM,QAAQC,QAAUjM,SACrDA,SAASkM,eAAiB1C,KAkB5B,WAQE,QAAS2C,GAASC,GAChB,GAAItC,GAAIuC,OAAOD,GAAKxL,QAAQ,aAAc,IAAI0L,MAAM,6GAEpD,OAAQxC,IACNyC,KAAWzC,EAAE,IAAM,GACnB0C,SAAW1C,EAAE,IAAM,GACnB2C,UAAW3C,EAAE,IAAM,GACnB4C,KAAW5C,EAAE,IAAM,GACnB6C,SAAW7C,EAAE,IAAM,GACnB8C,KAAW9C,EAAE,IAAM,GACnB+C,SAAW/C,EAAE,IAAM,GACnBgD,OAAWhD,EAAE,IAAM,GACnBiD,KAAWjD,EAAE,IAAM,IACjB,KAGN,QAASkD,GAAkBC,GACzB,GAAIC,KAUJ,OATAD,GAAMrM,QAAQ,kBAAmB,IAC9BA,QAAQ,iBAAkB,KAC1BA,QAAQ,UAAW,QACnBA,QAAQ,aAAc,SAAUwD,GACrB,QAANA,EACF8I,EAAOC,MAEPD,EAAOlJ,KAAKI,KAEX8I,EAAOE,KAAK,IAAIxM,QAAQ,MAA2B,MAApBqM,EAAMI,OAAO,GAAa,IAAM,IAGxE,QAASC,GAAcC,EAAMhB,GAK3B,MAHAA,GAAOJ,EAASI,GAAQ,IACxBgB,EAAOpB,EAASoB,GAAQ,IAEhBhB,GAASgB,GAAehB,EAAKC,UAAYe,EAAKf,WACnDD,EAAKC,UAAYD,EAAKE,UAAYF,EAAKE,UAAYc,EAAKd,WACzDO,EAAkBT,EAAKC,UAAYD,EAAKE,WAAyC,MAA5BF,EAAKM,SAASQ,OAAO,GAAad,EAAKM,SAAYN,EAAKM,UAAaU,EAAKd,YAAcc,EAAKV,SAAW,IAAM,IAAMU,EAAKV,SAASW,MAAM,EAAGD,EAAKV,SAASY,YAAY,KAAO,GAAKlB,EAAKM,SAAYU,EAAKV,WAC3PN,EAAKC,UAAYD,EAAKE,WAAaF,EAAKM,SAAWN,EAAKO,OAAUP,EAAKO,QAAUS,EAAKT,QACvFP,EAAKQ,KAJiB,KAiQxB,QAASW,KACPC,SAASC,oBAAqB,mBAAoBF,GAAW,GAC7DtC,OAAOwC,oBAAqB,OAAQF,GAAW,GAC/CG,IAGF,QAASA,KAEP,IAAK,GADDC,GAAUH,SAASI,qBAAqB,UACnCnK,EAAI,EAAGA,EAAIkK,EAAQ/J,OAAQH,IAAK,CACvC,GAAI2H,GAASuC,EAAQlK,EACrB,IAAmB,UAAf2H,EAAOyC,KAAkB,CAC3B,GAAI/K,GAASsI,EAAO0C,UAAUC,OAAO,EACrC7N,GAAOkG,OAAOtD,GAAQ,SAAS,SAASkG,GAAOgF,WAAW,WAAa,KAAMhF,SAvTrF,GAiDIiF,GAjDAC,EAA2B,mBAATC,OAAqD,mBAAtBjD,oBAAqCiD,eAAgBjD,mBACtGkD,EAA6B,mBAAVnD,UAA0BiD,EAC7CG,EAA8B,mBAAXC,YAA4BA,QAAQC,SAASpC,MAAM,QACtE3J,EAAU3C,SAAS2C,SAAWoH,QAAQ,wBAgD1C,IAA6B,mBAAlB4E,gBACTP,EAAmB,SAAShC,EAAKwC,EAAS3I,GAsBxC,QAAS9F,KACPyO,EAAQC,EAAIC,cAEd,QAASzI,KACPJ,EAAO4I,EAAIE,WAAa,KAAO3C,GAAO,aAzBxC,GAAIyC,GAAM,GAAIF,gBACVK,GAAa,EACbC,GAAY,CAChB,MAAM,mBAAqBJ,IAAM,CAE/B,GAAIK,GAAc,uBAAuBC,KAAK/C,EAC1C8C,KACFF,EAAaE,EAAY,KAAO9D,OAAOgE,SAAS1C,KAC5CwC,EAAY,KACdF,GAAcE,EAAY,KAAO9D,OAAOgE,SAAS5C,WAGlDwC,GAAuC,mBAAlBK,kBACxBR,EAAM,GAAIQ,gBACVR,EAAIS,OAASnP,EACb0O,EAAIU,QAAUlJ,EACdwI,EAAIW,UAAYnJ,EAChBwI,EAAIY,WAAa,aACjBZ,EAAIa,QAAU,EACdT,GAAY,GASdJ,EAAIc,mBAAqB,WACA,IAAnBd,EAAIe,aACa,MAAff,EAAIzM,QAAiC,GAAdyM,EAAIzM,QAAeyM,EAAIC,aAChD3O,IAEAkG,MAINwI,EAAIgB,KAAK,MAAOzD,GAAK,GAEjB6C,GACFd,WAAW,WACTU,EAAIiB,QACH,GAELjB,EAAIiB,KAAK,WAGR,CAAA,GAAsB,mBAAX/F,SAkBd,KAAM,IAAIjF,WAAU,sCAjBpB,IAAIiL,EACJ3B,GAAmB,SAAShC,EAAKwC,EAAS3I,GACxC,GAAwB,SAApBmG,EAAI8B,OAAO,EAAG,GAChB,KAAM,2DAKR,OAJA6B,GAAKA,GAAMhG,QAAQ,MACnBqC,EAAMA,EAAI8B,OAAO,GACbM,IACFpC,EAAMA,EAAIxL,QAAQ,MAAO,OACpBmP,EAAGC,SAAS5D,EAAK,SAASjD,EAAK8G,GACpC,MAAI9G,GACKlD,EAAOkD,OAEdyF,GAAQqB,EAAO,OAQvB,GAAIC,GAAe,SAASC,GAC1B,QAASD,GAAaxN,GAIpB,GAHAyN,EAASxO,KAAK8H,KAAM/G,OAGG,mBAAZ0M,WAA2BA,SAAS7C,KAAM,CACnD,GAAIA,GAAOvM,SAASoP,SAAS7C,KAAK6D,MAAM,KAAK,GAAGA,MAAM,KAAK,EAC3D3G,MAAK4G,QAAU9D,EAAK+D,UAAU,EAAG/D,EAAKkB,YAAY,KAAO,OAEtD,CAAA,GAAsB,mBAAXgB,WAA0BA,QAAQ8B,IAMhD,KAAM,IAAIzL,WAAU,yBALpB2E,MAAK4G,QAAU,QAAU5B,QAAQ8B,MAAQ,IACrC/B,IACF/E,KAAK4G,QAAU5G,KAAK4G,QAAQzP,QAAQ,MAAO,MAK/C6I,KAAK+G,OAAUC,IAAK,QAgJtB,MA7IAP,GAAa9O,UAA0B,OAAb+O,EAAoBA,EAAWO,SAASzO,UAClEiO,EAAajO,UAAYL,iBAA+B,OAAbuO,EAAoBA,EAASlO,UAAY,MAEpFZ,yBAAyB6O,EAAajO,UAAW,eAC/CR,MAAOyO,IAGT7O,yBAAyB6O,EAAajO,UAAW,UAC/CP,IAAK,WACH,MAAO6M,GAAYnD,OAAUiD,EAAWC,KAAOtO,UAGjD6K,YAAY,IAGdxJ,yBAAyB6O,EAAajO,UAAW,UAC/CP,IAAK,WAAa,OAAO,GACzBmJ,YAAY,IAGdxJ,yBAAyB6O,EAAajO,UAAW,aAC/CR,MAAO,SAASlB,EAAMoQ,GACpB,GAAmB,gBAARpQ,GACT,KAAM,IAAIuE,WAAU,+BAEtB,IAAI8L,GAAWrQ,EAAK6P,MAAM,IAE1B,IAAuB,GAAnBQ,EAAS7M,OACX,KAAM,IAAIe,WAAU,0BAGtB,IAAIlB,GAAI,EAEJiN,GAAM,EAENC,EAAU,CACd,IAAmB,KAAfF,EAAS,GAAW,CAEtB,GADAhN,IACIA,GAAKgN,EAAS7M,OAChB,KAAM,IAAIe,WAAU,wBAA0BvE,EAAO,IACvDsQ,IAAM,MAEH,CACH,KAAsB,MAAfD,EAAShN,IAEd,GADAA,IACIA,GAAKgN,EAAS7M,OAChB,KAAM,IAAIe,WAAU,wBAA0BvE,EAAO,IAErDqD,KACFiN,GAAM,GACRC,EAAUlN,EAGZ,IAAK,GAAIsC,GAAItC,EAAGsC,EAAI0K,EAAS7M,OAAQmC,IAAK,CACxC,GAAI6K,GAAUH,EAAS1K,EACvB,IAAe,IAAX6K,GAA4B,KAAXA,GAA6B,MAAXA,EACrC,KAAM,IAAIjM,WAAU,wBAA0BvE,EAAO,KAGzD,IAAKsQ,EACH,MAAOtQ,EAGT,EAAA,GAAIyQ,MACAC,GAAeN,GAAc,IAAIP,MAAM,IACvBa,GAAYlN,OAAS,EAAI+M,EAK7C,MAHAE,GAAkBA,EAAgB5L,OAAO6L,EAAYjK,OAAO,EAAGiK,EAAYlN,OAAS,EAAI+M,IACxFE,EAAkBA,EAAgB5L,OAAOwL,EAAS5J,OAAOpD,EAAGgN,EAAS7M,OAASH,IAEvEoN,EAAgB5D,KAAK,MAG9BvC,YAAY,EACZqG,UAAU,IAGZ7P,yBAAyB6O,EAAajO,UAAW,UAC/CR,MAAO,SAAStB,GACd,GAKoBgR,GALhB5Q,EAAOJ,EAAKI,KAKZ6Q,EAAY,EAGhB,KAAK,GAAIhN,KAAKqF,MAAK+G,MAAO,CACxB,GAAIa,GAAYjN,EAAEgM,MAAM,IACxB,IAAIiB,EAAUtN,OAAS,EACrB,KAAM,IAAIe,WAAU,2CAGtB,IAAwB,GAApBuM,EAAUtN,QACZ,GAAIxD,GAAQ6D,GAAKA,EAAEL,OAASqN,EAAUrN,OAAQ,CAC5CqN,EAAYhN,CACZ,YAME7D,GAAK2N,OAAO,EAAGmD,EAAU,GAAGtN,SAAWsN,EAAU,IAAM9Q,EAAK2N,OAAO3N,EAAKwD,OAASsN,EAAU,GAAGtN,SAAWsN,EAAU,KACrHD,EAAYhN,EACZ+M,EAAW5Q,EAAK2N,OAAOmD,EAAU,GAAGtN,OAAQxD,EAAKwD,OAASsN,EAAU,GAAGtN,OAASsN,EAAU,GAAGtN,SAKnG,GAAIuN,GAAU7H,KAAK+G,MAAMY,EAWzB,OAVID,KACFG,EAAUA,EAAQ1Q,QAAQ,IAAKuQ,IAM7B5C,IACF+C,EAAUA,EAAQ1Q,QAAQ,KAAM,QAE3B0M,EAAc7D,KAAK4G,QAASiB,IAGrCzG,YAAY,EACZqG,UAAU,IAGZ7P,yBAAyB6O,EAAajO,UAAW,SAC/CR,MAAO,SAAStB,GACd,GAAImO,GAAO7E,IACX,OAAO,IAAI9G,GAAQ,SAASY,EAAS0C,GACnCmI,EAAiBd,EAAcgB,EAAK+B,QAASlQ,EAAKY,SAAU,SAASkC,GACnEM,EAAQN,IACPgD,MAIP4E,YAAY,EACZqG,UAAU,IAGLhB,GACPlQ,SAASkM,gBAEP7L,EAAS,GAAI6P,EAUjB,IAPuB,gBAAZnE,WACTxF,OAAOwF,QAAU1L,GAEnBL,SAASK,OAASA,EAIdkO,GAAqD,mBAAjCZ,UAASI,qBAAqC,CACpE,GAAIwD,GAAY5D,SAASI,qBAAqB,SAC9CwD,GAAYA,EAAUA,EAAUxN,OAAS,GAoBb,aAAxB4J,SAASiC,WACXzB,WAAWN,GAEJF,SAAS6D,mBAChB7D,SAAS6D,iBAAiB,mBAAoB9D,GAAW,GACzDtC,OAAOoG,iBAAiB,OAAQ9D,GAAW,IAIzC6D,EAAUE,aAAa,cACzBrG,OAAOmG,EAAUE,aAAa,qBAgChB,mBAAVrG,QAAwBA,OAAsC,mBAArBC,mBACRiD,KAAOrC"} \ No newline at end of file diff --git a/dist/es6-module-loader-sans-promises.src.js b/dist/es6-module-loader-sans-promises.src.js index 59825df..c27a34c 100644 --- a/dist/es6-module-loader-sans-promises.src.js +++ b/dist/es6-module-loader-sans-promises.src.js @@ -1228,6 +1228,7 @@ function logloads(loads) { fetchTextFromURL = function(url, fulfill, reject) { var xhr = new XMLHttpRequest(); var sameDomain = true; + var doTimeout = false; if (!('withCredentials' in xhr)) { // check if same domain var domainCheck = /^(\w+:)?\/\/([^\/]+)/.exec(url); @@ -1242,10 +1243,9 @@ function logloads(loads) { xhr.onload = load; xhr.onerror = error; xhr.ontimeout = error; - // IE8/IE9 bug may hang requests unless all properties are defined. - // See: http://stackoverflow.com/a/9928073/3949247 xhr.onprogress = function() {}; xhr.timeout = 0; + doTimeout = true; } function load() { fulfill(xhr.responseText); @@ -1264,6 +1264,12 @@ function logloads(loads) { } }; xhr.open("GET", url, true); + + if (doTimeout) + setTimeout(function() { + xhr.send(); + }, 0); + xhr.send(null); } } diff --git a/dist/es6-module-loader.js b/dist/es6-module-loader.js index b1b3e6e..c9cc0f1 100644 --- a/dist/es6-module-loader.js +++ b/dist/es6-module-loader.js @@ -1,8 +1,8 @@ /* - * es6-module-loader v0.9.4 + * es6-module-loader v0.10.0 * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=0&&(o.splice(b,1),m("Handled previous rejection ["+a.id+"] "+c(a.value)))}function i(a,b){n.push(a,b),null===p&&(p=g(j,0))}function j(){for(p=null;n.length>0;)n.shift()(n.shift())}var k,l=f,m=f;"undefined"!=typeof console&&(k=console,l="undefined"!=typeof k.error?function(a){k.error(a)}:function(a){k.log(a)},m="undefined"!=typeof k.info?function(a){k.info(a)}:function(a){k.log(a)}),a.onPotentiallyUnhandledRejection=function(a){i(d,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){i(h,a)},a.onFatalRejection=function(a){i(e,a.value)};var n=[],o=[],p=null;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../env":5}],5:[function(b,c){!function(a){"use strict";a(function(a){function b(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick}function c(){return"function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver}function d(a){function b(){var a=c;c=void 0,a()}var c,d=document.createTextNode(""),e=new a(b);e.observe(d,{characterData:!0});var f=0;return function(a){c=a,d.data=f^=1}}var e,f="undefined"!=typeof setTimeout&&setTimeout,g=function(a,b){return setTimeout(a,b)},h=function(a){return clearTimeout(a)},i=function(a){return f(a,0)};if(b())i=function(a){return process.nextTick(a)};else if(e=c())i=d(e);else if(!f){var j=a,k=j("vertx");g=function(a,b){return k.setTimer(b,a)},h=k.cancelTimer,i=k.runOnLoop||k.runOnContext}return{setTimer:g,clearTimer:h,asap:i}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===t?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new v;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return I(a)?a:new b(t,new w(q(a)))}function e(a){return new b(t,new w(new z(a)))}function f(){return Z}function g(){return new b(t,new v)}function h(a,b){var c=new v(a.receiver,a.join().context);return new b(t,c)}function i(a){return k(S,null,a)}function j(a,b){return k(N,a,b)}function k(a,c,d){function e(b,e,g){g.resolved||l(d,f,b,a(c,e,b),g)}function f(a,b,c){k[a]=b,0===--j&&c.become(new y(k))}for(var g,h="function"==typeof c?e:f,i=new v,j=d.length>>>0,k=new Array(j),m=0;m0?b(c,f.value,e):(e.become(f),m(a,c+1,f))}else b(c,d,e)}function m(a,b,c){for(var d=b;dc&&a._unreport()}}function o(a){return"object"!=typeof a||null===a?e(new TypeError("non-iterable passed to race()")):0===a.length?f():1===a.length?d(a[0]):p(a)}function p(a){var c,d,e,f=new v;for(c=0;c0||"function"!=typeof b&&0>e)return new this.constructor(t,d);var f=this._beget(),g=f._handler;return d.chain(g,d.receiver,a,b,c),f},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){return h(this._handler,this.constructor)},b.all=i,b.race=o,b._traverse=j,b._visitRemaining=m,t.prototype.when=t.prototype.become=t.prototype.notify=t.prototype.fail=t.prototype._unreport=t.prototype._report=T,t.prototype._state=0,t.prototype.state=function(){return this._state},t.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},t.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},t.prototype.visit=function(a,b,c,d){this.chain(W,a,b,c,d)},t.prototype.fold=function(a,b,c,d){this.when(new H(a,b,c,d))},R(t,u),u.prototype.become=function(a){a.fail()};var W=new u;R(t,v),v.prototype._state=0,v.prototype.resolve=function(a){this.become(q(a))},v.prototype.reject=function(a){this.resolved||this.become(new z(a))},v.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=C();return a},v.prototype.run=function(){var a=this.consumers,b=this.join();this.consumers=void 0;for(var c=0;cf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,A.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");console.assert=console.assert||function(){};var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=x.prototype.newModule;!function(){function a(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}var b;x.prototype.parse=function(c){if(!b)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=this.traceurOptions||{};d.modules="instantiate",d.script=!1,d.sourceMaps=!0,d.filename=c.address;var e=new b.Compiler(d),f=a(c.source,e,d.filename);if(!f)throw new Error("Error evaluating module "+c.address);var g=e.getSourceMap();__global.btoa&&g&&(f+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(g)))+"\n"),f='var __moduleAddress = "'+c.address+'";'+f,__eval(f,__global,c)}}(),"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); +!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=0&&(o.splice(b,1),m("Handled previous rejection ["+a.id+"] "+c(a.value)))}function i(a,b){n.push(a,b),null===p&&(p=g(j,0))}function j(){for(p=null;n.length>0;)n.shift()(n.shift())}var k,l=f,m=f;"undefined"!=typeof console&&(k=console,l="undefined"!=typeof k.error?function(a){k.error(a)}:function(a){k.log(a)},m="undefined"!=typeof k.info?function(a){k.info(a)}:function(a){k.log(a)}),a.onPotentiallyUnhandledRejection=function(a){i(d,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){i(h,a)},a.onFatalRejection=function(a){i(e,a.value)};var n=[],o=[],p=null;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../env":5}],5:[function(b,c){!function(a){"use strict";a(function(a){function b(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick}function c(){return"function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver}function d(a){function b(){var a=c;c=void 0,a()}var c,d=document.createTextNode(""),e=new a(b);e.observe(d,{characterData:!0});var f=0;return function(a){c=a,d.data=f^=1}}var e,f="undefined"!=typeof setTimeout&&setTimeout,g=function(a,b){return setTimeout(a,b)},h=function(a){return clearTimeout(a)},i=function(a){return f(a,0)};if(b())i=function(a){return process.nextTick(a)};else if(e=c())i=d(e);else if(!f){var j=a,k=j("vertx");g=function(a,b){return k.setTimer(b,a)},h=k.cancelTimer,i=k.runOnLoop||k.runOnContext}return{setTimer:g,clearTimer:h,asap:i}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===t?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new v;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return I(a)?a:new b(t,new w(q(a)))}function e(a){return new b(t,new w(new z(a)))}function f(){return Z}function g(){return new b(t,new v)}function h(a,b){var c=new v(a.receiver,a.join().context);return new b(t,c)}function i(a){return k(S,null,a)}function j(a,b){return k(N,a,b)}function k(a,c,d){function e(b,e,g){g.resolved||l(d,f,b,a(c,e,b),g)}function f(a,b,c){k[a]=b,0===--j&&c.become(new y(k))}for(var g,h="function"==typeof c?e:f,i=new v,j=d.length>>>0,k=new Array(j),m=0;m0?b(c,f.value,e):(e.become(f),m(a,c+1,f))}else b(c,d,e)}function m(a,b,c){for(var d=b;dc&&a._unreport()}}function o(a){return"object"!=typeof a||null===a?e(new TypeError("non-iterable passed to race()")):0===a.length?f():1===a.length?d(a[0]):p(a)}function p(a){var c,d,e,f=new v;for(c=0;c0||"function"!=typeof b&&0>e)return new this.constructor(t,d);var f=this._beget(),g=f._handler;return d.chain(g,d.receiver,a,b,c),f},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){return h(this._handler,this.constructor)},b.all=i,b.race=o,b._traverse=j,b._visitRemaining=m,t.prototype.when=t.prototype.become=t.prototype.notify=t.prototype.fail=t.prototype._unreport=t.prototype._report=T,t.prototype._state=0,t.prototype.state=function(){return this._state},t.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},t.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},t.prototype.visit=function(a,b,c,d){this.chain(W,a,b,c,d)},t.prototype.fold=function(a,b,c,d){this.when(new H(a,b,c,d))},R(t,u),u.prototype.become=function(a){a.fail()};var W=new u;R(t,v),v.prototype._state=0,v.prototype.resolve=function(a){this.become(q(a))},v.prototype.reject=function(a){this.resolved||this.become(new z(a))},v.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=C();return a},v.prototype.run=function(){var a=this.consumers,b=this.join();this.consumers=void 0;for(var c=0;cf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,A.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");console.assert=console.assert||function(){};var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=x.prototype.newModule;!function(){function a(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}var b;x.prototype.parse=function(c){if(!b)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=this.traceurOptions||{};d.modules="instantiate",d.script=!1,d.sourceMaps=!0,d.filename=c.address;var e=new b.Compiler(d),f=a(c.source,e,d.filename);if(!f)throw new Error("Error evaluating module "+c.address);var g=e.getSourceMap();__global.btoa&&g&&(f+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(g)))+"\n"),f='var __moduleAddress = "'+c.address+'";'+f,__eval(f,__global,c)}}(),"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); //# sourceMappingURL=es6-module-loader.js.map \ No newline at end of file diff --git a/dist/es6-module-loader.js.map b/dist/es6-module-loader.js.map index b9d6116..ad1853d 100644 --- a/dist/es6-module-loader.js.map +++ b/dist/es6-module-loader.js.map @@ -1 +1 @@ -{"version":3,"file":"es6-module-loader.js","sources":["es6-module-loader.src.js"],"names":["e","exports","module","define","amd","window","Promise","global","self","t","n","r","s","o","u","a","require","i","Error","f","call","length",1,"unhandledRejections","PromiseConstructor","../lib/Promise","../lib/decorators/unhandledRejection",2,"makePromise","Scheduler","async","asap","scheduler","factory","./Scheduler","./env","./makePromise",3,"this","_async","_running","_queue","Array","_queueLen","_afterQueue","_afterQueueLen","drain","_drain","prototype","enqueue","task","run","afterQueue",4,"formatError","stack","formatObject","String","JSON","tryStringify","defaultValue","stringify","throwit","noop","setTimer","report","handled","reported","push","logError","id","value","unreport","indexOf","splice","logInfo","x","tasks","running","flush","shift","localConsole","console","error","log","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","../env",5,"isNode","process","nextTick","hasMutationObserver","MutationObserver","WebKitMutationObserver","initMutationObserver","scheduled","node","document","createTextNode","observe","characterData","data","MutationObs","capturedSetTimeout","setTimeout","ms","clearTimer","clearTimeout","vertxRequire","vertx","cancelTimer","runOnLoop","runOnContext",6,"environment","resolver","handler","_handler","Handler","init","promiseResolve","resolve","promiseReject","reason","reject","promiseNotify","notify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","begetFrom","parent","child","receiver","join","context","all","promises","traverseWith","snd","traverse","tryCatch2","tryMap","mapAt","resolved","traverseAt","settleAt","results","pending","become","Fulfilled","maybeThenable","h","getHandlerMaybeThenable","state","fold","visitRemaining","start","markAsHandled","visit","_unreport","race","TypeError","runRace","getHandlerUntrusted","untrustedThen","then","Thenable","FailIfRejected","inheritedContext","createContext","consumers","thenable","AssimilateTask","errorId","_report","ReportTask","UnreportTask","cycle","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","Fold","z","c","to","failIfRejected","runContinuation1","next","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","b","thisArg","y","inherit","Parent","Child","objectCreate","constructor","Object","create","proto","_defer","onFulfilled","onRejected","onProgress","p","_beget","chain","_traverse","_visitRemaining","when","fail","_state","fulfilled","rejected","progress","q","cont","foreverPendingHandler","_resolve","_reject","_notify","__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","message","address","$__Object$getPrototypeOf","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","get","$__Object$create","props","F","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","loaderObj","normalize","modules","l","loads","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","linkSet","createLinkSet","done","startingLoad","loadingCount","j","d","doLink","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","linkIndex","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","preventExtensions","msg","Loader","_loader","importPromises","createImportPromise","promise","m","assert","item","thisLen","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","doCompile","compiler","filename","compile","traceur","WorkerGlobalScope","traceurOptions","script","sourceMaps","Compiler","sourceMap","getSourceMap","btoa","unescape","encodeURIComponent","Reflect","LoaderPolyfill","parseURI","url","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","fetchTextFromURL","isWorker","isBrowser","isWindows","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"es6-module-loader.js","sources":["es6-module-loader.src.js"],"names":["e","exports","module","define","amd","window","Promise","global","self","t","n","r","s","o","u","a","require","i","Error","f","call","length",1,"unhandledRejections","PromiseConstructor","../lib/Promise","../lib/decorators/unhandledRejection",2,"makePromise","Scheduler","async","asap","scheduler","factory","./Scheduler","./env","./makePromise",3,"this","_async","_running","_queue","Array","_queueLen","_afterQueue","_afterQueueLen","drain","_drain","prototype","enqueue","task","run","afterQueue",4,"formatError","stack","formatObject","String","JSON","tryStringify","defaultValue","stringify","throwit","noop","setTimer","report","handled","reported","push","logError","id","value","unreport","indexOf","splice","logInfo","x","tasks","running","flush","shift","localConsole","console","error","log","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","../env",5,"isNode","process","nextTick","hasMutationObserver","MutationObserver","WebKitMutationObserver","initMutationObserver","scheduled","node","document","createTextNode","observe","characterData","data","MutationObs","capturedSetTimeout","setTimeout","ms","clearTimer","clearTimeout","vertxRequire","vertx","cancelTimer","runOnLoop","runOnContext",6,"environment","resolver","handler","_handler","Handler","init","promiseResolve","resolve","promiseReject","reason","reject","promiseNotify","notify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","begetFrom","parent","child","receiver","join","context","all","promises","traverseWith","snd","traverse","tryCatch2","tryMap","mapAt","resolved","traverseAt","settleAt","results","pending","become","Fulfilled","maybeThenable","h","getHandlerMaybeThenable","state","fold","visitRemaining","start","markAsHandled","visit","_unreport","race","TypeError","runRace","getHandlerUntrusted","untrustedThen","then","Thenable","FailIfRejected","inheritedContext","createContext","consumers","thenable","AssimilateTask","errorId","_report","ReportTask","UnreportTask","cycle","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","Fold","z","c","to","failIfRejected","runContinuation1","next","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","b","thisArg","y","inherit","Parent","Child","objectCreate","constructor","Object","create","proto","_defer","onFulfilled","onRejected","onProgress","p","_beget","chain","_traverse","_visitRemaining","when","fail","_state","fulfilled","rejected","progress","q","cont","foreverPendingHandler","_resolve","_reject","_notify","__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","message","address","$__Object$getPrototypeOf","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","get","$__Object$create","props","F","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","loaderObj","normalize","modules","l","loads","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","linkSet","createLinkSet","done","startingLoad","loadingCount","j","d","doLink","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","linkIndex","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","preventExtensions","msg","Loader","_loader","importPromises","createImportPromise","promise","m","assert","item","thisLen","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","doCompile","compiler","filename","compile","traceur","WorkerGlobalScope","traceurOptions","script","sourceMaps","Compiler","sourceMap","getSourceMap","btoa","unescape","encodeURIComponent","Reflect","LoaderPolyfill","parseURI","url","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","fetchTextFromURL","isWorker","isBrowser","isWindows","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6-module-loader.src.js b/dist/es6-module-loader.src.js index c3fc1a4..3114c25 100644 --- a/dist/es6-module-loader.src.js +++ b/dist/es6-module-loader.src.js @@ -2416,6 +2416,7 @@ function logloads(loads) { fetchTextFromURL = function(url, fulfill, reject) { var xhr = new XMLHttpRequest(); var sameDomain = true; + var doTimeout = false; if (!('withCredentials' in xhr)) { // check if same domain var domainCheck = /^(\w+:)?\/\/([^\/]+)/.exec(url); @@ -2430,10 +2431,9 @@ function logloads(loads) { xhr.onload = load; xhr.onerror = error; xhr.ontimeout = error; - // IE8/IE9 bug may hang requests unless all properties are defined. - // See: http://stackoverflow.com/a/9928073/3949247 xhr.onprogress = function() {}; xhr.timeout = 0; + doTimeout = true; } function load() { fulfill(xhr.responseText); @@ -2452,6 +2452,12 @@ function logloads(loads) { } }; xhr.open("GET", url, true); + + if (doTimeout) + setTimeout(function() { + xhr.send(); + }, 0); + xhr.send(null); } } diff --git a/src/system.js b/src/system.js index 505ecdd..fafd64d 100644 --- a/src/system.js +++ b/src/system.js @@ -64,6 +64,7 @@ fetchTextFromURL = function(url, fulfill, reject) { var xhr = new XMLHttpRequest(); var sameDomain = true; + var doTimeout = false; if (!('withCredentials' in xhr)) { // check if same domain var domainCheck = /^(\w+:)?\/\/([^\/]+)/.exec(url); @@ -78,10 +79,9 @@ xhr.onload = load; xhr.onerror = error; xhr.ontimeout = error; - // IE8/IE9 bug may hang requests unless all properties are defined. - // See: http://stackoverflow.com/a/9928073/3949247 xhr.onprogress = function() {}; xhr.timeout = 0; + doTimeout = true; } function load() { fulfill(xhr.responseText); @@ -100,6 +100,12 @@ } }; xhr.open("GET", url, true); + + if (doTimeout) + setTimeout(function() { + xhr.send(); + }, 0); + xhr.send(null); } } From 5ca6f565105ccdd814ee967be1c6fb1639f464fe Mon Sep 17 00:00:00 2001 From: Adam Stankiewicz Date: Sun, 30 Nov 2014 21:52:18 +0100 Subject: [PATCH 104/482] Mention how CommonJS and AMD treat circular dependencies --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index 9135c2a..76f0164 100644 --- a/README.md +++ b/README.md @@ -123,6 +123,8 @@ It is also possible to define wildcard paths rules. The most specific rule will ### Circular References & Bindings +All [AMD](http://requirejs.org/docs/api.html#circular), [CommonJS](http://nodejs.org/api/modules.html#modules_cycles), and [ES6](https://github.com/ModuleLoader/es6-module-loader#circular-references--bindings) treat circular dependencies differently. + Circular references and live bindings are fully supported identically to ES6 in this polyfill. That is: @@ -160,6 +162,8 @@ odd.js }); ``` +When using [SystemJS](https://github.com/systemjs/systemjs) loader, AMD and CommonJS preserve their own circular reference behavior. + ### Moving to Production When in production, it is not suitable to load ES6 modules and syntax in the browser. From c3902570ac79e117f1dea14d79796418b34564a7 Mon Sep 17 00:00:00 2001 From: Thai Pangsakulyanont Date: Thu, 4 Dec 2014 12:11:15 +0700 Subject: [PATCH 105/482] Add //# sourceURL along with source map. For some odd reason, Google Chrome requires sourceURL to be able to display source maps in stack traces correctly. --- src/loader.js | 4 +++- test/manual/source-maps/test.html | 13 +++++++++++++ test/manual/source-maps/test.js | 4 ++++ 3 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 test/manual/source-maps/test.html create mode 100644 test/manual/source-maps/test.js diff --git a/src/loader.js b/src/loader.js index 4cf51b4..177009b 100644 --- a/src/loader.js +++ b/src/loader.js @@ -1103,8 +1103,10 @@ function logloads(loads) { var sourceMap = compiler.getSourceMap(); - if (__global.btoa && sourceMap) + if (__global.btoa && sourceMap) { + source += '\n//# sourceURL=' + load.address + '!eval'; source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(sourceMap))) + '\n'; + } source = 'var __moduleAddress = "' + load.address + '";' + source; diff --git a/test/manual/source-maps/test.html b/test/manual/source-maps/test.html new file mode 100644 index 0000000..5de35a0 --- /dev/null +++ b/test/manual/source-maps/test.html @@ -0,0 +1,13 @@ + + + + +

Source Map Stack Trace Test

+ + + + diff --git a/test/manual/source-maps/test.js b/test/manual/source-maps/test.js new file mode 100644 index 0000000..1e88e56 --- /dev/null +++ b/test/manual/source-maps/test.js @@ -0,0 +1,4 @@ +export function make() { + return new Error('Hello') +} + From f8f2ff8983e81558ff7ae35148fc6b46635ec93d Mon Sep 17 00:00:00 2001 From: Thai Pangsakulyanont Date: Tue, 9 Dec 2014 21:03:47 +0700 Subject: [PATCH 106/482] Bump grunt-contrib-uglify to ~0.6.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d782c85..6f86c90 100644 --- a/package.json +++ b/package.json @@ -25,7 +25,7 @@ "grunt": "~0.4.1", "grunt-contrib-concat": "^0.5.0", "grunt-contrib-jshint": "~0.6.0", - "grunt-contrib-uglify": "~0.2.2", + "grunt-contrib-uglify": "~0.6.0", "grunt-esnext": "0.0.3", "grunt-string-replace": "^0.2.7" }, From 0d9fcf66ea8fdbde6b166384cfef1ea7004e17b0 Mon Sep 17 00:00:00 2001 From: Ian MacLeod Date: Wed, 10 Dec 2014 15:48:07 -0800 Subject: [PATCH 107/482] Use global System for script type="import" --- dist/es6-module-loader-sans-promises.js | 2 +- dist/es6-module-loader-sans-promises.js.map | 2 +- dist/es6-module-loader-sans-promises.src.js | 5 ++++- dist/es6-module-loader.js | 2 +- dist/es6-module-loader.js.map | 2 +- dist/es6-module-loader.src.js | 5 ++++- src/system.js | 5 ++++- 7 files changed, 16 insertions(+), 7 deletions(-) diff --git a/dist/es6-module-loader-sans-promises.js b/dist/es6-module-loader-sans-promises.js index ff4e0b0..a73e630 100644 --- a/dist/es6-module-loader-sans-promises.js +++ b/dist/es6-module-loader-sans-promises.js @@ -4,5 +4,5 @@ * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(__global){function __eval(__source,__global,load){var __curRegister=System.register;System.register=function(a,b,c){"string"!=typeof a&&(c=b,b=a),load.declare=c,load.depsList=b};try{eval('(function() { var __moduleName = "'+(load.name||"").replace('"','"')+'"; '+__source+" \n }).call(__global);")}catch(e){throw("SyntaxError"==e.name||"TypeError"==e.name)&&(e.message="Evaluating "+(load.name||load.address)+"\n "+e.message),e}System.register=__curRegister}$__Object$getPrototypeOf=Object.getPrototypeOf||function(a){return a.__proto__};var $__Object$defineProperty;!function(){try{Object.defineProperty({},"a",{})&&($__Object$defineProperty=Object.defineProperty)}catch(a){$__Object$defineProperty=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),$__Object$create=Object.create||function(a,b){function c(){}if(c.prototype=a,"object"==typeof b)for(prop in b)b.hasOwnProperty(prop)&&(c[prop]=b[prop]);return new c},function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new A(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:c&&c.metadata||{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new A(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return e=a(c),e.status="linked",e;for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,A.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");console.assert=console.assert||function(){};var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=x.prototype.newModule;!function(){function a(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}var b;x.prototype.parse=function(c){if(!b)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=this.traceurOptions||{};d.modules="instantiate",d.script=!1,d.sourceMaps=!0,d.filename=c.address;var e=new b.Compiler(d),f=a(c.source,e,d.filename);if(!f)throw new Error("Error evaluating module "+c.address);var g=e.getSourceMap();__global.btoa&&g&&(f+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(g)))+"\n"),f='var __moduleAddress = "'+c.address+'";'+f,__eval(f,__global,c)}}(),"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); +!function(__global){function __eval(__source,__global,load){var __curRegister=System.register;System.register=function(a,b,c){"string"!=typeof a&&(c=b,b=a),load.declare=c,load.depsList=b};try{eval('(function() { var __moduleName = "'+(load.name||"").replace('"','"')+'"; '+__source+" \n }).call(__global);")}catch(e){throw("SyntaxError"==e.name||"TypeError"==e.name)&&(e.message="Evaluating "+(load.name||load.address)+"\n "+e.message),e}System.register=__curRegister}$__Object$getPrototypeOf=Object.getPrototypeOf||function(a){return a.__proto__};var $__Object$defineProperty;!function(){try{Object.defineProperty({},"a",{})&&($__Object$defineProperty=Object.defineProperty)}catch(a){$__Object$defineProperty=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),$__Object$create=Object.create||function(a,b){function c(){}if(c.prototype=a,"object"==typeof b)for(prop in b)b.hasOwnProperty(prop)&&(c[prop]=b[prop]);return new c},function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new A(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:c&&c.metadata||{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new A(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return e=a(c),e.status="linked",e;for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,A.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");console.assert=console.assert||function(){};var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=x.prototype.newModule;!function(){function a(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}var b;x.prototype.parse=function(c){if(!b)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=this.traceurOptions||{};d.modules="instantiate",d.script=!1,d.sourceMaps=!0,d.filename=c.address;var e=new b.Compiler(d),f=a(c.source,e,d.filename);if(!f)throw new Error("Error evaluating module "+c.address);var g=e.getSourceMap();__global.btoa&&g&&(f+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(g)))+"\n"),f='var __moduleAddress = "'+c.address+'";'+f,__eval(f,__global,c)}}(),"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); //# sourceMappingURL=es6-module-loader-sans-promises.js.map \ No newline at end of file diff --git a/dist/es6-module-loader-sans-promises.js.map b/dist/es6-module-loader-sans-promises.js.map index e2f34ec..3bb1955 100644 --- a/dist/es6-module-loader-sans-promises.js.map +++ b/dist/es6-module-loader-sans-promises.js.map @@ -1 +1 @@ -{"version":3,"file":"es6-module-loader-sans-promises.js","sources":["es6-module-loader-sans-promises.src.js"],"names":["__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","e","message","address","$__Object$getPrototypeOf","Object","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","value","get","call","$__Object$create","create","o","props","F","prototype","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","Promise","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","resolve","loaderObj","normalize","then","modules","i","l","loads","length","push","proceedToLocate","proceedToFetch","locate","p","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","TypeError","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","all","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","linkSet","createLinkSet","done","startingLoad","loadingCount","reject","j","d","doLink","error","link","module","_newModule","evaluated","finishLoad","abrupt","addToError","failed","indexOf","linkIndex","splice","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","Error","preventExtensions","msg","Loader","this","_loader","importPromises","createImportPromise","promise","m","require","console","assert","Array","item","thisLen","constructor","define","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","doCompile","compiler","filename","compile","traceur","window","WorkerGlobalScope","traceurOptions","script","sourceMaps","Compiler","sourceMap","getSourceMap","btoa","unescape","encodeURIComponent","exports","Reflect","global","LoaderPolyfill","parseURI","url","String","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","join","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","document","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","setTimeout","fetchTextFromURL","isWorker","self","isBrowser","isWindows","process","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","data","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"es6-module-loader-sans-promises.js","sources":["es6-module-loader-sans-promises.src.js"],"names":["__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","e","message","address","$__Object$getPrototypeOf","Object","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","value","get","call","$__Object$create","create","o","props","F","prototype","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","Promise","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","resolve","loaderObj","normalize","then","modules","i","l","loads","length","push","proceedToLocate","proceedToFetch","locate","p","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","TypeError","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","all","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","linkSet","createLinkSet","done","startingLoad","loadingCount","reject","j","d","doLink","error","link","module","_newModule","evaluated","finishLoad","abrupt","addToError","failed","indexOf","linkIndex","splice","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","Error","preventExtensions","msg","Loader","this","_loader","importPromises","createImportPromise","promise","m","require","console","assert","Array","item","thisLen","constructor","define","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","doCompile","compiler","filename","compile","traceur","window","WorkerGlobalScope","traceurOptions","script","sourceMaps","Compiler","sourceMap","getSourceMap","btoa","unescape","encodeURIComponent","exports","Reflect","global","LoaderPolyfill","parseURI","url","String","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","join","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","document","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","setTimeout","fetchTextFromURL","isWorker","self","isBrowser","isWindows","process","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","data","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6-module-loader-sans-promises.src.js b/dist/es6-module-loader-sans-promises.src.js index c27a34c..c19d1b8 100644 --- a/dist/es6-module-loader-sans-promises.src.js +++ b/dist/es6-module-loader-sans-promises.src.js @@ -1484,7 +1484,10 @@ function logloads(loads) { var script = scripts[i]; if (script.type == 'module') { var source = script.innerHTML.substr(1); - System.module(source)['catch'](function(err) { setTimeout(function() { throw err; }); }); + // It is important to reference the global System, rather than the one + // in our closure. We want to ensure that downstream users/libraries + // can override System w/ custom behavior. + __global.System.module(source)['catch'](function(err) { setTimeout(function() { throw err; }); }); } } } diff --git a/dist/es6-module-loader.js b/dist/es6-module-loader.js index c9cc0f1..c8c99e0 100644 --- a/dist/es6-module-loader.js +++ b/dist/es6-module-loader.js @@ -4,5 +4,5 @@ * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=0&&(o.splice(b,1),m("Handled previous rejection ["+a.id+"] "+c(a.value)))}function i(a,b){n.push(a,b),null===p&&(p=g(j,0))}function j(){for(p=null;n.length>0;)n.shift()(n.shift())}var k,l=f,m=f;"undefined"!=typeof console&&(k=console,l="undefined"!=typeof k.error?function(a){k.error(a)}:function(a){k.log(a)},m="undefined"!=typeof k.info?function(a){k.info(a)}:function(a){k.log(a)}),a.onPotentiallyUnhandledRejection=function(a){i(d,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){i(h,a)},a.onFatalRejection=function(a){i(e,a.value)};var n=[],o=[],p=null;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../env":5}],5:[function(b,c){!function(a){"use strict";a(function(a){function b(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick}function c(){return"function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver}function d(a){function b(){var a=c;c=void 0,a()}var c,d=document.createTextNode(""),e=new a(b);e.observe(d,{characterData:!0});var f=0;return function(a){c=a,d.data=f^=1}}var e,f="undefined"!=typeof setTimeout&&setTimeout,g=function(a,b){return setTimeout(a,b)},h=function(a){return clearTimeout(a)},i=function(a){return f(a,0)};if(b())i=function(a){return process.nextTick(a)};else if(e=c())i=d(e);else if(!f){var j=a,k=j("vertx");g=function(a,b){return k.setTimer(b,a)},h=k.cancelTimer,i=k.runOnLoop||k.runOnContext}return{setTimer:g,clearTimer:h,asap:i}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===t?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new v;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return I(a)?a:new b(t,new w(q(a)))}function e(a){return new b(t,new w(new z(a)))}function f(){return Z}function g(){return new b(t,new v)}function h(a,b){var c=new v(a.receiver,a.join().context);return new b(t,c)}function i(a){return k(S,null,a)}function j(a,b){return k(N,a,b)}function k(a,c,d){function e(b,e,g){g.resolved||l(d,f,b,a(c,e,b),g)}function f(a,b,c){k[a]=b,0===--j&&c.become(new y(k))}for(var g,h="function"==typeof c?e:f,i=new v,j=d.length>>>0,k=new Array(j),m=0;m0?b(c,f.value,e):(e.become(f),m(a,c+1,f))}else b(c,d,e)}function m(a,b,c){for(var d=b;dc&&a._unreport()}}function o(a){return"object"!=typeof a||null===a?e(new TypeError("non-iterable passed to race()")):0===a.length?f():1===a.length?d(a[0]):p(a)}function p(a){var c,d,e,f=new v;for(c=0;c0||"function"!=typeof b&&0>e)return new this.constructor(t,d);var f=this._beget(),g=f._handler;return d.chain(g,d.receiver,a,b,c),f},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){return h(this._handler,this.constructor)},b.all=i,b.race=o,b._traverse=j,b._visitRemaining=m,t.prototype.when=t.prototype.become=t.prototype.notify=t.prototype.fail=t.prototype._unreport=t.prototype._report=T,t.prototype._state=0,t.prototype.state=function(){return this._state},t.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},t.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},t.prototype.visit=function(a,b,c,d){this.chain(W,a,b,c,d)},t.prototype.fold=function(a,b,c,d){this.when(new H(a,b,c,d))},R(t,u),u.prototype.become=function(a){a.fail()};var W=new u;R(t,v),v.prototype._state=0,v.prototype.resolve=function(a){this.become(q(a))},v.prototype.reject=function(a){this.resolved||this.become(new z(a))},v.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=C();return a},v.prototype.run=function(){var a=this.consumers,b=this.join();this.consumers=void 0;for(var c=0;cf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,A.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");console.assert=console.assert||function(){};var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=x.prototype.newModule;!function(){function a(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}var b;x.prototype.parse=function(c){if(!b)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=this.traceurOptions||{};d.modules="instantiate",d.script=!1,d.sourceMaps=!0,d.filename=c.address;var e=new b.Compiler(d),f=a(c.source,e,d.filename);if(!f)throw new Error("Error evaluating module "+c.address);var g=e.getSourceMap();__global.btoa&&g&&(f+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(g)))+"\n"),f='var __moduleAddress = "'+c.address+'";'+f,__eval(f,__global,c)}}(),"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); +!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=0&&(o.splice(b,1),m("Handled previous rejection ["+a.id+"] "+c(a.value)))}function i(a,b){n.push(a,b),null===p&&(p=g(j,0))}function j(){for(p=null;n.length>0;)n.shift()(n.shift())}var k,l=f,m=f;"undefined"!=typeof console&&(k=console,l="undefined"!=typeof k.error?function(a){k.error(a)}:function(a){k.log(a)},m="undefined"!=typeof k.info?function(a){k.info(a)}:function(a){k.log(a)}),a.onPotentiallyUnhandledRejection=function(a){i(d,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){i(h,a)},a.onFatalRejection=function(a){i(e,a.value)};var n=[],o=[],p=null;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../env":5}],5:[function(b,c){!function(a){"use strict";a(function(a){function b(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick}function c(){return"function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver}function d(a){function b(){var a=c;c=void 0,a()}var c,d=document.createTextNode(""),e=new a(b);e.observe(d,{characterData:!0});var f=0;return function(a){c=a,d.data=f^=1}}var e,f="undefined"!=typeof setTimeout&&setTimeout,g=function(a,b){return setTimeout(a,b)},h=function(a){return clearTimeout(a)},i=function(a){return f(a,0)};if(b())i=function(a){return process.nextTick(a)};else if(e=c())i=d(e);else if(!f){var j=a,k=j("vertx");g=function(a,b){return k.setTimer(b,a)},h=k.cancelTimer,i=k.runOnLoop||k.runOnContext}return{setTimer:g,clearTimer:h,asap:i}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===t?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new v;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return I(a)?a:new b(t,new w(q(a)))}function e(a){return new b(t,new w(new z(a)))}function f(){return Z}function g(){return new b(t,new v)}function h(a,b){var c=new v(a.receiver,a.join().context);return new b(t,c)}function i(a){return k(S,null,a)}function j(a,b){return k(N,a,b)}function k(a,c,d){function e(b,e,g){g.resolved||l(d,f,b,a(c,e,b),g)}function f(a,b,c){k[a]=b,0===--j&&c.become(new y(k))}for(var g,h="function"==typeof c?e:f,i=new v,j=d.length>>>0,k=new Array(j),m=0;m0?b(c,f.value,e):(e.become(f),m(a,c+1,f))}else b(c,d,e)}function m(a,b,c){for(var d=b;dc&&a._unreport()}}function o(a){return"object"!=typeof a||null===a?e(new TypeError("non-iterable passed to race()")):0===a.length?f():1===a.length?d(a[0]):p(a)}function p(a){var c,d,e,f=new v;for(c=0;c0||"function"!=typeof b&&0>e)return new this.constructor(t,d);var f=this._beget(),g=f._handler;return d.chain(g,d.receiver,a,b,c),f},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){return h(this._handler,this.constructor)},b.all=i,b.race=o,b._traverse=j,b._visitRemaining=m,t.prototype.when=t.prototype.become=t.prototype.notify=t.prototype.fail=t.prototype._unreport=t.prototype._report=T,t.prototype._state=0,t.prototype.state=function(){return this._state},t.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},t.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},t.prototype.visit=function(a,b,c,d){this.chain(W,a,b,c,d)},t.prototype.fold=function(a,b,c,d){this.when(new H(a,b,c,d))},R(t,u),u.prototype.become=function(a){a.fail()};var W=new u;R(t,v),v.prototype._state=0,v.prototype.resolve=function(a){this.become(q(a))},v.prototype.reject=function(a){this.resolved||this.become(new z(a))},v.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=C();return a},v.prototype.run=function(){var a=this.consumers,b=this.join();this.consumers=void 0;for(var c=0;cf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,A.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");console.assert=console.assert||function(){};var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=x.prototype.newModule;!function(){function a(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}var b;x.prototype.parse=function(c){if(!b)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=this.traceurOptions||{};d.modules="instantiate",d.script=!1,d.sourceMaps=!0,d.filename=c.address;var e=new b.Compiler(d),f=a(c.source,e,d.filename);if(!f)throw new Error("Error evaluating module "+c.address);var g=e.getSourceMap();__global.btoa&&g&&(f+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(g)))+"\n"),f='var __moduleAddress = "'+c.address+'";'+f,__eval(f,__global,c)}}(),"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); //# sourceMappingURL=es6-module-loader.js.map \ No newline at end of file diff --git a/dist/es6-module-loader.js.map b/dist/es6-module-loader.js.map index ad1853d..4cbe4d9 100644 --- a/dist/es6-module-loader.js.map +++ b/dist/es6-module-loader.js.map @@ -1 +1 @@ -{"version":3,"file":"es6-module-loader.js","sources":["es6-module-loader.src.js"],"names":["e","exports","module","define","amd","window","Promise","global","self","t","n","r","s","o","u","a","require","i","Error","f","call","length",1,"unhandledRejections","PromiseConstructor","../lib/Promise","../lib/decorators/unhandledRejection",2,"makePromise","Scheduler","async","asap","scheduler","factory","./Scheduler","./env","./makePromise",3,"this","_async","_running","_queue","Array","_queueLen","_afterQueue","_afterQueueLen","drain","_drain","prototype","enqueue","task","run","afterQueue",4,"formatError","stack","formatObject","String","JSON","tryStringify","defaultValue","stringify","throwit","noop","setTimer","report","handled","reported","push","logError","id","value","unreport","indexOf","splice","logInfo","x","tasks","running","flush","shift","localConsole","console","error","log","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","../env",5,"isNode","process","nextTick","hasMutationObserver","MutationObserver","WebKitMutationObserver","initMutationObserver","scheduled","node","document","createTextNode","observe","characterData","data","MutationObs","capturedSetTimeout","setTimeout","ms","clearTimer","clearTimeout","vertxRequire","vertx","cancelTimer","runOnLoop","runOnContext",6,"environment","resolver","handler","_handler","Handler","init","promiseResolve","resolve","promiseReject","reason","reject","promiseNotify","notify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","begetFrom","parent","child","receiver","join","context","all","promises","traverseWith","snd","traverse","tryCatch2","tryMap","mapAt","resolved","traverseAt","settleAt","results","pending","become","Fulfilled","maybeThenable","h","getHandlerMaybeThenable","state","fold","visitRemaining","start","markAsHandled","visit","_unreport","race","TypeError","runRace","getHandlerUntrusted","untrustedThen","then","Thenable","FailIfRejected","inheritedContext","createContext","consumers","thenable","AssimilateTask","errorId","_report","ReportTask","UnreportTask","cycle","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","Fold","z","c","to","failIfRejected","runContinuation1","next","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","b","thisArg","y","inherit","Parent","Child","objectCreate","constructor","Object","create","proto","_defer","onFulfilled","onRejected","onProgress","p","_beget","chain","_traverse","_visitRemaining","when","fail","_state","fulfilled","rejected","progress","q","cont","foreverPendingHandler","_resolve","_reject","_notify","__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","message","address","$__Object$getPrototypeOf","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","get","$__Object$create","props","F","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","loaderObj","normalize","modules","l","loads","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","linkSet","createLinkSet","done","startingLoad","loadingCount","j","d","doLink","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","linkIndex","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","preventExtensions","msg","Loader","_loader","importPromises","createImportPromise","promise","m","assert","item","thisLen","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","doCompile","compiler","filename","compile","traceur","WorkerGlobalScope","traceurOptions","script","sourceMaps","Compiler","sourceMap","getSourceMap","btoa","unescape","encodeURIComponent","Reflect","LoaderPolyfill","parseURI","url","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","fetchTextFromURL","isWorker","isBrowser","isWindows","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":";;;;;;CAAC,SAASA,GAAG,gBAAiBC,SAAQC,OAAOD,QAAQD,IAAI,kBAAmBG,SAAQA,OAAOC,IAAID,OAAOH,GAAG,mBAAoBK,QAAOA,OAAOC,QAAQN,IAAI,mBAAoBO,QAAOA,OAAOD,QAAQN,IAAI,mBAAoBQ,QAAOA,KAAKF,QAAQN,MAAM,WAAW,GAAIG,EAAsB,OAAO,SAAUH,GAAES,EAAEC,EAAEC,GAAG,QAASC,GAAEC,EAAEC,GAAG,IAAIJ,EAAEG,GAAG,CAAC,IAAIJ,EAAEI,GAAG,CAAC,GAAIE,GAAkB,kBAATC,UAAqBA,OAAQ,KAAIF,GAAGC,EAAE,MAAOA,GAAEF,GAAE,EAAI,IAAGI,EAAE,MAAOA,GAAEJ,GAAE,EAAI,MAAM,IAAIK,OAAM,uBAAuBL,EAAE,KAAK,GAAIM,GAAET,EAAEG,IAAIZ,WAAYQ,GAAEI,GAAG,GAAGO,KAAKD,EAAElB,QAAQ,SAASD,GAAG,GAAIU,GAAED,EAAEI,GAAG,GAAGb,EAAG,OAAOY,GAAEF,EAAEA,EAAEV,IAAImB,EAAEA,EAAElB,QAAQD,EAAES,EAAEC,EAAEC,GAAG,MAAOD,GAAEG,GAAGZ,QAAkD,IAAI,GAA1CgB,GAAkB,kBAATD,UAAqBA,QAAgBH,EAAE,EAAEA,EAAEF,EAAEU,OAAOR,IAAID,EAAED,EAAEE,GAAI,OAAOD,KAAKU,GAAG,SAASN,EAAQd,GAQ7sB,GAAIqB,GAAsBP,EAAQ,wCAC9BQ,EAAqBD,EAAoBP,EAAQ,kBAErDd,GAAOD,QAA2B,mBAAVM,QAAyBA,OAAOD,QAAUkB,EACnC,mBAAVhB,MAAyBA,KAAKF,QAAYkB,EACjDA,IAEXC,iBAAiB,EAAEC,uCAAuC,IAAIC,GAAG,SAASX,EAAQd,IAKrF,SAAUC,GAAU,YACpBA,GAAO,SAAUa,GAEhB,GAAIY,GAAcZ,EAAQ,iBACtBa,EAAYb,EAAQ,eACpBc,EAAQd,EAAQ,SAASe,IAE7B,OAAOH,IACNI,UAAW,GAAIH,GAAUC,QAIN,kBAAX3B,IAAyBA,EAAOC,IAAMD,EAAS,SAAU8B,GAAW/B,EAAOD,QAAUgC,EAAQjB,OAEpGkB,cAAc,EAAEC,QAAQ,EAAEC,gBAAgB,IAAIC,GAAG,SAASrB,EAAQd,IAKpE,SAASC,GAAU,YACpBA,GAAO,WAUN,QAAS0B,GAAUC,GAClBQ,KAAKC,OAAST,EACdQ,KAAKE,UAAW,EAEhBF,KAAKG,OAAS,GAAIC,OAAM,OACxBJ,KAAKK,UAAY,EACjBL,KAAKM,YAAc,GAAIF,OAAM,IAC7BJ,KAAKO,eAAiB,CAEtB,IAAIrC,GAAO8B,IACXA,MAAKQ,MAAQ,WACZtC,EAAKuC,UAkDP,MA1CAlB,GAAUmB,UAAUC,QAAU,SAASC,GACtCZ,KAAKG,OAAOH,KAAKK,aAAeO,EAChCZ,KAAKa,OAONtB,EAAUmB,UAAUI,WAAa,SAASF,GACzCZ,KAAKM,YAAYN,KAAKO,kBAAoBK,EAC1CZ,KAAKa,OAGNtB,EAAUmB,UAAUG,IAAM,WACpBb,KAAKE,WACTF,KAAKE,UAAW,EAChBF,KAAKC,OAAOD,KAAKQ,SAOnBjB,EAAUmB,UAAUD,OAAS,WAE5B,IADA,GAAI9B,GAAI,EACDA,EAAIqB,KAAKK,YAAa1B,EAC5BqB,KAAKG,OAAOxB,GAAGkC,MACfb,KAAKG,OAAOxB,GAAK,MAMlB,KAHAqB,KAAKK,UAAY,EACjBL,KAAKE,UAAW,EAEXvB,EAAI,EAAGA,EAAIqB,KAAKO,iBAAkB5B,EACtCqB,KAAKM,YAAY3B,GAAGkC,MACpBb,KAAKM,YAAY3B,GAAK,MAGvBqB,MAAKO,eAAiB,GAGhBhB,KAGY,kBAAX1B,IAAyBA,EAAOC,IAAMD,EAAS,SAAS8B,GAAW/B,EAAOD,QAAUgC,WAEvFoB,GAAG,SAASrC,EAAQd,IAKzB,SAASC,GAAU,YACpBA,GAAO,SAASa,GAuEf,QAASsC,GAAYtD,GACpB,GAAIY,GAAiB,gBAANZ,IAAkBA,EAAEuD,MAAQvD,EAAEuD,MAAQC,EAAaxD,EAClE,OAAOA,aAAakB,OAAQN,EAAIA,EAAI,6BAGrC,QAAS4C,GAAa3C,GACrB,GAAID,GAAI6C,OAAO5C,EAIf,OAHS,oBAAND,GAA2C,mBAAT8C,QACpC9C,EAAI+C,EAAa9C,EAAGD,IAEdA,EAGR,QAAS+C,GAAa3D,EAAG4D,GACxB,IACC,MAAOF,MAAKG,UAAU7D,GACrB,MAAMA,GAEP,MAAO4D,IAIT,QAASE,GAAQ9D,GAChB,KAAMA,GAGP,QAAS+D,MA/FT,GAAIC,GAAWhD,EAAQ,UAAUgD,QAEjC,OAAO,UAA4B1D,GAmClC,QAAS2D,GAAOtD,GACXA,EAAEuD,UACLC,EAASC,KAAKzD,GACd0D,EAAS,oCAAsC1D,EAAE2D,GAAK,KAAOhB,EAAY3C,EAAE4D,SAI7E,QAASC,GAAS7D,GACjB,GAAIM,GAAIkD,EAASM,QAAQ9D,EACtBM,IAAK,IACPkD,EAASO,OAAOzD,EAAG,GACnB0D,EAAQ,+BAAiChE,EAAE2D,GAAK,KAAOd,EAAa7C,EAAE4D,SAIxE,QAAStB,GAAQ9B,EAAGyD,GACnBC,EAAMT,KAAKjD,EAAGyD,GACC,OAAZE,IACFA,EAAUd,EAASe,EAAO,IAI5B,QAASA,KAER,IADAD,EAAU,KACJD,EAAMxD,OAAS,GACpBwD,EAAMG,QAAQH,EAAMG,SA3DtB,GAEIC,GAFAZ,EAAWN,EACXY,EAAUZ,CAGQ,oBAAZmB,WAITD,EAAeC,QACfb,EAAyC,mBAAvBY,GAAaE,MAC5B,SAAUnF,GAAKiF,EAAaE,MAAMnF,IAClC,SAAUA,GAAKiF,EAAaG,IAAIpF,IAEnC2E,EAAuC,mBAAtBM,GAAaI,KAC3B,SAAUrF,GAAKiF,EAAaI,KAAKrF,IACjC,SAAUA,GAAKiF,EAAaG,IAAIpF,KAGpCM,EAAQgF,gCAAkC,SAASC,GAClDtC,EAAQgB,EAAQsB,IAGjBjF,EAAQkF,uCAAyC,SAASD,GACzDtC,EAAQuB,EAAUe,IAGnBjF,EAAQmF,iBAAmB,SAASF,GACnCtC,EAAQa,EAASyB,EAAUhB,OAG5B,IAAIM,MACAV,KACAW,EAAU,IA+Bd,OAAOxE,OAgCW,kBAAXH,IAAyBA,EAAOC,IAAMD,EAAS,SAAS8B,GAAW/B,EAAOD,QAAUgC,EAAQjB,OAElG0E,SAAS,IAAIC,GAAG,SAAS3E,EAAQd,IAMnC,SAASC,GAAU,YACpBA,GAAO,SAASa,GAqCf,QAAS4E,KACR,MAA0B,mBAAZC,UAAuC,OAAZA,SACZ,kBAArBA,SAAQC,SAGjB,QAASC,KACR,MAAoC,kBAArBC,mBAAmCA,kBACd,kBAA3BC,yBAAyCA,uBAGnD,QAASC,GAAqBF,GAM7B,QAAS7C,KACR,GAAIhC,GAAIgF,CACRA,GAAY,OACZhF,IARD,GAAIgF,GACAC,EAAOC,SAASC,eAAe,IAC/BzF,EAAI,GAAImF,GAAiB7C,EAC7BtC,GAAE0F,QAAQH,GAAQI,eAAe,GAQjC,IAAIvF,GAAI,CACR,OAAO,UAAUE,GAChBgF,EAAYhF,EACZiF,EAAKK,KAAQxF,GAAK,GAtDpB,GAAIyF,GACAC,EAA2C,mBAAfC,aAA8BA,WAG1D5C,EAAW,SAAS7C,EAAG0F,GAAM,MAAOD,YAAWzF,EAAG0F,IAClDC,EAAa,SAASrG,GAAK,MAAOsG,cAAatG,IAC/CsB,EAAO,SAAUZ,GAAK,MAAOwF,GAAmBxF,EAAG,GAGvD,IAAIyE,IACH7D,EAAO,SAAUZ,GAAK,MAAO0E,SAAQC,SAAS3E,QAExC,IAAIuF,EAAcX,IACxBhE,EAAOmE,EAAqBQ,OAEtB,KAAKC,EAAoB,CAC/B,GAAIK,GAAehG,EACfiG,EAAQD,EAAa,QACzBhD,GAAW,SAAU7C,EAAG0F,GAAM,MAAOI,GAAMjD,SAAS6C,EAAI1F,IACxD2F,EAAaG,EAAMC,YACnBnF,EAAOkF,EAAME,WAAaF,EAAMG,aAGjC,OACCpD,SAAUA,EACV8C,WAAYA,EACZ/E,KAAMA,MAgCY,kBAAX5B,IAAyBA,EAAOC,IAAMD,EAAS,SAAS8B,GAAW/B,EAAOD,QAAUgC,EAAQjB,UAE/FqG,GAAG,SAASrG,EAAQd,IAKzB,SAASC,GAAU,YACpBA,GAAO,WAEN,MAAO,UAAqBmH,GAiB3B,QAAShH,GAAQiH,EAAUC,GAC1BlF,KAAKmF,SAAWF,IAAaG,EAAUF,EAAUG,EAAKJ,GAQvD,QAASI,GAAKJ,GAgBb,QAASK,GAAgBhD,GACxB4C,EAAQK,QAAQjD,GAOjB,QAASkD,GAAeC,GACvBP,EAAQQ,OAAOD,GAQhB,QAASE,GAAerD,GACvB4C,EAAQU,OAAOtD,GAjChB,GAAI4C,GAAU,GAAIW,EAElB,KACCZ,EAASK,EAAgBE,EAAeG,GACvC,MAAOjI,GACR8H,EAAc9H,GAGf,MAAOwH,GA4CR,QAASK,GAAQjD,GAChB,MAAOwD,GAAUxD,GAAKA,EACnB,GAAItE,GAAQoH,EAAS,GAAIW,GAAMC,EAAW1D,KAQ9C,QAASoD,GAAOpD,GACf,MAAO,IAAItE,GAAQoH,EAAS,GAAIW,GAAM,GAAIE,GAAS3D,KAOpD,QAAS4D,KACR,MAAOC,GAQR,QAASC,KACR,MAAO,IAAIpI,GAAQoH,EAAS,GAAIS,IAoDjC,QAASQ,GAAUC,EAAQtI,GAC1B,GAAIuI,GAAQ,GAAIV,GAAQS,EAAOE,SAAUF,EAAOG,OAAOC,QACvD,OAAO,IAAI1I,GAAQoH,EAASmB,GAgB7B,QAASI,GAAIC,GACZ,MAAOC,GAAaC,EAAK,KAAMF,GAUhC,QAASG,GAASlI,EAAG+H,GACpB,MAAOC,GAAaG,EAAWnI,EAAG+H,GAGnC,QAASC,GAAaI,EAAQpI,EAAG+H,GAwBhC,QAASM,GAAMvI,EAAG2D,EAAG2C,GAChBA,EAASkC,UACZC,EAAWR,EAAUS,EAAU1I,EAAGsI,EAAOpI,EAAGyD,EAAG3D,GAAIsG,GAIrD,QAASoC,GAAS1I,EAAG2D,EAAG2C,GACvBqC,EAAQ3I,GAAK2D,EACI,MAAZiF,GACJtC,EAASuC,OAAO,GAAIC,GAAUH,IA1BhC,IAAK,GAAWhF,GANZ4C,EAAuB,kBAANrG,GAAmBqI,EAAQG,EAE5CpC,EAAW,GAAIY,GACf0B,EAAUX,EAAS7H,SAAW,EAC9BuI,EAAU,GAAIlH,OAAMmH,GAEf5I,EAAI,EAAMA,EAAIiI,EAAS7H,SAAWkG,EAASkC,WAAYxI,EAC/D2D,EAAIsE,EAASjI,GAEH,SAAN2D,GAAkB3D,IAAKiI,GAK3BQ,EAAWR,EAAU1B,EAASvG,EAAG2D,EAAG2C,KAJjCsC,CAWJ,OAJe,KAAZA,GACFtC,EAASuC,OAAO,GAAIC,GAAUH,IAGxB,GAAItJ,GAAQoH,EAASH,GAgB7B,QAASmC,GAAWR,EAAU1B,EAASvG,EAAG2D,EAAG2C,GAC5C,GAAIyC,EAAcpF,GAAI,CACrB,GAAIqF,GAAIC,EAAwBtF,GAC5BhE,EAAIqJ,EAAEE,OAEA,KAANvJ,EACHqJ,EAAEG,KAAK5C,EAASvG,EAAG,OAAQsG,GACjB3G,EAAI,EACd4G,EAAQvG,EAAGgJ,EAAE1F,MAAOgD,IAEpBA,EAASuC,OAAOG,GAChBI,EAAenB,EAAUjI,EAAE,EAAGgJ,QAG/BzC,GAAQvG,EAAG2D,EAAG2C,GAKhB,QAAS8C,GAAenB,EAAUoB,EAAO9C,GACxC,IAAI,GAAIvG,GAAEqJ,EAAOrJ,EAAEiI,EAAS7H,SAAUJ,EACrCsJ,EAAcjC,EAAWY,EAASjI,IAAKuG,GAIzC,QAAS+C,GAAcN,EAAGzC,GACzB,GAAGyC,IAAMzC,EAAT,CAIA,GAAI5G,GAAIqJ,EAAEE,OACD,KAANvJ,EACFqJ,EAAEO,MAAMP,EAAG,OAAQA,EAAEQ,WACR,EAAJ7J,GACTqJ,EAAEQ,aAkBJ,QAASC,GAAKxB,GACb,MAAuB,gBAAbA,IAAsC,OAAbA,EAC3BlB,EAAO,GAAI2C,WAAU,kCAKF,IAApBzB,EAAS7H,OAAemH,IACP,IAApBU,EAAS7H,OAAewG,EAAQqB,EAAS,IACzC0B,EAAQ1B,GAGb,QAAS0B,GAAQ1B,GAChB,GACIjI,GAAG2D,EAAGqF,EADN1C,EAAW,GAAIY,EAEnB,KAAIlH,EAAE,EAAGA,EAAEiI,EAAS7H,SAAUJ,EAE7B,GADA2D,EAAIsE,EAASjI,GACH,SAAN2D,GAAkB3D,IAAKiI,GAA3B,CAKA,GADAe,EAAI3B,EAAW1D,GACE,IAAdqF,EAAEE,QAAe,CACnB5C,EAASuC,OAAOG,GAChBI,EAAenB,EAAUjI,EAAE,EAAGgJ,EAC9B,OAEAA,EAAEO,MAAMjD,EAAUA,EAASM,QAASN,EAASS,QAG/C,MAAO,IAAI1H,GAAQoH,EAASH,GAW7B,QAASe,GAAW1D,GACnB,MAAGwD,GAAUxD,GACLA,EAAE6C,SAASsB,OAEZiB,EAAcpF,GAAKiG,EAAoBjG,GAAK,GAAImF,GAAUnF,GASlE,QAASsF,GAAwBtF,GAChC,MAAOwD,GAAUxD,GAAKA,EAAE6C,SAASsB,OAAS8B,EAAoBjG,GAQ/D,QAASiG,GAAoBjG,GAC5B,IACC,GAAIkG,GAAgBlG,EAAEmG,IACtB,OAAgC,kBAAlBD,GACX,GAAIE,GAASF,EAAelG,GAC5B,GAAImF,GAAUnF,GAChB,MAAM5E,GACP,MAAO,IAAIuI,GAASvI,IAQtB,QAAS0H,MAmDT,QAASuD,MAcT,QAAS9C,GAAQW,EAAUoC,GAC1B5K,EAAQ6K,cAAc7I,KAAM4I,GAE5B5I,KAAK8I,UAAY,OACjB9I,KAAKwG,SAAWA,EAChBxG,KAAKkF,QAAU,OACflF,KAAKmH,UAAW,EAqGjB,QAASpB,GAAMb,GACdlF,KAAKkF,QAAUA,EAuBhB,QAASwD,GAASD,EAAMM,GACvBlD,EAAQ/G,KAAKkB,MACbuC,EAAM5B,QAAQ,GAAIqI,GAAeP,EAAMM,EAAU/I,OAUlD,QAASyH,GAAUnF,GAClBtE,EAAQ6K,cAAc7I,MACtBA,KAAKiC,MAAQK,EAsBd,QAAS2D,GAAS3D,GACjBtE,EAAQ6K,cAAc7I,MAEtBA,KAAKgC,KAAOiH,EACZjJ,KAAKiC,MAAQK,EACbtC,KAAK4B,SAAU,EACf5B,KAAK6B,UAAW,EAEhB7B,KAAKkJ,UAkCN,QAASC,GAAWlG,EAAWyD,GAC9B1G,KAAKiD,UAAYA,EACjBjD,KAAK0G,QAAUA,EAUhB,QAAS0C,GAAanG,GACrBjD,KAAKiD,UAAYA,EA0BlB,QAASoG,KACR,MAAO,IAAIpD,GAAS,GAAIoC,WAAU,kBASnC,QAASiB,GAAiBC,EAAcrE,GACvClF,KAAKuJ,aAAeA,EACpBvJ,KAAKkF,QAAUA,EAWhB,QAASsE,GAAavH,EAAOiD,GAC5BlF,KAAKkF,QAAUA,EACflF,KAAKiC,MAAQA,EAsBd,QAAS+G,GAAeP,EAAMM,EAAU9D,GACvCjF,KAAKyJ,MAAQhB,EACbzI,KAAK+I,SAAWA,EAChB/I,KAAKiF,SAAWA,EAYjB,QAASyE,GAAcjB,EAAMM,EAAUxD,EAASG,EAAQE,GACvD,IACC6C,EAAK3J,KAAKiK,EAAUxD,EAASG,EAAQE,GACpC,MAAOlI,GACRgI,EAAOhI,IAQT,QAASiM,GAAK9K,EAAG+K,EAAGC,EAAGC,GACtB9J,KAAKnB,EAAIA,EAAGmB,KAAK4J,EAAIA,EAAG5J,KAAK6J,EAAIA,EAAG7J,KAAK8J,GAAKA,EAC9C9J,KAAKiF,SAAW8E,EAChB/J,KAAKwG,SAAWxG,KAqBjB,QAAS8F,GAAUxD,GAClB,MAAOA,aAAatE,GASrB,QAAS0J,GAAcpF,GACtB,OAAqB,gBAANA,IAA+B,kBAANA,KAA2B,OAANA,EAG9D,QAAS0H,GAAiBnL,EAAG8I,EAAGnB,EAAUyD,GACzC,MAAgB,kBAANpL,GACFoL,EAAKzC,OAAOG,IAGpB3J,EAAQkM,aAAavC,GACrBwC,EAAetL,EAAG8I,EAAE1F,MAAOuE,EAAUyD,OACrCjM,GAAQoM,eAGT,QAASC,GAAiBxL,EAAGyD,EAAGqF,EAAGnB,EAAUyD,GAC5C,MAAgB,kBAANpL,GACFoL,EAAKzC,OAAOG,IAGpB3J,EAAQkM,aAAavC,GACrB2C,EAAgBzL,EAAGyD,EAAGqF,EAAE1F,MAAOuE,EAAUyD,OACzCjM,GAAQoM,eAMT,QAASG,GAAU1L,EAAGyD,EAAGqF,EAAGnB,EAAUyD,GACrC,MAAgB,kBAANpL,GACFoL,EAAKrE,OAAOtD,IAGpBtE,EAAQkM,aAAavC,GACrB6C,EAAe3L,EAAGyD,EAAGkE,EAAUyD,OAC/BjM,GAAQoM,eAGT,QAASpD,GAAUnI,EAAGJ,EAAGgM,GACxB,IACC,MAAO5L,GAAEJ,EAAGgM,GACX,MAAM/M,GACP,MAAOgI,GAAOhI,IAQhB,QAASyM,GAAetL,EAAGyD,EAAGoI,EAAST,GACtC,IACCA,EAAKzC,OAAOxB,EAAWnH,EAAEC,KAAK4L,EAASpI,KACtC,MAAM5E,GACPuM,EAAKzC,OAAO,GAAIvB,GAASvI,KAO3B,QAAS4M,GAAgBzL,EAAGyD,EAAGqI,EAAGD,EAAST,GAC1C,IACCpL,EAAEC,KAAK4L,EAASpI,EAAGqI,EAAGV,GACrB,MAAMvM,GACPuM,EAAKzC,OAAO,GAAIvB,GAASvI,KAQ3B,QAAS8M,GAAe3L,EAAGyD,EAAGoI,EAAST,GACtC,IACCA,EAAKrE,OAAO/G,EAAEC,KAAK4L,EAASpI,IAC3B,MAAM5E,GACPuM,EAAKrE,OAAOlI,IAId,QAASkN,GAAQC,EAAQC,GACxBA,EAAMpK,UAAYqK,EAAaF,EAAOnK,WACtCoK,EAAMpK,UAAUsK,YAAcF,EAG/B,QAAShE,GAAIxE,EAAGqI,GACf,MAAOA,GAGR,QAASlJ,MAp2BT,GAAIc,GAAQyC,EAAYtF,UAEpBqL,EAAeE,OAAOC,QACzB,SAASC,GACR,QAASL,MAET,MADAA,GAAMpK,UAAYyK,EACX,GAAIL,GA0Db9M,GAAQuH,QAAUA,EAClBvH,EAAQ0H,OAASA,EACjB1H,EAAQkI,MAAQA,EAEhBlI,EAAQoN,OAAShF,EACjBpI,EAAQmH,SAAWa,EAmDnBhI,EAAQ0C,UAAU+H,KAAO,SAAS4C,EAAaC,EAAYC,GAC1D,GAAIjF,GAAStG,KAAKmF,SACd0C,EAAQvB,EAAOG,OAAOoB,OAE1B,IAA4B,kBAAhBwD,IAA8BxD,EAAQ,GAC1B,kBAAfyD,IAAqC,EAARzD,EAErC,MAAO,IAAI7H,MAAKgL,YAAY5F,EAASkB,EAGtC,IAAIkF,GAAIxL,KAAKyL,SACTlF,EAAQiF,EAAErG,QAId,OAFAmB,GAAOoF,MAAMnF,EAAOD,EAAOE,SAAU6E,EAAaC,EAAYC,GAEvDC,GASRxN,EAAQ0C,UAAU,SAAW,SAAS4K,GACrC,MAAOtL,MAAKyI,KAAK,OAAQ6C,IAQ1BtN,EAAQ0C,UAAU+K,OAAS,WAC1B,MAAOpF,GAAUrG,KAAKmF,SAAUnF,KAAKgL,cAUtChN,EAAQ2I,IAAMA,EACd3I,EAAQoK,KAAOA,EACfpK,EAAQ2N,UAAY5E,EAgFpB/I,EAAQ4N,gBAAkB7D,EAkH1B3C,EAAQ1E,UAAUmL,KACfzG,EAAQ1E,UAAU8G,OAClBpC,EAAQ1E,UAAUkF,OAClBR,EAAQ1E,UAAUoL,KAClB1G,EAAQ1E,UAAUyH,UAClB/C,EAAQ1E,UAAUwI,QAClBzH,EAEH2D,EAAQ1E,UAAUqL,OAAS,EAE3B3G,EAAQ1E,UAAUmH,MAAQ,WACzB,MAAO7H,MAAK+L,QAQb3G,EAAQ1E,UAAU+F,KAAO,WAExB,IADA,GAAIkB,GAAI3H,KACY,SAAd2H,EAAEzC,SACPyC,EAAIA,EAAEzC,OAEP,OAAOyC,IAGRvC,EAAQ1E,UAAUgL,MAAQ,SAAS5B,EAAItD,EAAUwF,EAAWC,EAAUC,GACrElM,KAAK6L,MACJ5G,SAAU6E,EACVtD,SAAUA,EACVwF,UAAWA,EACXC,SAAUA,EACVC,SAAUA,KAIZ9G,EAAQ1E,UAAUwH,MAAQ,SAAS1B,EAAUwF,EAAWC,EAAUC,GACjElM,KAAK0L,MAAM3B,EAAgBvD,EAAUwF,EAAWC,EAAUC,IAG3D9G,EAAQ1E,UAAUoH,KAAO,SAASjJ,EAAG+K,EAAGC,EAAGC,GAC1C9J,KAAK6L,KAAK,GAAIlC,GAAK9K,EAAG+K,EAAGC,EAAGC,KAS7Bc,EAAQxF,EAASuD,GAEjBA,EAAejI,UAAU8G,OAAS,SAASG,GAC1CA,EAAEmE,OAGH,IAAI/B,GAAiB,GAAIpB,EAezBiC,GAAQxF,EAASS,GAEjBA,EAAQnF,UAAUqL,OAAS,EAE3BlG,EAAQnF,UAAU6E,QAAU,SAASjD,GACpCtC,KAAKwH,OAAOxB,EAAW1D,KAGxBuD,EAAQnF,UAAUgF,OAAS,SAASpD,GAChCtC,KAAKmH,UAIRnH,KAAKwH,OAAO,GAAIvB,GAAS3D,KAG1BuD,EAAQnF,UAAU+F,KAAO,WACxB,IAAKzG,KAAKmH,SACT,MAAOnH,KAKR,KAFA,GAAI2H,GAAI3H,KAEa,SAAd2H,EAAEzC,SAER,GADAyC,EAAIA,EAAEzC,QACFyC,IAAM3H,KACT,MAAOA,MAAKkF,QAAUmE,GAIxB,OAAO1B,IAGR9B,EAAQnF,UAAUG,IAAM,WACvB,GAAIsL,GAAInM,KAAK8I,UACT5D,EAAUlF,KAAKyG,MACnBzG,MAAK8I,UAAY,MAEjB,KAAK,GAAInK,GAAI,EAAGA,EAAIwN,EAAEpN,SAAUJ,EAC/BuG,EAAQ2G,KAAKM,EAAExN,KAIjBkH,EAAQnF,UAAU8G,OAAS,SAAStC,GAChClF,KAAKmH,WAIRnH,KAAKmH,UAAW,EAChBnH,KAAKkF,QAAUA,EACO,SAAnBlF,KAAK8I,WACPvG,EAAM5B,QAAQX,MAGK,SAAjBA,KAAK0G,SACPxB,EAAQgE,QAAQlJ,KAAK0G,WAIvBb,EAAQnF,UAAUmL,KAAO,SAAStC,GAC9BvJ,KAAKmH,SACP5E,EAAM5B,QAAQ,GAAI2I,GAAiBC,EAAcvJ,KAAKkF,UAEhC,SAAnBlF,KAAK8I,UACP9I,KAAK8I,WAAaS,GAElBvJ,KAAK8I,UAAUhH,KAAKyH,IAQvB1D,EAAQnF,UAAUkF,OAAS,SAAStD,GAC/BtC,KAAKmH,UACR5E,EAAM5B,QAAQ,GAAI6I,GAAalH,EAAGtC,QAIpC6F,EAAQnF,UAAUoL,KAAO,SAASpF,GACjC,GAAImD,GAAuB,mBAAZnD,GAA0B1G,KAAK0G,QAAUA,CACxD1G,MAAKmH,UAAYnH,KAAKkF,QAAQuB,OAAOqF,KAAKjC,IAG3ChE,EAAQnF,UAAUwI,QAAU,SAASxC,GACpC1G,KAAKmH,UAAYnH,KAAKkF,QAAQuB,OAAOyC,QAAQxC,IAG9Cb,EAAQnF,UAAUyH,UAAY,WAC7BnI,KAAKmH,UAAYnH,KAAKkF,QAAQuB,OAAO0B,aAYtCyC,EAAQxF,EAASW,GAEjBA,EAAMrF,UAAUmL,KAAO,SAAStC,GAC/BhH,EAAM5B,QAAQ,GAAI2I,GAAiBC,EAAcvJ,QAGlD+F,EAAMrF,UAAUwI,QAAU,SAASxC,GAClC1G,KAAKyG,OAAOyC,QAAQxC,IAGrBX,EAAMrF,UAAUyH,UAAY,WAC3BnI,KAAKyG,OAAO0B,aAcbyC,EAAQ/E,EAAS6C,GAYjBkC,EAAQxF,EAASqC,GAEjBA,EAAU/G,UAAUqL,OAAS,EAE7BtE,EAAU/G,UAAUoH,KAAO,SAASjJ,EAAG+K,EAAGC,EAAGC,GAC5CO,EAAiBxL,EAAG+K,EAAG5J,KAAM6J,EAAGC,IAGjCrC,EAAU/G,UAAUmL,KAAO,SAASO,GACnCpC,EAAiBoC,EAAKJ,UAAWhM,KAAMoM,EAAK5F,SAAU4F,EAAKnH,UAG5D,IAAIgE,GAAU,CAkBd2B,GAAQxF,EAASa,GAEjBA,EAASvF,UAAUqL,OAAS,GAE5B9F,EAASvF,UAAUoH,KAAO,SAASjJ,EAAG+K,EAAGC,EAAGC,GAC3CA,EAAGtC,OAAOxH,OAGXiG,EAASvF,UAAUmL,KAAO,SAASO,GACN,kBAAlBA,GAAKH,UACdjM,KAAKmI,YAEN6B,EAAiBoC,EAAKH,SAAUjM,KAAMoM,EAAK5F,SAAU4F,EAAKnH,WAG3DgB,EAASvF,UAAUwI,QAAU,SAASxC,GACrCnE,EAAMzB,WAAW,GAAIqI,GAAWnJ,KAAM0G,KAGvCT,EAASvF,UAAUyH,UAAY,WAC3BnI,KAAK4B,UAGR5B,KAAK4B,SAAU,EACfW,EAAMzB,WAAW,GAAIsI,GAAapJ,SAGnCiG,EAASvF,UAAUoL,KAAO,SAASpF,GAClC1I,EAAQmF,iBAAiBnD,KAAkB,SAAZ0G,EAAqB1G,KAAK0G,QAAUA,IAQpEyC,EAAWzI,UAAUG,IAAM,WACtBb,KAAKiD,UAAUrB,UAClB5B,KAAKiD,UAAUpB,UAAW,EAC1B7D,EAAQgF,gCAAgChD,KAAKiD,UAAWjD,KAAK0G,WAQ/D0C,EAAa1I,UAAUG,IAAM,WACzBb,KAAKiD,UAAUpB,UACjB7D,EAAQkF,uCAAuClD,KAAKiD,YAQtDjF,EAAQ6K,cACL7K,EAAQkM,aACRlM,EAAQoM,YACRpM,EAAQgF,gCACRhF,EAAQkF,uCACRlF,EAAQmF,iBACR1B,CAIH,IAAI4K,GAAwB,GAAIjH,GAC5Be,EAAwB,GAAInI,GAAQoH,EAASiH,EAyMjD,OAxLA/C,GAAiB5I,UAAUG,IAAM,WAChCb,KAAKkF,QAAQuB,OAAOoF,KAAK7L,KAAKuJ,eAY/BC,EAAa9I,UAAUG,IAAM,WAC5B,GAAIsL,GAAInM,KAAKkF,QAAQ4D,SACrB,IAAS,SAANqD,EAIH,IAAK,GAAItC,GAAGlL,EAAI,EAAGA,EAAIwN,EAAEpN,SAAUJ,EAClCkL,EAAIsC,EAAExN,GACN4L,EAAUV,EAAEqC,SAAUlM,KAAKiC,MAAOjC,KAAKkF,QAAS2E,EAAErD,SAAUqD,EAAE5E,WAiBhE+D,EAAetI,UAAUG,IAAM,WAI9B,QAASyL,GAAShK,GAAKqF,EAAEpC,QAAQjD,GACjC,QAASiK,GAAQjK,GAAMqF,EAAEjC,OAAOpD,GAChC,QAASkK,GAAQlK,GAAMqF,EAAE/B,OAAOtD,GALhC,GAAIqF,GAAI3H,KAAKiF,QACbyE,GAAc1J,KAAKyJ,MAAOzJ,KAAK+I,SAAUuD,EAAUC,EAASC,IAyB7D7C,EAAKjJ,UAAUsL,UAAY,SAAS1J,GACnCtC,KAAKnB,EAAEC,KAAKkB,KAAK6J,EAAG7J,KAAK4J,EAAGtH,EAAGtC,KAAK8J,KAGrCH,EAAKjJ,UAAUuL,SAAW,SAAS3J,GAClCtC,KAAK8J,GAAGpE,OAAOpD,IAGhBqH,EAAKjJ,UAAUwL,SAAW,SAAS5J,GAClCtC,KAAK8J,GAAGlE,OAAOtD,IA8GTtE,MAGW,kBAAXH,IAAyBA,EAAOC,IAAMD,EAAS,SAAS8B,GAAW/B,EAAOD,QAAUgC,gBAElF,IACV,KAGD,SAAU8M,UAq+CV,QAASC,QAAOC,SAAUF,SAAUG,MAElC,GAAIC,eAAgBC,OAAOC,QAC3BD,QAAOC,SAAW,SAASC,EAAMC,EAAMC,GAClB,gBAARF,KACTE,EAAUD,EACVA,EAAOD,GAITJ,KAAKM,QAAUA,EACfN,KAAKO,SAAWF,EAElB,KACEG,KAAK,sCAAwCR,KAAKI,MAAQ,IAAIK,QAAQ,IAAK,KAAQ,MAAQV,SAAW,0BAExG,MAAMjP,GAGJ,MAFc,eAAVA,EAAEsP,MAAmC,aAAVtP,EAAEsP,QAC/BtP,EAAE4P,QAAU,eAAiBV,KAAKI,MAAQJ,KAAKW,SAAW,MAAS7P,EAAE4P,SACjE5P,EAGRoP,OAAOC,SAAWF,cAz/CpBW,yBAA2BvC,OAAOwC,gBAAkB,SAASC,GAC3D,MAAOA,GAAIC,UAGb,IAAIC,2BACH,WACC,IACQ3C,OAAO4C,kBAAmB,UAC9BD,yBAA2B3C,OAAO4C,gBAEpC,MAAOnQ,GACPkQ,yBAA2B,SAAUF,EAAKI,EAAMC,GAC9C,IACEL,EAAII,GAAQC,EAAI9L,OAAS8L,EAAIC,IAAIlP,KAAK4O,GAExC,MAAMhQ,UAKZuQ,iBAAmBhD,OAAOC,QAAU,SAAS3M,EAAG2P,GAC9C,QAASC,MAGT,GAFAA,EAAEzN,UAAYnC,EAEQ,gBAAZ,GACR,IAAKuP,OAAQI,GACPA,EAAME,eAAe,QACvBD,EAAEL,MAAQI,EAAMJ,MAItB,OAAO,IAAIK,IA4Gb,WA8BE,QAASE,GAAWrB,GAClB,OACEsB,OAAQ,UACRtB,KAAMA,EACNuB,YACAC,gBACAC,aASJ,QAASC,GAAWC,EAAQ3B,EAAM4B,GAChC,MAAO,IAAI5Q,GAAQ6Q,GACjBC,KAAMF,EAAQrB,QAAU,QAAU,SAClCoB,OAAQA,EACRI,WAAY/B,EAEZgC,eAAgBJ,GAAWA,EAAQH,aACnCQ,aAAcL,EAAQM,OACtBC,cAAeP,EAAQrB,WAK3B,QAAS6B,GAAYT,EAAQU,EAASC,EAAaC,GAEjD,MAAO,IAAIvR,GAAQ,SAASuH,GAC1BA,EAAQoJ,EAAOa,UAAUC,UAAUJ,EAASC,EAAaC,MAG1D9G,KAAK,SAASuE,GACb,GAAIJ,EACJ,IAAI+B,EAAOe,QAAQ1C,GAKjB,MAJAJ,GAAOyB,EAAWrB,GAClBJ,EAAK0B,OAAS,SAGP1B,CAGT,KAAK,GAAIjO,GAAI,EAAGgR,EAAIhB,EAAOiB,MAAM7Q,OAAY4Q,EAAJhR,EAAOA,IAE9C,GADAiO,EAAO+B,EAAOiB,MAAMjR,GAChBiO,EAAKI,MAAQA,EAGjB,MAAOJ,EAQT,OALAA,GAAOyB,EAAWrB,GAClB2B,EAAOiB,MAAM9N,KAAK8K,GAElBiD,EAAgBlB,EAAQ/B,GAEjBA,IAKX,QAASiD,GAAgBlB,EAAQ/B,GAC/BkD,EAAenB,EAAQ/B,EACrB5O,EAAQuH,UAEPkD,KAAK,WACJ,MAAOkG,GAAOa,UAAUO,QAAS/C,KAAMJ,EAAKI,KAAMyB,SAAU7B,EAAK6B,cAMvE,QAASqB,GAAenB,EAAQ/B,EAAMpB,GACpCwE,EAAmBrB,EAAQ/B,EACzBpB,EAEC/C,KAAK,SAAS8E,GAEb,MAAmB,WAAfX,EAAK0B,QAET1B,EAAKW,QAAUA,EAERoB,EAAOa,UAAUS,OAAQjD,KAAMJ,EAAKI,KAAMyB,SAAU7B,EAAK6B,SAAUlB,QAASA,KAJnF,UAYN,QAASyC,GAAmBrB,EAAQ/B,EAAMpB,GACxCA,EAEC/C,KAAK,SAASyG,GACb,MAAmB,WAAftC,EAAK0B,OAEFK,EAAOa,UAAUU,WAAYlD,KAAMJ,EAAKI,KAAMyB,SAAU7B,EAAK6B,SAAUlB,QAASX,EAAKW,QAAS2B,OAAQA,IAF7G,SAMDzG,KAAK,SAASyG,GACb,MAAmB,WAAftC,EAAK0B,QAET1B,EAAKsC,OAASA,EACPP,EAAOa,UAAUW,aAAcnD,KAAMJ,EAAKI,KAAMyB,SAAU7B,EAAK6B,SAAUlB,QAASX,EAAKW,QAAS2B,OAAQA,KAH/G,SAODzG,KAAK,SAAS2H,GACb,GAAmB,WAAfxD,EAAK0B,OAAT,CAGA,GAA0B+B,SAAtBD,EACFxD,EAAKW,QAAUX,EAAKW,SAAW,wBAAyB+C,EAAU,IAGlE1D,EAAK2D,eAAgB,EAErB5B,EAAOa,UAAUgB,MAAM5D,OAEpB,CAAA,GAAgC,gBAArBwD,GAMd,KAAM/H,WAAU,mCALhBuE,GAAKO,SAAWiD,EAAkBnD,SAClCL,EAAK6D,QAAUL,EAAkBK,QACjC7D,EAAK2D,eAAgB,EAMvB3D,EAAK4B,eAIL,KAAK,GAHDrB,GAAWP,EAAKO,SAEhBuD,KACK/R,EAAI,EAAGgR,EAAIxC,EAASpO,OAAY4Q,EAAJhR,EAAOA,KAAK,SAAU0Q,EAASsB,GAClED,EAAa5O,KACXsN,EAAYT,EAAQU,EAASzC,EAAKI,KAAMJ,EAAKW,SAG5C9E,KAAK,SAASmI,GAab,GALAhE,EAAK4B,aAAamC,IAChBE,IAAKxB,EACLpN,MAAO2O,EAAQ5D,MAGK,UAAlB4D,EAAQtC,OAEV,IAAK,GADDC,GAAW3B,EAAK2B,SAASuC,WACpBnS,EAAI,EAAGgR,EAAIpB,EAASxP,OAAY4Q,EAAJhR,EAAOA,IAC1CoS,EAAiBxC,EAAS5P,GAAIiS,QAOrCzD,EAASxO,GAAIA,EAEhB,OAAOX,GAAQ2I,IAAI+J,MAIpBjI,KAAK,WAMJmE,EAAK0B,OAAS,QAGd,KAAK,GADDC,GAAW3B,EAAK2B,SAASuC,WACpBnS,EAAI,EAAGgR,EAAIpB,EAASxP,OAAY4Q,EAAJhR,EAAOA,IAC1CqS,EAAoBzC,EAAS5P,GAAIiO,KAIpC,SAAS,SAASqE,GAEjBrE,EAAK0B,OAAS,SACd1B,EAAKsE,UAAYD,CAGjB,KAAK,GADD1C,GAAW3B,EAAK2B,SAASuC,WACpBnS,EAAI,EAAGgR,EAAIpB,EAASxP,OAAY4Q,EAAJhR,EAAOA,IAC1CwS,EAAc5C,EAAS5P,GAAIiO,EAAMqE,KAUvC,QAASpC,GAA6BuC,GACpC,MAAO,UAAS7L,GACd,GAAIoJ,GAASyC,EAAUzC,OACnB3B,EAAOoE,EAAUrC,WACjBD,EAAOsC,EAAUtC,IAErB,IAAIH,EAAOe,QAAQ1C,GACjB,KAAM,IAAI3E,WAAU,IAAM2E,EAAO,uCAKnC,KAAK,GAAIrO,GAAI,EAAGgR,EAAIhB,EAAOiB,MAAM7Q,OAAY4Q,EAAJhR,EAAOA,IAC9C,GAAIgQ,EAAOiB,MAAMjR,GAAGqO,MAAQA,EAC1B,KAAM,IAAI3E,WAAU,IAAM2E,EAAO,oBAErC,IAAIJ,GAAOyB,EAAWrB,EAEtBJ,GAAK6B,SAAW2C,EAAUpC,cAE1B,IAAIqC,GAAUC,EAAc3C,EAAQ/B,EAEpC+B,GAAOiB,MAAM9N,KAAK8K,GAElBrH,EAAQ8L,EAAQE,MAEJ,UAARzC,EACFe,EAAgBlB,EAAQ/B,GAET,SAARkC,EACPgB,EAAenB,EAAQ/B,EAAM5O,EAAQuH,QAAQ6L,EAAUjC,iBAIvDvC,EAAKW,QAAU6D,EAAUjC,cACzBa,EAAmBrB,EAAQ/B,EAAM5O,EAAQuH,QAAQ6L,EAAUnC,iBAWjE,QAASqC,GAAc3C,EAAQ6C,GAC7B,GAAIH,IACF1C,OAAQA,EACRiB,SACA4B,aAAcA,EACdC,aAAc,EAOhB,OALAJ,GAAQE,KAAO,GAAIvT,GAAQ,SAASuH,EAASG,GAC3C2L,EAAQ9L,QAAUA,EAClB8L,EAAQ3L,OAASA,IAEnBqL,EAAiBM,EAASG,GACnBH,EAGT,QAASN,GAAiBM,EAASzE,GAGjC,IAAK,GAAIjO,GAAI,EAAGgR,EAAI0B,EAAQzB,MAAM7Q,OAAY4Q,EAAJhR,EAAOA,IAC/C,GAAI0S,EAAQzB,MAAMjR,IAAMiO,EACtB,MAEJyE,GAAQzB,MAAM9N,KAAK8K,GACnBA,EAAK2B,SAASzM,KAAKuP,GAGA,UAAfzE,EAAK0B,QACP+C,EAAQI,cAKV,KAAK,GAFD9C,GAAS0C,EAAQ1C,OAEZhQ,EAAI,EAAGgR,EAAI/C,EAAK4B,aAAazP,OAAY4Q,EAAJhR,EAAOA,IAAK,CACxD,GAAIqO,GAAOJ,EAAK4B,aAAa7P,GAAGsD,KAEhC,KAAI0M,EAAOe,QAAQ1C,GAGnB,IAAK,GAAI0E,GAAI,EAAGC,EAAIhD,EAAOiB,MAAM7Q,OAAY4S,EAAJD,EAAOA,IAC9C,GAAI/C,EAAOiB,MAAM8B,GAAG1E,MAAQA,EAA5B,CAGA+D,EAAiBM,EAAS1C,EAAOiB,MAAM8B,GACvC,SASN,QAASE,GAAOP,GACd,GAAIxO,IAAQ,CACZ,KACEgP,EAAKR,EAAS,SAASzE,EAAMqE,GAC3BE,EAAcE,EAASzE,EAAMqE,GAC7BpO,GAAQ,IAGZ,MAAMnF,GACJyT,EAAcE,EAAS,KAAM3T,GAC7BmF,GAAQ,EAEV,MAAOA,GAIT,QAASmO,GAAoBK,EAASzE,GAQpC,GAFAyE,EAAQI,iBAEJJ,EAAQI,aAAe,GAA3B,CAIA,GAAID,GAAeH,EAAQG,YAK3B,IAAIH,EAAQ1C,OAAOa,UAAUiB,WAAY,EAAO,CAE9C,IAAK,GADDb,MAAWkB,OAAOO,EAAQzB,OACrBjR,EAAI,EAAGgR,EAAIC,EAAM7Q,OAAY4Q,EAAJhR,EAAOA,IAAK,CAC5C,GAAIiO,GAAOgD,EAAMjR,EACjBiO,GAAKhP,OAAUgP,EAAK2D,eAGlBvD,KAAMJ,EAAKI,KACXpP,OAAQkU,MACRC,WAAW,IAJXnU,OAAQkU,OAMVlF,EAAK0B,OAAS,SACd0D,EAAWX,EAAQ1C,OAAQ/B,GAE7B,MAAOyE,GAAQ9L,QAAQiM,GAIzB,GAAIS,GAASL,EAAOP,EAEhBY,IAKJZ,EAAQ9L,QAAQiM,IAIlB,QAASL,GAAcE,EAASzE,EAAMqE,GACpC,GAAItC,GAAS0C,EAAQ1C,MAEjB0C,GAAQzB,MAAM,GAAG5C,MAAQJ,EAAKI,OAChCiE,EAAMiB,EAAWjB,EAAK,kBAAoBrE,EAAKI,KAAO,WAAaqE,EAAQzB,MAAM,GAAG5C,KAAO,SAAWqE,EAAQzB,MAAM,GAAGrC,SAAW,aAAe,OAEnJ0D,EAAMiB,EAAWjB,EAAK,kBAAoBrE,EAAKI,KAAO,SAAWJ,EAAKW,SAAW,aAAe,KAGhG,KAAK,GADDqC,GAAQyB,EAAQzB,MAAMkB,WACjBnS,EAAI,EAAGgR,EAAIC,EAAM7Q,OAAY4Q,EAAJhR,EAAOA,IAAK,CAC5C,GAAIiO,GAAOgD,EAAMjR,EAGjBgQ,GAAOa,UAAU2C,OAASxD,EAAOa,UAAU2C,WACQ,IAA/ChQ,EAAQrD,KAAK6P,EAAOa,UAAU2C,OAAQvF,IACxC+B,EAAOa,UAAU2C,OAAOrQ,KAAK8K,EAE/B,IAAIwF,GAAYjQ,EAAQrD,KAAK8N,EAAK2B,SAAU8C,EAG5C,IADAzE,EAAK2B,SAASnM,OAAOgQ,EAAW,GACJ,GAAxBxF,EAAK2B,SAASxP,OAAa,CAC7B,GAAIsT,GAAmBlQ,EAAQrD,KAAKuS,EAAQ1C,OAAOiB,MAAOhD,EAClC,KAApByF,GACFhB,EAAQ1C,OAAOiB,MAAMxN,OAAOiQ,EAAkB,IAGpDhB,EAAQ3L,OAAOuL,GAIjB,QAASe,GAAWrD,EAAQ/B,GAE1B,GAAI+B,EAAOa,UAAU8C,MAAO,CACrB3D,EAAOa,UAAUI,QACpBjB,EAAOa,UAAUI,SACnB,IAAI2C,KACJ3F,GAAK4B,aAAagE,QAAQ,SAASC,GACjCF,EAAOE,EAAI5B,KAAO4B,EAAIxQ,QAExB0M,EAAOa,UAAUI,MAAMhD,EAAKI,OAC1BA,KAAMJ,EAAKI,KACXC,KAAML,EAAK4B,aAAakE,IAAI,SAASD,GAAM,MAAOA,GAAI5B,MACtD0B,OAAQA,EACRhF,QAASX,EAAKW,QACdkB,SAAU7B,EAAK6B,SACfS,OAAQtC,EAAKsC,OACbyD,KAAM/F,EAAK2D,cAAgB,cAAgB,WAI3C3D,EAAKI,OAEP2B,EAAOe,QAAQ9C,EAAKI,MAAQJ,EAAKhP,OAEnC,IAAIgV,GAAYzQ,EAAQrD,KAAK6P,EAAOiB,MAAOhD,EAC1B,KAAbgG,GACFjE,EAAOiB,MAAMxN,OAAOwQ,EAAW,EACjC,KAAK,GAAIjU,GAAI,EAAGgR,EAAI/C,EAAK2B,SAASxP,OAAY4Q,EAAJhR,EAAOA,IAC/CiU,EAAYzQ,EAAQrD,KAAK8N,EAAK2B,SAAS5P,GAAGiR,MAAOhD,GAChC,IAAbgG,GACFhG,EAAK2B,SAAS5P,GAAGiR,MAAMxN,OAAOwQ,EAAW,EAE7ChG,GAAK2B,SAASnM,OAAO,EAAGwK,EAAK2B,SAASxP,QAUxC,QAAS8T,GAAmBjG,EAAMgD,EAAOkD,EAAQnE,GAK/C,GAJAmE,EAAOlG,EAAKmG,YAAcD,EAAOlG,EAAKmG,gBAIa,IAA/C5Q,EAAQrD,KAAKgU,EAAOlG,EAAKmG,YAAanG,GAA1C,CAIAkG,EAAOlG,EAAKmG,YAAYjR,KAAK8K,EAE7B,KAAK,GAAIjO,GAAI,EAAGgR,EAAIC,EAAM7Q,OAAY4Q,EAAJhR,EAAOA,IAIvC,IAAK,GAHDqU,GAAUpD,EAAMjR,GAGX+S,EAAI,EAAGA,EAAI9E,EAAK4B,aAAazP,OAAQ2S,IAC5C,GAAIsB,EAAQhG,MAAQJ,EAAK4B,aAAakD,GAAGzP,MAAO,CAM9C,GAAIgR,GAAoBrG,EAAKmG,YAAcC,EAAQzC,eAAiB3D,EAAK2D,cAGzE,IAA2BF,SAAvB2C,EAAQD,YAA4BC,EAAQD,WAAaE,EAAmB,CAG9E,GAAID,EAAQD,aACVD,EAAOE,EAAQD,YAAY3Q,OAAOD,EAAQrD,KAAKgU,EAAOE,EAAQD,YAAaC,GAAU,GAG5C,GAArCF,EAAOE,EAAQD,YAAYhU,QAC7B,KAAM,IAAIsJ,WAAU,kCAGxB2K,GAAQD,WAAaE,EAGvBJ,EAAmBG,EAASpD,EAAOkD,EAAQnE,KAMnD,QAASuE,GAAiB7B,EAASzE,EAAMuG,GACvC,IACE,GAAIvV,GAASgP,EAAK6D,UAEpB,MAAM/S,GAEJ,WADAyV,GAAUvG,EAAMlP,GAGlB,MAAKE,IAAYA,YAAkBwV,GAG1BxV,MAFPuV,GAAUvG,EAAM,GAAIvE,WAAU,4CAMlC,QAASwJ,GAAKR,EAAS8B,GAErB,GAAIxE,GAAS0C,EAAQ1C,MAErB,IAAK0C,EAAQzB,MAAM7Q,OAAnB,CAWA,GAAI+T,MACAtB,EAAeH,EAAQzB,MAAM,EACjC4B,GAAauB,WAAa,EAC1BF,EAAmBrB,EAAcH,EAAQzB,MAAOkD,EAAQnE,EAMxD,KAAK,GAHD0E,GAAsB7B,EAAajB,eAAiBuC,EAAO/T,OAAS,EAG/DJ,EAAImU,EAAO/T,OAAS,EAAGJ,GAAK,EAAGA,IAAK,CAE3C,IAAK,GADD2U,GAAQR,EAAOnU,GACV+S,EAAI,EAAGA,EAAI4B,EAAMvU,OAAQ2S,IAAK,CACrC,GAAI9E,GAAO0G,EAAM5B,EAGjB,IAAI2B,EACFE,EAAsB3G,EAAMyE,EAAQzB,MAAOjB,OAGxC,CACH,GAAI/Q,GAASsV,EAAiB7B,EAASzE,EAAMuG,EAC7C,KAAKvV,EACH,MACFgP,GAAKhP,QACHoP,KAAMJ,EAAKI,KACXpP,OAAQA,GAEVgP,EAAK0B,OAAS,SAEhB0D,EAAWrD,EAAQ/B,GAIrByG,GAAuBA,IAO3B,QAASG,GAAwBxG,EAAM2B,GACrC,GAAI8E,GAAgB9E,EAAO8E,aAC3B,OAAOA,GAAczG,KAAUyG,EAAczG,IAC3CA,KAAMA,EACNwB,gBACA5Q,OAAQ,GAAIwV,GACZM,eAKJ,QAASH,GAAsB3G,EAAMgD,EAAOjB,GAC1C,IAAI/B,EAAKhP,OAAT,CAGA,GAAIA,GAASgP,EAAKhP,OAAS4V,EAAwB5G,EAAKI,KAAM2B,GAC1DgF,EAAY/G,EAAKhP,OAAOA,OAExBgW,EAAgBhH,EAAKM,QAAQpO,KAAK2N,SAAU,SAASO,EAAM/K,GAI7DrE,EAAOiW,QAAS,EAChBF,EAAU3G,GAAQ/K,CAElB,KAAK,GAAItD,GAAI,EAAGgR,EAAI/R,EAAO8V,UAAU3U,OAAY4Q,EAAJhR,EAAOA,IAAK,CACvD,GAAImV,GAAiBlW,EAAO8V,UAAU/U,EACtC,KAAKmV,EAAeD,OAAQ,CAC1B,GAAIE,GAAgB5R,EAAQrD,KAAKgV,EAAetF,aAAc5Q,EAC9DkW,GAAeE,QAAQD,GAAeJ,IAK1C,MADA/V,GAAOiW,QAAS,EACT5R,GAITrE,GAAOoW,QAAUJ,EAAcI,QAC/BpW,EAAO6S,QAAUmD,EAAcnD,OAI/B,KAAK,GAAI9R,GAAI,EAAGgR,EAAI/C,EAAK4B,aAAazP,OAAY4Q,EAAJhR,EAAOA,IAAK,CACxD,GAAIsV,GAAUrH,EAAK4B,aAAa7P,GAAGsD,MAC/BiS,EAAYvF,EAAOe,QAAQuE,EAI/B,KAAKC,EAEH,IAAK,GAAIxC,GAAI,EAAGA,EAAI9B,EAAM7Q,OAAQ2S,IAC5B9B,EAAM8B,GAAG1E,MAAQiH,IAIhBrE,EAAM8B,GAAG9T,OAMZsW,EAAYV,EAAwBS,EAAStF,IAL7C4E,EAAsB3D,EAAM8B,GAAI9B,EAAOjB,GACvCuF,EAAYtE,EAAM8B,GAAG9T,QAUvBsW,GAAUR,WACZ9V,EAAO4Q,aAAa1M,KAAKoS,GACzBA,EAAUR,UAAU5R,KAAKlE,IAIzBA,EAAO4Q,aAAa1M,KAAK,MAIvBlE,EAAOoW,QAAQrV,IACjBf,EAAOoW,QAAQrV,GAAGuV,EAAUtW,QAGhCgP,EAAK0B,OAAS,UAYhB,QAAS6F,GAAqBxF,EAAQ/B,GAIpC,MADAwH,GAAkBxH,EAAKhP,UAAY+Q,GAC5B/B,EAAKhP,OAAOA,OAYrB,QAASyW,GAAUzW,GACjB,IACEA,EAAO6S,QAAQ3R,KAAK2N,UAEtB,MAAM/O,GACJ,MAAOA,IAMX,QAAS0W,GAAkBxW,EAAQ0W,EAAM3F,GACvC,GAAI4F,GAAMC,EAAgB5W,EAAQ0W,EAAM3F,EACxC,IAAI4F,EACF,KAAMA,GAGV,QAASC,GAAgB5W,EAAQ0W,EAAM3F,GACrC,IAAI/Q,EAAOmU,WAAcnU,EAAO4Q,aAAhC,CAGA8F,EAAKxS,KAAKlE,EAKV,KAAK,GAFD2W,GADAtH,EAAOrP,EAAO4Q,aAGT7P,EAAI,EAAGgR,EAAI1C,EAAKlO,OAAY4Q,EAAJhR,EAAOA,IAAK,CAC3C,GAAI8T,GAAMxF,EAAKtO,EAGf,IAAK8T,GAE0B,IAA3BtQ,EAAQrD,KAAKwV,EAAM7B,KACrB8B,EAAMC,EAAgB/B,EAAK6B,EAAM3F,IAI/B,MADA4F,GAAMrC,EAAWqC,EAAK,oBAAsB9B,EAAIzF,KAAO,MAM7D,GAAIpP,EAAOuU,OACT,MAAO,IAAIvT,OAAM,2BAEnB,KAAIhB,EAAOmU,UAgBX,MAbAnU,GAAOmU,WAAY,EACnBwC,EAAMF,EAAUzW,GACZ2W,EACF3W,EAAOuU,QAAS,EAETlH,OAAOwJ,mBAIdxJ,OAAOwJ,kBAAkB7W,EAAOA,QAGlCA,EAAO6S,QAAUJ,OACVkE,GAGT,QAASrC,GAAWqC,EAAKG,GAKvB,MAJIH,aAAe3V,OACjB2V,EAAIjH,QAAUoH,EAAMH,EAAIjH,QAExBiH,EAAMG,EAAMH,EACPA,EAMT,QAASI,GAAO/F,GACd,GAAsB,gBAAXA,GACT,KAAM,IAAIvG,WAAU,4BAElBuG,GAAQa,YACVzP,KAAKyP,UAAYb,EAAQa,WACvBb,EAAQmB,SACV/P,KAAK+P,OAASnB,EAAQmB,QACpBnB,EAAQqB,QACVjQ,KAAKiQ,MAAQrB,EAAQqB,OACnBrB,EAAQsB,YACVlQ,KAAKkQ,UAAYtB,EAAQsB,WACvBtB,EAAQuB,cACVnQ,KAAKmQ,YAAcvB,EAAQuB,aAE7BnQ,KAAK4U,SACHpF,UAAWxP,KACX4P,SACAF,WACAmF,kBACApB,kBAIF5F,EAAe7N,KAAM,UACnBgO,IAAK,WACH,MAAOvB,aAOb,QAAS2G,MAGT,QAAS0B,GAAoBnG,EAAQ3B,EAAM+H,GACzC,GAAIF,GAAiBlG,EAAOiG,QAAQC,cACpC,OAAOA,GAAe7H,GAAQ+H,EAAQtM,KAAK,SAASuM,GAElD,MADAH,GAAe7H,GAAQqD,OAChB2E,GACN,SAAStX,GAEV,KADAmX,GAAe7H,GAAQqD,OACjB3S,IAnyBV,GAAIM,GAAUyO,SAASzO,SAAWU,QAAQ,wBAC1CkE,SAAQqS,OAASrS,QAAQqS,QAAU,YAGnC,IAAI9S,GAAU/B,MAAMM,UAAUyB,SAAW,SAAS+S,GAChD,IAAK,GAAIvW,GAAI,EAAGwW,EAAUnV,KAAKjB,OAAYoW,EAAJxW,EAAaA,IAClD,GAAIqB,KAAKrB,KAAOuW,EACd,MAAOvW,EAGX,OAAO,IAELkP,EAAiBD,yBAyGjB0C,EAAU,CAkrBdqE,GAAOjU,WAELsK,YAAa2J,EAEb9W,OAAQ,SAASmP,EAAMkC,EAAQN,GAE7B,GAAI5O,KAAK4U,QAAQC,eAAe7H,GAC9B,KAAM,IAAI3E,WAAU,6BACtB,OAAOyM,GAAoB9U,KAAMgN,EAAM,GAAIhP,GAAQ6Q,GACjDC,KAAM,YACNH,OAAQ3O,KAAK4U,QACb7F,WAAY/B,EACZgC,eAAgBJ,GAAWA,EAAQH,aACnCQ,aAAcC,EACdC,cAAeP,GAAWA,EAAQrB,aAItC6H,SAAU,SAASpI,GACjB,MAAOhN,MAAK4U,QAAQlF,QAAQ1C,SAAehN,MAAK4U,QAAQlF,QAAQ1C,IAAQ,GAI1EgB,IAAK,SAAS6C,GACZ,MAAK7Q,MAAK4U,QAAQlF,QAAQmB,IAE1BuD,EAAkBpU,KAAK4U,QAAQlF,QAAQmB,MAAU7Q,MAC1CA,KAAK4U,QAAQlF,QAAQmB,GAAKjT,QAHjC,QAMFyX,IAAK,SAASrI,GACZ,QAAShN,KAAK4U,QAAQlF,QAAQ1C,IAGhCsI,SAAU,SAAStI,EAAM4B,GAEvB,GAAIY,GAAYxP,IAGhB,OAAOhC,GAAQuH,QAAQiK,EAAUC,UAAUzC,EAAM4B,GAAWA,EAAQ5B,KAAM4B,GAAWA,EAAQrB,UAC5F9E,KAAK,SAASuE,GACb,GAAI2B,GAASa,EAAUoF,OAEvB,OAAIjG,GAAOe,QAAQ1C,IACjBoH,EAAkBzF,EAAOe,QAAQ1C,MAAW2B,EAAOiG,SAC5CjG,EAAOe,QAAQ1C,GAAMpP,QAGvB+Q,EAAOkG,eAAe7H,IAAS8H,EAAoBtF,EAAWxC,EACnE0B,EAAWC,EAAQ3B,EAAM4B,OACxBnG,KAAK,SAASmE,GAEb,aADO+B,GAAOkG,eAAe7H,GACtBmH,EAAqBxF,EAAQ/B,SAM5CA,KAAM,SAASI,GACb,MAAIhN,MAAK4U,QAAQlF,QAAQ1C,IACvBoH,EAAkBpU,KAAK4U,QAAQlF,QAAQ1C,MAAWhN,KAAK4U,SAChD5W,EAAQuH,QAAQvF,KAAK4U,QAAQlF,QAAQ1C,GAAMpP,SAE7CoC,KAAK4U,QAAQC,eAAe7H,IAAS8H,EAAoB9U,KAAMgN,EAAM0B,EAAW1O,KAAK4U,QAAS5H,QAGvGpP,OAAQ,SAASsR,EAAQN,GACvB,GAAIhC,GAAOyB,GACXzB,GAAKW,QAAUqB,GAAWA,EAAQrB,OAClC,IAAI8D,GAAUC,EAActR,KAAK4U,QAAShI,GACtC2I,EAAgBvX,EAAQuH,QAAQ2J,GAChCP,EAAS3O,KAAK4U,QACdpJ,EAAI6F,EAAQE,KAAK9I,KAAK,WACxB,MAAO0L,GAAqBxF,EAAQ/B,IAGtC,OADAoD,GAAmBrB,EAAQ/B,EAAM2I,GAC1B/J,GAGTgK,UAAW,SAAU9H,GACnB,GAAkB,gBAAPA,GACT,KAAM,IAAIrF,WAAU,kBAItB,IAAI2M,GAAI,GAAI5B,EAEZ,KAAK,GAAIvC,KAAOnD,IACd,SAAWmD,GACThD,EAAemH,EAAGnE,GAChB4E,cAAc,EACdC,YAAY,EACZ1H,IAAK,WACH,MAAON,GAAImD,OAGdA,EAML,OAHI5F,QAAOwJ,mBACTxJ,OAAOwJ,kBAAkBO,GAEpBA,GAGTW,IAAK,SAAS3I,EAAMpP,GAClB,KAAMA,YAAkBwV,IACtB,KAAM,IAAI/K,WAAU,cAAgB2E,EAAO,6BAC7ChN,MAAK4U,QAAQlF,QAAQ1C,IACnBpP,OAAQA,IAQZ6R,UAAW,SAASzC,GAClB,MAAOA,IAGT+C,OAAQ,SAASnD,GACf,MAAOA,GAAKI,MAGdiD,MAAO,WACL,KAAM,IAAI5H,WAAU,0BAGtB6H,UAAW,SAAStD,GAClB,MAAOA,GAAKsC,QAEdsB,MAAO,WACL,KAAM,IAAInI,WAAU,oCAGtB8H,YAAa,aAIf,IAAI2B,GAAa6C,EAAOjU,UAAU8U,WAMlC,WAKE,QAASI,GAAU1G,EAAQ2G,EAAUC,GACnC,IACE,MAAOD,GAASE,QAAQ7G,EAAQ4G,GAElC,MAAMpY,GAEJ,KAAMA,GAAE,IARZ,GAAIsY,EAWJrB,GAAOjU,UAAU8P,MAAQ,SAAS5D,GAChC,IAAKoJ,EACH,GAAqB,mBAAVjY,SACoB,mBAArBkY,mBACRD,EAAUtX,QAAQ,eACf,CAAA,IAAI+N,SAASuJ,QAGhB,KAAM,IAAI3N,WAAU,4CAFpB2N,GAAUvJ,SAASuJ,QASvBpJ,EAAK2D,eAAgB,CAErB,IAAI3B,GAAU5O,KAAKkW,kBACnBtH,GAAQc,QAAU,cAClBd,EAAQuH,QAAS,EACjBvH,EAAQwH,YAAa,EACrBxH,EAAQkH,SAAWlJ,EAAKW,OAExB,IAAIsI,GAAW,GAAIG,GAAQK,SAASzH,GAEhCM,EAAS0G,EAAUhJ,EAAKsC,OAAQ2G,EAAUjH,EAAQkH,SAEtD,KAAK5G,EACH,KAAM,IAAItQ,OAAM,2BAA6BgO,EAAKW,QAEpD,IAAI+I,GAAYT,EAASU,cAErB9J,UAAS+J,MAAQF,IACnBpH,GAAU,uDAAyDsH,KAAKC,SAASC,mBAAmBJ,KAAe,MAErHpH,EAAS,0BAA4BtC,EAAKW,QAAU,KAAO2B,EAE3DxC,OAAOwC,EAAQzC,SAAUG,OAIN,gBAAZjP,WACTC,OAAOD,QAAUgX,GAEnBlI,SAASkK,QAAUlK,SAASkK,YAC5BlK,SAASkK,QAAQhC,OAASlI,SAASkK,QAAQhC,QAAUA,EACrDlI,SAASkK,QAAQ1Y,OAASwO,SAASkK,QAAQ1Y,QAAUwO,SACrDA,SAASmK,eAAiBjC,KAkB5B,WAQE,QAASkC,GAASC,GAChB,GAAI9B,GAAI7T,OAAO2V,GAAKzJ,QAAQ,aAAc,IAAI0J,MAAM,6GAEpD,OAAQ/B,IACNgC,KAAWhC,EAAE,IAAM,GACnBiC,SAAWjC,EAAE,IAAM,GACnBkC,UAAWlC,EAAE,IAAM,GACnBmC,KAAWnC,EAAE,IAAM,GACnBoC,SAAWpC,EAAE,IAAM,GACnBqC,KAAWrC,EAAE,IAAM,GACnBsC,SAAWtC,EAAE,IAAM,GACnBuC,OAAWvC,EAAE,IAAM,GACnBwC,KAAWxC,EAAE,IAAM,IACjB,KAGN,QAASyC,GAAkBC,GACzB,GAAIC,KAUJ,OATAD,GAAMrK,QAAQ,kBAAmB,IAC9BA,QAAQ,iBAAkB,KAC1BA,QAAQ,UAAW,QACnBA,QAAQ,aAAc,SAAU7B,GACrB,QAANA,EACFmM,EAAOC,MAEPD,EAAO7V,KAAK0J,KAEXmM,EAAOlR,KAAK,IAAI4G,QAAQ,MAA2B,MAApBqK,EAAMG,OAAO,GAAa,IAAM,IAGxE,QAASC,GAAcC,EAAMf,GAK3B,MAHAA,GAAOH,EAASG,GAAQ,IACxBe,EAAOlB,EAASkB,GAAQ,IAEhBf,GAASe,GAAef,EAAKC,UAAYc,EAAKd,WACnDD,EAAKC,UAAYD,EAAKE,UAAYF,EAAKE,UAAYa,EAAKb,WACzDO,EAAkBT,EAAKC,UAAYD,EAAKE,WAAyC,MAA5BF,EAAKM,SAASO,OAAO,GAAab,EAAKM,SAAYN,EAAKM,UAAaS,EAAKb,YAAca,EAAKT,SAAW,IAAM,IAAMS,EAAKT,SAASU,MAAM,EAAGD,EAAKT,SAASW,YAAY,KAAO,GAAKjB,EAAKM,SAAYS,EAAKT,WAC3PN,EAAKC,UAAYD,EAAKE,WAAaF,EAAKM,SAAWN,EAAKO,OAAUP,EAAKO,QAAUQ,EAAKR,QACvFP,EAAKQ,KAJiB,KAiQxB,QAASU,KACPnU,SAASoU,oBAAqB,mBAAoBD,GAAW,GAC7Dna,OAAOoa,oBAAqB,OAAQD,GAAW,GAC/CE,IAGF,QAASA,KAEP,IAAK,GADDC,GAAUtU,SAASuU,qBAAqB,UACnC3Z,EAAI,EAAGA,EAAI0Z,EAAQtZ,OAAQJ,IAAK,CACvC,GAAIwX,GAASkC,EAAQ1Z,EACrB,IAAmB,UAAfwX,EAAOoC,KAAkB,CAC3B,GAAIrJ,GAASiH,EAAOqC,UAAUC,OAAO,EACrC3L,GAAOlP,OAAOsR,GAAQ,SAAS,SAASqF,GAAOjQ,WAAW,WAAa,KAAMiQ,SAvTrF,GAiDImE,GAjDAC,EAA2B,mBAATza,OAAqD,mBAAtB+X,oBAAqC/X,eAAgB+X,mBACtG2C,EAA6B,mBAAV7a,UAA0B4a,EAC7CE,EAA8B,mBAAXtV,YAA4BA,QAAQuV,SAAS/B,MAAM,QACtE/Y,EAAUyO,SAASzO,SAAWU,QAAQ,wBAgD1C,IAA6B,mBAAlBqa,gBACTL,EAAmB,SAAS5B,EAAKkC,EAAStT,GAsBxC,QAASkH,KACPoM,EAAQC,EAAIC,cAEd,QAASrW,KACP6C,EAAOuT,EAAIE,WAAa,KAAOrC,GAAO,aAzBxC,GAAImC,GAAM,GAAIF,gBACVK,GAAa,EACbC,GAAY,CAChB,MAAM,mBAAqBJ,IAAM,CAE/B,GAAIK,GAAc,uBAAuBC,KAAKzC,EAC1CwC,KACFF,EAAaE,EAAY,KAAOvb,OAAOyb,SAASrC,KAC5CmC,EAAY,KACdF,GAAcE,EAAY,KAAOvb,OAAOyb,SAASvC,WAGlDmC,GAAuC,mBAAlBK,kBACxBR,EAAM,GAAIQ,gBACVR,EAAIS,OAAS9M,EACbqM,EAAIU,QAAU9W,EACdoW,EAAIW,UAAY/W,EAChBoW,EAAIY,WAAa,aACjBZ,EAAIa,QAAU,EACdT,GAAY,GASdJ,EAAIc,mBAAqB,WACA,IAAnBd,EAAIe,aACa,MAAff,EAAI3K,QAAiC,GAAd2K,EAAI3K,QAAe2K,EAAIC,aAChDtM,IAEA/J,MAINoW,EAAIgB,KAAK,MAAOnD,GAAK,GAEjBuC,GACF/U,WAAW,WACT2U,EAAIiB,QACH,GAELjB,EAAIiB,KAAK,WAGR,CAAA,GAAsB,mBAAXxb,SAkBd,KAAM,IAAI2J,WAAU,sCAjBpB,IAAI8R,EACJzB,GAAmB,SAAS5B,EAAKkC,EAAStT,GACxC,GAAwB,SAApBoR,EAAI2B,OAAO,EAAG,GAChB,KAAM,2DAKR,OAJA0B,GAAKA,GAAMzb,QAAQ,MACnBoY,EAAMA,EAAI2B,OAAO,GACbI,IACF/B,EAAMA,EAAIzJ,QAAQ,MAAO,OACpB8M,EAAGC,SAAStD,EAAK,SAASvC,EAAKpQ,GACpC,MAAIoQ,GACK7O,EAAO6O,OAEdyE,GAAQ7U,EAAO,OAQvB,GAAIkW,GAAe,SAASC,GAC1B,QAASD,GAAazL,GAIpB,GAHA0L,EAASxb,KAAKkB,KAAM4O,OAGG,mBAAZ4K,WAA2BA,SAASxC,KAAM,CACnD,GAAIA,GAAOvK,SAAS+M,SAASxC,KAAKuD,MAAM,KAAK,GAAGA,MAAM,KAAK,EAC3Dva,MAAKwa,QAAUxD,EAAKyD,UAAU,EAAGzD,EAAKiB,YAAY,KAAO,OAEtD,CAAA,GAAsB,mBAAX1U,WAA0BA,QAAQmX,IAMhD,KAAM,IAAIrS,WAAU,yBALpBrI,MAAKwa,QAAU,QAAUjX,QAAQmX,MAAQ,IACrC7B,IACF7Y,KAAKwa,QAAUxa,KAAKwa,QAAQnN,QAAQ,MAAO,MAK/CrN,KAAK2a,OAAUC,IAAK,QAgJtB,MA7IAP,GAAa1M,UAA0B,OAAb2M,EAAoBA,EAAWO,SAASna,UAClE2Z,EAAa3Z,UAAYuN,iBAA+B,OAAbqM,EAAoBA,EAAS5Z,UAAY,MAEpFkN,yBAAyByM,EAAa3Z,UAAW,eAC/CuB,MAAOoY,IAGTzM,yBAAyByM,EAAa3Z,UAAW,UAC/CsN,IAAK,WACH,MAAO4K,GAAY7a,OAAU4a,EAAWza,KAAOuO,UAGjDiJ,YAAY,IAGd9H,yBAAyByM,EAAa3Z,UAAW,UAC/CsN,IAAK,WAAa,OAAO,GACzB0H,YAAY,IAGd9H,yBAAyByM,EAAa3Z,UAAW,aAC/CuB,MAAO,SAAS+K,EAAM8N,GACpB,GAAmB,gBAAR9N,GACT,KAAM,IAAI3E,WAAU,+BAEtB,IAAI0S,GAAW/N,EAAKuN,MAAM,IAE1B,IAAuB,GAAnBQ,EAAShc,OACX,KAAM,IAAIsJ,WAAU,0BAGtB,IAAI1J,GAAI,EAEJqc,GAAM,EAENC,EAAU,CACd,IAAmB,KAAfF,EAAS,GAAW,CAEtB,GADApc,IACIA,GAAKoc,EAAShc,OAChB,KAAM,IAAIsJ,WAAU,wBAA0B2E,EAAO,IACvDgO,IAAM,MAEH,CACH,KAAsB,MAAfD,EAASpc,IAEd,GADAA,IACIA,GAAKoc,EAAShc,OAChB,KAAM,IAAIsJ,WAAU,wBAA0B2E,EAAO,IAErDrO,KACFqc,GAAM,GACRC,EAAUtc,EAGZ,IAAK,GAAI+S,GAAI/S,EAAG+S,EAAIqJ,EAAShc,OAAQ2S,IAAK,CACxC,GAAIwJ,GAAUH,EAASrJ,EACvB,IAAe,IAAXwJ,GAA4B,KAAXA,GAA6B,MAAXA,EACrC,KAAM,IAAI7S,WAAU,wBAA0B2E,EAAO,KAGzD,IAAKgO,EACH,MAAOhO,EAGT,EAAA,GAAImO,MACAC,GAAeN,GAAc,IAAIP,MAAM,IACvBa,GAAYrc,OAAS,EAAIkc,EAK7C,MAHAE,GAAkBA,EAAgBrK,OAAOsK,EAAYhZ,OAAO,EAAGgZ,EAAYrc,OAAS,EAAIkc,IACxFE,EAAkBA,EAAgBrK,OAAOiK,EAAS3Y,OAAOzD,EAAGoc,EAAShc,OAASJ,IAEvEwc,EAAgB1U,KAAK,MAG9BiP,YAAY,EACZ2F,UAAU,IAGZzN,yBAAyByM,EAAa3Z,UAAW,UAC/CuB,MAAO,SAAS2K,GACd,GAKoB0O,GALhBtO,EAAOJ,EAAKI,KAKZuO,EAAY,EAGhB,KAAK,GAAI/P,KAAKxL,MAAK2a,MAAO,CACxB,GAAIa,GAAYhQ,EAAE+O,MAAM,IACxB,IAAIiB,EAAUzc,OAAS,EACrB,KAAM,IAAIsJ,WAAU,2CAGtB,IAAwB,GAApBmT,EAAUzc,QACZ,GAAIiO,GAAQxB,GAAKA,EAAEzM,OAASwc,EAAUxc,OAAQ,CAC5Cwc,EAAY/P,CACZ,YAMEwB,GAAKyL,OAAO,EAAG+C,EAAU,GAAGzc,SAAWyc,EAAU,IAAMxO,EAAKyL,OAAOzL,EAAKjO,OAASyc,EAAU,GAAGzc,SAAWyc,EAAU,KACrHD,EAAY/P,EACZ8P,EAAWtO,EAAKyL,OAAO+C,EAAU,GAAGzc,OAAQiO,EAAKjO,OAASyc,EAAU,GAAGzc,OAASyc,EAAU,GAAGzc,SAKnG,GAAI0c,GAAUzb,KAAK2a,MAAMY,EAWzB,OAVID,KACFG,EAAUA,EAAQpO,QAAQ,IAAKiO,IAM7B1C,IACF6C,EAAUA,EAAQpO,QAAQ,KAAM,QAE3ByK,EAAc9X,KAAKwa,QAASiB,IAGrC/F,YAAY,EACZ2F,UAAU,IAGZzN,yBAAyByM,EAAa3Z,UAAW,SAC/CuB,MAAO,SAAS2K,GACd,GAAI1O,GAAO8B,IACX,OAAO,IAAIhC,GAAQ,SAASuH,EAASG,GACnCgT,EAAiBZ,EAAc5Z,EAAKsc,QAAS5N,EAAKW,SAAU,SAAS2B,GACnE3J,EAAQ2J,IACPxJ,MAIPgQ,YAAY,EACZ2F,UAAU,IAGLhB,GACP5N,SAASmK,gBAEP9J,EAAS,GAAIuN,EAUjB,IAPuB,gBAAZ1c,WACTC,OAAOD,QAAUmP,GAEnBL,SAASK,OAASA,EAId8L,GAAqD,mBAAjC7U,UAASuU,qBAAqC,CACpE,GAAIoD,GAAY3X,SAASuU,qBAAqB,SAC9CoD,GAAYA,EAAUA,EAAU3c,OAAS,GAoBb,aAAxBgF,SAASiW,WACX1V,WAAW8T,GAEJrU,SAAS4X,mBAChB5X,SAAS4X,iBAAiB,mBAAoBzD,GAAW,GACzDna,OAAO4d,iBAAiB,OAAQzD,GAAW,IAIzCwD,EAAUE,aAAa,cACzB7d,OAAO2d,EAAUE,aAAa,qBAgChB,mBAAV7d,QAAwBA,OAAsC,mBAArBkY,mBACR/X,KAAOD"} \ No newline at end of file +{"version":3,"file":"es6-module-loader.js","sources":["es6-module-loader.src.js"],"names":["e","exports","module","define","amd","window","Promise","global","self","t","n","r","s","o","u","a","require","i","Error","f","call","length",1,"unhandledRejections","PromiseConstructor","../lib/Promise","../lib/decorators/unhandledRejection",2,"makePromise","Scheduler","async","asap","scheduler","factory","./Scheduler","./env","./makePromise",3,"this","_async","_running","_queue","Array","_queueLen","_afterQueue","_afterQueueLen","drain","_drain","prototype","enqueue","task","run","afterQueue",4,"formatError","stack","formatObject","String","JSON","tryStringify","defaultValue","stringify","throwit","noop","setTimer","report","handled","reported","push","logError","id","value","unreport","indexOf","splice","logInfo","x","tasks","running","flush","shift","localConsole","console","error","log","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","../env",5,"isNode","process","nextTick","hasMutationObserver","MutationObserver","WebKitMutationObserver","initMutationObserver","scheduled","node","document","createTextNode","observe","characterData","data","MutationObs","capturedSetTimeout","setTimeout","ms","clearTimer","clearTimeout","vertxRequire","vertx","cancelTimer","runOnLoop","runOnContext",6,"environment","resolver","handler","_handler","Handler","init","promiseResolve","resolve","promiseReject","reason","reject","promiseNotify","notify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","begetFrom","parent","child","receiver","join","context","all","promises","traverseWith","snd","traverse","tryCatch2","tryMap","mapAt","resolved","traverseAt","settleAt","results","pending","become","Fulfilled","maybeThenable","h","getHandlerMaybeThenable","state","fold","visitRemaining","start","markAsHandled","visit","_unreport","race","TypeError","runRace","getHandlerUntrusted","untrustedThen","then","Thenable","FailIfRejected","inheritedContext","createContext","consumers","thenable","AssimilateTask","errorId","_report","ReportTask","UnreportTask","cycle","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","Fold","z","c","to","failIfRejected","runContinuation1","next","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","b","thisArg","y","inherit","Parent","Child","objectCreate","constructor","Object","create","proto","_defer","onFulfilled","onRejected","onProgress","p","_beget","chain","_traverse","_visitRemaining","when","fail","_state","fulfilled","rejected","progress","q","cont","foreverPendingHandler","_resolve","_reject","_notify","__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","message","address","$__Object$getPrototypeOf","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","get","$__Object$create","props","F","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","loaderObj","normalize","modules","l","loads","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","linkSet","createLinkSet","done","startingLoad","loadingCount","j","d","doLink","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","linkIndex","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","preventExtensions","msg","Loader","_loader","importPromises","createImportPromise","promise","m","assert","item","thisLen","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","doCompile","compiler","filename","compile","traceur","WorkerGlobalScope","traceurOptions","script","sourceMaps","Compiler","sourceMap","getSourceMap","btoa","unescape","encodeURIComponent","Reflect","LoaderPolyfill","parseURI","url","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","fetchTextFromURL","isWorker","isBrowser","isWindows","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6-module-loader.src.js b/dist/es6-module-loader.src.js index 3114c25..c05227a 100644 --- a/dist/es6-module-loader.src.js +++ b/dist/es6-module-loader.src.js @@ -2672,7 +2672,10 @@ function logloads(loads) { var script = scripts[i]; if (script.type == 'module') { var source = script.innerHTML.substr(1); - System.module(source)['catch'](function(err) { setTimeout(function() { throw err; }); }); + // It is important to reference the global System, rather than the one + // in our closure. We want to ensure that downstream users/libraries + // can override System w/ custom behavior. + __global.System.module(source)['catch'](function(err) { setTimeout(function() { throw err; }); }); } } } diff --git a/src/system.js b/src/system.js index fafd64d..726f07a 100644 --- a/src/system.js +++ b/src/system.js @@ -291,7 +291,10 @@ var script = scripts[i]; if (script.type == 'module') { var source = script.innerHTML.substr(1); - System.module(source)['catch'](function(err) { setTimeout(function() { throw err; }); }); + // It is important to reference the global System, rather than the one + // in our closure. We want to ensure that downstream users/libraries + // can override System w/ custom behavior. + __global.System.module(source)['catch'](function(err) { setTimeout(function() { throw err; }); }); } } } From 3e62f149e670fc05c9a65d03ed4b131d7870eab1 Mon Sep 17 00:00:00 2001 From: Ian MacLeod Date: Fri, 12 Dec 2014 09:35:53 -0800 Subject: [PATCH 108/482] Remove unused variable --- src/loader.js | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/loader.js b/src/loader.js index 177009b..7edfa1f 100644 --- a/src/loader.js +++ b/src/loader.js @@ -1084,8 +1084,6 @@ function logloads(loads) { console.assert(load.source, 'Non-empty source'); - var depsList; - load.isDeclarative = true; var options = this.traceurOptions || {}; From 20a08b56475474b4f8067bab71ae4e6953b62c4c Mon Sep 17 00:00:00 2001 From: guybedford Date: Mon, 15 Dec 2014 15:42:54 +0200 Subject: [PATCH 109/482] IE8 console check fix --- src/loader.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/loader.js b/src/loader.js index 7edfa1f..4dcc2cc 100644 --- a/src/loader.js +++ b/src/loader.js @@ -105,7 +105,8 @@ function logloads(loads) { (function() { var Promise = __global.Promise || require('when/es6-shim/Promise'); - console.assert = console.assert || function() {}; + if (__global.console) + console.assert = console.assert || function() {}; // IE8 support var indexOf = Array.prototype.indexOf || function(item) { From 9ab7cfc6dc9304666c23ab2f3e9380017a87b630 Mon Sep 17 00:00:00 2001 From: guybedford Date: Mon, 15 Dec 2014 16:44:24 +0200 Subject: [PATCH 110/482] Fix load already loading #254 --- src/loader.js | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/loader.js b/src/loader.js index 4dcc2cc..81de41c 100644 --- a/src/loader.js +++ b/src/loader.js @@ -174,7 +174,7 @@ function logloads(loads) { load = createLoad(name); load.status = 'linked'; // https://bugs.ecmascript.org/show_bug.cgi?id=2795 - // load.module = loader.modules[name]; + load.module = loader.modules[name]; return load; } @@ -250,7 +250,7 @@ function logloads(loads) { if (instantiateResult === undefined) { load.address = load.address || ''; - // NB instead of load.kind, use load.isDeclarative + // instead of load.kind, use load.isDeclarative load.isDeclarative = true; // parse sets load.declare, load.depsList loader.loaderObj.parse(load); @@ -342,12 +342,10 @@ function logloads(loads) { if (loader.modules[name]) throw new TypeError('"' + name + '" already exists in the module table'); - // NB this still seems wrong for LoadModule as we may load a dependency - // of another module directly before it has finished loading. - // see https://bugs.ecmascript.org/show_bug.cgi?id=2994 + // adjusted to pick up existing loads for (var i = 0, l = loader.loads.length; i < l; i++) if (loader.loads[i].name == name) - throw new TypeError('"' + name + '" already loading'); + return resolve(loader.loads[i].linkSets[0].done); var load = createLoad(name); From 1e684d4f1112696fb60cc0650f7fe640b846011d Mon Sep 17 00:00:00 2001 From: guybedford Date: Mon, 15 Dec 2014 16:51:17 +0200 Subject: [PATCH 111/482] update dependencies --- bower.json | 2 +- package.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/bower.json b/bower.json index c708b98..9ddeea0 100644 --- a/bower.json +++ b/bower.json @@ -5,7 +5,7 @@ "homepage": "https://github.com/ModuleLoader/es6-module-loader", "main": "dist/es6-module-loader-sans-promises.js", "dependencies": { - "traceur": "0.0.74" + "traceur": "0.0.79" }, "keywords": [ "es6", diff --git a/package.json b/package.json index 6f86c90..d896767 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ }, "dependencies": { "grunt-contrib-uglify": "0.6.0", - "traceur": "0.0.74", - "when": "^3.4.6" + "traceur": "0.0.79", + "when": "^3.6.4" } } From e24f3ea20d98c58a6253b23db07e758bf1a024cc Mon Sep 17 00:00:00 2001 From: guybedford Date: Mon, 15 Dec 2014 17:09:54 +0200 Subject: [PATCH 112/482] release build --- dist/es6-module-loader-sans-promises.js | 2 +- dist/es6-module-loader-sans-promises.js.map | 2 +- dist/es6-module-loader-sans-promises.src.js | 19 ++-- dist/es6-module-loader.js | 2 +- dist/es6-module-loader.js.map | 2 +- dist/es6-module-loader.src.js | 108 +++++++++++++------- 6 files changed, 85 insertions(+), 50 deletions(-) diff --git a/dist/es6-module-loader-sans-promises.js b/dist/es6-module-loader-sans-promises.js index a73e630..c6bf9d0 100644 --- a/dist/es6-module-loader-sans-promises.js +++ b/dist/es6-module-loader-sans-promises.js @@ -4,5 +4,5 @@ * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(__global){function __eval(__source,__global,load){var __curRegister=System.register;System.register=function(a,b,c){"string"!=typeof a&&(c=b,b=a),load.declare=c,load.depsList=b};try{eval('(function() { var __moduleName = "'+(load.name||"").replace('"','"')+'"; '+__source+" \n }).call(__global);")}catch(e){throw("SyntaxError"==e.name||"TypeError"==e.name)&&(e.message="Evaluating "+(load.name||load.address)+"\n "+e.message),e}System.register=__curRegister}$__Object$getPrototypeOf=Object.getPrototypeOf||function(a){return a.__proto__};var $__Object$defineProperty;!function(){try{Object.defineProperty({},"a",{})&&($__Object$defineProperty=Object.defineProperty)}catch(a){$__Object$defineProperty=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),$__Object$create=Object.create||function(a,b){function c(){}if(c.prototype=a,"object"==typeof b)for(prop in b)b.hasOwnProperty(prop)&&(c[prop]=b[prop]);return new c},function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new A(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:c&&c.metadata||{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new A(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return e=a(c),e.status="linked",e;for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,A.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");console.assert=console.assert||function(){};var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=x.prototype.newModule;!function(){function a(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}var b;x.prototype.parse=function(c){if(!b)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=this.traceurOptions||{};d.modules="instantiate",d.script=!1,d.sourceMaps=!0,d.filename=c.address;var e=new b.Compiler(d),f=a(c.source,e,d.filename);if(!f)throw new Error("Error evaluating module "+c.address);var g=e.getSourceMap();__global.btoa&&g&&(f+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(g)))+"\n"),f='var __moduleAddress = "'+c.address+'";'+f,__eval(f,__global,c)}}(),"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); +!function(__global){function __eval(__source,__global,load){var __curRegister=System.register;System.register=function(a,b,c){"string"!=typeof a&&(c=b,b=a),load.declare=c,load.depsList=b};try{eval('(function() { var __moduleName = "'+(load.name||"").replace('"','"')+'"; '+__source+" \n }).call(__global);")}catch(e){throw("SyntaxError"==e.name||"TypeError"==e.name)&&(e.message="Evaluating "+(load.name||load.address)+"\n "+e.message),e}System.register=__curRegister}$__Object$getPrototypeOf=Object.getPrototypeOf||function(a){return a.__proto__};var $__Object$defineProperty;!function(){try{Object.defineProperty({},"a",{})&&($__Object$defineProperty=Object.defineProperty)}catch(a){$__Object$defineProperty=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),$__Object$create=Object.create||function(a,b){function c(){}if(c.prototype=a,"object"==typeof b)for(prop in b)b.hasOwnProperty(prop)&&(c[prop]=b[prop]);return new c},function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new A(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:c&&c.metadata||{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new A(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return e=a(c),e.status="linked",e.module=b.modules[c],e;for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)return c(g.loads[k].linkSets[0].done);var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,A.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=x.prototype.newModule;!function(){function a(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}var b;x.prototype.parse=function(c){if(!b)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=this.traceurOptions||{};d.modules="instantiate",d.script=!1,d.sourceMaps=!0,d.filename=c.address;var e=new b.Compiler(d),f=a(c.source,e,d.filename);if(!f)throw new Error("Error evaluating module "+c.address);var g=e.getSourceMap();__global.btoa&&g&&(f+="\n//# sourceURL="+c.address+"!eval",f+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(g)))+"\n"),f='var __moduleAddress = "'+c.address+'";'+f,__eval(f,__global,c)}}(),"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); //# sourceMappingURL=es6-module-loader-sans-promises.js.map \ No newline at end of file diff --git a/dist/es6-module-loader-sans-promises.js.map b/dist/es6-module-loader-sans-promises.js.map index 3bb1955..f5a3653 100644 --- a/dist/es6-module-loader-sans-promises.js.map +++ b/dist/es6-module-loader-sans-promises.js.map @@ -1 +1 @@ -{"version":3,"file":"es6-module-loader-sans-promises.js","sources":["es6-module-loader-sans-promises.src.js"],"names":["__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","e","message","address","$__Object$getPrototypeOf","Object","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","value","get","call","$__Object$create","create","o","props","F","prototype","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","Promise","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","resolve","loaderObj","normalize","then","modules","i","l","loads","length","push","proceedToLocate","proceedToFetch","locate","p","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","TypeError","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","all","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","linkSet","createLinkSet","done","startingLoad","loadingCount","reject","j","d","doLink","error","link","module","_newModule","evaluated","finishLoad","abrupt","addToError","failed","indexOf","linkIndex","splice","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","Error","preventExtensions","msg","Loader","this","_loader","importPromises","createImportPromise","promise","m","require","console","assert","Array","item","thisLen","constructor","define","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","doCompile","compiler","filename","compile","traceur","window","WorkerGlobalScope","traceurOptions","script","sourceMaps","Compiler","sourceMap","getSourceMap","btoa","unescape","encodeURIComponent","exports","Reflect","global","LoaderPolyfill","parseURI","url","String","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","join","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","document","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","setTimeout","fetchTextFromURL","isWorker","self","isBrowser","isWindows","process","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","data","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"es6-module-loader-sans-promises.js","sources":["es6-module-loader-sans-promises.src.js"],"names":["__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","e","message","address","$__Object$getPrototypeOf","Object","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","value","get","call","$__Object$create","create","o","props","F","prototype","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","Promise","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","resolve","loaderObj","normalize","then","modules","module","i","l","loads","length","push","proceedToLocate","proceedToFetch","locate","p","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","TypeError","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","all","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","done","linkSet","createLinkSet","startingLoad","loadingCount","reject","j","d","doLink","error","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","indexOf","linkIndex","splice","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","Error","preventExtensions","msg","Loader","this","_loader","importPromises","createImportPromise","promise","m","require","console","assert","Array","item","thisLen","constructor","define","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","doCompile","compiler","filename","compile","traceur","window","WorkerGlobalScope","traceurOptions","script","sourceMaps","Compiler","sourceMap","getSourceMap","btoa","unescape","encodeURIComponent","exports","Reflect","global","LoaderPolyfill","parseURI","url","String","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","join","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","document","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","setTimeout","fetchTextFromURL","isWorker","self","isBrowser","isWindows","process","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","data","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":";;;;;;CAAA,SAAUA,UAu+CV,QAASC,QAAOC,SAAUF,SAAUG,MAElC,GAAIC,eAAgBC,OAAOC,QAC3BD,QAAOC,SAAW,SAASC,EAAMC,EAAMC,GAClB,gBAARF,KACTE,EAAUD,EACVA,EAAOD,GAITJ,KAAKM,QAAUA,EACfN,KAAKO,SAAWF,EAElB,KACEG,KAAK,sCAAwCR,KAAKI,MAAQ,IAAIK,QAAQ,IAAK,KAAQ,MAAQV,SAAW,0BAExG,MAAMW,GAGJ,MAFc,eAAVA,EAAEN,MAAmC,aAAVM,EAAEN,QAC/BM,EAAEC,QAAU,eAAiBX,KAAKI,MAAQJ,KAAKY,SAAW,MAASF,EAAEC,SACjED,EAGRR,OAAOC,SAAWF,cA3/CpBY,yBAA2BC,OAAOC,gBAAkB,SAASC,GAC3D,MAAOA,GAAIC,UAGb,IAAIC,2BACH,WACC,IACQJ,OAAOK,kBAAmB,UAC9BD,yBAA2BJ,OAAOK,gBAEpC,MAAOT,GACPQ,yBAA2B,SAAUF,EAAKI,EAAMC,GAC9C,IACEL,EAAII,GAAQC,EAAIC,OAASD,EAAIE,IAAIC,KAAKR,GAExC,MAAMN,UAKZe,iBAAmBX,OAAOY,QAAU,SAASC,EAAGC,GAC9C,QAASC,MAGT,GAFAA,EAAEC,UAAYH,EAEQ,gBAAZ,GACR,IAAKP,OAAQQ,GACPA,EAAMG,eAAe,QACvBF,EAAET,MAAQQ,EAAMR,MAItB,OAAO,IAAIS,IA4Gb,WA+BE,QAASG,GAAW5B,GAClB,OACE6B,OAAQ,UACR7B,KAAMA,EACN8B,YACAC,gBACAC,aASJ,QAASC,GAAWC,EAAQlC,EAAMmC,GAChC,MAAO,IAAIC,GAAQC,GACjBC,KAAMH,EAAQ3B,QAAU,QAAU,SAClC0B,OAAQA,EACRK,WAAYvC,EAEZwC,eAAgBL,GAAWA,EAAQH,aACnCS,aAAcN,EAAQO,OACtBC,cAAeR,EAAQ3B,WAK3B,QAASoC,GAAYV,EAAQW,EAASC,EAAaC,GAEjD,MAAO,IAAIX,GAAQ,SAASY,GAC1BA,EAAQd,EAAOe,UAAUC,UAAUL,EAASC,EAAaC,MAG1DI,KAAK,SAASnD,GACb,GAAIJ,EACJ,IAAIsC,EAAOkB,QAAQpD,GAKjB,MAJAJ,GAAOgC,EAAW5B,GAClBJ,EAAKiC,OAAS,SAEdjC,EAAKyD,OAASnB,EAAOkB,QAAQpD,GACtBJ,CAGT,KAAK,GAAI0D,GAAI,EAAGC,EAAIrB,EAAOsB,MAAMC,OAAYF,EAAJD,EAAOA,IAE9C,GADA1D,EAAOsC,EAAOsB,MAAMF,GAChB1D,EAAKI,MAAQA,EAGjB,MAAOJ,EAQT,OALAA,GAAOgC,EAAW5B,GAClBkC,EAAOsB,MAAME,KAAK9D,GAElB+D,EAAgBzB,EAAQtC,GAEjBA,IAKX,QAAS+D,GAAgBzB,EAAQtC,GAC/BgE,EAAe1B,EAAQtC,EACrBwC,EAAQY,UAEPG,KAAK,WACJ,MAAOjB,GAAOe,UAAUY,QAAS7D,KAAMJ,EAAKI,KAAMgC,SAAUpC,EAAKoC,cAMvE,QAAS4B,GAAe1B,EAAQtC,EAAMkE,GACpCC,EAAmB7B,EAAQtC,EACzBkE,EAECX,KAAK,SAAS3C,GAEb,MAAmB,WAAfZ,EAAKiC,QAETjC,EAAKY,QAAUA,EAER0B,EAAOe,UAAUe,OAAQhE,KAAMJ,EAAKI,KAAMgC,SAAUpC,EAAKoC,SAAUxB,QAASA,KAJnF,UAYN,QAASuD,GAAmB7B,EAAQtC,EAAMkE,GACxCA,EAECX,KAAK,SAAST,GACb,MAAmB,WAAf9C,EAAKiC,OAEFK,EAAOe,UAAUgB,WAAYjE,KAAMJ,EAAKI,KAAMgC,SAAUpC,EAAKoC,SAAUxB,QAASZ,EAAKY,QAASkC,OAAQA,IAF7G,SAMDS,KAAK,SAAST,GACb,MAAmB,WAAf9C,EAAKiC,QAETjC,EAAK8C,OAASA,EACPR,EAAOe,UAAUiB,aAAclE,KAAMJ,EAAKI,KAAMgC,SAAUpC,EAAKoC,SAAUxB,QAASZ,EAAKY,QAASkC,OAAQA,KAH/G,SAODS,KAAK,SAASgB,GACb,GAAmB,WAAfvE,EAAKiC,OAAT,CAGA,GAA0BuC,SAAtBD,EACFvE,EAAKY,QAAUZ,EAAKY,SAAW,wBAAyB6D,EAAU,IAGlEzE,EAAK0E,eAAgB,EAErBpC,EAAOe,UAAUsB,MAAM3E,OAEpB,CAAA,GAAgC,gBAArBuE,GAMd,KAAMK,WAAU,mCALhB5E,GAAKO,SAAWgE,EAAkBlE,SAClCL,EAAK6E,QAAUN,EAAkBM,QACjC7E,EAAK0E,eAAgB,EAMvB1E,EAAKmC,eAIL,KAAK,GAHD5B,GAAWP,EAAKO,SAEhBuE,KACKpB,EAAI,EAAGC,EAAIpD,EAASsD,OAAYF,EAAJD,EAAOA,KAAK,SAAUT,EAAS8B,GAClED,EAAahB,KACXd,EAAYV,EAAQW,EAASjD,EAAKI,KAAMJ,EAAKY,SAG5C2C,KAAK,SAASyB,GAab,GALAhF,EAAKmC,aAAa4C,IAChBE,IAAKhC,EACL3B,MAAO0D,EAAQ5E,MAGK,UAAlB4E,EAAQ/C,OAEV,IAAK,GADDC,GAAWlC,EAAKkC,SAASgD,WACpBxB,EAAI,EAAGC,EAAIzB,EAAS2B,OAAYF,EAAJD,EAAOA,IAC1CyB,EAAiBjD,EAASwB,GAAIsB,QAOrCzE,EAASmD,GAAIA,EAEhB,OAAOlB,GAAQ4C,IAAIN,MAIpBvB,KAAK,WAMJvD,EAAKiC,OAAS,QAGd,KAAK,GADDC,GAAWlC,EAAKkC,SAASgD,WACpBxB,EAAI,EAAGC,EAAIzB,EAAS2B,OAAYF,EAAJD,EAAOA,IAC1C2B,EAAoBnD,EAASwB,GAAI1D,KAIpC,SAAS,SAASsF,GAEjBtF,EAAKiC,OAAS,SACdjC,EAAKuF,UAAYD,CAGjB,KAAK,GADDpD,GAAWlC,EAAKkC,SAASgD,WACpBxB,EAAI,EAAGC,EAAIzB,EAAS2B,OAAYF,EAAJD,EAAOA,IAC1C8B,EAActD,EAASwB,GAAI1D,EAAMsF,KAUvC,QAAS7C,GAA6BgD,GACpC,MAAO,UAASrC,GACd,GAAId,GAASmD,EAAUnD,OACnBlC,EAAOqF,EAAU9C,WACjBD,EAAO+C,EAAU/C,IAErB,IAAIJ,EAAOkB,QAAQpD,GACjB,KAAM,IAAIwE,WAAU,IAAMxE,EAAO,uCAGnC,KAAK,GAAIsD,GAAI,EAAGC,EAAIrB,EAAOsB,MAAMC,OAAYF,EAAJD,EAAOA,IAC9C,GAAIpB,EAAOsB,MAAMF,GAAGtD,MAAQA,EAC1B,MAAOgD,GAAQd,EAAOsB,MAAMF,GAAGxB,SAAS,GAAGwD,KAE/C,IAAI1F,GAAOgC,EAAW5B,EAEtBJ,GAAKoC,SAAWqD,EAAU7C,cAE1B,IAAI+C,GAAUC,EAActD,EAAQtC,EAEpCsC,GAAOsB,MAAME,KAAK9D,GAElBoD,EAAQuC,EAAQD,MAEJ,UAARhD,EACFqB,EAAgBzB,EAAQtC,GAET,SAAR0C,EACPsB,EAAe1B,EAAQtC,EAAMwC,EAAQY,QAAQqC,EAAU1C,iBAIvD/C,EAAKY,QAAU6E,EAAU1C,cACzBoB,EAAmB7B,EAAQtC,EAAMwC,EAAQY,QAAQqC,EAAU5C,iBAWjE,QAAS+C,GAActD,EAAQuD,GAC7B,GAAIF,IACFrD,OAAQA,EACRsB,SACAiC,aAAcA,EACdC,aAAc,EAOhB,OALAH,GAAQD,KAAO,GAAIlD,GAAQ,SAASY,EAAS2C,GAC3CJ,EAAQvC,QAAUA,EAClBuC,EAAQI,OAASA,IAEnBZ,EAAiBQ,EAASE,GACnBF,EAGT,QAASR,GAAiBQ,EAAS3F,GAGjC,IAAK,GAAI0D,GAAI,EAAGC,EAAIgC,EAAQ/B,MAAMC,OAAYF,EAAJD,EAAOA,IAC/C,GAAIiC,EAAQ/B,MAAMF,IAAM1D,EACtB,MAEJ2F,GAAQ/B,MAAME,KAAK9D,GACnBA,EAAKkC,SAAS4B,KAAK6B,GAGA,UAAf3F,EAAKiC,QACP0D,EAAQG,cAKV,KAAK,GAFDxD,GAASqD,EAAQrD,OAEZoB,EAAI,EAAGC,EAAI3D,EAAKmC,aAAa0B,OAAYF,EAAJD,EAAOA,IAAK,CACxD,GAAItD,GAAOJ,EAAKmC,aAAauB,GAAGpC,KAEhC,KAAIgB,EAAOkB,QAAQpD,GAGnB,IAAK,GAAI4F,GAAI,EAAGC,EAAI3D,EAAOsB,MAAMC,OAAYoC,EAAJD,EAAOA,IAC9C,GAAI1D,EAAOsB,MAAMoC,GAAG5F,MAAQA,EAA5B,CAGA+E,EAAiBQ,EAASrD,EAAOsB,MAAMoC,GACvC,SASN,QAASE,GAAOP,GACd,GAAIQ,IAAQ,CACZ,KACEC,EAAKT,EAAS,SAAS3F,EAAMsF,GAC3BE,EAAcG,EAAS3F,EAAMsF,GAC7Ba,GAAQ,IAGZ,MAAMzF,GACJ8E,EAAcG,EAAS,KAAMjF,GAC7ByF,GAAQ,EAEV,MAAOA,GAIT,QAASd,GAAoBM,EAAS3F,GAQpC,GAFA2F,EAAQG,iBAEJH,EAAQG,aAAe,GAA3B,CAIA,GAAID,GAAeF,EAAQE,YAK3B,IAAIF,EAAQrD,OAAOe,UAAUwB,WAAY,EAAO,CAE9C,IAAK,GADDjB,MAAWsB,OAAOS,EAAQ/B,OACrBF,EAAI,EAAGC,EAAIC,EAAMC,OAAYF,EAAJD,EAAOA,IAAK,CAC5C,GAAI1D,GAAO4D,EAAMF,EACjB1D,GAAKyD,OAAUzD,EAAK0E,eAGlBtE,KAAMJ,EAAKI,KACXqD,OAAQ4C,MACRC,WAAW,IAJX7C,OAAQ4C,OAMVrG,EAAKiC,OAAS,SACdsE,EAAWZ,EAAQrD,OAAQtC,GAE7B,MAAO2F,GAAQvC,QAAQyC,GAIzB,GAAIW,GAASN,EAAOP,EAEhBa,IAKJb,EAAQvC,QAAQyC,IAIlB,QAASL,GAAcG,EAAS3F,EAAMsF,GACpC,GAAIhD,GAASqD,EAAQrD,MAEjBqD,GAAQ/B,MAAM,GAAGxD,MAAQJ,EAAKI,OAChCkF,EAAMmB,EAAWnB,EAAK,kBAAoBtF,EAAKI,KAAO,WAAauF,EAAQ/B,MAAM,GAAGxD,KAAO,SAAWuF,EAAQ/B,MAAM,GAAGhD,SAAW,aAAe,OAEnJ0E,EAAMmB,EAAWnB,EAAK,kBAAoBtF,EAAKI,KAAO,SAAWJ,EAAKY,SAAW,aAAe,KAGhG,KAAK,GADDgD,GAAQ+B,EAAQ/B,MAAMsB,WACjBxB,EAAI,EAAGC,EAAIC,EAAMC,OAAYF,EAAJD,EAAOA,IAAK,CAC5C,GAAI1D,GAAO4D,EAAMF,EAGjBpB,GAAOe,UAAUqD,OAASpE,EAAOe,UAAUqD,WACQ,IAA/CC,EAAQnF,KAAKc,EAAOe,UAAUqD,OAAQ1G,IACxCsC,EAAOe,UAAUqD,OAAO5C,KAAK9D,EAE/B,IAAI4G,GAAYD,EAAQnF,KAAKxB,EAAKkC,SAAUyD,EAG5C,IADA3F,EAAKkC,SAAS2E,OAAOD,EAAW,GACJ,GAAxB5G,EAAKkC,SAAS2B,OAAa,CAC7B,GAAIiD,GAAmBH,EAAQnF,KAAKmE,EAAQrD,OAAOsB,MAAO5D,EAClC,KAApB8G,GACFnB,EAAQrD,OAAOsB,MAAMiD,OAAOC,EAAkB,IAGpDnB,EAAQI,OAAOT,GAIjB,QAASiB,GAAWjE,EAAQtC,GAE1B,GAAIsC,EAAOe,UAAU0D,MAAO,CACrBzE,EAAOe,UAAUO,QACpBtB,EAAOe,UAAUO,SACnB,IAAIoD,KACJhH,GAAKmC,aAAa8E,QAAQ,SAASC,GACjCF,EAAOE,EAAIjC,KAAOiC,EAAI5F,QAExBgB,EAAOe,UAAUO,MAAM5D,EAAKI,OAC1BA,KAAMJ,EAAKI,KACXC,KAAML,EAAKmC,aAAagF,IAAI,SAASD,GAAM,MAAOA,GAAIjC,MACtD+B,OAAQA,EACRpG,QAASZ,EAAKY,QACdwB,SAAUpC,EAAKoC,SACfU,OAAQ9C,EAAK8C,OACbsE,KAAMpH,EAAK0E,cAAgB,cAAgB,WAI3C1E,EAAKI,OAEPkC,EAAOkB,QAAQxD,EAAKI,MAAQJ,EAAKyD,OAEnC,IAAI4D,GAAYV,EAAQnF,KAAKc,EAAOsB,MAAO5D,EAC1B,KAAbqH,GACF/E,EAAOsB,MAAMiD,OAAOQ,EAAW,EACjC,KAAK,GAAI3D,GAAI,EAAGC,EAAI3D,EAAKkC,SAAS2B,OAAYF,EAAJD,EAAOA,IAC/C2D,EAAYV,EAAQnF,KAAKxB,EAAKkC,SAASwB,GAAGE,MAAO5D,GAChC,IAAbqH,GACFrH,EAAKkC,SAASwB,GAAGE,MAAMiD,OAAOQ,EAAW,EAE7CrH,GAAKkC,SAAS2E,OAAO,EAAG7G,EAAKkC,SAAS2B,QAUxC,QAASyD,GAAmBtH,EAAM4D,EAAO2D,EAAQjF,GAK/C,GAJAiF,EAAOvH,EAAKwH,YAAcD,EAAOvH,EAAKwH,gBAIa,IAA/Cb,EAAQnF,KAAK+F,EAAOvH,EAAKwH,YAAaxH,GAA1C,CAIAuH,EAAOvH,EAAKwH,YAAY1D,KAAK9D,EAE7B,KAAK,GAAI0D,GAAI,EAAGC,EAAIC,EAAMC,OAAYF,EAAJD,EAAOA,IAIvC,IAAK,GAHD+D,GAAU7D,EAAMF,GAGXsC,EAAI,EAAGA,EAAIhG,EAAKmC,aAAa0B,OAAQmC,IAC5C,GAAIyB,EAAQrH,MAAQJ,EAAKmC,aAAa6D,GAAG1E,MAAO,CAM9C,GAAIoG,GAAoB1H,EAAKwH,YAAcC,EAAQ/C,eAAiB1E,EAAK0E,cAGzE,IAA2BF,SAAvBiD,EAAQD,YAA4BC,EAAQD,WAAaE,EAAmB,CAG9E,GAAID,EAAQD,aACVD,EAAOE,EAAQD,YAAYX,OAAOF,EAAQnF,KAAK+F,EAAOE,EAAQD,YAAaC,GAAU,GAG5C,GAArCF,EAAOE,EAAQD,YAAY3D,QAC7B,KAAM,IAAIe,WAAU,kCAGxB6C,GAAQD,WAAaE,EAGvBJ,EAAmBG,EAAS7D,EAAO2D,EAAQjF,KAMnD,QAASqF,GAAiBhC,EAAS3F,EAAM4H,GACvC,IACE,GAAInE,GAASzD,EAAK6E,UAEpB,MAAMnE,GAEJ,WADAkH,GAAU5H,EAAMU,GAGlB,MAAK+C,IAAYA,YAAkBoE,GAG1BpE,MAFPmE,GAAU5H,EAAM,GAAI4E,WAAU,4CAMlC,QAASwB,GAAKT,EAASiC,GAErB,GAAItF,GAASqD,EAAQrD,MAErB,IAAKqD,EAAQ/B,MAAMC,OAAnB,CAWA,GAAI0D,MACA1B,EAAeF,EAAQ/B,MAAM,EACjCiC,GAAa2B,WAAa,EAC1BF,EAAmBzB,EAAcF,EAAQ/B,MAAO2D,EAAQjF,EAMxD,KAAK,GAHDwF,GAAsBjC,EAAanB,eAAiB6C,EAAO1D,OAAS,EAG/DH,EAAI6D,EAAO1D,OAAS,EAAGH,GAAK,EAAGA,IAAK,CAE3C,IAAK,GADDqE,GAAQR,EAAO7D,GACVsC,EAAI,EAAGA,EAAI+B,EAAMlE,OAAQmC,IAAK,CACrC,GAAIhG,GAAO+H,EAAM/B,EAGjB,IAAI8B,EACFE,EAAsBhI,EAAM2F,EAAQ/B,MAAOtB,OAGxC,CACH,GAAImB,GAASkE,EAAiBhC,EAAS3F,EAAM4H,EAC7C,KAAKnE,EACH,MACFzD,GAAKyD,QACHrD,KAAMJ,EAAKI,KACXqD,OAAQA,GAEVzD,EAAKiC,OAAS,SAEhBsE,EAAWjE,EAAQtC,GAIrB8H,GAAuBA,IAO3B,QAASG,GAAwB7H,EAAMkC,GACrC,GAAI4F,GAAgB5F,EAAO4F,aAC3B,OAAOA,GAAc9H,KAAU8H,EAAc9H,IAC3CA,KAAMA,EACN+B,gBACAsB,OAAQ,GAAIoE,GACZM,eAKJ,QAASH,GAAsBhI,EAAM4D,EAAOtB,GAC1C,IAAItC,EAAKyD,OAAT,CAGA,GAAIA,GAASzD,EAAKyD,OAASwE,EAAwBjI,EAAKI,KAAMkC,GAC1D8F,EAAYpI,EAAKyD,OAAOA,OAExB4E,EAAgBrI,EAAKM,QAAQkB,KAAK3B,SAAU,SAASO,EAAMkB,GAI7DmC,EAAO6E,QAAS,EAChBF,EAAUhI,GAAQkB,CAElB,KAAK,GAAIoC,GAAI,EAAGC,EAAIF,EAAO0E,UAAUtE,OAAYF,EAAJD,EAAOA,IAAK,CACvD,GAAI6E,GAAiB9E,EAAO0E,UAAUzE,EACtC,KAAK6E,EAAeD,OAAQ,CAC1B,GAAIE,GAAgB7B,EAAQnF,KAAK+G,EAAepG,aAAcsB,EAC9D8E,GAAeE,QAAQD,GAAeJ,IAK1C,MADA3E,GAAO6E,QAAS,EACThH,GAITmC,GAAOgF,QAAUJ,EAAcI,QAC/BhF,EAAOoB,QAAUwD,EAAcxD,OAI/B,KAAK,GAAInB,GAAI,EAAGC,EAAI3D,EAAKmC,aAAa0B,OAAYF,EAAJD,EAAOA,IAAK,CACxD,GAAIgF,GAAU1I,EAAKmC,aAAauB,GAAGpC,MAC/BqH,EAAYrG,EAAOkB,QAAQkF,EAI/B,KAAKC,EAEH,IAAK,GAAI3C,GAAI,EAAGA,EAAIpC,EAAMC,OAAQmC,IAC5BpC,EAAMoC,GAAG5F,MAAQsI,IAIhB9E,EAAMoC,GAAGvC,OAMZkF,EAAYV,EAAwBS,EAASpG,IAL7C0F,EAAsBpE,EAAMoC,GAAIpC,EAAOtB,GACvCqG,EAAY/E,EAAMoC,GAAGvC,QAUvBkF,GAAUR,WACZ1E,EAAOtB,aAAa2B,KAAK6E,GACzBA,EAAUR,UAAUrE,KAAKL,IAIzBA,EAAOtB,aAAa2B,KAAK,MAIvBL,EAAOgF,QAAQ/E,IACjBD,EAAOgF,QAAQ/E,GAAGiF,EAAUlF,QAGhCzD,EAAKiC,OAAS,UAYhB,QAAS2G,GAAqBtG,EAAQtC,GAIpC,MADA6I,GAAkB7I,EAAKyD,UAAYnB,GAC5BtC,EAAKyD,OAAOA,OAYrB,QAASqF,GAAUrF,GACjB,IACEA,EAAOoB,QAAQrD,KAAK3B,UAEtB,MAAMa,GACJ,MAAOA,IAMX,QAASmI,GAAkBpF,EAAQsF,EAAMzG,GACvC,GAAI0G,GAAMC,EAAgBxF,EAAQsF,EAAMzG,EACxC,IAAI0G,EACF,KAAMA,GAGV,QAASC,GAAgBxF,EAAQsF,EAAMzG,GACrC,IAAImB,EAAO6C,WAAc7C,EAAOtB,aAAhC,CAGA4G,EAAKjF,KAAKL,EAKV,KAAK,GAFDuF,GADA3I,EAAOoD,EAAOtB,aAGTuB,EAAI,EAAGC,EAAItD,EAAKwD,OAAYF,EAAJD,EAAOA,IAAK,CAC3C,GAAIwD,GAAM7G,EAAKqD,EAGf,IAAKwD,GAE0B,IAA3BP,EAAQnF,KAAKuH,EAAM7B,KACrB8B,EAAMC,EAAgB/B,EAAK6B,EAAMzG,IAI/B,MADA0G,GAAMvC,EAAWuC,EAAK,oBAAsB9B,EAAI9G,KAAO,MAM7D,GAAIqD,EAAOiD,OACT,MAAO,IAAIwC,OAAM,2BAEnB,KAAIzF,EAAO6C,UAgBX,MAbA7C,GAAO6C,WAAY,EACnB0C,EAAMF,EAAUrF,GACZuF,EACFvF,EAAOiD,QAAS,EAET5F,OAAOqI,mBAIdrI,OAAOqI,kBAAkB1F,EAAOA,QAGlCA,EAAOoB,QAAUL,OACVwE,GAGT,QAASvC,GAAWuC,EAAKI,GAKvB,MAJIJ,aAAeE,OACjBF,EAAIrI,QAAUyI,EAAMJ,EAAIrI,QAExBqI,EAAMI,EAAMJ,EACPA,EAMT,QAASK,GAAO9G,GACd,GAAsB,gBAAXA,GACT,KAAM,IAAIqC,WAAU,4BAElBrC,GAAQe,YACVgG,KAAKhG,UAAYf,EAAQe,WACvBf,EAAQ0B,SACVqF,KAAKrF,OAAS1B,EAAQ0B,QACpB1B,EAAQ6B,QACVkF,KAAKlF,MAAQ7B,EAAQ6B,OACnB7B,EAAQ8B,YACViF,KAAKjF,UAAY9B,EAAQ8B,WACvB9B,EAAQ+B,cACVgF,KAAKhF,YAAc/B,EAAQ+B,aAE7BgF,KAAKC,SACHlG,UAAWiG,KACX1F,SACAJ,WACAgG,kBACAtB,kBAIF/G,EAAemI,KAAM,UACnB/H,IAAK,WACH,MAAO1B,aAOb,QAASgI,MAGT,QAAS4B,GAAoBnH,EAAQlC,EAAMsJ,GACzC,GAAIF,GAAiBlH,EAAOiH,QAAQC,cACpC,OAAOA,GAAepJ,GAAQsJ,EAAQnG,KAAK,SAASoG,GAElD,MADAH,GAAepJ,GAAQoE,OAChBmF,GACN,SAASjJ,GAEV,KADA8I,GAAepJ,GAAQoE,OACjB9D,IAlyBV,GAAI8B,GAAU3C,SAAS2C,SAAWoH,QAAQ,wBACtC/J,UAASgK,UACXA,QAAQC,OAASD,QAAQC,QAAU,aAGrC,IAAInD,GAAUoD,MAAMjI,UAAU6E,SAAW,SAASqD,GAChD,IAAK,GAAItG,GAAI,EAAGuG,EAAUX,KAAKzF,OAAYoG,EAAJvG,EAAaA,IAClD,GAAI4F,KAAK5F,KAAOsG,EACd,MAAOtG,EAGX,OAAO,IAELvC,EAAiBD,yBAyGjBuD,EAAU,CAgrBd4E,GAAOvH,WAELoI,YAAab,EAEbc,OAAQ,SAAS/J,EAAM0C,EAAQP,GAE7B,GAAI+G,KAAKC,QAAQC,eAAepJ,GAC9B,KAAM,IAAIwE,WAAU,6BACtB,OAAO6E,GAAoBH,KAAMlJ,EAAM,GAAIoC,GAAQC,GACjDC,KAAM,YACNJ,OAAQgH,KAAKC,QACb5G,WAAYvC,EACZwC,eAAgBL,GAAWA,EAAQH,aACnCS,aAAcC,EACdC,cAAeR,GAAWA,EAAQ3B,aAItCwJ,SAAU,SAAShK,GACjB,MAAOkJ,MAAKC,QAAQ/F,QAAQpD,SAAekJ,MAAKC,QAAQ/F,QAAQpD,IAAQ,GAI1EmB,IAAK,SAAS0D,GACZ,MAAKqE,MAAKC,QAAQ/F,QAAQyB,IAE1B4D,EAAkBS,KAAKC,QAAQ/F,QAAQyB,MAAUqE,MAC1CA,KAAKC,QAAQ/F,QAAQyB,GAAKxB,QAHjC,QAMF4G,IAAK,SAASjK,GACZ,QAASkJ,KAAKC,QAAQ/F,QAAQpD,IAGhCkK,SAAU,SAASlK,EAAMmC,GAEvB,GAAIc,GAAYiG,IAGhB,OAAO9G,GAAQY,QAAQC,EAAUC,UAAUlD,EAAMmC,GAAWA,EAAQnC,KAAMmC,GAAWA,EAAQ3B,UAC5F2C,KAAK,SAASnD,GACb,GAAIkC,GAASe,EAAUkG,OAEvB,OAAIjH,GAAOkB,QAAQpD,IACjByI,EAAkBvG,EAAOkB,QAAQpD,MAAWkC,EAAOiH,SAC5CjH,EAAOkB,QAAQpD,GAAMqD,QAGvBnB,EAAOkH,eAAepJ,IAASqJ,EAAoBpG,EAAWjD,EACnEiC,EAAWC,EAAQlC,EAAMmC,OACxBgB,KAAK,SAASvD,GAEb,aADOsC,GAAOkH,eAAepJ,GACtBwI,EAAqBtG,EAAQtC,SAM5CA,KAAM,SAASI,GACb,MAAIkJ,MAAKC,QAAQ/F,QAAQpD,IACvByI,EAAkBS,KAAKC,QAAQ/F,QAAQpD,MAAWkJ,KAAKC,SAChD/G,EAAQY,QAAQkG,KAAKC,QAAQ/F,QAAQpD,GAAMqD,SAE7C6F,KAAKC,QAAQC,eAAepJ,IAASqJ,EAAoBH,KAAMlJ,EAAMiC,EAAWiH,KAAKC,QAASnJ,QAGvGqD,OAAQ,SAASX,EAAQP,GACvB,GAAIvC,GAAOgC,GACXhC,GAAKY,QAAU2B,GAAWA,EAAQ3B,OAClC,IAAI+E,GAAUC,EAAc0D,KAAKC,QAASvJ,GACtCuK,EAAgB/H,EAAQY,QAAQN,GAChCR,EAASgH,KAAKC,QACdrF,EAAIyB,EAAQD,KAAKnC,KAAK,WACxB,MAAOqF,GAAqBtG,EAAQtC,IAGtC,OADAmE,GAAmB7B,EAAQtC,EAAMuK,GAC1BrG,GAGTsG,UAAW,SAAUxJ,GACnB,GAAkB,gBAAPA,GACT,KAAM,IAAI4D,WAAU,kBAItB,IAAI+E,GAAI,GAAI9B,EAEZ,KAAK,GAAI5C,KAAOjE,IACd,SAAWiE,GACT9D,EAAewI,EAAG1E,GAChBwF,cAAc,EACdC,YAAY,EACZnJ,IAAK,WACH,MAAOP,GAAIiE,OAGdA,EAML,OAHInE,QAAOqI,mBACTrI,OAAOqI,kBAAkBQ,GAEpBA,GAGTgB,IAAK,SAASvK,EAAMqD,GAClB,KAAMA,YAAkBoE,IACtB,KAAM,IAAIjD,WAAU,cAAgBxE,EAAO,6BAC7CkJ,MAAKC,QAAQ/F,QAAQpD,IACnBqD,OAAQA,IAQZH,UAAW,SAASlD,GAClB,MAAOA,IAGT6D,OAAQ,SAASjE,GACf,MAAOA,GAAKI,MAGdgE,MAAO,WACL,KAAM,IAAIQ,WAAU,0BAGtBP,UAAW,SAASrE,GAClB,MAAOA,GAAK8C,QAEd6B,MAAO,WACL,KAAM,IAAIC,WAAU,oCAGtBN,YAAa,aAIf,IAAI+B,GAAagD,EAAOvH,UAAU0I,WAMlC,WAKE,QAASI,GAAU9H,EAAQ+H,EAAUC,GACnC,IACE,MAAOD,GAASE,QAAQjI,EAAQgI,GAElC,MAAMpK,GAEJ,KAAMA,GAAE,IARZ,GAAIsK,EAWJ3B,GAAOvH,UAAU6C,MAAQ,SAAS3E,GAChC,IAAKgL,EACH,GAAqB,mBAAVC,SACoB,mBAArBC,mBACRF,EAAUpB,QAAQ,eACf,CAAA,IAAI/J,SAASmL,QAGhB,KAAM,IAAIpG,WAAU,4CAFpBoG,GAAUnL,SAASmL,QAOvBhL,EAAK0E,eAAgB,CAErB,IAAInC,GAAU+G,KAAK6B,kBACnB5I,GAAQiB,QAAU,cAClBjB,EAAQ6I,QAAS,EACjB7I,EAAQ8I,YAAa,EACrB9I,EAAQuI,SAAW9K,EAAKY,OAExB,IAAIiK,GAAW,GAAIG,GAAQM,SAAS/I,GAEhCO,EAAS8H,EAAU5K,EAAK8C,OAAQ+H,EAAUtI,EAAQuI,SAEtD,KAAKhI,EACH,KAAM,IAAIoG,OAAM,2BAA6BlJ,EAAKY,QAEpD,IAAI2K,GAAYV,EAASW,cAErB3L,UAAS4L,MAAQF,IACnBzI,GAAU,mBAAqB9C,EAAKY,QAAU,QAC9CkC,GAAU,uDAAyD2I,KAAKC,SAASC,mBAAmBJ,KAAe,MAGrHzI,EAAS,0BAA4B9C,EAAKY,QAAU,KAAOkC,EAE3DhD,OAAOgD,EAAQjD,SAAUG,OAIN,gBAAZ4L,WACTnI,OAAOmI,QAAUvC,GAEnBxJ,SAASgM,QAAUhM,SAASgM,YAC5BhM,SAASgM,QAAQxC,OAASxJ,SAASgM,QAAQxC,QAAUA,EACrDxJ,SAASgM,QAAQC,OAASjM,SAASgM,QAAQC,QAAUjM,SACrDA,SAASkM,eAAiB1C,KAkB5B,WAQE,QAAS2C,GAASC,GAChB,GAAItC,GAAIuC,OAAOD,GAAKxL,QAAQ,aAAc,IAAI0L,MAAM,6GAEpD,OAAQxC,IACNyC,KAAWzC,EAAE,IAAM,GACnB0C,SAAW1C,EAAE,IAAM,GACnB2C,UAAW3C,EAAE,IAAM,GACnB4C,KAAW5C,EAAE,IAAM,GACnB6C,SAAW7C,EAAE,IAAM,GACnB8C,KAAW9C,EAAE,IAAM,GACnB+C,SAAW/C,EAAE,IAAM,GACnBgD,OAAWhD,EAAE,IAAM,GACnBiD,KAAWjD,EAAE,IAAM,IACjB,KAGN,QAASkD,GAAkBC,GACzB,GAAIC,KAUJ,OATAD,GAAMrM,QAAQ,kBAAmB,IAC9BA,QAAQ,iBAAkB,KAC1BA,QAAQ,UAAW,QACnBA,QAAQ,aAAc,SAAUyD,GACrB,QAANA,EACF6I,EAAOC,MAEPD,EAAOjJ,KAAKI,KAEX6I,EAAOE,KAAK,IAAIxM,QAAQ,MAA2B,MAApBqM,EAAMI,OAAO,GAAa,IAAM,IAGxE,QAASC,GAAcC,EAAMhB,GAK3B,MAHAA,GAAOJ,EAASI,GAAQ,IACxBgB,EAAOpB,EAASoB,GAAQ,IAEhBhB,GAASgB,GAAehB,EAAKC,UAAYe,EAAKf,WACnDD,EAAKC,UAAYD,EAAKE,UAAYF,EAAKE,UAAYc,EAAKd,WACzDO,EAAkBT,EAAKC,UAAYD,EAAKE,WAAyC,MAA5BF,EAAKM,SAASQ,OAAO,GAAad,EAAKM,SAAYN,EAAKM,UAAaU,EAAKd,YAAcc,EAAKV,SAAW,IAAM,IAAMU,EAAKV,SAASW,MAAM,EAAGD,EAAKV,SAASY,YAAY,KAAO,GAAKlB,EAAKM,SAAYU,EAAKV,WAC3PN,EAAKC,UAAYD,EAAKE,WAAaF,EAAKM,SAAWN,EAAKO,OAAUP,EAAKO,QAAUS,EAAKT,QACvFP,EAAKQ,KAJiB,KAiQxB,QAASW,KACPC,SAASC,oBAAqB,mBAAoBF,GAAW,GAC7DtC,OAAOwC,oBAAqB,OAAQF,GAAW,GAC/CG,IAGF,QAASA,KAEP,IAAK,GADDC,GAAUH,SAASI,qBAAqB,UACnClK,EAAI,EAAGA,EAAIiK,EAAQ9J,OAAQH,IAAK,CACvC,GAAI0H,GAASuC,EAAQjK,EACrB,IAAmB,UAAf0H,EAAOyC,KAAkB,CAC3B,GAAI/K,GAASsI,EAAO0C,UAAUC,OAAO,EAIrClO,UAASK,OAAOuD,OAAOX,GAAQ,SAAS,SAASkG,GAAOgF,WAAW,WAAa,KAAMhF,SA1T9F,GAiDIiF,GAjDAC,EAA2B,mBAATC,OAAqD,mBAAtBjD,oBAAqCiD,eAAgBjD,mBACtGkD,EAA6B,mBAAVnD,UAA0BiD,EAC7CG,EAA8B,mBAAXC,YAA4BA,QAAQC,SAASpC,MAAM,QACtE3J,EAAU3C,SAAS2C,SAAWoH,QAAQ,wBAgD1C,IAA6B,mBAAlB4E,gBACTP,EAAmB,SAAShC,EAAKwC,EAAS1I,GAsBxC,QAAS/F,KACPyO,EAAQC,EAAIC,cAEd,QAASxI,KACPJ,EAAO2I,EAAIE,WAAa,KAAO3C,GAAO,aAzBxC,GAAIyC,GAAM,GAAIF,gBACVK,GAAa,EACbC,GAAY,CAChB,MAAM,mBAAqBJ,IAAM,CAE/B,GAAIK,GAAc,uBAAuBC,KAAK/C,EAC1C8C,KACFF,EAAaE,EAAY,KAAO9D,OAAOgE,SAAS1C,KAC5CwC,EAAY,KACdF,GAAcE,EAAY,KAAO9D,OAAOgE,SAAS5C,WAGlDwC,GAAuC,mBAAlBK,kBACxBR,EAAM,GAAIQ,gBACVR,EAAIS,OAASnP,EACb0O,EAAIU,QAAUjJ,EACduI,EAAIW,UAAYlJ,EAChBuI,EAAIY,WAAa,aACjBZ,EAAIa,QAAU,EACdT,GAAY,GASdJ,EAAIc,mBAAqB,WACA,IAAnBd,EAAIe,aACa,MAAff,EAAIzM,QAAiC,GAAdyM,EAAIzM,QAAeyM,EAAIC,aAChD3O,IAEAmG,MAINuI,EAAIgB,KAAK,MAAOzD,GAAK,GAEjB6C,GACFd,WAAW,WACTU,EAAIiB,QACH,GAELjB,EAAIiB,KAAK,WAGR,CAAA,GAAsB,mBAAX/F,SAkBd,KAAM,IAAIhF,WAAU,sCAjBpB,IAAIgL,EACJ3B,GAAmB,SAAShC,EAAKwC,EAAS1I,GACxC,GAAwB,SAApBkG,EAAI8B,OAAO,EAAG,GAChB,KAAM,2DAKR,OAJA6B,GAAKA,GAAMhG,QAAQ,MACnBqC,EAAMA,EAAI8B,OAAO,GACbM,IACFpC,EAAMA,EAAIxL,QAAQ,MAAO,OACpBmP,EAAGC,SAAS5D,EAAK,SAASjD,EAAK8G,GACpC,MAAI9G,GACKjD,EAAOiD,OAEdyF,GAAQqB,EAAO,OAQvB,GAAIC,GAAe,SAASC,GAC1B,QAASD,GAAaxN,GAIpB,GAHAyN,EAASxO,KAAK8H,KAAM/G,OAGG,mBAAZ0M,WAA2BA,SAAS7C,KAAM,CACnD,GAAIA,GAAOvM,SAASoP,SAAS7C,KAAK6D,MAAM,KAAK,GAAGA,MAAM,KAAK,EAC3D3G,MAAK4G,QAAU9D,EAAK+D,UAAU,EAAG/D,EAAKkB,YAAY,KAAO,OAEtD,CAAA,GAAsB,mBAAXgB,WAA0BA,QAAQ8B,IAMhD,KAAM,IAAIxL,WAAU,yBALpB0E,MAAK4G,QAAU,QAAU5B,QAAQ8B,MAAQ,IACrC/B,IACF/E,KAAK4G,QAAU5G,KAAK4G,QAAQzP,QAAQ,MAAO,MAK/C6I,KAAK+G,OAAUC,IAAK,QAgJtB,MA7IAP,GAAa9O,UAA0B,OAAb+O,EAAoBA,EAAWO,SAASzO,UAClEiO,EAAajO,UAAYL,iBAA+B,OAAbuO,EAAoBA,EAASlO,UAAY,MAEpFZ,yBAAyB6O,EAAajO,UAAW,eAC/CR,MAAOyO,IAGT7O,yBAAyB6O,EAAajO,UAAW,UAC/CP,IAAK,WACH,MAAO6M,GAAYnD,OAAUiD,EAAWC,KAAOtO,UAGjD6K,YAAY,IAGdxJ,yBAAyB6O,EAAajO,UAAW,UAC/CP,IAAK,WAAa,OAAO,GACzBmJ,YAAY,IAGdxJ,yBAAyB6O,EAAajO,UAAW,aAC/CR,MAAO,SAASlB,EAAMoQ,GACpB,GAAmB,gBAARpQ,GACT,KAAM,IAAIwE,WAAU,+BAEtB,IAAI6L,GAAWrQ,EAAK6P,MAAM,IAE1B,IAAuB,GAAnBQ,EAAS5M,OACX,KAAM,IAAIe,WAAU,0BAGtB,IAAIlB,GAAI,EAEJgN,GAAM,EAENC,EAAU,CACd,IAAmB,KAAfF,EAAS,GAAW,CAEtB,GADA/M,IACIA,GAAK+M,EAAS5M,OAChB,KAAM,IAAIe,WAAU,wBAA0BxE,EAAO,IACvDsQ,IAAM,MAEH,CACH,KAAsB,MAAfD,EAAS/M,IAEd,GADAA,IACIA,GAAK+M,EAAS5M,OAChB,KAAM,IAAIe,WAAU,wBAA0BxE,EAAO,IAErDsD,KACFgN,GAAM,GACRC,EAAUjN,EAGZ,IAAK,GAAIsC,GAAItC,EAAGsC,EAAIyK,EAAS5M,OAAQmC,IAAK,CACxC,GAAI4K,GAAUH,EAASzK,EACvB,IAAe,IAAX4K,GAA4B,KAAXA,GAA6B,MAAXA,EACrC,KAAM,IAAIhM,WAAU,wBAA0BxE,EAAO,KAGzD,IAAKsQ,EACH,MAAOtQ,EAGT,EAAA,GAAIyQ,MACAC,GAAeN,GAAc,IAAIP,MAAM,IACvBa,GAAYjN,OAAS,EAAI8M,EAK7C,MAHAE,GAAkBA,EAAgB3L,OAAO4L,EAAYjK,OAAO,EAAGiK,EAAYjN,OAAS,EAAI8M,IACxFE,EAAkBA,EAAgB3L,OAAOuL,EAAS5J,OAAOnD,EAAG+M,EAAS5M,OAASH,IAEvEmN,EAAgB5D,KAAK,MAG9BvC,YAAY,EACZqG,UAAU,IAGZ7P,yBAAyB6O,EAAajO,UAAW,UAC/CR,MAAO,SAAStB,GACd,GAKoBgR,GALhB5Q,EAAOJ,EAAKI,KAKZ6Q,EAAY,EAGhB,KAAK,GAAI/M,KAAKoF,MAAK+G,MAAO,CACxB,GAAIa,GAAYhN,EAAE+L,MAAM,IACxB,IAAIiB,EAAUrN,OAAS,EACrB,KAAM,IAAIe,WAAU,2CAGtB,IAAwB,GAApBsM,EAAUrN,QACZ,GAAIzD,GAAQ8D,GAAKA,EAAEL,OAASoN,EAAUpN,OAAQ,CAC5CoN,EAAY/M,CACZ,YAME9D,GAAK2N,OAAO,EAAGmD,EAAU,GAAGrN,SAAWqN,EAAU,IAAM9Q,EAAK2N,OAAO3N,EAAKyD,OAASqN,EAAU,GAAGrN,SAAWqN,EAAU,KACrHD,EAAY/M,EACZ8M,EAAW5Q,EAAK2N,OAAOmD,EAAU,GAAGrN,OAAQzD,EAAKyD,OAASqN,EAAU,GAAGrN,OAASqN,EAAU,GAAGrN,SAKnG,GAAIsN,GAAU7H,KAAK+G,MAAMY,EAWzB,OAVID,KACFG,EAAUA,EAAQ1Q,QAAQ,IAAKuQ,IAM7B5C,IACF+C,EAAUA,EAAQ1Q,QAAQ,KAAM,QAE3B0M,EAAc7D,KAAK4G,QAASiB,IAGrCzG,YAAY,EACZqG,UAAU,IAGZ7P,yBAAyB6O,EAAajO,UAAW,SAC/CR,MAAO,SAAStB,GACd,GAAImO,GAAO7E,IACX,OAAO,IAAI9G,GAAQ,SAASY,EAAS2C,GACnCkI,EAAiBd,EAAcgB,EAAK+B,QAASlQ,EAAKY,SAAU,SAASkC,GACnEM,EAAQN,IACPiD,MAIP2E,YAAY,EACZqG,UAAU,IAGLhB,GACPlQ,SAASkM,gBAEP7L,EAAS,GAAI6P,EAUjB,IAPuB,gBAAZnE,WACTnI,OAAOmI,QAAU1L,GAEnBL,SAASK,OAASA,EAIdkO,GAAqD,mBAAjCZ,UAASI,qBAAqC,CACpE,GAAIwD,GAAY5D,SAASI,qBAAqB,SAC9CwD,GAAYA,EAAUA,EAAUvN,OAAS,GAuBb,aAAxB2J,SAASiC,WACXzB,WAAWN,GAEJF,SAAS6D,mBAChB7D,SAAS6D,iBAAiB,mBAAoB9D,GAAW,GACzDtC,OAAOoG,iBAAiB,OAAQ9D,GAAW,IAIzC6D,EAAUE,aAAa,cACzBrG,OAAOmG,EAAUE,aAAa,qBAgChB,mBAAVrG,QAAwBA,OAAsC,mBAArBC,mBACRiD,KAAOrC"} \ No newline at end of file diff --git a/dist/es6-module-loader-sans-promises.src.js b/dist/es6-module-loader-sans-promises.src.js index c19d1b8..63f4d10 100644 --- a/dist/es6-module-loader-sans-promises.src.js +++ b/dist/es6-module-loader-sans-promises.src.js @@ -141,7 +141,8 @@ function logloads(loads) { (function() { var Promise = __global.Promise || require('when/es6-shim/Promise'); - console.assert = console.assert || function() {}; + if (__global.console) + console.assert = console.assert || function() {}; // IE8 support var indexOf = Array.prototype.indexOf || function(item) { @@ -209,7 +210,7 @@ function logloads(loads) { load = createLoad(name); load.status = 'linked'; // https://bugs.ecmascript.org/show_bug.cgi?id=2795 - // load.module = loader.modules[name]; + load.module = loader.modules[name]; return load; } @@ -285,7 +286,7 @@ function logloads(loads) { if (instantiateResult === undefined) { load.address = load.address || ''; - // NB instead of load.kind, use load.isDeclarative + // instead of load.kind, use load.isDeclarative load.isDeclarative = true; // parse sets load.declare, load.depsList loader.loaderObj.parse(load); @@ -377,12 +378,10 @@ function logloads(loads) { if (loader.modules[name]) throw new TypeError('"' + name + '" already exists in the module table'); - // NB this still seems wrong for LoadModule as we may load a dependency - // of another module directly before it has finished loading. - // see https://bugs.ecmascript.org/show_bug.cgi?id=2994 + // adjusted to pick up existing loads for (var i = 0, l = loader.loads.length; i < l; i++) if (loader.loads[i].name == name) - throw new TypeError('"' + name + '" already loading'); + return resolve(loader.loads[i].linkSets[0].done); var load = createLoad(name); @@ -1120,8 +1119,6 @@ function logloads(loads) { console.assert(load.source, 'Non-empty source'); - var depsList; - load.isDeclarative = true; var options = this.traceurOptions || {}; @@ -1139,8 +1136,10 @@ function logloads(loads) { var sourceMap = compiler.getSourceMap(); - if (__global.btoa && sourceMap) + if (__global.btoa && sourceMap) { + source += '\n//# sourceURL=' + load.address + '!eval'; source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(sourceMap))) + '\n'; + } source = 'var __moduleAddress = "' + load.address + '";' + source; diff --git a/dist/es6-module-loader.js b/dist/es6-module-loader.js index c8c99e0..f5903b8 100644 --- a/dist/es6-module-loader.js +++ b/dist/es6-module-loader.js @@ -4,5 +4,5 @@ * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=0&&(o.splice(b,1),m("Handled previous rejection ["+a.id+"] "+c(a.value)))}function i(a,b){n.push(a,b),null===p&&(p=g(j,0))}function j(){for(p=null;n.length>0;)n.shift()(n.shift())}var k,l=f,m=f;"undefined"!=typeof console&&(k=console,l="undefined"!=typeof k.error?function(a){k.error(a)}:function(a){k.log(a)},m="undefined"!=typeof k.info?function(a){k.info(a)}:function(a){k.log(a)}),a.onPotentiallyUnhandledRejection=function(a){i(d,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){i(h,a)},a.onFatalRejection=function(a){i(e,a.value)};var n=[],o=[],p=null;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../env":5}],5:[function(b,c){!function(a){"use strict";a(function(a){function b(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick}function c(){return"function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver}function d(a){function b(){var a=c;c=void 0,a()}var c,d=document.createTextNode(""),e=new a(b);e.observe(d,{characterData:!0});var f=0;return function(a){c=a,d.data=f^=1}}var e,f="undefined"!=typeof setTimeout&&setTimeout,g=function(a,b){return setTimeout(a,b)},h=function(a){return clearTimeout(a)},i=function(a){return f(a,0)};if(b())i=function(a){return process.nextTick(a)};else if(e=c())i=d(e);else if(!f){var j=a,k=j("vertx");g=function(a,b){return k.setTimer(b,a)},h=k.cancelTimer,i=k.runOnLoop||k.runOnContext}return{setTimer:g,clearTimer:h,asap:i}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===t?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new v;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return I(a)?a:new b(t,new w(q(a)))}function e(a){return new b(t,new w(new z(a)))}function f(){return Z}function g(){return new b(t,new v)}function h(a,b){var c=new v(a.receiver,a.join().context);return new b(t,c)}function i(a){return k(S,null,a)}function j(a,b){return k(N,a,b)}function k(a,c,d){function e(b,e,g){g.resolved||l(d,f,b,a(c,e,b),g)}function f(a,b,c){k[a]=b,0===--j&&c.become(new y(k))}for(var g,h="function"==typeof c?e:f,i=new v,j=d.length>>>0,k=new Array(j),m=0;m0?b(c,f.value,e):(e.become(f),m(a,c+1,f))}else b(c,d,e)}function m(a,b,c){for(var d=b;dc&&a._unreport()}}function o(a){return"object"!=typeof a||null===a?e(new TypeError("non-iterable passed to race()")):0===a.length?f():1===a.length?d(a[0]):p(a)}function p(a){var c,d,e,f=new v;for(c=0;c0||"function"!=typeof b&&0>e)return new this.constructor(t,d);var f=this._beget(),g=f._handler;return d.chain(g,d.receiver,a,b,c),f},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){return h(this._handler,this.constructor)},b.all=i,b.race=o,b._traverse=j,b._visitRemaining=m,t.prototype.when=t.prototype.become=t.prototype.notify=t.prototype.fail=t.prototype._unreport=t.prototype._report=T,t.prototype._state=0,t.prototype.state=function(){return this._state},t.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},t.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},t.prototype.visit=function(a,b,c,d){this.chain(W,a,b,c,d)},t.prototype.fold=function(a,b,c,d){this.when(new H(a,b,c,d))},R(t,u),u.prototype.become=function(a){a.fail()};var W=new u;R(t,v),v.prototype._state=0,v.prototype.resolve=function(a){this.become(q(a))},v.prototype.reject=function(a){this.resolved||this.become(new z(a))},v.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=C();return a},v.prototype.run=function(){var a=this.consumers,b=this.join();this.consumers=void 0;for(var c=0;cf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)throw new TypeError('"'+i+'" already loading');var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,A.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");console.assert=console.assert||function(){};var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=x.prototype.newModule;!function(){function a(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}var b;x.prototype.parse=function(c){if(!b)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=this.traceurOptions||{};d.modules="instantiate",d.script=!1,d.sourceMaps=!0,d.filename=c.address;var e=new b.Compiler(d),f=a(c.source,e,d.filename);if(!f)throw new Error("Error evaluating module "+c.address);var g=e.getSourceMap();__global.btoa&&g&&(f+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(g)))+"\n"),f='var __moduleAddress = "'+c.address+'";'+f,__eval(f,__global,c)}}(),"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); +!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=0&&(n.splice(b,1),l("Handled previous rejection ["+a.id+"] "+e.formatObject(a.value)))}function h(a,b){m.push(a,b),null===o&&(o=d(i,0))}function i(){for(o=null;m.length>0;)m.shift()(m.shift())}var j,k=c,l=c;"undefined"!=typeof console&&(j=console,k="undefined"!=typeof j.error?function(a){j.error(a)}:function(a){j.log(a)},l="undefined"!=typeof j.info?function(a){j.info(a)}:function(a){j.log(a)}),a.onPotentiallyUnhandledRejection=function(a){h(f,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){h(g,a)},a.onFatalRejection=function(a){h(b,a.value)};var m=[],n=[],o=null;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../env":5,"../format":6}],5:[function(b,c){!function(a){"use strict";a(function(a){function b(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick}function c(){return"function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver}function d(a){function b(){var a=c;c=void 0,a()}var c,d=document.createTextNode(""),e=new a(b);e.observe(d,{characterData:!0});var f=0;return function(a){c=a,d.data=f^=1}}var e,f="undefined"!=typeof setTimeout&&setTimeout,g=function(a,b){return setTimeout(a,b)},h=function(a){return clearTimeout(a)},i=function(a){return f(a,0)};if(b())i=function(a){return process.nextTick(a)};else if(e=c())i=d(e);else if(!f){var j=a,k=j("vertx");g=function(a,b){return k.setTimer(b,a)},h=k.cancelTimer,i=k.runOnLoop||k.runOnContext}return{setTimer:g,clearTimer:h,asap:i}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c){!function(a){"use strict";a(function(){function a(a){var c="object"==typeof a&&null!==a&&a.stack?a.stack:b(a);return a instanceof Error?c:c+" (WARNING: non-Error used)"}function b(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=c(a,b)),b}function c(a,b){try{return JSON.stringify(a)}catch(c){return b}}return{formatError:a,formatObject:b,tryStringify:c}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],7:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===t?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new v;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return I(a)?a:new b(t,new w(q(a)))}function e(a){return new b(t,new w(new z(a)))}function f(){return Z}function g(){return new b(t,new v)}function h(a,b){var c=new v(a.receiver,a.join().context);return new b(t,c)}function i(a){return k(S,null,a)}function j(a,b){return k(N,a,b)}function k(a,c,d){function e(b,e,g){g.resolved||l(d,f,b,a(c,e,b),g)}function f(a,b,c){k[a]=b,0===--j&&c.become(new y(k))}for(var g,h="function"==typeof c?e:f,i=new v,j=d.length>>>0,k=new Array(j),m=0;m0?b(c,f.value,e):(e.become(f),m(a,c+1,f))}else b(c,d,e)}function m(a,b,c){for(var d=b;dc&&a._unreport()}}function o(a){return"object"!=typeof a||null===a?e(new TypeError("non-iterable passed to race()")):0===a.length?f():1===a.length?d(a[0]):p(a)}function p(a){var c,d,e,f=new v;for(c=0;c0||"function"!=typeof b&&0>e)return new this.constructor(t,d);var f=this._beget(),g=f._handler;return d.chain(g,d.receiver,a,b,c),f},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){return h(this._handler,this.constructor)},b.all=i,b.race=o,b._traverse=j,b._visitRemaining=m,t.prototype.when=t.prototype.become=t.prototype.notify=t.prototype.fail=t.prototype._unreport=t.prototype._report=T,t.prototype._state=0,t.prototype.state=function(){return this._state},t.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},t.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},t.prototype.visit=function(a,b,c,d){this.chain(W,a,b,c,d)},t.prototype.fold=function(a,b,c,d){this.when(new H(a,b,c,d))},R(t,u),u.prototype.become=function(a){a.fail()};var W=new u;R(t,v),v.prototype._state=0,v.prototype.resolve=function(a){this.become(q(a))},v.prototype.reject=function(a){this.resolved||this.become(new z(a))},v.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=C();return a},v.prototype.run=function(){var a=this.consumers,b=this.join();this.consumers=void 0;for(var c=0;cf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)return c(g.loads[k].linkSets[0].done);var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,A.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=x.prototype.newModule;!function(){function a(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}var b;x.prototype.parse=function(c){if(!b)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=this.traceurOptions||{};d.modules="instantiate",d.script=!1,d.sourceMaps=!0,d.filename=c.address;var e=new b.Compiler(d),f=a(c.source,e,d.filename);if(!f)throw new Error("Error evaluating module "+c.address);var g=e.getSourceMap();__global.btoa&&g&&(f+="\n//# sourceURL="+c.address+"!eval",f+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(g)))+"\n"),f='var __moduleAddress = "'+c.address+'";'+f,__eval(f,__global,c)}}(),"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); //# sourceMappingURL=es6-module-loader.js.map \ No newline at end of file diff --git a/dist/es6-module-loader.js.map b/dist/es6-module-loader.js.map index 4cbe4d9..9327076 100644 --- a/dist/es6-module-loader.js.map +++ b/dist/es6-module-loader.js.map @@ -1 +1 @@ -{"version":3,"file":"es6-module-loader.js","sources":["es6-module-loader.src.js"],"names":["e","exports","module","define","amd","window","Promise","global","self","t","n","r","s","o","u","a","require","i","Error","f","call","length",1,"unhandledRejections","PromiseConstructor","../lib/Promise","../lib/decorators/unhandledRejection",2,"makePromise","Scheduler","async","asap","scheduler","factory","./Scheduler","./env","./makePromise",3,"this","_async","_running","_queue","Array","_queueLen","_afterQueue","_afterQueueLen","drain","_drain","prototype","enqueue","task","run","afterQueue",4,"formatError","stack","formatObject","String","JSON","tryStringify","defaultValue","stringify","throwit","noop","setTimer","report","handled","reported","push","logError","id","value","unreport","indexOf","splice","logInfo","x","tasks","running","flush","shift","localConsole","console","error","log","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","../env",5,"isNode","process","nextTick","hasMutationObserver","MutationObserver","WebKitMutationObserver","initMutationObserver","scheduled","node","document","createTextNode","observe","characterData","data","MutationObs","capturedSetTimeout","setTimeout","ms","clearTimer","clearTimeout","vertxRequire","vertx","cancelTimer","runOnLoop","runOnContext",6,"environment","resolver","handler","_handler","Handler","init","promiseResolve","resolve","promiseReject","reason","reject","promiseNotify","notify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","begetFrom","parent","child","receiver","join","context","all","promises","traverseWith","snd","traverse","tryCatch2","tryMap","mapAt","resolved","traverseAt","settleAt","results","pending","become","Fulfilled","maybeThenable","h","getHandlerMaybeThenable","state","fold","visitRemaining","start","markAsHandled","visit","_unreport","race","TypeError","runRace","getHandlerUntrusted","untrustedThen","then","Thenable","FailIfRejected","inheritedContext","createContext","consumers","thenable","AssimilateTask","errorId","_report","ReportTask","UnreportTask","cycle","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","Fold","z","c","to","failIfRejected","runContinuation1","next","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","b","thisArg","y","inherit","Parent","Child","objectCreate","constructor","Object","create","proto","_defer","onFulfilled","onRejected","onProgress","p","_beget","chain","_traverse","_visitRemaining","when","fail","_state","fulfilled","rejected","progress","q","cont","foreverPendingHandler","_resolve","_reject","_notify","__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","message","address","$__Object$getPrototypeOf","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","get","$__Object$create","props","F","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","loaderObj","normalize","modules","l","loads","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","linkSet","createLinkSet","done","startingLoad","loadingCount","j","d","doLink","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","linkIndex","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","preventExtensions","msg","Loader","_loader","importPromises","createImportPromise","promise","m","assert","item","thisLen","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","doCompile","compiler","filename","compile","traceur","WorkerGlobalScope","traceurOptions","script","sourceMaps","Compiler","sourceMap","getSourceMap","btoa","unescape","encodeURIComponent","Reflect","LoaderPolyfill","parseURI","url","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","fetchTextFromURL","isWorker","isBrowser","isWindows","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"es6-module-loader.js","sources":["es6-module-loader.src.js"],"names":["e","exports","module","define","amd","window","Promise","global","self","t","n","r","s","o","u","a","require","i","Error","f","call","length",1,"unhandledRejections","PromiseConstructor","../lib/Promise","../lib/decorators/unhandledRejection",2,"makePromise","Scheduler","async","asap","scheduler","factory","./Scheduler","./env","./makePromise",3,"this","_async","_running","_queue","Array","_queueLen","_afterQueue","_afterQueueLen","drain","_drain","prototype","enqueue","task","run","afterQueue",4,"throwit","noop","setTimer","format","report","handled","reported","push","logError","id","formatError","value","unreport","indexOf","splice","logInfo","formatObject","x","tasks","running","flush","shift","localConsole","console","error","log","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","../env","../format",5,"isNode","process","nextTick","hasMutationObserver","MutationObserver","WebKitMutationObserver","initMutationObserver","scheduled","node","document","createTextNode","observe","characterData","data","MutationObs","capturedSetTimeout","setTimeout","ms","clearTimer","clearTimeout","vertxRequire","vertx","cancelTimer","runOnLoop","runOnContext",6,"stack","String","JSON","tryStringify","defaultValue","stringify",7,"environment","resolver","handler","_handler","Handler","init","promiseResolve","resolve","promiseReject","reason","reject","promiseNotify","notify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","begetFrom","parent","child","receiver","join","context","all","promises","traverseWith","snd","traverse","tryCatch2","tryMap","mapAt","resolved","traverseAt","settleAt","results","pending","become","Fulfilled","maybeThenable","h","getHandlerMaybeThenable","state","fold","visitRemaining","start","markAsHandled","visit","_unreport","race","TypeError","runRace","getHandlerUntrusted","untrustedThen","then","Thenable","FailIfRejected","inheritedContext","createContext","consumers","thenable","AssimilateTask","errorId","_report","ReportTask","UnreportTask","cycle","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","Fold","z","c","to","failIfRejected","runContinuation1","next","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","b","thisArg","y","inherit","Parent","Child","objectCreate","constructor","Object","create","proto","_defer","onFulfilled","onRejected","onProgress","p","_beget","chain","_traverse","_visitRemaining","when","fail","_state","fulfilled","rejected","progress","q","cont","foreverPendingHandler","_resolve","_reject","_notify","__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","message","address","$__Object$getPrototypeOf","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","get","$__Object$create","props","F","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","loaderObj","normalize","modules","l","loads","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","done","linkSet","createLinkSet","startingLoad","loadingCount","j","d","doLink","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","linkIndex","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","preventExtensions","msg","Loader","_loader","importPromises","createImportPromise","promise","m","assert","item","thisLen","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","doCompile","compiler","filename","compile","traceur","WorkerGlobalScope","traceurOptions","script","sourceMaps","Compiler","sourceMap","getSourceMap","btoa","unescape","encodeURIComponent","Reflect","LoaderPolyfill","parseURI","url","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","fetchTextFromURL","isWorker","isBrowser","isWindows","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6-module-loader.src.js b/dist/es6-module-loader.src.js index c05227a..f3b955b 100644 --- a/dist/es6-module-loader.src.js +++ b/dist/es6-module-loader.src.js @@ -32,7 +32,7 @@ define(function (require) { }); })(typeof define === 'function' && define.amd ? define : function (factory) { module.exports = factory(require); }); -},{"./Scheduler":3,"./env":5,"./makePromise":6}],3:[function(require,module,exports){ +},{"./Scheduler":3,"./env":5,"./makePromise":7}],3:[function(require,module,exports){ /** @license MIT License (c) copyright 2010-2014 original author or authors */ /** @author Brian Cavalier */ /** @author John Hann */ @@ -123,6 +123,7 @@ define(function() { define(function(require) { var setTimer = require('../env').setTimer; + var format = require('../format'); return function unhandledRejection(Promise) { var logError = noop; @@ -162,7 +163,7 @@ define(function(require) { function report(r) { if(!r.handled) { reported.push(r); - logError('Potentially unhandled rejection [' + r.id + '] ' + formatError(r.value)); + logError('Potentially unhandled rejection [' + r.id + '] ' + format.formatError(r.value)); } } @@ -170,7 +171,7 @@ define(function(require) { var i = reported.indexOf(r); if(i >= 0) { reported.splice(i, 1); - logInfo('Handled previous rejection [' + r.id + '] ' + formatObject(r.value)); + logInfo('Handled previous rejection [' + r.id + '] ' + format.formatObject(r.value)); } } @@ -191,28 +192,6 @@ define(function(require) { return Promise; }; - function formatError(e) { - var s = typeof e === 'object' && e.stack ? e.stack : formatObject(e); - return e instanceof Error ? s : s + ' (WARNING: non-Error used)'; - } - - function formatObject(o) { - var s = String(o); - if(s === '[object Object]' && typeof JSON !== 'undefined') { - s = tryStringify(o, s); - } - return s; - } - - function tryStringify(e, defaultValue) { - try { - return JSON.stringify(e); - } catch(e) { - // Ignore. Cannot JSON.stringify e, stick with String(e) - return defaultValue; - } - } - function throwit(e) { throw e; } @@ -222,7 +201,7 @@ define(function(require) { }); }(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); })); -},{"../env":5}],5:[function(require,module,exports){ +},{"../env":5,"../format":6}],5:[function(require,module,exports){ /** @license MIT License (c) copyright 2010-2014 original author or authors */ /** @author Brian Cavalier */ /** @author John Hann */ @@ -302,6 +281,64 @@ define(function(require) { /** @author Brian Cavalier */ /** @author John Hann */ +(function(define) { 'use strict'; +define(function() { + + return { + formatError: formatError, + formatObject: formatObject, + tryStringify: tryStringify + }; + + /** + * Format an error into a string. If e is an Error and has a stack property, + * it's returned. Otherwise, e is formatted using formatObject, with a + * warning added about e not being a proper Error. + * @param {*} e + * @returns {String} formatted string, suitable for output to developers + */ + function formatError(e) { + var s = typeof e === 'object' && e !== null && e.stack ? e.stack : formatObject(e); + return e instanceof Error ? s : s + ' (WARNING: non-Error used)'; + } + + /** + * Format an object, detecting "plain" objects and running them through + * JSON.stringify if possible. + * @param {Object} o + * @returns {string} + */ + function formatObject(o) { + var s = String(o); + if(s === '[object Object]' && typeof JSON !== 'undefined') { + s = tryStringify(o, s); + } + return s; + } + + /** + * Try to return the result of JSON.stringify(x). If that fails, return + * defaultValue + * @param {*} x + * @param {*} defaultValue + * @returns {String|*} JSON.stringify(x) or defaultValue + */ + function tryStringify(x, defaultValue) { + try { + return JSON.stringify(x); + } catch(e) { + return defaultValue; + } + } + +}); +}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); })); + +},{}],7:[function(require,module,exports){ +/** @license MIT License (c) copyright 2010-2014 original author or authors */ +/** @author Brian Cavalier */ +/** @author John Hann */ + (function(define) { 'use strict'; define(function() { @@ -1329,7 +1366,8 @@ function logloads(loads) { (function() { var Promise = __global.Promise || require('when/es6-shim/Promise'); - console.assert = console.assert || function() {}; + if (__global.console) + console.assert = console.assert || function() {}; // IE8 support var indexOf = Array.prototype.indexOf || function(item) { @@ -1397,7 +1435,7 @@ function logloads(loads) { load = createLoad(name); load.status = 'linked'; // https://bugs.ecmascript.org/show_bug.cgi?id=2795 - // load.module = loader.modules[name]; + load.module = loader.modules[name]; return load; } @@ -1473,7 +1511,7 @@ function logloads(loads) { if (instantiateResult === undefined) { load.address = load.address || ''; - // NB instead of load.kind, use load.isDeclarative + // instead of load.kind, use load.isDeclarative load.isDeclarative = true; // parse sets load.declare, load.depsList loader.loaderObj.parse(load); @@ -1565,12 +1603,10 @@ function logloads(loads) { if (loader.modules[name]) throw new TypeError('"' + name + '" already exists in the module table'); - // NB this still seems wrong for LoadModule as we may load a dependency - // of another module directly before it has finished loading. - // see https://bugs.ecmascript.org/show_bug.cgi?id=2994 + // adjusted to pick up existing loads for (var i = 0, l = loader.loads.length; i < l; i++) if (loader.loads[i].name == name) - throw new TypeError('"' + name + '" already loading'); + return resolve(loader.loads[i].linkSets[0].done); var load = createLoad(name); @@ -2308,8 +2344,6 @@ function logloads(loads) { console.assert(load.source, 'Non-empty source'); - var depsList; - load.isDeclarative = true; var options = this.traceurOptions || {}; @@ -2327,8 +2361,10 @@ function logloads(loads) { var sourceMap = compiler.getSourceMap(); - if (__global.btoa && sourceMap) + if (__global.btoa && sourceMap) { + source += '\n//# sourceURL=' + load.address + '!eval'; source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(sourceMap))) + '\n'; + } source = 'var __moduleAddress = "' + load.address + '";' + source; From fc4a49f42a3b5513539c581c084146cc6f20cf50 Mon Sep 17 00:00:00 2001 From: guybedford Date: Mon, 15 Dec 2014 17:52:33 +0200 Subject: [PATCH 113/482] 0.11.0 --- README.md | 20 ++++++++++++-------- bower.json | 2 +- dist/es6-module-loader-sans-promises.js | 2 +- dist/es6-module-loader-sans-promises.js.map | 2 +- dist/es6-module-loader-sans-promises.src.js | 7 +++---- dist/es6-module-loader.js | 2 +- dist/es6-module-loader.js.map | 2 +- dist/es6-module-loader.src.js | 7 +++---- package.json | 2 +- src/loader.js | 7 +++---- 10 files changed, 27 insertions(+), 26 deletions(-) diff --git a/README.md b/README.md index 76f0164..72cd4bb 100644 --- a/README.md +++ b/README.md @@ -1,13 +1,11 @@ # ES6 Module Loader Polyfill [![Build Status][travis-image]][travis-url] -Dynamically loads ES6 modules in NodeJS and current browsers. +Dynamically loads ES6 modules in browsers and [NodeJS](#nodejs-usage) supporting custom module resolution and the loading of existing module formats from ES6 modules via a hookable pipeline. -* Implemented exactly to the July 18 2014 ES6 specification draft. * Provides an asynchronous loader (`System.import`) to [dynamically load ES6 modules](#basic-use). * Uses [Traceur](https://github.com/google/traceur-compiler) for compiling ES6 modules and syntax into ES5 in the browser with source map support. * Fully supports [ES6 circular references and bindings](#circular-references--bindings). * Polyfills ES6 Promises in the browser with an optionally bundled ES6 promise implementation. -* [Compatible with NodeJS](#nodejs-usage) allowing for server-side module loading and tracing extensions. * Supports ES6 module loading in IE8+. Other ES6 features only supported by Traceur in IE9+. * The complete combined polyfill, including ES6 promises, comes to 9KB minified and gzipped, making it suitable for production use, provided that modules are [built into ES5 making them independent of Traceur](#moving-to-production). @@ -17,15 +15,21 @@ See the [demo folder](https://github.com/ModuleLoader/es6-module-loader/blob/mas For an example of a universal module loader based on this polyfill for loading AMD, CommonJS and globals, see [SystemJS](https://github.com/systemjs/systemjs). -_The current version is tested against **[Traceur 0.0.72](https://github.com/google/traceur-compiler/tree/0.0.72)**._ +_The current version is tested against **[Traceur 0.0.79](https://github.com/google/traceur-compiler/tree/0.0.79)**._ -_Note the ES6 module specification is still in draft, and subject to change._ +### Background + +The ES6 specification defines a module system in JavaScript using `import` and `export` syntax. This syntax will be supported within the ` @@ -187,7 +191,7 @@ A basic example of using this extension with a build would be the following: traceur --out app-build.js app/app.js --modules=instantiate ``` -2. If using additional ES6 features apart from modules syntax, load [`traceur-runtime.js`](https://raw.githubusercontent.com/jmcriffey/bower-traceur/0.0.72/traceur-runtime.js) (also included in the `bin` folder when installing Traceur through Bower or npm). Then include `es6-module-loader.js` and then apply the register extension before doing the import or loading the bundle as a script: +2. If using additional ES6 features apart from modules syntax, load [`traceur-runtime.js`](https://raw.githubusercontent.com/jmcriffey/bower-traceur/0.0.79/traceur-runtime.js) (also included in the `bin` folder when installing Traceur through Bower or npm). Then include `es6-module-loader.js` and then apply the register extension before doing the import or loading the bundle as a script: ```html diff --git a/bower.json b/bower.json index 9ddeea0..e36403c 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "es6-module-loader", - "version": "0.10.0", + "version": "0.11.0", "description": "An ES6 Module Loader polyfill based on the latest spec.", "homepage": "https://github.com/ModuleLoader/es6-module-loader", "main": "dist/es6-module-loader-sans-promises.js", diff --git a/dist/es6-module-loader-sans-promises.js b/dist/es6-module-loader-sans-promises.js index c6bf9d0..767244f 100644 --- a/dist/es6-module-loader-sans-promises.js +++ b/dist/es6-module-loader-sans-promises.js @@ -1,5 +1,5 @@ /* - * es6-module-loader v0.10.0 + * es6-module-loader v0.11.0 * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ diff --git a/dist/es6-module-loader-sans-promises.js.map b/dist/es6-module-loader-sans-promises.js.map index f5a3653..adb59d2 100644 --- a/dist/es6-module-loader-sans-promises.js.map +++ b/dist/es6-module-loader-sans-promises.js.map @@ -1 +1 @@ -{"version":3,"file":"es6-module-loader-sans-promises.js","sources":["es6-module-loader-sans-promises.src.js"],"names":["__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","e","message","address","$__Object$getPrototypeOf","Object","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","value","get","call","$__Object$create","create","o","props","F","prototype","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","Promise","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","resolve","loaderObj","normalize","then","modules","module","i","l","loads","length","push","proceedToLocate","proceedToFetch","locate","p","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","TypeError","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","all","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","done","linkSet","createLinkSet","startingLoad","loadingCount","reject","j","d","doLink","error","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","indexOf","linkIndex","splice","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","Error","preventExtensions","msg","Loader","this","_loader","importPromises","createImportPromise","promise","m","require","console","assert","Array","item","thisLen","constructor","define","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","doCompile","compiler","filename","compile","traceur","window","WorkerGlobalScope","traceurOptions","script","sourceMaps","Compiler","sourceMap","getSourceMap","btoa","unescape","encodeURIComponent","exports","Reflect","global","LoaderPolyfill","parseURI","url","String","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","join","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","document","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","setTimeout","fetchTextFromURL","isWorker","self","isBrowser","isWindows","process","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","data","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"es6-module-loader-sans-promises.js","sources":["es6-module-loader-sans-promises.src.js"],"names":["__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","e","message","address","$__Object$getPrototypeOf","Object","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","value","get","call","$__Object$create","create","o","props","F","prototype","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","Promise","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","resolve","loaderObj","normalize","then","modules","module","i","l","loads","length","push","proceedToLocate","proceedToFetch","locate","p","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","TypeError","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","all","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","done","linkSet","createLinkSet","startingLoad","loadingCount","reject","j","d","doLink","error","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","indexOf","linkIndex","splice","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","Error","preventExtensions","msg","Loader","this","_loader","importPromises","createImportPromise","promise","m","require","console","assert","Array","item","thisLen","constructor","define","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","doCompile","compiler","filename","compile","traceur","window","WorkerGlobalScope","traceurOptions","script","sourceMaps","Compiler","sourceMap","getSourceMap","btoa","unescape","encodeURIComponent","exports","Reflect","global","LoaderPolyfill","parseURI","url","String","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","join","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","document","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","setTimeout","fetchTextFromURL","isWorker","self","isBrowser","isWindows","process","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","data","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6-module-loader-sans-promises.src.js b/dist/es6-module-loader-sans-promises.src.js index 63f4d10..27e370d 100644 --- a/dist/es6-module-loader-sans-promises.src.js +++ b/dist/es6-module-loader-sans-promises.src.js @@ -37,9 +37,10 @@ $__Object$create = Object.create || function(o, props) { /* ********************************************************************************************* - Loader Polyfill + Dynamic Module Loader Polyfill - - Implemented exactly to the 2014-07-18 Specification Draft. + - Implemented exactly to the former 2014-08-24 ES6 Specification Draft Rev 27, Section 15 + http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#august_24_2014_draft_rev_27 - Functions are commented with their spec numbers, with spec differences commented. @@ -50,8 +51,6 @@ $__Object$create = Object.create || function(o, props) { - Realm implementation is entirely omitted. - - Loader module table iteration currently not yet implemented. - ********************************************************************************************* */ diff --git a/dist/es6-module-loader.js b/dist/es6-module-loader.js index f5903b8..273326f 100644 --- a/dist/es6-module-loader.js +++ b/dist/es6-module-loader.js @@ -1,5 +1,5 @@ /* - * es6-module-loader v0.10.0 + * es6-module-loader v0.11.0 * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ diff --git a/dist/es6-module-loader.js.map b/dist/es6-module-loader.js.map index 9327076..1ec5b3e 100644 --- a/dist/es6-module-loader.js.map +++ b/dist/es6-module-loader.js.map @@ -1 +1 @@ -{"version":3,"file":"es6-module-loader.js","sources":["es6-module-loader.src.js"],"names":["e","exports","module","define","amd","window","Promise","global","self","t","n","r","s","o","u","a","require","i","Error","f","call","length",1,"unhandledRejections","PromiseConstructor","../lib/Promise","../lib/decorators/unhandledRejection",2,"makePromise","Scheduler","async","asap","scheduler","factory","./Scheduler","./env","./makePromise",3,"this","_async","_running","_queue","Array","_queueLen","_afterQueue","_afterQueueLen","drain","_drain","prototype","enqueue","task","run","afterQueue",4,"throwit","noop","setTimer","format","report","handled","reported","push","logError","id","formatError","value","unreport","indexOf","splice","logInfo","formatObject","x","tasks","running","flush","shift","localConsole","console","error","log","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","../env","../format",5,"isNode","process","nextTick","hasMutationObserver","MutationObserver","WebKitMutationObserver","initMutationObserver","scheduled","node","document","createTextNode","observe","characterData","data","MutationObs","capturedSetTimeout","setTimeout","ms","clearTimer","clearTimeout","vertxRequire","vertx","cancelTimer","runOnLoop","runOnContext",6,"stack","String","JSON","tryStringify","defaultValue","stringify",7,"environment","resolver","handler","_handler","Handler","init","promiseResolve","resolve","promiseReject","reason","reject","promiseNotify","notify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","begetFrom","parent","child","receiver","join","context","all","promises","traverseWith","snd","traverse","tryCatch2","tryMap","mapAt","resolved","traverseAt","settleAt","results","pending","become","Fulfilled","maybeThenable","h","getHandlerMaybeThenable","state","fold","visitRemaining","start","markAsHandled","visit","_unreport","race","TypeError","runRace","getHandlerUntrusted","untrustedThen","then","Thenable","FailIfRejected","inheritedContext","createContext","consumers","thenable","AssimilateTask","errorId","_report","ReportTask","UnreportTask","cycle","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","Fold","z","c","to","failIfRejected","runContinuation1","next","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","b","thisArg","y","inherit","Parent","Child","objectCreate","constructor","Object","create","proto","_defer","onFulfilled","onRejected","onProgress","p","_beget","chain","_traverse","_visitRemaining","when","fail","_state","fulfilled","rejected","progress","q","cont","foreverPendingHandler","_resolve","_reject","_notify","__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","message","address","$__Object$getPrototypeOf","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","get","$__Object$create","props","F","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","loaderObj","normalize","modules","l","loads","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","done","linkSet","createLinkSet","startingLoad","loadingCount","j","d","doLink","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","linkIndex","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","preventExtensions","msg","Loader","_loader","importPromises","createImportPromise","promise","m","assert","item","thisLen","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","doCompile","compiler","filename","compile","traceur","WorkerGlobalScope","traceurOptions","script","sourceMaps","Compiler","sourceMap","getSourceMap","btoa","unescape","encodeURIComponent","Reflect","LoaderPolyfill","parseURI","url","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","fetchTextFromURL","isWorker","isBrowser","isWindows","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"es6-module-loader.js","sources":["es6-module-loader.src.js"],"names":["e","exports","module","define","amd","window","Promise","global","self","t","n","r","s","o","u","a","require","i","Error","f","call","length",1,"unhandledRejections","PromiseConstructor","../lib/Promise","../lib/decorators/unhandledRejection",2,"makePromise","Scheduler","async","asap","scheduler","factory","./Scheduler","./env","./makePromise",3,"this","_async","_running","_queue","Array","_queueLen","_afterQueue","_afterQueueLen","drain","_drain","prototype","enqueue","task","run","afterQueue",4,"throwit","noop","setTimer","format","report","handled","reported","push","logError","id","formatError","value","unreport","indexOf","splice","logInfo","formatObject","x","tasks","running","flush","shift","localConsole","console","error","log","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","../env","../format",5,"isNode","process","nextTick","hasMutationObserver","MutationObserver","WebKitMutationObserver","initMutationObserver","scheduled","node","document","createTextNode","observe","characterData","data","MutationObs","capturedSetTimeout","setTimeout","ms","clearTimer","clearTimeout","vertxRequire","vertx","cancelTimer","runOnLoop","runOnContext",6,"stack","String","JSON","tryStringify","defaultValue","stringify",7,"environment","resolver","handler","_handler","Handler","init","promiseResolve","resolve","promiseReject","reason","reject","promiseNotify","notify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","begetFrom","parent","child","receiver","join","context","all","promises","traverseWith","snd","traverse","tryCatch2","tryMap","mapAt","resolved","traverseAt","settleAt","results","pending","become","Fulfilled","maybeThenable","h","getHandlerMaybeThenable","state","fold","visitRemaining","start","markAsHandled","visit","_unreport","race","TypeError","runRace","getHandlerUntrusted","untrustedThen","then","Thenable","FailIfRejected","inheritedContext","createContext","consumers","thenable","AssimilateTask","errorId","_report","ReportTask","UnreportTask","cycle","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","Fold","z","c","to","failIfRejected","runContinuation1","next","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","b","thisArg","y","inherit","Parent","Child","objectCreate","constructor","Object","create","proto","_defer","onFulfilled","onRejected","onProgress","p","_beget","chain","_traverse","_visitRemaining","when","fail","_state","fulfilled","rejected","progress","q","cont","foreverPendingHandler","_resolve","_reject","_notify","__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","message","address","$__Object$getPrototypeOf","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","get","$__Object$create","props","F","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","loaderObj","normalize","modules","l","loads","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","done","linkSet","createLinkSet","startingLoad","loadingCount","j","d","doLink","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","linkIndex","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","preventExtensions","msg","Loader","_loader","importPromises","createImportPromise","promise","m","assert","item","thisLen","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","doCompile","compiler","filename","compile","traceur","WorkerGlobalScope","traceurOptions","script","sourceMaps","Compiler","sourceMap","getSourceMap","btoa","unescape","encodeURIComponent","Reflect","LoaderPolyfill","parseURI","url","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","fetchTextFromURL","isWorker","isBrowser","isWindows","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6-module-loader.src.js b/dist/es6-module-loader.src.js index f3b955b..d96cfa2 100644 --- a/dist/es6-module-loader.src.js +++ b/dist/es6-module-loader.src.js @@ -1262,9 +1262,10 @@ $__Object$create = Object.create || function(o, props) { /* ********************************************************************************************* - Loader Polyfill + Dynamic Module Loader Polyfill - - Implemented exactly to the 2014-07-18 Specification Draft. + - Implemented exactly to the former 2014-08-24 ES6 Specification Draft Rev 27, Section 15 + http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#august_24_2014_draft_rev_27 - Functions are commented with their spec numbers, with spec differences commented. @@ -1275,8 +1276,6 @@ $__Object$create = Object.create || function(o, props) { - Realm implementation is entirely omitted. - - Loader module table iteration currently not yet implemented. - ********************************************************************************************* */ diff --git a/package.json b/package.json index d896767..91f81a9 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "es6-module-loader", "description": "An ES6 Module Loader shim", - "version": "0.10.0", + "version": "0.11.0", "homepage": "https://github.com/ModuleLoader/es6-module-loader", "author": { "name": "Guy Bedford, Luke Hoban, Addy Osmani", diff --git a/src/loader.js b/src/loader.js index 81de41c..98a1591 100644 --- a/src/loader.js +++ b/src/loader.js @@ -1,9 +1,10 @@ /* ********************************************************************************************* - Loader Polyfill + Dynamic Module Loader Polyfill - - Implemented exactly to the 2014-07-18 Specification Draft. + - Implemented exactly to the former 2014-08-24 ES6 Specification Draft Rev 27, Section 15 + http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#august_24_2014_draft_rev_27 - Functions are commented with their spec numbers, with spec differences commented. @@ -14,8 +15,6 @@ - Realm implementation is entirely omitted. - - Loader module table iteration currently not yet implemented. - ********************************************************************************************* */ From e2789c05315aad9b2f1b4e3d27aa9c4cc917b167 Mon Sep 17 00:00:00 2001 From: guybedford Date: Wed, 17 Dec 2014 11:48:13 +0200 Subject: [PATCH 114/482] ensure only single sourceURL --- src/loader.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/loader.js b/src/loader.js index 81de41c..22a392b 100644 --- a/src/loader.js +++ b/src/loader.js @@ -1101,7 +1101,9 @@ function logloads(loads) { var sourceMap = compiler.getSourceMap(); if (__global.btoa && sourceMap) { - source += '\n//# sourceURL=' + load.address + '!eval'; + // add "!eval" to end of Traceur sourceURL + // I believe this does something? + source += '!eval'; source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(sourceMap))) + '\n'; } From 25b7ae8692d95f2983a89b70ccd38614d5f9272b Mon Sep 17 00:00:00 2001 From: guybedford Date: Thu, 18 Dec 2014 10:36:44 +0200 Subject: [PATCH 115/482] ensure traceurOptions exists --- src/loader.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/loader.js b/src/loader.js index 22a392b..d7af27b 100644 --- a/src/loader.js +++ b/src/loader.js @@ -894,6 +894,7 @@ function logloads(loads) { }); // 26.3.3.13 realm not implemented + this.traceurOptions = {}; } function Module() {} From 96b436a7d1b601a116c0069397fda7cd62658127 Mon Sep 17 00:00:00 2001 From: guybedford Date: Thu, 18 Dec 2014 11:14:15 +0200 Subject: [PATCH 116/482] inline source maps in Traceur --- src/loader.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/loader.js b/src/loader.js index d7af27b..8b78972 100644 --- a/src/loader.js +++ b/src/loader.js @@ -1089,7 +1089,7 @@ function logloads(loads) { var options = this.traceurOptions || {}; options.modules = 'instantiate'; options.script = false; - options.sourceMaps = true; + options.sourceMaps = 'inline'; options.filename = load.address; var compiler = new traceur.Compiler(options); @@ -1105,7 +1105,6 @@ function logloads(loads) { // add "!eval" to end of Traceur sourceURL // I believe this does something? source += '!eval'; - source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(sourceMap))) + '\n'; } source = 'var __moduleAddress = "' + load.address + '";' + source; From 062485be1f7811f9e0f6d6c8fab52c9c805a08c9 Mon Sep 17 00:00:00 2001 From: guybedford Date: Thu, 18 Dec 2014 13:08:08 +0200 Subject: [PATCH 117/482] include build --- dist/es6-module-loader-sans-promises.js | 2 +- dist/es6-module-loader-sans-promises.js.map | 2 +- dist/es6-module-loader-sans-promises.src.js | 8 +++++--- dist/es6-module-loader.js | 2 +- dist/es6-module-loader.js.map | 2 +- dist/es6-module-loader.src.js | 8 +++++--- 6 files changed, 14 insertions(+), 10 deletions(-) diff --git a/dist/es6-module-loader-sans-promises.js b/dist/es6-module-loader-sans-promises.js index c6bf9d0..d92164a 100644 --- a/dist/es6-module-loader-sans-promises.js +++ b/dist/es6-module-loader-sans-promises.js @@ -4,5 +4,5 @@ * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(__global){function __eval(__source,__global,load){var __curRegister=System.register;System.register=function(a,b,c){"string"!=typeof a&&(c=b,b=a),load.declare=c,load.depsList=b};try{eval('(function() { var __moduleName = "'+(load.name||"").replace('"','"')+'"; '+__source+" \n }).call(__global);")}catch(e){throw("SyntaxError"==e.name||"TypeError"==e.name)&&(e.message="Evaluating "+(load.name||load.address)+"\n "+e.message),e}System.register=__curRegister}$__Object$getPrototypeOf=Object.getPrototypeOf||function(a){return a.__proto__};var $__Object$defineProperty;!function(){try{Object.defineProperty({},"a",{})&&($__Object$defineProperty=Object.defineProperty)}catch(a){$__Object$defineProperty=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),$__Object$create=Object.create||function(a,b){function c(){}if(c.prototype=a,"object"==typeof b)for(prop in b)b.hasOwnProperty(prop)&&(c[prop]=b[prop]);return new c},function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new A(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:c&&c.metadata||{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new A(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return e=a(c),e.status="linked",e.module=b.modules[c],e;for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)return c(g.loads[k].linkSets[0].done);var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,A.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=x.prototype.newModule;!function(){function a(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}var b;x.prototype.parse=function(c){if(!b)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=this.traceurOptions||{};d.modules="instantiate",d.script=!1,d.sourceMaps=!0,d.filename=c.address;var e=new b.Compiler(d),f=a(c.source,e,d.filename);if(!f)throw new Error("Error evaluating module "+c.address);var g=e.getSourceMap();__global.btoa&&g&&(f+="\n//# sourceURL="+c.address+"!eval",f+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(g)))+"\n"),f='var __moduleAddress = "'+c.address+'";'+f,__eval(f,__global,c)}}(),"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); +!function(__global){function __eval(__source,__global,load){var __curRegister=System.register;System.register=function(a,b,c){"string"!=typeof a&&(c=b,b=a),load.declare=c,load.depsList=b};try{eval('(function() { var __moduleName = "'+(load.name||"").replace('"','"')+'"; '+__source+" \n }).call(__global);")}catch(e){throw("SyntaxError"==e.name||"TypeError"==e.name)&&(e.message="Evaluating "+(load.name||load.address)+"\n "+e.message),e}System.register=__curRegister}$__Object$getPrototypeOf=Object.getPrototypeOf||function(a){return a.__proto__};var $__Object$defineProperty;!function(){try{Object.defineProperty({},"a",{})&&($__Object$defineProperty=Object.defineProperty)}catch(a){$__Object$defineProperty=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),$__Object$create=Object.create||function(a,b){function c(){}if(c.prototype=a,"object"==typeof b)for(prop in b)b.hasOwnProperty(prop)&&(c[prop]=b[prop]);return new c},function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new A(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:c&&c.metadata||{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new A(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return e=a(c),e.status="linked",e.module=b.modules[c],e;for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)return c(g.loads[k].linkSets[0].done);var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,A.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}}),this.traceurOptions={}}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=x.prototype.newModule;!function(){function a(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}var b;x.prototype.parse=function(c){if(!b)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=this.traceurOptions||{};d.modules="instantiate",d.script=!1,d.sourceMaps="inline",d.filename=c.address;var e=new b.Compiler(d),f=a(c.source,e,d.filename);if(!f)throw new Error("Error evaluating module "+c.address);var g=e.getSourceMap();__global.btoa&&g&&(f+="!eval"),f='var __moduleAddress = "'+c.address+'";'+f,__eval(f,__global,c)}}(),"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); //# sourceMappingURL=es6-module-loader-sans-promises.js.map \ No newline at end of file diff --git a/dist/es6-module-loader-sans-promises.js.map b/dist/es6-module-loader-sans-promises.js.map index f5a3653..2e7693e 100644 --- a/dist/es6-module-loader-sans-promises.js.map +++ b/dist/es6-module-loader-sans-promises.js.map @@ -1 +1 @@ -{"version":3,"file":"es6-module-loader-sans-promises.js","sources":["es6-module-loader-sans-promises.src.js"],"names":["__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","e","message","address","$__Object$getPrototypeOf","Object","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","value","get","call","$__Object$create","create","o","props","F","prototype","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","Promise","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","resolve","loaderObj","normalize","then","modules","module","i","l","loads","length","push","proceedToLocate","proceedToFetch","locate","p","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","TypeError","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","all","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","done","linkSet","createLinkSet","startingLoad","loadingCount","reject","j","d","doLink","error","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","indexOf","linkIndex","splice","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","Error","preventExtensions","msg","Loader","this","_loader","importPromises","createImportPromise","promise","m","require","console","assert","Array","item","thisLen","constructor","define","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","doCompile","compiler","filename","compile","traceur","window","WorkerGlobalScope","traceurOptions","script","sourceMaps","Compiler","sourceMap","getSourceMap","btoa","unescape","encodeURIComponent","exports","Reflect","global","LoaderPolyfill","parseURI","url","String","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","join","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","document","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","setTimeout","fetchTextFromURL","isWorker","self","isBrowser","isWindows","process","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","data","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"es6-module-loader-sans-promises.js","sources":["es6-module-loader-sans-promises.src.js"],"names":["__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","e","message","address","$__Object$getPrototypeOf","Object","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","value","get","call","$__Object$create","create","o","props","F","prototype","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","Promise","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","resolve","loaderObj","normalize","then","modules","module","i","l","loads","length","push","proceedToLocate","proceedToFetch","locate","p","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","TypeError","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","all","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","done","linkSet","createLinkSet","startingLoad","loadingCount","reject","j","d","doLink","error","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","indexOf","linkIndex","splice","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","Error","preventExtensions","msg","Loader","this","_loader","importPromises","traceurOptions","createImportPromise","promise","m","require","console","assert","Array","item","thisLen","constructor","define","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","doCompile","compiler","filename","compile","traceur","window","WorkerGlobalScope","script","sourceMaps","Compiler","sourceMap","getSourceMap","btoa","exports","Reflect","global","LoaderPolyfill","parseURI","url","String","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","join","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","document","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","setTimeout","fetchTextFromURL","isWorker","self","isBrowser","isWindows","process","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","data","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6-module-loader-sans-promises.src.js b/dist/es6-module-loader-sans-promises.src.js index 63f4d10..f5458c4 100644 --- a/dist/es6-module-loader-sans-promises.src.js +++ b/dist/es6-module-loader-sans-promises.src.js @@ -930,6 +930,7 @@ function logloads(loads) { }); // 26.3.3.13 realm not implemented + this.traceurOptions = {}; } function Module() {} @@ -1124,7 +1125,7 @@ function logloads(loads) { var options = this.traceurOptions || {}; options.modules = 'instantiate'; options.script = false; - options.sourceMaps = true; + options.sourceMaps = 'inline'; options.filename = load.address; var compiler = new traceur.Compiler(options); @@ -1137,8 +1138,9 @@ function logloads(loads) { var sourceMap = compiler.getSourceMap(); if (__global.btoa && sourceMap) { - source += '\n//# sourceURL=' + load.address + '!eval'; - source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(sourceMap))) + '\n'; + // add "!eval" to end of Traceur sourceURL + // I believe this does something? + source += '!eval'; } source = 'var __moduleAddress = "' + load.address + '";' + source; diff --git a/dist/es6-module-loader.js b/dist/es6-module-loader.js index f5903b8..da677fd 100644 --- a/dist/es6-module-loader.js +++ b/dist/es6-module-loader.js @@ -4,5 +4,5 @@ * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=0&&(n.splice(b,1),l("Handled previous rejection ["+a.id+"] "+e.formatObject(a.value)))}function h(a,b){m.push(a,b),null===o&&(o=d(i,0))}function i(){for(o=null;m.length>0;)m.shift()(m.shift())}var j,k=c,l=c;"undefined"!=typeof console&&(j=console,k="undefined"!=typeof j.error?function(a){j.error(a)}:function(a){j.log(a)},l="undefined"!=typeof j.info?function(a){j.info(a)}:function(a){j.log(a)}),a.onPotentiallyUnhandledRejection=function(a){h(f,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){h(g,a)},a.onFatalRejection=function(a){h(b,a.value)};var m=[],n=[],o=null;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../env":5,"../format":6}],5:[function(b,c){!function(a){"use strict";a(function(a){function b(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick}function c(){return"function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver}function d(a){function b(){var a=c;c=void 0,a()}var c,d=document.createTextNode(""),e=new a(b);e.observe(d,{characterData:!0});var f=0;return function(a){c=a,d.data=f^=1}}var e,f="undefined"!=typeof setTimeout&&setTimeout,g=function(a,b){return setTimeout(a,b)},h=function(a){return clearTimeout(a)},i=function(a){return f(a,0)};if(b())i=function(a){return process.nextTick(a)};else if(e=c())i=d(e);else if(!f){var j=a,k=j("vertx");g=function(a,b){return k.setTimer(b,a)},h=k.cancelTimer,i=k.runOnLoop||k.runOnContext}return{setTimer:g,clearTimer:h,asap:i}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c){!function(a){"use strict";a(function(){function a(a){var c="object"==typeof a&&null!==a&&a.stack?a.stack:b(a);return a instanceof Error?c:c+" (WARNING: non-Error used)"}function b(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=c(a,b)),b}function c(a,b){try{return JSON.stringify(a)}catch(c){return b}}return{formatError:a,formatObject:b,tryStringify:c}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],7:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===t?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new v;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return I(a)?a:new b(t,new w(q(a)))}function e(a){return new b(t,new w(new z(a)))}function f(){return Z}function g(){return new b(t,new v)}function h(a,b){var c=new v(a.receiver,a.join().context);return new b(t,c)}function i(a){return k(S,null,a)}function j(a,b){return k(N,a,b)}function k(a,c,d){function e(b,e,g){g.resolved||l(d,f,b,a(c,e,b),g)}function f(a,b,c){k[a]=b,0===--j&&c.become(new y(k))}for(var g,h="function"==typeof c?e:f,i=new v,j=d.length>>>0,k=new Array(j),m=0;m0?b(c,f.value,e):(e.become(f),m(a,c+1,f))}else b(c,d,e)}function m(a,b,c){for(var d=b;dc&&a._unreport()}}function o(a){return"object"!=typeof a||null===a?e(new TypeError("non-iterable passed to race()")):0===a.length?f():1===a.length?d(a[0]):p(a)}function p(a){var c,d,e,f=new v;for(c=0;c0||"function"!=typeof b&&0>e)return new this.constructor(t,d);var f=this._beget(),g=f._handler;return d.chain(g,d.receiver,a,b,c),f},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){return h(this._handler,this.constructor)},b.all=i,b.race=o,b._traverse=j,b._visitRemaining=m,t.prototype.when=t.prototype.become=t.prototype.notify=t.prototype.fail=t.prototype._unreport=t.prototype._report=T,t.prototype._state=0,t.prototype.state=function(){return this._state},t.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},t.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},t.prototype.visit=function(a,b,c,d){this.chain(W,a,b,c,d)},t.prototype.fold=function(a,b,c,d){this.when(new H(a,b,c,d))},R(t,u),u.prototype.become=function(a){a.fail()};var W=new u;R(t,v),v.prototype._state=0,v.prototype.resolve=function(a){this.become(q(a))},v.prototype.reject=function(a){this.resolved||this.become(new z(a))},v.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=C();return a},v.prototype.run=function(){var a=this.consumers,b=this.join();this.consumers=void 0;for(var c=0;cf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)return c(g.loads[k].linkSets[0].done);var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,A.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=x.prototype.newModule;!function(){function a(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}var b;x.prototype.parse=function(c){if(!b)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=this.traceurOptions||{};d.modules="instantiate",d.script=!1,d.sourceMaps=!0,d.filename=c.address;var e=new b.Compiler(d),f=a(c.source,e,d.filename);if(!f)throw new Error("Error evaluating module "+c.address);var g=e.getSourceMap();__global.btoa&&g&&(f+="\n//# sourceURL="+c.address+"!eval",f+="\n//# sourceMappingURL=data:application/json;base64,"+btoa(unescape(encodeURIComponent(g)))+"\n"),f='var __moduleAddress = "'+c.address+'";'+f,__eval(f,__global,c)}}(),"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); +!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=0&&(n.splice(b,1),l("Handled previous rejection ["+a.id+"] "+e.formatObject(a.value)))}function h(a,b){m.push(a,b),null===o&&(o=d(i,0))}function i(){for(o=null;m.length>0;)m.shift()(m.shift())}var j,k=c,l=c;"undefined"!=typeof console&&(j=console,k="undefined"!=typeof j.error?function(a){j.error(a)}:function(a){j.log(a)},l="undefined"!=typeof j.info?function(a){j.info(a)}:function(a){j.log(a)}),a.onPotentiallyUnhandledRejection=function(a){h(f,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){h(g,a)},a.onFatalRejection=function(a){h(b,a.value)};var m=[],n=[],o=null;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../env":5,"../format":6}],5:[function(b,c){!function(a){"use strict";a(function(a){function b(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick}function c(){return"function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver}function d(a){function b(){var a=c;c=void 0,a()}var c,d=document.createTextNode(""),e=new a(b);e.observe(d,{characterData:!0});var f=0;return function(a){c=a,d.data=f^=1}}var e,f="undefined"!=typeof setTimeout&&setTimeout,g=function(a,b){return setTimeout(a,b)},h=function(a){return clearTimeout(a)},i=function(a){return f(a,0)};if(b())i=function(a){return process.nextTick(a)};else if(e=c())i=d(e);else if(!f){var j=a,k=j("vertx");g=function(a,b){return k.setTimer(b,a)},h=k.cancelTimer,i=k.runOnLoop||k.runOnContext}return{setTimer:g,clearTimer:h,asap:i}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c){!function(a){"use strict";a(function(){function a(a){var c="object"==typeof a&&null!==a&&a.stack?a.stack:b(a);return a instanceof Error?c:c+" (WARNING: non-Error used)"}function b(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=c(a,b)),b}function c(a,b){try{return JSON.stringify(a)}catch(c){return b}}return{formatError:a,formatObject:b,tryStringify:c}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],7:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===t?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new v;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return I(a)?a:new b(t,new w(q(a)))}function e(a){return new b(t,new w(new z(a)))}function f(){return Z}function g(){return new b(t,new v)}function h(a,b){var c=new v(a.receiver,a.join().context);return new b(t,c)}function i(a){return k(S,null,a)}function j(a,b){return k(N,a,b)}function k(a,c,d){function e(b,e,g){g.resolved||l(d,f,b,a(c,e,b),g)}function f(a,b,c){k[a]=b,0===--j&&c.become(new y(k))}for(var g,h="function"==typeof c?e:f,i=new v,j=d.length>>>0,k=new Array(j),m=0;m0?b(c,f.value,e):(e.become(f),m(a,c+1,f))}else b(c,d,e)}function m(a,b,c){for(var d=b;dc&&a._unreport()}}function o(a){return"object"!=typeof a||null===a?e(new TypeError("non-iterable passed to race()")):0===a.length?f():1===a.length?d(a[0]):p(a)}function p(a){var c,d,e,f=new v;for(c=0;c0||"function"!=typeof b&&0>e)return new this.constructor(t,d);var f=this._beget(),g=f._handler;return d.chain(g,d.receiver,a,b,c),f},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){return h(this._handler,this.constructor)},b.all=i,b.race=o,b._traverse=j,b._visitRemaining=m,t.prototype.when=t.prototype.become=t.prototype.notify=t.prototype.fail=t.prototype._unreport=t.prototype._report=T,t.prototype._state=0,t.prototype.state=function(){return this._state},t.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},t.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},t.prototype.visit=function(a,b,c,d){this.chain(W,a,b,c,d)},t.prototype.fold=function(a,b,c,d){this.when(new H(a,b,c,d))},R(t,u),u.prototype.become=function(a){a.fail()};var W=new u;R(t,v),v.prototype._state=0,v.prototype.resolve=function(a){this.become(q(a))},v.prototype.reject=function(a){this.resolved||this.become(new z(a))},v.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=C();return a},v.prototype.run=function(){var a=this.consumers,b=this.join();this.consumers=void 0;for(var c=0;cf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)return c(g.loads[k].linkSets[0].done);var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,A.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}}),this.traceurOptions={}}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=x.prototype.newModule;!function(){function a(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}var b;x.prototype.parse=function(c){if(!b)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=this.traceurOptions||{};d.modules="instantiate",d.script=!1,d.sourceMaps="inline",d.filename=c.address;var e=new b.Compiler(d),f=a(c.source,e,d.filename);if(!f)throw new Error("Error evaluating module "+c.address);var g=e.getSourceMap();__global.btoa&&g&&(f+="!eval"),f='var __moduleAddress = "'+c.address+'";'+f,__eval(f,__global,c)}}(),"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); //# sourceMappingURL=es6-module-loader.js.map \ No newline at end of file diff --git a/dist/es6-module-loader.js.map b/dist/es6-module-loader.js.map index 9327076..c5fda31 100644 --- a/dist/es6-module-loader.js.map +++ b/dist/es6-module-loader.js.map @@ -1 +1 @@ -{"version":3,"file":"es6-module-loader.js","sources":["es6-module-loader.src.js"],"names":["e","exports","module","define","amd","window","Promise","global","self","t","n","r","s","o","u","a","require","i","Error","f","call","length",1,"unhandledRejections","PromiseConstructor","../lib/Promise","../lib/decorators/unhandledRejection",2,"makePromise","Scheduler","async","asap","scheduler","factory","./Scheduler","./env","./makePromise",3,"this","_async","_running","_queue","Array","_queueLen","_afterQueue","_afterQueueLen","drain","_drain","prototype","enqueue","task","run","afterQueue",4,"throwit","noop","setTimer","format","report","handled","reported","push","logError","id","formatError","value","unreport","indexOf","splice","logInfo","formatObject","x","tasks","running","flush","shift","localConsole","console","error","log","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","../env","../format",5,"isNode","process","nextTick","hasMutationObserver","MutationObserver","WebKitMutationObserver","initMutationObserver","scheduled","node","document","createTextNode","observe","characterData","data","MutationObs","capturedSetTimeout","setTimeout","ms","clearTimer","clearTimeout","vertxRequire","vertx","cancelTimer","runOnLoop","runOnContext",6,"stack","String","JSON","tryStringify","defaultValue","stringify",7,"environment","resolver","handler","_handler","Handler","init","promiseResolve","resolve","promiseReject","reason","reject","promiseNotify","notify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","begetFrom","parent","child","receiver","join","context","all","promises","traverseWith","snd","traverse","tryCatch2","tryMap","mapAt","resolved","traverseAt","settleAt","results","pending","become","Fulfilled","maybeThenable","h","getHandlerMaybeThenable","state","fold","visitRemaining","start","markAsHandled","visit","_unreport","race","TypeError","runRace","getHandlerUntrusted","untrustedThen","then","Thenable","FailIfRejected","inheritedContext","createContext","consumers","thenable","AssimilateTask","errorId","_report","ReportTask","UnreportTask","cycle","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","Fold","z","c","to","failIfRejected","runContinuation1","next","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","b","thisArg","y","inherit","Parent","Child","objectCreate","constructor","Object","create","proto","_defer","onFulfilled","onRejected","onProgress","p","_beget","chain","_traverse","_visitRemaining","when","fail","_state","fulfilled","rejected","progress","q","cont","foreverPendingHandler","_resolve","_reject","_notify","__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","message","address","$__Object$getPrototypeOf","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","get","$__Object$create","props","F","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","loaderObj","normalize","modules","l","loads","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","done","linkSet","createLinkSet","startingLoad","loadingCount","j","d","doLink","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","linkIndex","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","preventExtensions","msg","Loader","_loader","importPromises","createImportPromise","promise","m","assert","item","thisLen","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","doCompile","compiler","filename","compile","traceur","WorkerGlobalScope","traceurOptions","script","sourceMaps","Compiler","sourceMap","getSourceMap","btoa","unescape","encodeURIComponent","Reflect","LoaderPolyfill","parseURI","url","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","fetchTextFromURL","isWorker","isBrowser","isWindows","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":";;;;;;CAAC,SAASA,GAAG,gBAAiBC,SAAQC,OAAOD,QAAQD,IAAI,kBAAmBG,SAAQA,OAAOC,IAAID,OAAOH,GAAG,mBAAoBK,QAAOA,OAAOC,QAAQN,IAAI,mBAAoBO,QAAOA,OAAOD,QAAQN,IAAI,mBAAoBQ,QAAOA,KAAKF,QAAQN,MAAM,WAAW,GAAIG,EAAsB,OAAO,SAAUH,GAAES,EAAEC,EAAEC,GAAG,QAASC,GAAEC,EAAEC,GAAG,IAAIJ,EAAEG,GAAG,CAAC,IAAIJ,EAAEI,GAAG,CAAC,GAAIE,GAAkB,kBAATC,UAAqBA,OAAQ,KAAIF,GAAGC,EAAE,MAAOA,GAAEF,GAAE,EAAI,IAAGI,EAAE,MAAOA,GAAEJ,GAAE,EAAI,MAAM,IAAIK,OAAM,uBAAuBL,EAAE,KAAK,GAAIM,GAAET,EAAEG,IAAIZ,WAAYQ,GAAEI,GAAG,GAAGO,KAAKD,EAAElB,QAAQ,SAASD,GAAG,GAAIU,GAAED,EAAEI,GAAG,GAAGb,EAAG,OAAOY,GAAEF,EAAEA,EAAEV,IAAImB,EAAEA,EAAElB,QAAQD,EAAES,EAAEC,EAAEC,GAAG,MAAOD,GAAEG,GAAGZ,QAAkD,IAAI,GAA1CgB,GAAkB,kBAATD,UAAqBA,QAAgBH,EAAE,EAAEA,EAAEF,EAAEU,OAAOR,IAAID,EAAED,EAAEE,GAAI,OAAOD,KAAKU,GAAG,SAASN,EAAQd,GAQ7sB,GAAIqB,GAAsBP,EAAQ,wCAC9BQ,EAAqBD,EAAoBP,EAAQ,kBAErDd,GAAOD,QAA2B,mBAAVM,QAAyBA,OAAOD,QAAUkB,EACnC,mBAAVhB,MAAyBA,KAAKF,QAAYkB,EACjDA,IAEXC,iBAAiB,EAAEC,uCAAuC,IAAIC,GAAG,SAASX,EAAQd,IAKrF,SAAUC,GAAU,YACpBA,GAAO,SAAUa,GAEhB,GAAIY,GAAcZ,EAAQ,iBACtBa,EAAYb,EAAQ,eACpBc,EAAQd,EAAQ,SAASe,IAE7B,OAAOH,IACNI,UAAW,GAAIH,GAAUC,QAIN,kBAAX3B,IAAyBA,EAAOC,IAAMD,EAAS,SAAU8B,GAAW/B,EAAOD,QAAUgC,EAAQjB,OAEpGkB,cAAc,EAAEC,QAAQ,EAAEC,gBAAgB,IAAIC,GAAG,SAASrB,EAAQd,IAKpE,SAASC,GAAU,YACpBA,GAAO,WAUN,QAAS0B,GAAUC,GAClBQ,KAAKC,OAAST,EACdQ,KAAKE,UAAW,EAEhBF,KAAKG,OAAS,GAAIC,OAAM,OACxBJ,KAAKK,UAAY,EACjBL,KAAKM,YAAc,GAAIF,OAAM,IAC7BJ,KAAKO,eAAiB,CAEtB,IAAIrC,GAAO8B,IACXA,MAAKQ,MAAQ,WACZtC,EAAKuC,UAkDP,MA1CAlB,GAAUmB,UAAUC,QAAU,SAASC,GACtCZ,KAAKG,OAAOH,KAAKK,aAAeO,EAChCZ,KAAKa,OAONtB,EAAUmB,UAAUI,WAAa,SAASF,GACzCZ,KAAKM,YAAYN,KAAKO,kBAAoBK,EAC1CZ,KAAKa,OAGNtB,EAAUmB,UAAUG,IAAM,WACpBb,KAAKE,WACTF,KAAKE,UAAW,EAChBF,KAAKC,OAAOD,KAAKQ,SAOnBjB,EAAUmB,UAAUD,OAAS,WAE5B,IADA,GAAI9B,GAAI,EACDA,EAAIqB,KAAKK,YAAa1B,EAC5BqB,KAAKG,OAAOxB,GAAGkC,MACfb,KAAKG,OAAOxB,GAAK,MAMlB,KAHAqB,KAAKK,UAAY,EACjBL,KAAKE,UAAW,EAEXvB,EAAI,EAAGA,EAAIqB,KAAKO,iBAAkB5B,EACtCqB,KAAKM,YAAY3B,GAAGkC,MACpBb,KAAKM,YAAY3B,GAAK,MAGvBqB,MAAKO,eAAiB,GAGhBhB,KAGY,kBAAX1B,IAAyBA,EAAOC,IAAMD,EAAS,SAAS8B,GAAW/B,EAAOD,QAAUgC,WAEvFoB,GAAG,SAASrC,EAAQd,IAKzB,SAASC,GAAU,YACpBA,GAAO,SAASa,GAwEf,QAASsC,GAAQtD,GAChB,KAAMA,GAGP,QAASuD,MA1ET,GAAIC,GAAWxC,EAAQ,UAAUwC,SAC7BC,EAASzC,EAAQ,YAErB,OAAO,UAA4BV,GAmClC,QAASoD,GAAO/C,GACXA,EAAEgD,UACLC,EAASC,KAAKlD,GACdmD,EAAS,oCAAsCnD,EAAEoD,GAAK,KAAON,EAAOO,YAAYrD,EAAEsD,SAIpF,QAASC,GAASvD,GACjB,GAAIM,GAAI2C,EAASO,QAAQxD,EACtBM,IAAK,IACP2C,EAASQ,OAAOnD,EAAG,GACnBoD,EAAQ,+BAAiC1D,EAAEoD,GAAK,KAAON,EAAOa,aAAa3D,EAAEsD,SAI/E,QAAShB,GAAQ9B,EAAGoD,GACnBC,EAAMX,KAAK1C,EAAGoD,GACC,OAAZE,IACFA,EAAUjB,EAASkB,EAAO,IAI5B,QAASA,KAER,IADAD,EAAU,KACJD,EAAMnD,OAAS,GACpBmD,EAAMG,QAAQH,EAAMG,SA3DtB,GAEIC,GAFAd,EAAWP,EACXc,EAAUd,CAGQ,oBAAZsB,WAITD,EAAeC,QACff,EAAyC,mBAAvBc,GAAaE,MAC5B,SAAU9E,GAAK4E,EAAaE,MAAM9E,IAClC,SAAUA,GAAK4E,EAAaG,IAAI/E,IAEnCqE,EAAuC,mBAAtBO,GAAaI,KAC3B,SAAUhF,GAAK4E,EAAaI,KAAKhF,IACjC,SAAUA,GAAK4E,EAAaG,IAAI/E,KAGpCM,EAAQ2E,gCAAkC,SAASC,GAClDjC,EAAQS,EAAQwB,IAGjB5E,EAAQ6E,uCAAyC,SAASD,GACzDjC,EAAQiB,EAAUgB,IAGnB5E,EAAQ8E,iBAAmB,SAASF,GACnCjC,EAAQK,EAAS4B,EAAUjB,OAG5B,IAAIO,MACAZ,KACAa,EAAU,IA+Bd,OAAOnE,OAUW,kBAAXH,IAAyBA,EAAOC,IAAMD,EAAS,SAAS8B,GAAW/B,EAAOD,QAAUgC,EAAQjB,OAElGqE,SAAS,EAAEC,YAAY,IAAIC,GAAG,SAASvE,EAAQd,IAMjD,SAASC,GAAU,YACpBA,GAAO,SAASa,GAqCf,QAASwE,KACR,MAA0B,mBAAZC,UAAuC,OAAZA,SACZ,kBAArBA,SAAQC,SAGjB,QAASC,KACR,MAAoC,kBAArBC,mBAAmCA,kBACd,kBAA3BC,yBAAyCA,uBAGnD,QAASC,GAAqBF,GAM7B,QAASzC,KACR,GAAIhC,GAAI4E,CACRA,GAAY,OACZ5E,IARD,GAAI4E,GACAC,EAAOC,SAASC,eAAe,IAC/BrF,EAAI,GAAI+E,GAAiBzC,EAC7BtC,GAAEsF,QAAQH,GAAQI,eAAe,GAQjC,IAAInF,GAAI,CACR,OAAO,UAAUE,GAChB4E,EAAY5E,EACZ6E,EAAKK,KAAQpF,GAAK,GAtDpB,GAAIqF,GACAC,EAA2C,mBAAfC,aAA8BA,WAG1DhD,EAAW,SAASrC,EAAGsF,GAAM,MAAOD,YAAWrF,EAAGsF,IAClDC,EAAa,SAASjG,GAAK,MAAOkG,cAAalG,IAC/CsB,EAAO,SAAUZ,GAAK,MAAOoF,GAAmBpF,EAAG,GAGvD,IAAIqE,IACHzD,EAAO,SAAUZ,GAAK,MAAOsE,SAAQC,SAASvE,QAExC,IAAImF,EAAcX,IACxB5D,EAAO+D,EAAqBQ,OAEtB,KAAKC,EAAoB,CAC/B,GAAIK,GAAe5F,EACf6F,EAAQD,EAAa,QACzBpD,GAAW,SAAUrC,EAAGsF,GAAM,MAAOI,GAAMrD,SAASiD,EAAItF,IACxDuF,EAAaG,EAAMC,YACnB/E,EAAO8E,EAAME,WAAaF,EAAMG,aAGjC,OACCxD,SAAUA,EACVkD,WAAYA,EACZ3E,KAAMA,MAgCY,kBAAX5B,IAAyBA,EAAOC,IAAMD,EAAS,SAAS8B,GAAW/B,EAAOD,QAAUgC,EAAQjB,UAE/FiG,GAAG,SAASjG,EAAQd,IAKzB,SAASC,GAAU,YACpBA,GAAO,WAeN,QAAS6D,GAAYhE,GACpB,GAAIY,GAAiB,gBAANZ,IAAwB,OAANA,GAAcA,EAAEkH,MAAQlH,EAAEkH,MAAQ5C,EAAatE,EAChF,OAAOA,aAAakB,OAAQN,EAAIA,EAAI,6BASrC,QAAS0D,GAAazD,GACrB,GAAID,GAAIuG,OAAOtG,EAIf,OAHS,oBAAND,GAA2C,mBAATwG,QACpCxG,EAAIyG,EAAaxG,EAAGD,IAEdA,EAUR,QAASyG,GAAa9C,EAAG+C,GACxB,IACC,MAAOF,MAAKG,UAAUhD,GACrB,MAAMvE,GACP,MAAOsH,IA3CT,OACCtD,YAAaA,EACbM,aAAcA,EACd+C,aAAcA,MA6CI,kBAAXlH,IAAyBA,EAAOC,IAAMD,EAAS,SAAS8B,GAAW/B,EAAOD,QAAUgC,WAEvFuF,GAAG,SAASxG,EAAQd,IAKzB,SAASC,GAAU,YACpBA,GAAO,WAEN,MAAO,UAAqBsH,GAiB3B,QAASnH,GAAQoH,EAAUC,GAC1BrF,KAAKsF,SAAWF,IAAaG,EAAUF,EAAUG,EAAKJ,GAQvD,QAASI,GAAKJ,GAgBb,QAASK,GAAgBxD,GACxBoD,EAAQK,QAAQzD,GAOjB,QAAS0D,GAAeC,GACvBP,EAAQQ,OAAOD,GAQhB,QAASE,GAAe7D,GACvBoD,EAAQU,OAAO9D,GAjChB,GAAIoD,GAAU,GAAIW,EAElB,KACCZ,EAASK,EAAgBE,EAAeG,GACvC,MAAOpI,GACRiI,EAAcjI,GAGf,MAAO2H,GA4CR,QAASK,GAAQzD,GAChB,MAAOgE,GAAUhE,GAAKA,EACnB,GAAIjE,GAAQuH,EAAS,GAAIW,GAAMC,EAAWlE,KAQ9C,QAAS4D,GAAO5D,GACf,MAAO,IAAIjE,GAAQuH,EAAS,GAAIW,GAAM,GAAIE,GAASnE,KAOpD,QAASoE,KACR,MAAOC,GAQR,QAASC,KACR,MAAO,IAAIvI,GAAQuH,EAAS,GAAIS,IAoDjC,QAASQ,GAAUC,EAAQzI,GAC1B,GAAI0I,GAAQ,GAAIV,GAAQS,EAAOE,SAAUF,EAAOG,OAAOC,QACvD,OAAO,IAAI7I,GAAQuH,EAASmB,GAgB7B,QAASI,GAAIC,GACZ,MAAOC,GAAaC,EAAK,KAAMF,GAUhC,QAASG,GAASrI,EAAGkI,GACpB,MAAOC,GAAaG,EAAWtI,EAAGkI,GAGnC,QAASC,GAAaI,EAAQvI,EAAGkI,GAwBhC,QAASM,GAAM1I,EAAGsD,EAAGmD,GAChBA,EAASkC,UACZC,EAAWR,EAAUS,EAAU7I,EAAGyI,EAAOvI,EAAGoD,EAAGtD,GAAIyG,GAIrD,QAASoC,GAAS7I,EAAGsD,EAAGmD,GACvBqC,EAAQ9I,GAAKsD,EACI,MAAZyF,GACJtC,EAASuC,OAAO,GAAIC,GAAUH,IA1BhC,IAAK,GAAWxF,GANZoD,EAAuB,kBAANxG,GAAmBwI,EAAQG,EAE5CpC,EAAW,GAAIY,GACf0B,EAAUX,EAAShI,SAAW,EAC9B0I,EAAU,GAAIrH,OAAMsH,GAEf/I,EAAI,EAAMA,EAAIoI,EAAShI,SAAWqG,EAASkC,WAAY3I,EAC/DsD,EAAI8E,EAASpI,GAEH,SAANsD,GAAkBtD,IAAKoI,GAK3BQ,EAAWR,EAAU1B,EAAS1G,EAAGsD,EAAGmD,KAJjCsC,CAWJ,OAJe,KAAZA,GACFtC,EAASuC,OAAO,GAAIC,GAAUH,IAGxB,GAAIzJ,GAAQuH,EAASH,GAgB7B,QAASmC,GAAWR,EAAU1B,EAAS1G,EAAGsD,EAAGmD,GAC5C,GAAIyC,EAAc5F,GAAI,CACrB,GAAI6F,GAAIC,EAAwB9F,GAC5B3D,EAAIwJ,EAAEE,OAEA,KAAN1J,EACHwJ,EAAEG,KAAK5C,EAAS1G,EAAG,OAAQyG,GACjB9G,EAAI,EACd+G,EAAQ1G,EAAGmJ,EAAEnG,MAAOyD,IAEpBA,EAASuC,OAAOG,GAChBI,EAAenB,EAAUpI,EAAE,EAAGmJ,QAG/BzC,GAAQ1G,EAAGsD,EAAGmD,GAKhB,QAAS8C,GAAenB,EAAUoB,EAAO9C,GACxC,IAAI,GAAI1G,GAAEwJ,EAAOxJ,EAAEoI,EAAShI,SAAUJ,EACrCyJ,EAAcjC,EAAWY,EAASpI,IAAK0G,GAIzC,QAAS+C,GAAcN,EAAGzC,GACzB,GAAGyC,IAAMzC,EAAT,CAIA,GAAI/G,GAAIwJ,EAAEE,OACD,KAAN1J,EACFwJ,EAAEO,MAAMP,EAAG,OAAQA,EAAEQ,WACR,EAAJhK,GACTwJ,EAAEQ,aAkBJ,QAASC,GAAKxB,GACb,MAAuB,gBAAbA,IAAsC,OAAbA,EAC3BlB,EAAO,GAAI2C,WAAU,kCAKF,IAApBzB,EAAShI,OAAesH,IACP,IAApBU,EAAShI,OAAe2G,EAAQqB,EAAS,IACzC0B,EAAQ1B,GAGb,QAAS0B,GAAQ1B,GAChB,GACIpI,GAAGsD,EAAG6F,EADN1C,EAAW,GAAIY,EAEnB,KAAIrH,EAAE,EAAGA,EAAEoI,EAAShI,SAAUJ,EAE7B,GADAsD,EAAI8E,EAASpI,GACH,SAANsD,GAAkBtD,IAAKoI,GAA3B,CAKA,GADAe,EAAI3B,EAAWlE,GACE,IAAd6F,EAAEE,QAAe,CACnB5C,EAASuC,OAAOG,GAChBI,EAAenB,EAAUpI,EAAE,EAAGmJ,EAC9B,OAEAA,EAAEO,MAAMjD,EAAUA,EAASM,QAASN,EAASS,QAG/C,MAAO,IAAI7H,GAAQuH,EAASH,GAW7B,QAASe,GAAWlE,GACnB,MAAGgE,GAAUhE,GACLA,EAAEqD,SAASsB,OAEZiB,EAAc5F,GAAKyG,EAAoBzG,GAAK,GAAI2F,GAAU3F,GASlE,QAAS8F,GAAwB9F,GAChC,MAAOgE,GAAUhE,GAAKA,EAAEqD,SAASsB,OAAS8B,EAAoBzG,GAQ/D,QAASyG,GAAoBzG,GAC5B,IACC,GAAI0G,GAAgB1G,EAAE2G,IACtB,OAAgC,kBAAlBD,GACX,GAAIE,GAASF,EAAe1G,GAC5B,GAAI2F,GAAU3F,GAChB,MAAMvE,GACP,MAAO,IAAI0I,GAAS1I,IAQtB,QAAS6H,MAmDT,QAASuD,MAcT,QAAS9C,GAAQW,EAAUoC,GAC1B/K,EAAQgL,cAAchJ,KAAM+I,GAE5B/I,KAAKiJ,UAAY,OACjBjJ,KAAK2G,SAAWA,EAChB3G,KAAKqF,QAAU,OACfrF,KAAKsH,UAAW,EAqGjB,QAASpB,GAAMb,GACdrF,KAAKqF,QAAUA,EAuBhB,QAASwD,GAASD,EAAMM,GACvBlD,EAAQlH,KAAKkB,MACbkC,EAAMvB,QAAQ,GAAIwI,GAAeP,EAAMM,EAAUlJ,OAUlD,QAAS4H,GAAU3F,GAClBjE,EAAQgL,cAAchJ,MACtBA,KAAK2B,MAAQM,EAsBd,QAASmE,GAASnE,GACjBjE,EAAQgL,cAAchJ,MAEtBA,KAAKyB,KAAO2H,EACZpJ,KAAK2B,MAAQM,EACbjC,KAAKqB,SAAU,EACfrB,KAAKsB,UAAW,EAEhBtB,KAAKqJ,UAkCN,QAASC,GAAW1G,EAAWiE,GAC9B7G,KAAK4C,UAAYA,EACjB5C,KAAK6G,QAAUA,EAUhB,QAAS0C,GAAa3G,GACrB5C,KAAK4C,UAAYA,EA0BlB,QAAS4G,KACR,MAAO,IAAIpD,GAAS,GAAIoC,WAAU,kBASnC,QAASiB,GAAiBC,EAAcrE,GACvCrF,KAAK0J,aAAeA,EACpB1J,KAAKqF,QAAUA,EAWhB,QAASsE,GAAahI,EAAO0D,GAC5BrF,KAAKqF,QAAUA,EACfrF,KAAK2B,MAAQA,EAsBd,QAASwH,GAAeP,EAAMM,EAAU9D,GACvCpF,KAAK4J,MAAQhB,EACb5I,KAAKkJ,SAAWA,EAChBlJ,KAAKoF,SAAWA,EAYjB,QAASyE,GAAcjB,EAAMM,EAAUxD,EAASG,EAAQE,GACvD,IACC6C,EAAK9J,KAAKoK,EAAUxD,EAASG,EAAQE,GACpC,MAAOrI,GACRmI,EAAOnI,IAQT,QAASoM,GAAKjL,EAAGkL,EAAGC,EAAGC,GACtBjK,KAAKnB,EAAIA,EAAGmB,KAAK+J,EAAIA,EAAG/J,KAAKgK,EAAIA,EAAGhK,KAAKiK,GAAKA,EAC9CjK,KAAKoF,SAAW8E,EAChBlK,KAAK2G,SAAW3G,KAqBjB,QAASiG,GAAUhE,GAClB,MAAOA,aAAajE,GASrB,QAAS6J,GAAc5F,GACtB,OAAqB,gBAANA,IAA+B,kBAANA,KAA2B,OAANA,EAG9D,QAASkI,GAAiBtL,EAAGiJ,EAAGnB,EAAUyD,GACzC,MAAgB,kBAANvL,GACFuL,EAAKzC,OAAOG,IAGpB9J,EAAQqM,aAAavC,GACrBwC,EAAezL,EAAGiJ,EAAEnG,MAAOgF,EAAUyD,OACrCpM,GAAQuM,eAGT,QAASC,GAAiB3L,EAAGoD,EAAG6F,EAAGnB,EAAUyD,GAC5C,MAAgB,kBAANvL,GACFuL,EAAKzC,OAAOG,IAGpB9J,EAAQqM,aAAavC,GACrB2C,EAAgB5L,EAAGoD,EAAG6F,EAAEnG,MAAOgF,EAAUyD,OACzCpM,GAAQuM,eAMT,QAASG,GAAU7L,EAAGoD,EAAG6F,EAAGnB,EAAUyD,GACrC,MAAgB,kBAANvL,GACFuL,EAAKrE,OAAO9D,IAGpBjE,EAAQqM,aAAavC,GACrB6C,EAAe9L,EAAGoD,EAAG0E,EAAUyD,OAC/BpM,GAAQuM,eAGT,QAASpD,GAAUtI,EAAGJ,EAAGmM,GACxB,IACC,MAAO/L,GAAEJ,EAAGmM,GACX,MAAMlN,GACP,MAAOmI,GAAOnI,IAQhB,QAAS4M,GAAezL,EAAGoD,EAAG4I,EAAST,GACtC,IACCA,EAAKzC,OAAOxB,EAAWtH,EAAEC,KAAK+L,EAAS5I,KACtC,MAAMvE,GACP0M,EAAKzC,OAAO,GAAIvB,GAAS1I,KAO3B,QAAS+M,GAAgB5L,EAAGoD,EAAG6I,EAAGD,EAAST,GAC1C,IACCvL,EAAEC,KAAK+L,EAAS5I,EAAG6I,EAAGV,GACrB,MAAM1M,GACP0M,EAAKzC,OAAO,GAAIvB,GAAS1I,KAQ3B,QAASiN,GAAe9L,EAAGoD,EAAG4I,EAAST,GACtC,IACCA,EAAKrE,OAAOlH,EAAEC,KAAK+L,EAAS5I,IAC3B,MAAMvE,GACP0M,EAAKrE,OAAOrI,IAId,QAASqN,GAAQC,EAAQC,GACxBA,EAAMvK,UAAYwK,EAAaF,EAAOtK,WACtCuK,EAAMvK,UAAUyK,YAAcF,EAG/B,QAAShE,GAAIhF,EAAG6I,GACf,MAAOA,GAGR,QAAS7J,MAp2BT,GAAIiB,GAAQiD,EAAYzF,UAEpBwL,EAAeE,OAAOC,QACzB,SAASC,GACR,QAASL,MAET,MADAA,GAAMvK,UAAY4K,EACX,GAAIL,GA0DbjN,GAAQ0H,QAAUA,EAClB1H,EAAQ6H,OAASA,EACjB7H,EAAQqI,MAAQA,EAEhBrI,EAAQuN,OAAShF,EACjBvI,EAAQsH,SAAWa,EAmDnBnI,EAAQ0C,UAAUkI,KAAO,SAAS4C,EAAaC,EAAYC,GAC1D,GAAIjF,GAASzG,KAAKsF,SACd0C,EAAQvB,EAAOG,OAAOoB,OAE1B,IAA4B,kBAAhBwD,IAA8BxD,EAAQ,GAC1B,kBAAfyD,IAAqC,EAARzD,EAErC,MAAO,IAAIhI,MAAKmL,YAAY5F,EAASkB,EAGtC,IAAIkF,GAAI3L,KAAK4L,SACTlF,EAAQiF,EAAErG,QAId,OAFAmB,GAAOoF,MAAMnF,EAAOD,EAAOE,SAAU6E,EAAaC,EAAYC,GAEvDC,GASR3N,EAAQ0C,UAAU,SAAW,SAAS+K,GACrC,MAAOzL,MAAK4I,KAAK,OAAQ6C,IAQ1BzN,EAAQ0C,UAAUkL,OAAS,WAC1B,MAAOpF,GAAUxG,KAAKsF,SAAUtF,KAAKmL,cAUtCnN,EAAQ8I,IAAMA,EACd9I,EAAQuK,KAAOA,EACfvK,EAAQ8N,UAAY5E,EAgFpBlJ,EAAQ+N,gBAAkB7D,EAkH1B3C,EAAQ7E,UAAUsL,KACfzG,EAAQ7E,UAAUiH,OAClBpC,EAAQ7E,UAAUqF,OAClBR,EAAQ7E,UAAUuL,KAClB1G,EAAQ7E,UAAU4H,UAClB/C,EAAQ7E,UAAU2I,QAClBpI,EAEHsE,EAAQ7E,UAAUwL,OAAS,EAE3B3G,EAAQ7E,UAAUsH,MAAQ,WACzB,MAAOhI,MAAKkM,QAQb3G,EAAQ7E,UAAUkG,KAAO,WAExB,IADA,GAAIkB,GAAI9H,KACY,SAAd8H,EAAEzC,SACPyC,EAAIA,EAAEzC,OAEP,OAAOyC,IAGRvC,EAAQ7E,UAAUmL,MAAQ,SAAS5B,EAAItD,EAAUwF,EAAWC,EAAUC,GACrErM,KAAKgM,MACJ5G,SAAU6E,EACVtD,SAAUA,EACVwF,UAAWA,EACXC,SAAUA,EACVC,SAAUA,KAIZ9G,EAAQ7E,UAAU2H,MAAQ,SAAS1B,EAAUwF,EAAWC,EAAUC,GACjErM,KAAK6L,MAAM3B,EAAgBvD,EAAUwF,EAAWC,EAAUC,IAG3D9G,EAAQ7E,UAAUuH,KAAO,SAASpJ,EAAGkL,EAAGC,EAAGC,GAC1CjK,KAAKgM,KAAK,GAAIlC,GAAKjL,EAAGkL,EAAGC,EAAGC,KAS7Bc,EAAQxF,EAASuD,GAEjBA,EAAepI,UAAUiH,OAAS,SAASG,GAC1CA,EAAEmE,OAGH,IAAI/B,GAAiB,GAAIpB,EAezBiC,GAAQxF,EAASS,GAEjBA,EAAQtF,UAAUwL,OAAS,EAE3BlG,EAAQtF,UAAUgF,QAAU,SAASzD,GACpCjC,KAAK2H,OAAOxB,EAAWlE,KAGxB+D,EAAQtF,UAAUmF,OAAS,SAAS5D,GAChCjC,KAAKsH,UAIRtH,KAAK2H,OAAO,GAAIvB,GAASnE,KAG1B+D,EAAQtF,UAAUkG,KAAO,WACxB,IAAK5G,KAAKsH,SACT,MAAOtH,KAKR,KAFA,GAAI8H,GAAI9H,KAEa,SAAd8H,EAAEzC,SAER,GADAyC,EAAIA,EAAEzC,QACFyC,IAAM9H,KACT,MAAOA,MAAKqF,QAAUmE,GAIxB,OAAO1B,IAGR9B,EAAQtF,UAAUG,IAAM,WACvB,GAAIyL,GAAItM,KAAKiJ,UACT5D,EAAUrF,KAAK4G,MACnB5G,MAAKiJ,UAAY,MAEjB,KAAK,GAAItK,GAAI,EAAGA,EAAI2N,EAAEvN,SAAUJ,EAC/B0G,EAAQ2G,KAAKM,EAAE3N,KAIjBqH,EAAQtF,UAAUiH,OAAS,SAAStC,GAChCrF,KAAKsH,WAIRtH,KAAKsH,UAAW,EAChBtH,KAAKqF,QAAUA,EACO,SAAnBrF,KAAKiJ,WACP/G,EAAMvB,QAAQX,MAGK,SAAjBA,KAAK6G,SACPxB,EAAQgE,QAAQrJ,KAAK6G,WAIvBb,EAAQtF,UAAUsL,KAAO,SAAStC,GAC9B1J,KAAKsH,SACPpF,EAAMvB,QAAQ,GAAI8I,GAAiBC,EAAc1J,KAAKqF,UAEhC,SAAnBrF,KAAKiJ,UACPjJ,KAAKiJ,WAAaS,GAElB1J,KAAKiJ,UAAU1H,KAAKmI,IAQvB1D,EAAQtF,UAAUqF,OAAS,SAAS9D,GAC/BjC,KAAKsH,UACRpF,EAAMvB,QAAQ,GAAIgJ,GAAa1H,EAAGjC,QAIpCgG,EAAQtF,UAAUuL,KAAO,SAASpF,GACjC,GAAImD,GAAuB,mBAAZnD,GAA0B7G,KAAK6G,QAAUA,CACxD7G,MAAKsH,UAAYtH,KAAKqF,QAAQuB,OAAOqF,KAAKjC,IAG3ChE,EAAQtF,UAAU2I,QAAU,SAASxC,GACpC7G,KAAKsH,UAAYtH,KAAKqF,QAAQuB,OAAOyC,QAAQxC,IAG9Cb,EAAQtF,UAAU4H,UAAY,WAC7BtI,KAAKsH,UAAYtH,KAAKqF,QAAQuB,OAAO0B,aAYtCyC,EAAQxF,EAASW,GAEjBA,EAAMxF,UAAUsL,KAAO,SAAStC,GAC/BxH,EAAMvB,QAAQ,GAAI8I,GAAiBC,EAAc1J,QAGlDkG,EAAMxF,UAAU2I,QAAU,SAASxC,GAClC7G,KAAK4G,OAAOyC,QAAQxC,IAGrBX,EAAMxF,UAAU4H,UAAY,WAC3BtI,KAAK4G,OAAO0B,aAcbyC,EAAQ/E,EAAS6C,GAYjBkC,EAAQxF,EAASqC,GAEjBA,EAAUlH,UAAUwL,OAAS,EAE7BtE,EAAUlH,UAAUuH,KAAO,SAASpJ,EAAGkL,EAAGC,EAAGC,GAC5CO,EAAiB3L,EAAGkL,EAAG/J,KAAMgK,EAAGC,IAGjCrC,EAAUlH,UAAUsL,KAAO,SAASO,GACnCpC,EAAiBoC,EAAKJ,UAAWnM,KAAMuM,EAAK5F,SAAU4F,EAAKnH,UAG5D,IAAIgE,GAAU,CAkBd2B,GAAQxF,EAASa,GAEjBA,EAAS1F,UAAUwL,OAAS,GAE5B9F,EAAS1F,UAAUuH,KAAO,SAASpJ,EAAGkL,EAAGC,EAAGC,GAC3CA,EAAGtC,OAAO3H,OAGXoG,EAAS1F,UAAUsL,KAAO,SAASO,GACN,kBAAlBA,GAAKH,UACdpM,KAAKsI,YAEN6B,EAAiBoC,EAAKH,SAAUpM,KAAMuM,EAAK5F,SAAU4F,EAAKnH,WAG3DgB,EAAS1F,UAAU2I,QAAU,SAASxC,GACrC3E,EAAMpB,WAAW,GAAIwI,GAAWtJ,KAAM6G,KAGvCT,EAAS1F,UAAU4H,UAAY,WAC3BtI,KAAKqB,UAGRrB,KAAKqB,SAAU,EACfa,EAAMpB,WAAW,GAAIyI,GAAavJ,SAGnCoG,EAAS1F,UAAUuL,KAAO,SAASpF,GAClC7I,EAAQ8E,iBAAiB9C,KAAkB,SAAZ6G,EAAqB7G,KAAK6G,QAAUA,IAQpEyC,EAAW5I,UAAUG,IAAM,WACtBb,KAAK4C,UAAUvB,UAClBrB,KAAK4C,UAAUtB,UAAW,EAC1BtD,EAAQ2E,gCAAgC3C,KAAK4C,UAAW5C,KAAK6G,WAQ/D0C,EAAa7I,UAAUG,IAAM,WACzBb,KAAK4C,UAAUtB,UACjBtD,EAAQ6E,uCAAuC7C,KAAK4C,YAQtD5E,EAAQgL,cACLhL,EAAQqM,aACRrM,EAAQuM,YACRvM,EAAQ2E,gCACR3E,EAAQ6E,uCACR7E,EAAQ8E,iBACR7B,CAIH,IAAIuL,GAAwB,GAAIjH,GAC5Be,EAAwB,GAAItI,GAAQuH,EAASiH,EAyMjD,OAxLA/C,GAAiB/I,UAAUG,IAAM,WAChCb,KAAKqF,QAAQuB,OAAOoF,KAAKhM,KAAK0J,eAY/BC,EAAajJ,UAAUG,IAAM,WAC5B,GAAIyL,GAAItM,KAAKqF,QAAQ4D,SACrB,IAAS,SAANqD,EAIH,IAAK,GAAItC,GAAGrL,EAAI,EAAGA,EAAI2N,EAAEvN,SAAUJ,EAClCqL,EAAIsC,EAAE3N,GACN+L,EAAUV,EAAEqC,SAAUrM,KAAK2B,MAAO3B,KAAKqF,QAAS2E,EAAErD,SAAUqD,EAAE5E,WAiBhE+D,EAAezI,UAAUG,IAAM,WAI9B,QAAS4L,GAASxK,GAAK6F,EAAEpC,QAAQzD,GACjC,QAASyK,GAAQzK,GAAM6F,EAAEjC,OAAO5D,GAChC,QAAS0K,GAAQ1K,GAAM6F,EAAE/B,OAAO9D,GALhC,GAAI6F,GAAI9H,KAAKoF,QACbyE,GAAc7J,KAAK4J,MAAO5J,KAAKkJ,SAAUuD,EAAUC,EAASC,IAyB7D7C,EAAKpJ,UAAUyL,UAAY,SAASlK,GACnCjC,KAAKnB,EAAEC,KAAKkB,KAAKgK,EAAGhK,KAAK+J,EAAG9H,EAAGjC,KAAKiK,KAGrCH,EAAKpJ,UAAU0L,SAAW,SAASnK,GAClCjC,KAAKiK,GAAGpE,OAAO5D,IAGhB6H,EAAKpJ,UAAU2L,SAAW,SAASpK,GAClCjC,KAAKiK,GAAGlE,OAAO9D,IA8GTjE,MAGW,kBAAXH,IAAyBA,EAAOC,IAAMD,EAAS,SAAS8B,GAAW/B,EAAOD,QAAUgC,gBAElF,IACV,KAGD,SAAUiN,UAu+CV,QAASC,QAAOC,SAAUF,SAAUG,MAElC,GAAIC,eAAgBC,OAAOC,QAC3BD,QAAOC,SAAW,SAASC,EAAMC,EAAMC,GAClB,gBAARF,KACTE,EAAUD,EACVA,EAAOD,GAITJ,KAAKM,QAAUA,EACfN,KAAKO,SAAWF,EAElB,KACEG,KAAK,sCAAwCR,KAAKI,MAAQ,IAAIK,QAAQ,IAAK,KAAQ,MAAQV,SAAW,0BAExG,MAAMpP,GAGJ,MAFc,eAAVA,EAAEyP,MAAmC,aAAVzP,EAAEyP,QAC/BzP,EAAE+P,QAAU,eAAiBV,KAAKI,MAAQJ,KAAKW,SAAW,MAAShQ,EAAE+P,SACjE/P,EAGRuP,OAAOC,SAAWF,cA3/CpBW,yBAA2BvC,OAAOwC,gBAAkB,SAASC,GAC3D,MAAOA,GAAIC,UAGb,IAAIC,2BACH,WACC,IACQ3C,OAAO4C,kBAAmB,UAC9BD,yBAA2B3C,OAAO4C,gBAEpC,MAAOtQ,GACPqQ,yBAA2B,SAAUF,EAAKI,EAAMC,GAC9C,IACEL,EAAII,GAAQC,EAAIvM,OAASuM,EAAIC,IAAIrP,KAAK+O,GAExC,MAAMnQ,UAKZ0Q,iBAAmBhD,OAAOC,QAAU,SAAS9M,EAAG8P,GAC9C,QAASC,MAGT,GAFAA,EAAE5N,UAAYnC,EAEQ,gBAAZ,GACR,IAAK0P,OAAQI,GACPA,EAAME,eAAe,QACvBD,EAAEL,MAAQI,EAAMJ,MAItB,OAAO,IAAIK,IA4Gb,WA+BE,QAASE,GAAWrB,GAClB,OACEsB,OAAQ,UACRtB,KAAMA,EACNuB,YACAC,gBACAC,aASJ,QAASC,GAAWC,EAAQ3B,EAAM4B,GAChC,MAAO,IAAI/Q,GAAQgR,GACjBC,KAAMF,EAAQrB,QAAU,QAAU,SAClCoB,OAAQA,EACRI,WAAY/B,EAEZgC,eAAgBJ,GAAWA,EAAQH,aACnCQ,aAAcL,EAAQM,OACtBC,cAAeP,EAAQrB,WAK3B,QAAS6B,GAAYT,EAAQU,EAASC,EAAaC,GAEjD,MAAO,IAAI1R,GAAQ,SAAS0H,GAC1BA,EAAQoJ,EAAOa,UAAUC,UAAUJ,EAASC,EAAaC,MAG1D9G,KAAK,SAASuE,GACb,GAAIJ,EACJ,IAAI+B,EAAOe,QAAQ1C,GAKjB,MAJAJ,GAAOyB,EAAWrB,GAClBJ,EAAK0B,OAAS,SAEd1B,EAAKnP,OAASkR,EAAOe,QAAQ1C,GACtBJ,CAGT,KAAK,GAAIpO,GAAI,EAAGmR,EAAIhB,EAAOiB,MAAMhR,OAAY+Q,EAAJnR,EAAOA,IAE9C,GADAoO,EAAO+B,EAAOiB,MAAMpR,GAChBoO,EAAKI,MAAQA,EAGjB,MAAOJ,EAQT,OALAA,GAAOyB,EAAWrB,GAClB2B,EAAOiB,MAAMxO,KAAKwL,GAElBiD,EAAgBlB,EAAQ/B,GAEjBA,IAKX,QAASiD,GAAgBlB,EAAQ/B,GAC/BkD,EAAenB,EAAQ/B,EACrB/O,EAAQ0H,UAEPkD,KAAK,WACJ,MAAOkG,GAAOa,UAAUO,QAAS/C,KAAMJ,EAAKI,KAAMyB,SAAU7B,EAAK6B,cAMvE,QAASqB,GAAenB,EAAQ/B,EAAMpB,GACpCwE,EAAmBrB,EAAQ/B,EACzBpB,EAEC/C,KAAK,SAAS8E,GAEb,MAAmB,WAAfX,EAAK0B,QAET1B,EAAKW,QAAUA,EAERoB,EAAOa,UAAUS,OAAQjD,KAAMJ,EAAKI,KAAMyB,SAAU7B,EAAK6B,SAAUlB,QAASA,KAJnF,UAYN,QAASyC,GAAmBrB,EAAQ/B,EAAMpB,GACxCA,EAEC/C,KAAK,SAASyG,GACb,MAAmB,WAAftC,EAAK0B,OAEFK,EAAOa,UAAUU,WAAYlD,KAAMJ,EAAKI,KAAMyB,SAAU7B,EAAK6B,SAAUlB,QAASX,EAAKW,QAAS2B,OAAQA,IAF7G,SAMDzG,KAAK,SAASyG,GACb,MAAmB,WAAftC,EAAK0B,QAET1B,EAAKsC,OAASA,EACPP,EAAOa,UAAUW,aAAcnD,KAAMJ,EAAKI,KAAMyB,SAAU7B,EAAK6B,SAAUlB,QAASX,EAAKW,QAAS2B,OAAQA,KAH/G,SAODzG,KAAK,SAAS2H,GACb,GAAmB,WAAfxD,EAAK0B,OAAT,CAGA,GAA0B+B,SAAtBD,EACFxD,EAAKW,QAAUX,EAAKW,SAAW,wBAAyB+C,EAAU,IAGlE1D,EAAK2D,eAAgB,EAErB5B,EAAOa,UAAUgB,MAAM5D,OAEpB,CAAA,GAAgC,gBAArBwD,GAMd,KAAM/H,WAAU,mCALhBuE,GAAKO,SAAWiD,EAAkBnD,SAClCL,EAAK6D,QAAUL,EAAkBK,QACjC7D,EAAK2D,eAAgB,EAMvB3D,EAAK4B,eAIL,KAAK,GAHDrB,GAAWP,EAAKO,SAEhBuD,KACKlS,EAAI,EAAGmR,EAAIxC,EAASvO,OAAY+Q,EAAJnR,EAAOA,KAAK,SAAU6Q,EAASsB,GAClED,EAAatP,KACXgO,EAAYT,EAAQU,EAASzC,EAAKI,KAAMJ,EAAKW,SAG5C9E,KAAK,SAASmI,GAab,GALAhE,EAAK4B,aAAamC,IAChBE,IAAKxB,EACL7N,MAAOoP,EAAQ5D,MAGK,UAAlB4D,EAAQtC,OAEV,IAAK,GADDC,GAAW3B,EAAK2B,SAASuC,WACpBtS,EAAI,EAAGmR,EAAIpB,EAAS3P,OAAY+Q,EAAJnR,EAAOA,IAC1CuS,EAAiBxC,EAAS/P,GAAIoS,QAOrCzD,EAAS3O,GAAIA,EAEhB,OAAOX,GAAQ8I,IAAI+J,MAIpBjI,KAAK,WAMJmE,EAAK0B,OAAS,QAGd,KAAK,GADDC,GAAW3B,EAAK2B,SAASuC,WACpBtS,EAAI,EAAGmR,EAAIpB,EAAS3P,OAAY+Q,EAAJnR,EAAOA,IAC1CwS,EAAoBzC,EAAS/P,GAAIoO,KAIpC,SAAS,SAASqE,GAEjBrE,EAAK0B,OAAS,SACd1B,EAAKsE,UAAYD,CAGjB,KAAK,GADD1C,GAAW3B,EAAK2B,SAASuC,WACpBtS,EAAI,EAAGmR,EAAIpB,EAAS3P,OAAY+Q,EAAJnR,EAAOA,IAC1C2S,EAAc5C,EAAS/P,GAAIoO,EAAMqE,KAUvC,QAASpC,GAA6BuC,GACpC,MAAO,UAAS7L,GACd,GAAIoJ,GAASyC,EAAUzC,OACnB3B,EAAOoE,EAAUrC,WACjBD,EAAOsC,EAAUtC,IAErB,IAAIH,EAAOe,QAAQ1C,GACjB,KAAM,IAAI3E,WAAU,IAAM2E,EAAO,uCAGnC,KAAK,GAAIxO,GAAI,EAAGmR,EAAIhB,EAAOiB,MAAMhR,OAAY+Q,EAAJnR,EAAOA,IAC9C,GAAImQ,EAAOiB,MAAMpR,GAAGwO,MAAQA,EAC1B,MAAOzH,GAAQoJ,EAAOiB,MAAMpR,GAAG+P,SAAS,GAAG8C,KAE/C,IAAIzE,GAAOyB,EAAWrB,EAEtBJ,GAAK6B,SAAW2C,EAAUpC,cAE1B,IAAIsC,GAAUC,EAAc5C,EAAQ/B,EAEpC+B,GAAOiB,MAAMxO,KAAKwL,GAElBrH,EAAQ+L,EAAQD,MAEJ,UAARvC,EACFe,EAAgBlB,EAAQ/B,GAET,SAARkC,EACPgB,EAAenB,EAAQ/B,EAAM/O,EAAQ0H,QAAQ6L,EAAUjC,iBAIvDvC,EAAKW,QAAU6D,EAAUjC,cACzBa,EAAmBrB,EAAQ/B,EAAM/O,EAAQ0H,QAAQ6L,EAAUnC,iBAWjE,QAASsC,GAAc5C,EAAQ6C,GAC7B,GAAIF,IACF3C,OAAQA,EACRiB,SACA4B,aAAcA,EACdC,aAAc,EAOhB,OALAH,GAAQD,KAAO,GAAIxT,GAAQ,SAAS0H,EAASG,GAC3C4L,EAAQ/L,QAAUA,EAClB+L,EAAQ5L,OAASA,IAEnBqL,EAAiBO,EAASE,GACnBF,EAGT,QAASP,GAAiBO,EAAS1E,GAGjC,IAAK,GAAIpO,GAAI,EAAGmR,EAAI2B,EAAQ1B,MAAMhR,OAAY+Q,EAAJnR,EAAOA,IAC/C,GAAI8S,EAAQ1B,MAAMpR,IAAMoO,EACtB,MAEJ0E,GAAQ1B,MAAMxO,KAAKwL,GACnBA,EAAK2B,SAASnN,KAAKkQ,GAGA,UAAf1E,EAAK0B,QACPgD,EAAQG,cAKV,KAAK,GAFD9C,GAAS2C,EAAQ3C,OAEZnQ,EAAI,EAAGmR,EAAI/C,EAAK4B,aAAa5P,OAAY+Q,EAAJnR,EAAOA,IAAK,CACxD,GAAIwO,GAAOJ,EAAK4B,aAAahQ,GAAGgD,KAEhC,KAAImN,EAAOe,QAAQ1C,GAGnB,IAAK,GAAI0E,GAAI,EAAGC,EAAIhD,EAAOiB,MAAMhR,OAAY+S,EAAJD,EAAOA,IAC9C,GAAI/C,EAAOiB,MAAM8B,GAAG1E,MAAQA,EAA5B,CAGA+D,EAAiBO,EAAS3C,EAAOiB,MAAM8B,GACvC,SASN,QAASE,GAAON,GACd,GAAIjP,IAAQ,CACZ,KACEwP,EAAKP,EAAS,SAAS1E,EAAMqE,GAC3BE,EAAcG,EAAS1E,EAAMqE,GAC7B5O,GAAQ,IAGZ,MAAM9E,GACJ4T,EAAcG,EAAS,KAAM/T,GAC7B8E,GAAQ,EAEV,MAAOA,GAIT,QAAS2O,GAAoBM,EAAS1E,GAQpC,GAFA0E,EAAQG,iBAEJH,EAAQG,aAAe,GAA3B,CAIA,GAAID,GAAeF,EAAQE,YAK3B,IAAIF,EAAQ3C,OAAOa,UAAUiB,WAAY,EAAO,CAE9C,IAAK,GADDb,MAAWkB,OAAOQ,EAAQ1B,OACrBpR,EAAI,EAAGmR,EAAIC,EAAMhR,OAAY+Q,EAAJnR,EAAOA,IAAK,CAC5C,GAAIoO,GAAOgD,EAAMpR,EACjBoO,GAAKnP,OAAUmP,EAAK2D,eAGlBvD,KAAMJ,EAAKI,KACXvP,OAAQqU,MACRC,WAAW,IAJXtU,OAAQqU,OAMVlF,EAAK0B,OAAS,SACd0D,EAAWV,EAAQ3C,OAAQ/B,GAE7B,MAAO0E,GAAQ/L,QAAQiM,GAIzB,GAAIS,GAASL,EAAON,EAEhBW,IAKJX,EAAQ/L,QAAQiM,IAIlB,QAASL,GAAcG,EAAS1E,EAAMqE,GACpC,GAAItC,GAAS2C,EAAQ3C,MAEjB2C,GAAQ1B,MAAM,GAAG5C,MAAQJ,EAAKI,OAChCiE,EAAMiB,EAAWjB,EAAK,kBAAoBrE,EAAKI,KAAO,WAAasE,EAAQ1B,MAAM,GAAG5C,KAAO,SAAWsE,EAAQ1B,MAAM,GAAGrC,SAAW,aAAe,OAEnJ0D,EAAMiB,EAAWjB,EAAK,kBAAoBrE,EAAKI,KAAO,SAAWJ,EAAKW,SAAW,aAAe,KAGhG,KAAK,GADDqC,GAAQ0B,EAAQ1B,MAAMkB,WACjBtS,EAAI,EAAGmR,EAAIC,EAAMhR,OAAY+Q,EAAJnR,EAAOA,IAAK,CAC5C,GAAIoO,GAAOgD,EAAMpR,EAGjBmQ,GAAOa,UAAU2C,OAASxD,EAAOa,UAAU2C,WACQ,IAA/CzQ,EAAQ/C,KAAKgQ,EAAOa,UAAU2C,OAAQvF,IACxC+B,EAAOa,UAAU2C,OAAO/Q,KAAKwL,EAE/B,IAAIwF,GAAY1Q,EAAQ/C,KAAKiO,EAAK2B,SAAU+C,EAG5C,IADA1E,EAAK2B,SAAS5M,OAAOyQ,EAAW,GACJ,GAAxBxF,EAAK2B,SAAS3P,OAAa,CAC7B,GAAIyT,GAAmB3Q,EAAQ/C,KAAK2S,EAAQ3C,OAAOiB,MAAOhD,EAClC,KAApByF,GACFf,EAAQ3C,OAAOiB,MAAMjO,OAAO0Q,EAAkB,IAGpDf,EAAQ5L,OAAOuL,GAIjB,QAASe,GAAWrD,EAAQ/B,GAE1B,GAAI+B,EAAOa,UAAU8C,MAAO,CACrB3D,EAAOa,UAAUI,QACpBjB,EAAOa,UAAUI,SACnB,IAAI2C,KACJ3F,GAAK4B,aAAagE,QAAQ,SAASC,GACjCF,EAAOE,EAAI5B,KAAO4B,EAAIjR,QAExBmN,EAAOa,UAAUI,MAAMhD,EAAKI,OAC1BA,KAAMJ,EAAKI,KACXC,KAAML,EAAK4B,aAAakE,IAAI,SAASD,GAAM,MAAOA,GAAI5B,MACtD0B,OAAQA,EACRhF,QAASX,EAAKW,QACdkB,SAAU7B,EAAK6B,SACfS,OAAQtC,EAAKsC,OACbyD,KAAM/F,EAAK2D,cAAgB,cAAgB,WAI3C3D,EAAKI,OAEP2B,EAAOe,QAAQ9C,EAAKI,MAAQJ,EAAKnP,OAEnC,IAAImV,GAAYlR,EAAQ/C,KAAKgQ,EAAOiB,MAAOhD,EAC1B,KAAbgG,GACFjE,EAAOiB,MAAMjO,OAAOiR,EAAW,EACjC,KAAK,GAAIpU,GAAI,EAAGmR,EAAI/C,EAAK2B,SAAS3P,OAAY+Q,EAAJnR,EAAOA,IAC/CoU,EAAYlR,EAAQ/C,KAAKiO,EAAK2B,SAAS/P,GAAGoR,MAAOhD,GAChC,IAAbgG,GACFhG,EAAK2B,SAAS/P,GAAGoR,MAAMjO,OAAOiR,EAAW,EAE7ChG,GAAK2B,SAAS5M,OAAO,EAAGiL,EAAK2B,SAAS3P,QAUxC,QAASiU,GAAmBjG,EAAMgD,EAAOkD,EAAQnE,GAK/C,GAJAmE,EAAOlG,EAAKmG,YAAcD,EAAOlG,EAAKmG,gBAIa,IAA/CrR,EAAQ/C,KAAKmU,EAAOlG,EAAKmG,YAAanG,GAA1C,CAIAkG,EAAOlG,EAAKmG,YAAY3R,KAAKwL,EAE7B,KAAK,GAAIpO,GAAI,EAAGmR,EAAIC,EAAMhR,OAAY+Q,EAAJnR,EAAOA,IAIvC,IAAK,GAHDwU,GAAUpD,EAAMpR,GAGXkT,EAAI,EAAGA,EAAI9E,EAAK4B,aAAa5P,OAAQ8S,IAC5C,GAAIsB,EAAQhG,MAAQJ,EAAK4B,aAAakD,GAAGlQ,MAAO,CAM9C,GAAIyR,GAAoBrG,EAAKmG,YAAcC,EAAQzC,eAAiB3D,EAAK2D,cAGzE,IAA2BF,SAAvB2C,EAAQD,YAA4BC,EAAQD,WAAaE,EAAmB,CAG9E,GAAID,EAAQD,aACVD,EAAOE,EAAQD,YAAYpR,OAAOD,EAAQ/C,KAAKmU,EAAOE,EAAQD,YAAaC,GAAU,GAG5C,GAArCF,EAAOE,EAAQD,YAAYnU,QAC7B,KAAM,IAAIyJ,WAAU,kCAGxB2K,GAAQD,WAAaE,EAGvBJ,EAAmBG,EAASpD,EAAOkD,EAAQnE,KAMnD,QAASuE,GAAiB5B,EAAS1E,EAAMuG,GACvC,IACE,GAAI1V,GAASmP,EAAK6D,UAEpB,MAAMlT,GAEJ,WADA4V,GAAUvG,EAAMrP,GAGlB,MAAKE,IAAYA,YAAkB2V,GAG1B3V,MAFP0V,GAAUvG,EAAM,GAAIvE,WAAU,4CAMlC,QAASwJ,GAAKP,EAAS6B,GAErB,GAAIxE,GAAS2C,EAAQ3C,MAErB,IAAK2C,EAAQ1B,MAAMhR,OAAnB,CAWA,GAAIkU,MACAtB,EAAeF,EAAQ1B,MAAM,EACjC4B,GAAauB,WAAa,EAC1BF,EAAmBrB,EAAcF,EAAQ1B,MAAOkD,EAAQnE,EAMxD,KAAK,GAHD0E,GAAsB7B,EAAajB,eAAiBuC,EAAOlU,OAAS,EAG/DJ,EAAIsU,EAAOlU,OAAS,EAAGJ,GAAK,EAAGA,IAAK,CAE3C,IAAK,GADD8U,GAAQR,EAAOtU,GACVkT,EAAI,EAAGA,EAAI4B,EAAM1U,OAAQ8S,IAAK,CACrC,GAAI9E,GAAO0G,EAAM5B,EAGjB,IAAI2B,EACFE,EAAsB3G,EAAM0E,EAAQ1B,MAAOjB,OAGxC,CACH,GAAIlR,GAASyV,EAAiB5B,EAAS1E,EAAMuG,EAC7C,KAAK1V,EACH,MACFmP,GAAKnP,QACHuP,KAAMJ,EAAKI,KACXvP,OAAQA,GAEVmP,EAAK0B,OAAS,SAEhB0D,EAAWrD,EAAQ/B,GAIrByG,GAAuBA,IAO3B,QAASG,GAAwBxG,EAAM2B,GACrC,GAAI8E,GAAgB9E,EAAO8E,aAC3B,OAAOA,GAAczG,KAAUyG,EAAczG,IAC3CA,KAAMA,EACNwB,gBACA/Q,OAAQ,GAAI2V,GACZM,eAKJ,QAASH,GAAsB3G,EAAMgD,EAAOjB,GAC1C,IAAI/B,EAAKnP,OAAT,CAGA,GAAIA,GAASmP,EAAKnP,OAAS+V,EAAwB5G,EAAKI,KAAM2B,GAC1DgF,EAAY/G,EAAKnP,OAAOA,OAExBmW,EAAgBhH,EAAKM,QAAQvO,KAAK8N,SAAU,SAASO,EAAMxL,GAI7D/D,EAAOoW,QAAS,EAChBF,EAAU3G,GAAQxL,CAElB,KAAK,GAAIhD,GAAI,EAAGmR,EAAIlS,EAAOiW,UAAU9U,OAAY+Q,EAAJnR,EAAOA,IAAK,CACvD,GAAIsV,GAAiBrW,EAAOiW,UAAUlV,EACtC,KAAKsV,EAAeD,OAAQ,CAC1B,GAAIE,GAAgBrS,EAAQ/C,KAAKmV,EAAetF,aAAc/Q,EAC9DqW,GAAeE,QAAQD,GAAeJ,IAK1C,MADAlW,GAAOoW,QAAS,EACTrS,GAIT/D,GAAOuW,QAAUJ,EAAcI,QAC/BvW,EAAOgT,QAAUmD,EAAcnD,OAI/B,KAAK,GAAIjS,GAAI,EAAGmR,EAAI/C,EAAK4B,aAAa5P,OAAY+Q,EAAJnR,EAAOA,IAAK,CACxD,GAAIyV,GAAUrH,EAAK4B,aAAahQ,GAAGgD,MAC/B0S,EAAYvF,EAAOe,QAAQuE,EAI/B,KAAKC,EAEH,IAAK,GAAIxC,GAAI,EAAGA,EAAI9B,EAAMhR,OAAQ8S,IAC5B9B,EAAM8B,GAAG1E,MAAQiH,IAIhBrE,EAAM8B,GAAGjU,OAMZyW,EAAYV,EAAwBS,EAAStF,IAL7C4E,EAAsB3D,EAAM8B,GAAI9B,EAAOjB,GACvCuF,EAAYtE,EAAM8B,GAAGjU,QAUvByW,GAAUR,WACZjW,EAAO+Q,aAAapN,KAAK8S,GACzBA,EAAUR,UAAUtS,KAAK3D,IAIzBA,EAAO+Q,aAAapN,KAAK,MAIvB3D,EAAOuW,QAAQxV,IACjBf,EAAOuW,QAAQxV,GAAG0V,EAAUzW,QAGhCmP,EAAK0B,OAAS,UAYhB,QAAS6F,GAAqBxF,EAAQ/B,GAIpC,MADAwH,GAAkBxH,EAAKnP,UAAYkR,GAC5B/B,EAAKnP,OAAOA,OAYrB,QAAS4W,GAAU5W,GACjB,IACEA,EAAOgT,QAAQ9R,KAAK8N,UAEtB,MAAMlP,GACJ,MAAOA,IAMX,QAAS6W,GAAkB3W,EAAQ6W,EAAM3F,GACvC,GAAI4F,GAAMC,EAAgB/W,EAAQ6W,EAAM3F,EACxC,IAAI4F,EACF,KAAMA,GAGV,QAASC,GAAgB/W,EAAQ6W,EAAM3F,GACrC,IAAIlR,EAAOsU,WAActU,EAAO+Q,aAAhC,CAGA8F,EAAKlT,KAAK3D,EAKV,KAAK,GAFD8W,GADAtH,EAAOxP,EAAO+Q,aAGThQ,EAAI,EAAGmR,EAAI1C,EAAKrO,OAAY+Q,EAAJnR,EAAOA,IAAK,CAC3C,GAAIiU,GAAMxF,EAAKzO,EAGf,IAAKiU,GAE0B,IAA3B/Q,EAAQ/C,KAAK2V,EAAM7B,KACrB8B,EAAMC,EAAgB/B,EAAK6B,EAAM3F,IAI/B,MADA4F,GAAMrC,EAAWqC,EAAK,oBAAsB9B,EAAIzF,KAAO,MAM7D,GAAIvP,EAAO0U,OACT,MAAO,IAAI1T,OAAM,2BAEnB,KAAIhB,EAAOsU,UAgBX,MAbAtU,GAAOsU,WAAY,EACnBwC,EAAMF,EAAU5W,GACZ8W,EACF9W,EAAO0U,QAAS,EAETlH,OAAOwJ,mBAIdxJ,OAAOwJ,kBAAkBhX,EAAOA,QAGlCA,EAAOgT,QAAUJ,OACVkE,GAGT,QAASrC,GAAWqC,EAAKG,GAKvB,MAJIH,aAAe9V,OACjB8V,EAAIjH,QAAUoH,EAAMH,EAAIjH,QAExBiH,EAAMG,EAAMH,EACPA,EAMT,QAASI,GAAO/F,GACd,GAAsB,gBAAXA,GACT,KAAM,IAAIvG,WAAU,4BAElBuG,GAAQa,YACV5P,KAAK4P,UAAYb,EAAQa,WACvBb,EAAQmB,SACVlQ,KAAKkQ,OAASnB,EAAQmB,QACpBnB,EAAQqB,QACVpQ,KAAKoQ,MAAQrB,EAAQqB,OACnBrB,EAAQsB,YACVrQ,KAAKqQ,UAAYtB,EAAQsB,WACvBtB,EAAQuB,cACVtQ,KAAKsQ,YAAcvB,EAAQuB,aAE7BtQ,KAAK+U,SACHpF,UAAW3P,KACX+P,SACAF,WACAmF,kBACApB,kBAIF5F,EAAehO,KAAM,UACnBmO,IAAK,WACH,MAAOvB,aAOb,QAAS2G,MAGT,QAAS0B,GAAoBnG,EAAQ3B,EAAM+H,GACzC,GAAIF,GAAiBlG,EAAOiG,QAAQC,cACpC,OAAOA,GAAe7H,GAAQ+H,EAAQtM,KAAK,SAASuM,GAElD,MADAH,GAAe7H,GAAQqD,OAChB2E,GACN,SAASzX,GAEV,KADAsX,GAAe7H,GAAQqD,OACjB9S,IAlyBV,GAAIM,GAAU4O,SAAS5O,SAAWU,QAAQ,wBACtCkO,UAASrK,UACXA,QAAQ6S,OAAS7S,QAAQ6S,QAAU,aAGrC,IAAIvT,GAAUzB,MAAMM,UAAUmB,SAAW,SAASwT,GAChD,IAAK,GAAI1W,GAAI,EAAG2W,EAAUtV,KAAKjB,OAAYuW,EAAJ3W,EAAaA,IAClD,GAAIqB,KAAKrB,KAAO0W,EACd,MAAO1W,EAGX,OAAO,IAELqP,EAAiBD,yBAyGjB0C,EAAU,CAgrBdqE,GAAOpU,WAELyK,YAAa2J,EAEbjX,OAAQ,SAASsP,EAAMkC,EAAQN,GAE7B,GAAI/O,KAAK+U,QAAQC,eAAe7H,GAC9B,KAAM,IAAI3E,WAAU,6BACtB,OAAOyM,GAAoBjV,KAAMmN,EAAM,GAAInP,GAAQgR,GACjDC,KAAM,YACNH,OAAQ9O,KAAK+U,QACb7F,WAAY/B,EACZgC,eAAgBJ,GAAWA,EAAQH,aACnCQ,aAAcC,EACdC,cAAeP,GAAWA,EAAQrB,aAItC6H,SAAU,SAASpI,GACjB,MAAOnN,MAAK+U,QAAQlF,QAAQ1C,SAAenN,MAAK+U,QAAQlF,QAAQ1C,IAAQ,GAI1EgB,IAAK,SAAS6C,GACZ,MAAKhR,MAAK+U,QAAQlF,QAAQmB,IAE1BuD,EAAkBvU,KAAK+U,QAAQlF,QAAQmB,MAAUhR,MAC1CA,KAAK+U,QAAQlF,QAAQmB,GAAKpT,QAHjC,QAMF4X,IAAK,SAASrI,GACZ,QAASnN,KAAK+U,QAAQlF,QAAQ1C,IAGhCsI,SAAU,SAAStI,EAAM4B,GAEvB,GAAIY,GAAY3P,IAGhB,OAAOhC,GAAQ0H,QAAQiK,EAAUC,UAAUzC,EAAM4B,GAAWA,EAAQ5B,KAAM4B,GAAWA,EAAQrB,UAC5F9E,KAAK,SAASuE,GACb,GAAI2B,GAASa,EAAUoF,OAEvB,OAAIjG,GAAOe,QAAQ1C,IACjBoH,EAAkBzF,EAAOe,QAAQ1C,MAAW2B,EAAOiG,SAC5CjG,EAAOe,QAAQ1C,GAAMvP,QAGvBkR,EAAOkG,eAAe7H,IAAS8H,EAAoBtF,EAAWxC,EACnE0B,EAAWC,EAAQ3B,EAAM4B,OACxBnG,KAAK,SAASmE,GAEb,aADO+B,GAAOkG,eAAe7H,GACtBmH,EAAqBxF,EAAQ/B,SAM5CA,KAAM,SAASI,GACb,MAAInN,MAAK+U,QAAQlF,QAAQ1C,IACvBoH,EAAkBvU,KAAK+U,QAAQlF,QAAQ1C,MAAWnN,KAAK+U,SAChD/W,EAAQ0H,QAAQ1F,KAAK+U,QAAQlF,QAAQ1C,GAAMvP,SAE7CoC,KAAK+U,QAAQC,eAAe7H,IAAS8H,EAAoBjV,KAAMmN,EAAM0B,EAAW7O,KAAK+U,QAAS5H,QAGvGvP,OAAQ,SAASyR,EAAQN,GACvB,GAAIhC,GAAOyB,GACXzB,GAAKW,QAAUqB,GAAWA,EAAQrB,OAClC,IAAI+D,GAAUC,EAAc1R,KAAK+U,QAAShI,GACtC2I,EAAgB1X,EAAQ0H,QAAQ2J,GAChCP,EAAS9O,KAAK+U,QACdpJ,EAAI8F,EAAQD,KAAK5I,KAAK,WACxB,MAAO0L,GAAqBxF,EAAQ/B,IAGtC,OADAoD,GAAmBrB,EAAQ/B,EAAM2I,GAC1B/J,GAGTgK,UAAW,SAAU9H,GACnB,GAAkB,gBAAPA,GACT,KAAM,IAAIrF,WAAU,kBAItB,IAAI2M,GAAI,GAAI5B,EAEZ,KAAK,GAAIvC,KAAOnD,IACd,SAAWmD,GACThD,EAAemH,EAAGnE,GAChB4E,cAAc,EACdC,YAAY,EACZ1H,IAAK,WACH,MAAON,GAAImD,OAGdA,EAML,OAHI5F,QAAOwJ,mBACTxJ,OAAOwJ,kBAAkBO,GAEpBA,GAGTW,IAAK,SAAS3I,EAAMvP,GAClB,KAAMA,YAAkB2V,IACtB,KAAM,IAAI/K,WAAU,cAAgB2E,EAAO,6BAC7CnN,MAAK+U,QAAQlF,QAAQ1C,IACnBvP,OAAQA,IAQZgS,UAAW,SAASzC,GAClB,MAAOA,IAGT+C,OAAQ,SAASnD,GACf,MAAOA,GAAKI,MAGdiD,MAAO,WACL,KAAM,IAAI5H,WAAU,0BAGtB6H,UAAW,SAAStD,GAClB,MAAOA,GAAKsC,QAEdsB,MAAO,WACL,KAAM,IAAInI,WAAU,oCAGtB8H,YAAa,aAIf,IAAI2B,GAAa6C,EAAOpU,UAAUiV,WAMlC,WAKE,QAASI,GAAU1G,EAAQ2G,EAAUC,GACnC,IACE,MAAOD,GAASE,QAAQ7G,EAAQ4G,GAElC,MAAMvY,GAEJ,KAAMA,GAAE,IARZ,GAAIyY,EAWJrB,GAAOpU,UAAUiQ,MAAQ,SAAS5D,GAChC,IAAKoJ,EACH,GAAqB,mBAAVpY,SACoB,mBAArBqY,mBACRD,EAAUzX,QAAQ,eACf,CAAA,IAAIkO,SAASuJ,QAGhB,KAAM,IAAI3N,WAAU,4CAFpB2N,GAAUvJ,SAASuJ,QAOvBpJ,EAAK2D,eAAgB,CAErB,IAAI3B,GAAU/O,KAAKqW,kBACnBtH,GAAQc,QAAU,cAClBd,EAAQuH,QAAS,EACjBvH,EAAQwH,YAAa,EACrBxH,EAAQkH,SAAWlJ,EAAKW,OAExB,IAAIsI,GAAW,GAAIG,GAAQK,SAASzH,GAEhCM,EAAS0G,EAAUhJ,EAAKsC,OAAQ2G,EAAUjH,EAAQkH,SAEtD,KAAK5G,EACH,KAAM,IAAIzQ,OAAM,2BAA6BmO,EAAKW,QAEpD,IAAI+I,GAAYT,EAASU,cAErB9J,UAAS+J,MAAQF,IACnBpH,GAAU,mBAAqBtC,EAAKW,QAAU,QAC9C2B,GAAU,uDAAyDsH,KAAKC,SAASC,mBAAmBJ,KAAe,MAGrHpH,EAAS,0BAA4BtC,EAAKW,QAAU,KAAO2B,EAE3DxC,OAAOwC,EAAQzC,SAAUG,OAIN,gBAAZpP,WACTC,OAAOD,QAAUmX,GAEnBlI,SAASkK,QAAUlK,SAASkK,YAC5BlK,SAASkK,QAAQhC,OAASlI,SAASkK,QAAQhC,QAAUA,EACrDlI,SAASkK,QAAQ7Y,OAAS2O,SAASkK,QAAQ7Y,QAAU2O,SACrDA,SAASmK,eAAiBjC,KAkB5B,WAQE,QAASkC,GAASC,GAChB,GAAI9B,GAAItQ,OAAOoS,GAAKzJ,QAAQ,aAAc,IAAI0J,MAAM,6GAEpD,OAAQ/B,IACNgC,KAAWhC,EAAE,IAAM,GACnBiC,SAAWjC,EAAE,IAAM,GACnBkC,UAAWlC,EAAE,IAAM,GACnBmC,KAAWnC,EAAE,IAAM,GACnBoC,SAAWpC,EAAE,IAAM,GACnBqC,KAAWrC,EAAE,IAAM,GACnBsC,SAAWtC,EAAE,IAAM,GACnBuC,OAAWvC,EAAE,IAAM,GACnBwC,KAAWxC,EAAE,IAAM,IACjB,KAGN,QAASyC,GAAkBC,GACzB,GAAIC,KAUJ,OATAD,GAAMrK,QAAQ,kBAAmB,IAC9BA,QAAQ,iBAAkB,KAC1BA,QAAQ,UAAW,QACnBA,QAAQ,aAAc,SAAU7B,GACrB,QAANA,EACFmM,EAAOC,MAEPD,EAAOvW,KAAKoK,KAEXmM,EAAOlR,KAAK,IAAI4G,QAAQ,MAA2B,MAApBqK,EAAMG,OAAO,GAAa,IAAM,IAGxE,QAASC,GAAcC,EAAMf,GAK3B,MAHAA,GAAOH,EAASG,GAAQ,IACxBe,EAAOlB,EAASkB,GAAQ,IAEhBf,GAASe,GAAef,EAAKC,UAAYc,EAAKd,WACnDD,EAAKC,UAAYD,EAAKE,UAAYF,EAAKE,UAAYa,EAAKb,WACzDO,EAAkBT,EAAKC,UAAYD,EAAKE,WAAyC,MAA5BF,EAAKM,SAASO,OAAO,GAAab,EAAKM,SAAYN,EAAKM,UAAaS,EAAKb,YAAca,EAAKT,SAAW,IAAM,IAAMS,EAAKT,SAASU,MAAM,EAAGD,EAAKT,SAASW,YAAY,KAAO,GAAKjB,EAAKM,SAAYS,EAAKT,WAC3PN,EAAKC,UAAYD,EAAKE,WAAaF,EAAKM,SAAWN,EAAKO,OAAUP,EAAKO,QAAUQ,EAAKR,QACvFP,EAAKQ,KAJiB,KAiQxB,QAASU,KACP1U,SAAS2U,oBAAqB,mBAAoBD,GAAW,GAC7Dta,OAAOua,oBAAqB,OAAQD,GAAW,GAC/CE,IAGF,QAASA,KAEP,IAAK,GADDC,GAAU7U,SAAS8U,qBAAqB,UACnC9Z,EAAI,EAAGA,EAAI6Z,EAAQzZ,OAAQJ,IAAK,CACvC,GAAI2X,GAASkC,EAAQ7Z,EACrB,IAAmB,UAAf2X,EAAOoC,KAAkB,CAC3B,GAAIrJ,GAASiH,EAAOqC,UAAUC,OAAO,EAIrChM,UAASK,OAAOrP,OAAOyR,GAAQ,SAAS,SAASqF,GAAOxQ,WAAW,WAAa,KAAMwQ,SA1T9F,GAiDImE,GAjDAC,EAA2B,mBAAT5a,OAAqD,mBAAtBkY,oBAAqClY,eAAgBkY,mBACtG2C,EAA6B,mBAAVhb,UAA0B+a,EAC7CE,EAA8B,mBAAX7V,YAA4BA,QAAQ8V,SAAS/B,MAAM,QACtElZ,EAAU4O,SAAS5O,SAAWU,QAAQ,wBAgD1C,IAA6B,mBAAlBwa,gBACTL,EAAmB,SAAS5B,EAAKkC,EAAStT,GAsBxC,QAASkH,KACPoM,EAAQC,EAAIC,cAEd,QAAS7W,KACPqD,EAAOuT,EAAIE,WAAa,KAAOrC,GAAO,aAzBxC,GAAImC,GAAM,GAAIF,gBACVK,GAAa,EACbC,GAAY,CAChB,MAAM,mBAAqBJ,IAAM,CAE/B,GAAIK,GAAc,uBAAuBC,KAAKzC,EAC1CwC,KACFF,EAAaE,EAAY,KAAO1b,OAAO4b,SAASrC,KAC5CmC,EAAY,KACdF,GAAcE,EAAY,KAAO1b,OAAO4b,SAASvC,WAGlDmC,GAAuC,mBAAlBK,kBACxBR,EAAM,GAAIQ,gBACVR,EAAIS,OAAS9M,EACbqM,EAAIU,QAAUtX,EACd4W,EAAIW,UAAYvX,EAChB4W,EAAIY,WAAa,aACjBZ,EAAIa,QAAU,EACdT,GAAY,GASdJ,EAAIc,mBAAqB,WACA,IAAnBd,EAAIe,aACa,MAAff,EAAI3K,QAAiC,GAAd2K,EAAI3K,QAAe2K,EAAIC,aAChDtM,IAEAvK,MAIN4W,EAAIgB,KAAK,MAAOnD,GAAK,GAEjBuC,GACFtV,WAAW,WACTkV,EAAIiB,QACH,GAELjB,EAAIiB,KAAK,WAGR,CAAA,GAAsB,mBAAX3b,SAkBd,KAAM,IAAI8J,WAAU,sCAjBpB,IAAI8R,EACJzB,GAAmB,SAAS5B,EAAKkC,EAAStT,GACxC,GAAwB,SAApBoR,EAAI2B,OAAO,EAAG,GAChB,KAAM,2DAKR,OAJA0B,GAAKA,GAAM5b,QAAQ,MACnBuY,EAAMA,EAAI2B,OAAO,GACbI,IACF/B,EAAMA,EAAIzJ,QAAQ,MAAO,OACpB8M,EAAGC,SAAStD,EAAK,SAASvC,EAAK3Q,GACpC,MAAI2Q,GACK7O,EAAO6O,OAEdyE,GAAQpV,EAAO,OAQvB,GAAIyW,GAAe,SAASC,GAC1B,QAASD,GAAazL,GAIpB,GAHA0L,EAAS3b,KAAKkB,KAAM+O,OAGG,mBAAZ4K,WAA2BA,SAASxC,KAAM,CACnD,GAAIA,GAAOvK,SAAS+M,SAASxC,KAAKuD,MAAM,KAAK,GAAGA,MAAM,KAAK,EAC3D1a,MAAK2a,QAAUxD,EAAKyD,UAAU,EAAGzD,EAAKiB,YAAY,KAAO,OAEtD,CAAA,GAAsB,mBAAXjV,WAA0BA,QAAQ0X,IAMhD,KAAM,IAAIrS,WAAU,yBALpBxI,MAAK2a,QAAU,QAAUxX,QAAQ0X,MAAQ,IACrC7B,IACFhZ,KAAK2a,QAAU3a,KAAK2a,QAAQnN,QAAQ,MAAO,MAK/CxN,KAAK8a,OAAUC,IAAK,QAgJtB,MA7IAP,GAAa1M,UAA0B,OAAb2M,EAAoBA,EAAWO,SAASta,UAClE8Z,EAAa9Z,UAAY0N,iBAA+B,OAAbqM,EAAoBA,EAAS/Z,UAAY,MAEpFqN,yBAAyByM,EAAa9Z,UAAW,eAC/CiB,MAAO6Y,IAGTzM,yBAAyByM,EAAa9Z,UAAW,UAC/CyN,IAAK,WACH,MAAO4K,GAAYhb,OAAU+a,EAAW5a,KAAO0O,UAGjDiJ,YAAY,IAGd9H,yBAAyByM,EAAa9Z,UAAW,UAC/CyN,IAAK,WAAa,OAAO,GACzB0H,YAAY,IAGd9H,yBAAyByM,EAAa9Z,UAAW,aAC/CiB,MAAO,SAASwL,EAAM8N,GACpB,GAAmB,gBAAR9N,GACT,KAAM,IAAI3E,WAAU,+BAEtB,IAAI0S,GAAW/N,EAAKuN,MAAM,IAE1B,IAAuB,GAAnBQ,EAASnc,OACX,KAAM,IAAIyJ,WAAU,0BAGtB,IAAI7J,GAAI,EAEJwc,GAAM,EAENC,EAAU,CACd,IAAmB,KAAfF,EAAS,GAAW,CAEtB,GADAvc,IACIA,GAAKuc,EAASnc,OAChB,KAAM,IAAIyJ,WAAU,wBAA0B2E,EAAO,IACvDgO,IAAM,MAEH,CACH,KAAsB,MAAfD,EAASvc,IAEd,GADAA,IACIA,GAAKuc,EAASnc,OAChB,KAAM,IAAIyJ,WAAU,wBAA0B2E,EAAO,IAErDxO,KACFwc,GAAM,GACRC,EAAUzc,EAGZ,IAAK,GAAIkT,GAAIlT,EAAGkT,EAAIqJ,EAASnc,OAAQ8S,IAAK,CACxC,GAAIwJ,GAAUH,EAASrJ,EACvB,IAAe,IAAXwJ,GAA4B,KAAXA,GAA6B,MAAXA,EACrC,KAAM,IAAI7S,WAAU,wBAA0B2E,EAAO,KAGzD,IAAKgO,EACH,MAAOhO,EAGT,EAAA,GAAImO,MACAC,GAAeN,GAAc,IAAIP,MAAM,IACvBa,GAAYxc,OAAS,EAAIqc,EAK7C,MAHAE,GAAkBA,EAAgBrK,OAAOsK,EAAYzZ,OAAO,EAAGyZ,EAAYxc,OAAS,EAAIqc,IACxFE,EAAkBA,EAAgBrK,OAAOiK,EAASpZ,OAAOnD,EAAGuc,EAASnc,OAASJ,IAEvE2c,EAAgB1U,KAAK,MAG9BiP,YAAY,EACZ2F,UAAU,IAGZzN,yBAAyByM,EAAa9Z,UAAW,UAC/CiB,MAAO,SAASoL,GACd,GAKoB0O,GALhBtO,EAAOJ,EAAKI,KAKZuO,EAAY,EAGhB,KAAK,GAAI/P,KAAK3L,MAAK8a,MAAO,CACxB,GAAIa,GAAYhQ,EAAE+O,MAAM,IACxB,IAAIiB,EAAU5c,OAAS,EACrB,KAAM,IAAIyJ,WAAU,2CAGtB,IAAwB,GAApBmT,EAAU5c,QACZ,GAAIoO,GAAQxB,GAAKA,EAAE5M,OAAS2c,EAAU3c,OAAQ,CAC5C2c,EAAY/P,CACZ,YAMEwB,GAAKyL,OAAO,EAAG+C,EAAU,GAAG5c,SAAW4c,EAAU,IAAMxO,EAAKyL,OAAOzL,EAAKpO,OAAS4c,EAAU,GAAG5c,SAAW4c,EAAU,KACrHD,EAAY/P,EACZ8P,EAAWtO,EAAKyL,OAAO+C,EAAU,GAAG5c,OAAQoO,EAAKpO,OAAS4c,EAAU,GAAG5c,OAAS4c,EAAU,GAAG5c,SAKnG,GAAI6c,GAAU5b,KAAK8a,MAAMY,EAWzB,OAVID,KACFG,EAAUA,EAAQpO,QAAQ,IAAKiO,IAM7B1C,IACF6C,EAAUA,EAAQpO,QAAQ,KAAM,QAE3ByK,EAAcjY,KAAK2a,QAASiB,IAGrC/F,YAAY,EACZ2F,UAAU,IAGZzN,yBAAyByM,EAAa9Z,UAAW,SAC/CiB,MAAO,SAASoL,GACd,GAAI7O,GAAO8B,IACX,OAAO,IAAIhC,GAAQ,SAAS0H,EAASG,GACnCgT,EAAiBZ,EAAc/Z,EAAKyc,QAAS5N,EAAKW,SAAU,SAAS2B,GACnE3J,EAAQ2J,IACPxJ,MAIPgQ,YAAY,EACZ2F,UAAU,IAGLhB,GACP5N,SAASmK,gBAEP9J,EAAS,GAAIuN,EAUjB,IAPuB,gBAAZ7c,WACTC,OAAOD,QAAUsP,GAEnBL,SAASK,OAASA,EAId8L,GAAqD,mBAAjCpV,UAAS8U,qBAAqC,CACpE,GAAIoD,GAAYlY,SAAS8U,qBAAqB,SAC9CoD,GAAYA,EAAUA,EAAU9c,OAAS,GAuBb,aAAxB4E,SAASwW,WACXjW,WAAWqU,GAEJ5U,SAASmY,mBAChBnY,SAASmY,iBAAiB,mBAAoBzD,GAAW,GACzDta,OAAO+d,iBAAiB,OAAQzD,GAAW,IAIzCwD,EAAUE,aAAa,cACzBhe,OAAO8d,EAAUE,aAAa,qBAgChB,mBAAVhe,QAAwBA,OAAsC,mBAArBqY,mBACRlY,KAAOD"} \ No newline at end of file +{"version":3,"file":"es6-module-loader.js","sources":["es6-module-loader.src.js"],"names":["e","exports","module","define","amd","window","Promise","global","self","t","n","r","s","o","u","a","require","i","Error","f","call","length",1,"unhandledRejections","PromiseConstructor","../lib/Promise","../lib/decorators/unhandledRejection",2,"makePromise","Scheduler","async","asap","scheduler","factory","./Scheduler","./env","./makePromise",3,"this","_async","_running","_queue","Array","_queueLen","_afterQueue","_afterQueueLen","drain","_drain","prototype","enqueue","task","run","afterQueue",4,"throwit","noop","setTimer","format","report","handled","reported","push","logError","id","formatError","value","unreport","indexOf","splice","logInfo","formatObject","x","tasks","running","flush","shift","localConsole","console","error","log","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","../env","../format",5,"isNode","process","nextTick","hasMutationObserver","MutationObserver","WebKitMutationObserver","initMutationObserver","scheduled","node","document","createTextNode","observe","characterData","data","MutationObs","capturedSetTimeout","setTimeout","ms","clearTimer","clearTimeout","vertxRequire","vertx","cancelTimer","runOnLoop","runOnContext",6,"stack","String","JSON","tryStringify","defaultValue","stringify",7,"environment","resolver","handler","_handler","Handler","init","promiseResolve","resolve","promiseReject","reason","reject","promiseNotify","notify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","begetFrom","parent","child","receiver","join","context","all","promises","traverseWith","snd","traverse","tryCatch2","tryMap","mapAt","resolved","traverseAt","settleAt","results","pending","become","Fulfilled","maybeThenable","h","getHandlerMaybeThenable","state","fold","visitRemaining","start","markAsHandled","visit","_unreport","race","TypeError","runRace","getHandlerUntrusted","untrustedThen","then","Thenable","FailIfRejected","inheritedContext","createContext","consumers","thenable","AssimilateTask","errorId","_report","ReportTask","UnreportTask","cycle","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","Fold","z","c","to","failIfRejected","runContinuation1","next","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","b","thisArg","y","inherit","Parent","Child","objectCreate","constructor","Object","create","proto","_defer","onFulfilled","onRejected","onProgress","p","_beget","chain","_traverse","_visitRemaining","when","fail","_state","fulfilled","rejected","progress","q","cont","foreverPendingHandler","_resolve","_reject","_notify","__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","message","address","$__Object$getPrototypeOf","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","get","$__Object$create","props","F","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","loaderObj","normalize","modules","l","loads","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","done","linkSet","createLinkSet","startingLoad","loadingCount","j","d","doLink","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","linkIndex","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","preventExtensions","msg","Loader","_loader","importPromises","traceurOptions","createImportPromise","promise","m","assert","item","thisLen","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","doCompile","compiler","filename","compile","traceur","WorkerGlobalScope","script","sourceMaps","Compiler","sourceMap","getSourceMap","btoa","Reflect","LoaderPolyfill","parseURI","url","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","fetchTextFromURL","isWorker","isBrowser","isWindows","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6-module-loader.src.js b/dist/es6-module-loader.src.js index f3b955b..9c4f71e 100644 --- a/dist/es6-module-loader.src.js +++ b/dist/es6-module-loader.src.js @@ -2155,6 +2155,7 @@ function logloads(loads) { }); // 26.3.3.13 realm not implemented + this.traceurOptions = {}; } function Module() {} @@ -2349,7 +2350,7 @@ function logloads(loads) { var options = this.traceurOptions || {}; options.modules = 'instantiate'; options.script = false; - options.sourceMaps = true; + options.sourceMaps = 'inline'; options.filename = load.address; var compiler = new traceur.Compiler(options); @@ -2362,8 +2363,9 @@ function logloads(loads) { var sourceMap = compiler.getSourceMap(); if (__global.btoa && sourceMap) { - source += '\n//# sourceURL=' + load.address + '!eval'; - source += '\n//# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(sourceMap))) + '\n'; + // add "!eval" to end of Traceur sourceURL + // I believe this does something? + source += '!eval'; } source = 'var __moduleAddress = "' + load.address + '";' + source; From f0a127d16306730d49490d24c37f4456d435f6e5 Mon Sep 17 00:00:00 2001 From: guybedford Date: Tue, 23 Dec 2014 14:32:32 +0200 Subject: [PATCH 118/482] simplify readme --- README.md | 106 ++++++++++++++++-------------------------------------- 1 file changed, 30 insertions(+), 76 deletions(-) diff --git a/README.md b/README.md index 72cd4bb..b6b8813 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,12 @@ # ES6 Module Loader Polyfill [![Build Status][travis-image]][travis-url] -Dynamically loads ES6 modules in browsers and [NodeJS](#nodejs-usage) supporting custom module resolution and the loading of existing module formats from ES6 modules via a hookable pipeline. +Dynamically loads ES6 modules in browsers and [NodeJS](#nodejs-usage) with support for loading existing and custom module formats through loader hooks. + +This project implements dynamic module loading through `System` exactly to the previous ES6-specified loader API at [2014-08-24 ES6 Specification Draft Rev 27, Section 15](http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#august_24_2014_draft_rev_27) and will continue to track this API as it is re-drafted as a browser specification (currently most likely to be at https://github.com/whatwg/loader). * Provides an asynchronous loader (`System.import`) to [dynamically load ES6 modules](#basic-use). * Uses [Traceur](https://github.com/google/traceur-compiler) for compiling ES6 modules and syntax into ES5 in the browser with source map support. -* Fully supports [ES6 circular references and bindings](#circular-references--bindings). +* Fully supports [ES6 circular references and live bindings](#circular-references--bindings). * Polyfills ES6 Promises in the browser with an optionally bundled ES6 promise implementation. * Supports ES6 module loading in IE8+. Other ES6 features only supported by Traceur in IE9+. * The complete combined polyfill, including ES6 promises, comes to 9KB minified and gzipped, making it suitable for production use, provided that modules are [built into ES5 making them independent of Traceur](#moving-to-production). @@ -17,14 +19,6 @@ For an example of a universal module loader based on this polyfill for loading A _The current version is tested against **[Traceur 0.0.79](https://github.com/google/traceur-compiler/tree/0.0.79)**._ -### Background - -The ES6 specification defines a module system in JavaScript using `import` and `export` syntax. This syntax will be supported within the ` ``` -Ideally this should be based on polyfilling the `` tag, as ` - - - - - - - - - ``` - -* Note that `app-build.js` must be at the base-level for this to work. -* Also, the name we import, `app/app` must be the same name given to Traceur's compiler. - -#### Building into separate files - -We can also build separate files with: - -``` - traceur --dir app app-build --modules=instantiate -``` - -With the above, we can load from the separate files identical to loading ES6. - -#### Building across module formats - -If using a loader like [SystemJS](https://github.com/systemjs/systemjs) to load different module formats, then a build can also be performed across module formats as well. - -See [SystemJS builder](https://github.com/systemjs/builder) for this combined approach. +See the [demo folder](https://github.com/ModuleLoader/es6-module-loader/blob/master/demo/index.html) in this repo for a working example demonstrating both module loading the module tag in the browser. -### NodeJS Usage +#### NodeJS Use ``` npm install es6-module-loader @@ -259,11 +107,6 @@ Running the application: NodeJS test ``` -### Further Documentation - -* [Extending the loader through loader hooks](https://github.com/ModuleLoader/es6-module-loader/wiki/Extending-the-ES6-Loader) -* [Tracing API](https://github.com/ModuleLoader/es6-module-loader/wiki/Tracing-API) - ## Contributing In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [grunt](https://github.com/cowboy/grunt). From 4e41a0c5196d42e03345d5611ae45faba111b35c Mon Sep 17 00:00:00 2001 From: guybedford Date: Wed, 31 Dec 2014 14:38:57 +0200 Subject: [PATCH 120/482] fix attempt for #254 --- src/loader.js | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/loader.js b/src/loader.js index 8ba1338..0acde08 100644 --- a/src/loader.js +++ b/src/loader.js @@ -342,9 +342,15 @@ function logloads(loads) { throw new TypeError('"' + name + '" already exists in the module table'); // adjusted to pick up existing loads - for (var i = 0, l = loader.loads.length; i < l; i++) - if (loader.loads[i].name == name) - return resolve(loader.loads[i].linkSets[0].done); + var existingLoad; + for (var i = 0, l = loader.loads.length; i < l; i++) { + if (loader.loads[i].name == name) { + existingLoad = loader.loads[i]; + return existingLoad.linkSets[0].done.then(function() { + resolve(existingLoad); + }); + } + } var load = createLoad(name); From da5322c89a60fd56b91ea3f009021124648caffa Mon Sep 17 00:00:00 2001 From: "David M. Lee" Date: Thu, 1 Jan 2015 02:30:36 -0600 Subject: [PATCH 121/482] README.md: fix link to NodeJS section --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 268af50..9130f46 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # ES6 Module Loader Polyfill [![Build Status][travis-image]][travis-url] -Dynamically loads ES6 modules in browsers and [NodeJS](#nodejs-usage) with support for loading existing and custom module formats through loader hooks. +Dynamically loads ES6 modules in browsers and [NodeJS](#nodejs-use) with support for loading existing and custom module formats through loader hooks. This project implements dynamic module loading through `System` exactly to the previous ES6-specified loader API at [2014-08-24 ES6 Specification Draft Rev 27, Section 15](http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#august_24_2014_draft_rev_27) and will continue to track this API as it is re-drafted as a browser specification (currently most likely to be at https://github.com/whatwg/loader). From bcd736563490823ad88426bc64977e358eaede61 Mon Sep 17 00:00:00 2001 From: Pawel Kozlowski Date: Sat, 3 Jan 2015 13:35:29 +0100 Subject: [PATCH 122/482] clean up npm dependencies grunt-contrib-uglify was present in both dependencies and devDependencies which probably wasn't intentional --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 91f81a9..bc26c90 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,6 @@ "test": "cd test && node test" }, "dependencies": { - "grunt-contrib-uglify": "0.6.0", "traceur": "0.0.79", "when": "^3.6.4" } From a6fcaf2889af04884932a36ad1a9160ce24ca04b Mon Sep 17 00:00:00 2001 From: guybedford Date: Sat, 3 Jan 2015 14:39:15 +0200 Subject: [PATCH 123/482] release build --- dist/es6-module-loader-sans-promises.js | 4 ++-- dist/es6-module-loader-sans-promises.js.map | 2 +- dist/es6-module-loader-sans-promises.src.js | 12 +++++++++--- dist/es6-module-loader.js | 4 ++-- dist/es6-module-loader.js.map | 2 +- dist/es6-module-loader.src.js | 12 +++++++++--- 6 files changed, 24 insertions(+), 12 deletions(-) diff --git a/dist/es6-module-loader-sans-promises.js b/dist/es6-module-loader-sans-promises.js index 298e817..89b8eb3 100644 --- a/dist/es6-module-loader-sans-promises.js +++ b/dist/es6-module-loader-sans-promises.js @@ -1,8 +1,8 @@ /* * es6-module-loader v0.11.0 * https://github.com/ModuleLoader/es6-module-loader - * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT + * Copyright (c) 2015 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(__global){function __eval(__source,__global,load){var __curRegister=System.register;System.register=function(a,b,c){"string"!=typeof a&&(c=b,b=a),load.declare=c,load.depsList=b};try{eval('(function() { var __moduleName = "'+(load.name||"").replace('"','"')+'"; '+__source+" \n }).call(__global);")}catch(e){throw("SyntaxError"==e.name||"TypeError"==e.name)&&(e.message="Evaluating "+(load.name||load.address)+"\n "+e.message),e}System.register=__curRegister}$__Object$getPrototypeOf=Object.getPrototypeOf||function(a){return a.__proto__};var $__Object$defineProperty;!function(){try{Object.defineProperty({},"a",{})&&($__Object$defineProperty=Object.defineProperty)}catch(a){$__Object$defineProperty=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),$__Object$create=Object.create||function(a,b){function c(){}if(c.prototype=a,"object"==typeof b)for(prop in b)b.hasOwnProperty(prop)&&(c[prop]=b[prop]);return new c},function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new A(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:c&&c.metadata||{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new A(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return e=a(c),e.status="linked",e.module=b.modules[c],e;for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)return c(g.loads[k].linkSets[0].done);var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,A.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}}),this.traceurOptions={}}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=x.prototype.newModule;!function(){function a(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}var b;x.prototype.parse=function(c){if(!b)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=this.traceurOptions||{};d.modules="instantiate",d.script=!1,d.sourceMaps="inline",d.filename=c.address;var e=new b.Compiler(d),f=a(c.source,e,d.filename);if(!f)throw new Error("Error evaluating module "+c.address);var g=e.getSourceMap();__global.btoa&&g&&(f+="!eval"),f='var __moduleAddress = "'+c.address+'";'+f,__eval(f,__global,c)}}(),"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); +!function(__global){function __eval(__source,__global,load){var __curRegister=System.register;System.register=function(a,b,c){"string"!=typeof a&&(c=b,b=a),load.declare=c,load.depsList=b};try{eval('(function() { var __moduleName = "'+(load.name||"").replace('"','"')+'"; '+__source+" \n }).call(__global);")}catch(e){throw("SyntaxError"==e.name||"TypeError"==e.name)&&(e.message="Evaluating "+(load.name||load.address)+"\n "+e.message),e}System.register=__curRegister}$__Object$getPrototypeOf=Object.getPrototypeOf||function(a){return a.__proto__};var $__Object$defineProperty;!function(){try{Object.defineProperty({},"a",{})&&($__Object$defineProperty=Object.defineProperty)}catch(a){$__Object$defineProperty=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),$__Object$create=Object.create||function(a,b){function c(){}if(c.prototype=a,"object"==typeof b)for(prop in b)b.hasOwnProperty(prop)&&(c[prop]=b[prop]);return new c},function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new A(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:c&&c.metadata||{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new A(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return e=a(c),e.status="linked",e.module=b.modules[c],e;for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k,l=0,m=g.loads.length;m>l;l++)if(g.loads[l].name==i)return k=g.loads[l],k.linkSets[0].done.then(function(){c(k)});var n=a(i);n.metadata=b.moduleMetadata;var o=h(g,n);g.loads.push(n),c(o.done),"locate"==j?d(g,n):"fetch"==j?e(g,n,A.resolve(b.moduleAddress)):(n.address=b.moduleAddress,f(g,n,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}}),this.traceurOptions={}}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=x.prototype.newModule;!function(){function a(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}var b;x.prototype.parse=function(c){if(!b)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=this.traceurOptions||{};d.modules="instantiate",d.script=!1,d.sourceMaps="inline",d.filename=c.address;var e=new b.Compiler(d),f=a(c.source,e,d.filename);if(!f)throw new Error("Error evaluating module "+c.address);var g=e.getSourceMap();__global.btoa&&g&&(f+="!eval"),f='var __moduleAddress = "'+c.address+'";'+f,__eval(f,__global,c)}}(),"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); //# sourceMappingURL=es6-module-loader-sans-promises.js.map \ No newline at end of file diff --git a/dist/es6-module-loader-sans-promises.js.map b/dist/es6-module-loader-sans-promises.js.map index 1ab9cc2..6d9967a 100644 --- a/dist/es6-module-loader-sans-promises.js.map +++ b/dist/es6-module-loader-sans-promises.js.map @@ -1 +1 @@ -{"version":3,"file":"es6-module-loader-sans-promises.js","sources":["es6-module-loader-sans-promises.src.js"],"names":["__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","e","message","address","$__Object$getPrototypeOf","Object","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","value","get","call","$__Object$create","create","o","props","F","prototype","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","Promise","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","resolve","loaderObj","normalize","then","modules","module","i","l","loads","length","push","proceedToLocate","proceedToFetch","locate","p","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","TypeError","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","all","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","done","linkSet","createLinkSet","startingLoad","loadingCount","reject","j","d","doLink","error","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","indexOf","linkIndex","splice","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","Error","preventExtensions","msg","Loader","this","_loader","importPromises","traceurOptions","createImportPromise","promise","m","require","console","assert","Array","item","thisLen","constructor","define","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","doCompile","compiler","filename","compile","traceur","window","WorkerGlobalScope","script","sourceMaps","Compiler","sourceMap","getSourceMap","btoa","exports","Reflect","global","LoaderPolyfill","parseURI","url","String","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","join","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","document","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","setTimeout","fetchTextFromURL","isWorker","self","isBrowser","isWindows","process","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","data","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"es6-module-loader-sans-promises.js","sources":["es6-module-loader-sans-promises.src.js"],"names":["__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","e","message","address","$__Object$getPrototypeOf","Object","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","value","get","call","$__Object$create","create","o","props","F","prototype","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","Promise","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","resolve","loaderObj","normalize","then","modules","module","i","l","loads","length","push","proceedToLocate","proceedToFetch","locate","p","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","TypeError","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","all","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","existingLoad","done","linkSet","createLinkSet","startingLoad","loadingCount","reject","j","d","doLink","error","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","indexOf","linkIndex","splice","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","Error","preventExtensions","msg","Loader","this","_loader","importPromises","traceurOptions","createImportPromise","promise","m","require","console","assert","Array","item","thisLen","constructor","define","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","doCompile","compiler","filename","compile","traceur","window","WorkerGlobalScope","script","sourceMaps","Compiler","sourceMap","getSourceMap","btoa","exports","Reflect","global","LoaderPolyfill","parseURI","url","String","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","join","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","document","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","setTimeout","fetchTextFromURL","isWorker","self","isBrowser","isWindows","process","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","data","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6-module-loader-sans-promises.src.js b/dist/es6-module-loader-sans-promises.src.js index 6665aa6..0be4198 100644 --- a/dist/es6-module-loader-sans-promises.src.js +++ b/dist/es6-module-loader-sans-promises.src.js @@ -378,9 +378,15 @@ function logloads(loads) { throw new TypeError('"' + name + '" already exists in the module table'); // adjusted to pick up existing loads - for (var i = 0, l = loader.loads.length; i < l; i++) - if (loader.loads[i].name == name) - return resolve(loader.loads[i].linkSets[0].done); + var existingLoad; + for (var i = 0, l = loader.loads.length; i < l; i++) { + if (loader.loads[i].name == name) { + existingLoad = loader.loads[i]; + return existingLoad.linkSets[0].done.then(function() { + resolve(existingLoad); + }); + } + } var load = createLoad(name); diff --git a/dist/es6-module-loader.js b/dist/es6-module-loader.js index ae3430e..41d61fe 100644 --- a/dist/es6-module-loader.js +++ b/dist/es6-module-loader.js @@ -1,8 +1,8 @@ /* * es6-module-loader v0.11.0 * https://github.com/ModuleLoader/es6-module-loader - * Copyright (c) 2014 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT + * Copyright (c) 2015 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=0&&(n.splice(b,1),l("Handled previous rejection ["+a.id+"] "+e.formatObject(a.value)))}function h(a,b){m.push(a,b),null===o&&(o=d(i,0))}function i(){for(o=null;m.length>0;)m.shift()(m.shift())}var j,k=c,l=c;"undefined"!=typeof console&&(j=console,k="undefined"!=typeof j.error?function(a){j.error(a)}:function(a){j.log(a)},l="undefined"!=typeof j.info?function(a){j.info(a)}:function(a){j.log(a)}),a.onPotentiallyUnhandledRejection=function(a){h(f,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){h(g,a)},a.onFatalRejection=function(a){h(b,a.value)};var m=[],n=[],o=null;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../env":5,"../format":6}],5:[function(b,c){!function(a){"use strict";a(function(a){function b(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick}function c(){return"function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver}function d(a){function b(){var a=c;c=void 0,a()}var c,d=document.createTextNode(""),e=new a(b);e.observe(d,{characterData:!0});var f=0;return function(a){c=a,d.data=f^=1}}var e,f="undefined"!=typeof setTimeout&&setTimeout,g=function(a,b){return setTimeout(a,b)},h=function(a){return clearTimeout(a)},i=function(a){return f(a,0)};if(b())i=function(a){return process.nextTick(a)};else if(e=c())i=d(e);else if(!f){var j=a,k=j("vertx");g=function(a,b){return k.setTimer(b,a)},h=k.cancelTimer,i=k.runOnLoop||k.runOnContext}return{setTimer:g,clearTimer:h,asap:i}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c){!function(a){"use strict";a(function(){function a(a){var c="object"==typeof a&&null!==a&&a.stack?a.stack:b(a);return a instanceof Error?c:c+" (WARNING: non-Error used)"}function b(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=c(a,b)),b}function c(a,b){try{return JSON.stringify(a)}catch(c){return b}}return{formatError:a,formatObject:b,tryStringify:c}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],7:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===t?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new v;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return I(a)?a:new b(t,new w(q(a)))}function e(a){return new b(t,new w(new z(a)))}function f(){return Z}function g(){return new b(t,new v)}function h(a,b){var c=new v(a.receiver,a.join().context);return new b(t,c)}function i(a){return k(S,null,a)}function j(a,b){return k(N,a,b)}function k(a,c,d){function e(b,e,g){g.resolved||l(d,f,b,a(c,e,b),g)}function f(a,b,c){k[a]=b,0===--j&&c.become(new y(k))}for(var g,h="function"==typeof c?e:f,i=new v,j=d.length>>>0,k=new Array(j),m=0;m0?b(c,f.value,e):(e.become(f),m(a,c+1,f))}else b(c,d,e)}function m(a,b,c){for(var d=b;dc&&a._unreport()}}function o(a){return"object"!=typeof a||null===a?e(new TypeError("non-iterable passed to race()")):0===a.length?f():1===a.length?d(a[0]):p(a)}function p(a){var c,d,e,f=new v;for(c=0;c0||"function"!=typeof b&&0>e)return new this.constructor(t,d);var f=this._beget(),g=f._handler;return d.chain(g,d.receiver,a,b,c),f},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){return h(this._handler,this.constructor)},b.all=i,b.race=o,b._traverse=j,b._visitRemaining=m,t.prototype.when=t.prototype.become=t.prototype.notify=t.prototype.fail=t.prototype._unreport=t.prototype._report=T,t.prototype._state=0,t.prototype.state=function(){return this._state},t.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},t.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},t.prototype.visit=function(a,b,c,d){this.chain(W,a,b,c,d)},t.prototype.fold=function(a,b,c,d){this.when(new H(a,b,c,d))},R(t,u),u.prototype.become=function(a){a.fail()};var W=new u;R(t,v),v.prototype._state=0,v.prototype.resolve=function(a){this.become(q(a))},v.prototype.reject=function(a){this.resolved||this.become(new z(a))},v.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=C();return a},v.prototype.run=function(){var a=this.consumers,b=this.join();this.consumers=void 0;for(var c=0;cf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k=0,l=g.loads.length;l>k;k++)if(g.loads[k].name==i)return c(g.loads[k].linkSets[0].done);var m=a(i);m.metadata=b.moduleMetadata;var n=h(g,m);g.loads.push(m),c(n.done),"locate"==j?d(g,m):"fetch"==j?e(g,m,A.resolve(b.moduleAddress)):(m.address=b.moduleAddress,f(g,m,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}}),this.traceurOptions={}}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=x.prototype.newModule;!function(){function a(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}var b;x.prototype.parse=function(c){if(!b)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=this.traceurOptions||{};d.modules="instantiate",d.script=!1,d.sourceMaps="inline",d.filename=c.address;var e=new b.Compiler(d),f=a(c.source,e,d.filename);if(!f)throw new Error("Error evaluating module "+c.address);var g=e.getSourceMap();__global.btoa&&g&&(f+="!eval"),f='var __moduleAddress = "'+c.address+'";'+f,__eval(f,__global,c)}}(),"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); +!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=0&&(n.splice(b,1),l("Handled previous rejection ["+a.id+"] "+e.formatObject(a.value)))}function h(a,b){m.push(a,b),null===o&&(o=d(i,0))}function i(){for(o=null;m.length>0;)m.shift()(m.shift())}var j,k=c,l=c;"undefined"!=typeof console&&(j=console,k="undefined"!=typeof j.error?function(a){j.error(a)}:function(a){j.log(a)},l="undefined"!=typeof j.info?function(a){j.info(a)}:function(a){j.log(a)}),a.onPotentiallyUnhandledRejection=function(a){h(f,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){h(g,a)},a.onFatalRejection=function(a){h(b,a.value)};var m=[],n=[],o=null;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../env":5,"../format":6}],5:[function(b,c){!function(a){"use strict";a(function(a){function b(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick}function c(){return"function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver}function d(a){function b(){var a=c;c=void 0,a()}var c,d=document.createTextNode(""),e=new a(b);e.observe(d,{characterData:!0});var f=0;return function(a){c=a,d.data=f^=1}}var e,f="undefined"!=typeof setTimeout&&setTimeout,g=function(a,b){return setTimeout(a,b)},h=function(a){return clearTimeout(a)},i=function(a){return f(a,0)};if(b())i=function(a){return process.nextTick(a)};else if(e=c())i=d(e);else if(!f){var j=a,k=j("vertx");g=function(a,b){return k.setTimer(b,a)},h=k.cancelTimer,i=k.runOnLoop||k.runOnContext}return{setTimer:g,clearTimer:h,asap:i}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c){!function(a){"use strict";a(function(){function a(a){var c="object"==typeof a&&null!==a&&a.stack?a.stack:b(a);return a instanceof Error?c:c+" (WARNING: non-Error used)"}function b(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=c(a,b)),b}function c(a,b){try{return JSON.stringify(a)}catch(c){return b}}return{formatError:a,formatObject:b,tryStringify:c}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],7:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===t?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new v;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return I(a)?a:new b(t,new w(q(a)))}function e(a){return new b(t,new w(new z(a)))}function f(){return Z}function g(){return new b(t,new v)}function h(a,b){var c=new v(a.receiver,a.join().context);return new b(t,c)}function i(a){return k(S,null,a)}function j(a,b){return k(N,a,b)}function k(a,c,d){function e(b,e,g){g.resolved||l(d,f,b,a(c,e,b),g)}function f(a,b,c){k[a]=b,0===--j&&c.become(new y(k))}for(var g,h="function"==typeof c?e:f,i=new v,j=d.length>>>0,k=new Array(j),m=0;m0?b(c,f.value,e):(e.become(f),m(a,c+1,f))}else b(c,d,e)}function m(a,b,c){for(var d=b;dc&&a._unreport()}}function o(a){return"object"!=typeof a||null===a?e(new TypeError("non-iterable passed to race()")):0===a.length?f():1===a.length?d(a[0]):p(a)}function p(a){var c,d,e,f=new v;for(c=0;c0||"function"!=typeof b&&0>e)return new this.constructor(t,d);var f=this._beget(),g=f._handler;return d.chain(g,d.receiver,a,b,c),f},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){return h(this._handler,this.constructor)},b.all=i,b.race=o,b._traverse=j,b._visitRemaining=m,t.prototype.when=t.prototype.become=t.prototype.notify=t.prototype.fail=t.prototype._unreport=t.prototype._report=T,t.prototype._state=0,t.prototype.state=function(){return this._state},t.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},t.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},t.prototype.visit=function(a,b,c,d){this.chain(W,a,b,c,d)},t.prototype.fold=function(a,b,c,d){this.when(new H(a,b,c,d))},R(t,u),u.prototype.become=function(a){a.fail()};var W=new u;R(t,v),v.prototype._state=0,v.prototype.resolve=function(a){this.become(q(a))},v.prototype.reject=function(a){this.resolved||this.become(new z(a))},v.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=C();return a},v.prototype.run=function(){var a=this.consumers,b=this.join();this.consumers=void 0;for(var c=0;cf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k,l=0,m=g.loads.length;m>l;l++)if(g.loads[l].name==i)return k=g.loads[l],k.linkSets[0].done.then(function(){c(k)});var n=a(i);n.metadata=b.moduleMetadata;var o=h(g,n);g.loads.push(n),c(o.done),"locate"==j?d(g,n):"fetch"==j?e(g,n,A.resolve(b.moduleAddress)):(n.address=b.moduleAddress,f(g,n,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}}),this.traceurOptions={}}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=x.prototype.newModule;!function(){function a(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}var b;x.prototype.parse=function(c){if(!b)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=this.traceurOptions||{};d.modules="instantiate",d.script=!1,d.sourceMaps="inline",d.filename=c.address;var e=new b.Compiler(d),f=a(c.source,e,d.filename);if(!f)throw new Error("Error evaluating module "+c.address);var g=e.getSourceMap();__global.btoa&&g&&(f+="!eval"),f='var __moduleAddress = "'+c.address+'";'+f,__eval(f,__global,c)}}(),"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); //# sourceMappingURL=es6-module-loader.js.map \ No newline at end of file diff --git a/dist/es6-module-loader.js.map b/dist/es6-module-loader.js.map index cf2ad70..c69813b 100644 --- a/dist/es6-module-loader.js.map +++ b/dist/es6-module-loader.js.map @@ -1 +1 @@ -{"version":3,"file":"es6-module-loader.js","sources":["es6-module-loader.src.js"],"names":["e","exports","module","define","amd","window","Promise","global","self","t","n","r","s","o","u","a","require","i","Error","f","call","length",1,"unhandledRejections","PromiseConstructor","../lib/Promise","../lib/decorators/unhandledRejection",2,"makePromise","Scheduler","async","asap","scheduler","factory","./Scheduler","./env","./makePromise",3,"this","_async","_running","_queue","Array","_queueLen","_afterQueue","_afterQueueLen","drain","_drain","prototype","enqueue","task","run","afterQueue",4,"throwit","noop","setTimer","format","report","handled","reported","push","logError","id","formatError","value","unreport","indexOf","splice","logInfo","formatObject","x","tasks","running","flush","shift","localConsole","console","error","log","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","../env","../format",5,"isNode","process","nextTick","hasMutationObserver","MutationObserver","WebKitMutationObserver","initMutationObserver","scheduled","node","document","createTextNode","observe","characterData","data","MutationObs","capturedSetTimeout","setTimeout","ms","clearTimer","clearTimeout","vertxRequire","vertx","cancelTimer","runOnLoop","runOnContext",6,"stack","String","JSON","tryStringify","defaultValue","stringify",7,"environment","resolver","handler","_handler","Handler","init","promiseResolve","resolve","promiseReject","reason","reject","promiseNotify","notify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","begetFrom","parent","child","receiver","join","context","all","promises","traverseWith","snd","traverse","tryCatch2","tryMap","mapAt","resolved","traverseAt","settleAt","results","pending","become","Fulfilled","maybeThenable","h","getHandlerMaybeThenable","state","fold","visitRemaining","start","markAsHandled","visit","_unreport","race","TypeError","runRace","getHandlerUntrusted","untrustedThen","then","Thenable","FailIfRejected","inheritedContext","createContext","consumers","thenable","AssimilateTask","errorId","_report","ReportTask","UnreportTask","cycle","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","Fold","z","c","to","failIfRejected","runContinuation1","next","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","b","thisArg","y","inherit","Parent","Child","objectCreate","constructor","Object","create","proto","_defer","onFulfilled","onRejected","onProgress","p","_beget","chain","_traverse","_visitRemaining","when","fail","_state","fulfilled","rejected","progress","q","cont","foreverPendingHandler","_resolve","_reject","_notify","__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","message","address","$__Object$getPrototypeOf","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","get","$__Object$create","props","F","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","loaderObj","normalize","modules","l","loads","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","done","linkSet","createLinkSet","startingLoad","loadingCount","j","d","doLink","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","linkIndex","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","preventExtensions","msg","Loader","_loader","importPromises","traceurOptions","createImportPromise","promise","m","assert","item","thisLen","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","doCompile","compiler","filename","compile","traceur","WorkerGlobalScope","script","sourceMaps","Compiler","sourceMap","getSourceMap","btoa","Reflect","LoaderPolyfill","parseURI","url","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","fetchTextFromURL","isWorker","isBrowser","isWindows","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"es6-module-loader.js","sources":["es6-module-loader.src.js"],"names":["e","exports","module","define","amd","window","Promise","global","self","t","n","r","s","o","u","a","require","i","Error","f","call","length",1,"unhandledRejections","PromiseConstructor","../lib/Promise","../lib/decorators/unhandledRejection",2,"makePromise","Scheduler","async","asap","scheduler","factory","./Scheduler","./env","./makePromise",3,"this","_async","_running","_queue","Array","_queueLen","_afterQueue","_afterQueueLen","drain","_drain","prototype","enqueue","task","run","afterQueue",4,"throwit","noop","setTimer","format","report","handled","reported","push","logError","id","formatError","value","unreport","indexOf","splice","logInfo","formatObject","x","tasks","running","flush","shift","localConsole","console","error","log","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","../env","../format",5,"isNode","process","nextTick","hasMutationObserver","MutationObserver","WebKitMutationObserver","initMutationObserver","scheduled","node","document","createTextNode","observe","characterData","data","MutationObs","capturedSetTimeout","setTimeout","ms","clearTimer","clearTimeout","vertxRequire","vertx","cancelTimer","runOnLoop","runOnContext",6,"stack","String","JSON","tryStringify","defaultValue","stringify",7,"environment","resolver","handler","_handler","Handler","init","promiseResolve","resolve","promiseReject","reason","reject","promiseNotify","notify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","begetFrom","parent","child","receiver","join","context","all","promises","traverseWith","snd","traverse","tryCatch2","tryMap","mapAt","resolved","traverseAt","settleAt","results","pending","become","Fulfilled","maybeThenable","h","getHandlerMaybeThenable","state","fold","visitRemaining","start","markAsHandled","visit","_unreport","race","TypeError","runRace","getHandlerUntrusted","untrustedThen","then","Thenable","FailIfRejected","inheritedContext","createContext","consumers","thenable","AssimilateTask","errorId","_report","ReportTask","UnreportTask","cycle","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","Fold","z","c","to","failIfRejected","runContinuation1","next","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","b","thisArg","y","inherit","Parent","Child","objectCreate","constructor","Object","create","proto","_defer","onFulfilled","onRejected","onProgress","p","_beget","chain","_traverse","_visitRemaining","when","fail","_state","fulfilled","rejected","progress","q","cont","foreverPendingHandler","_resolve","_reject","_notify","__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","message","address","$__Object$getPrototypeOf","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","get","$__Object$create","props","F","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","loaderObj","normalize","modules","l","loads","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","existingLoad","done","linkSet","createLinkSet","startingLoad","loadingCount","j","d","doLink","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","linkIndex","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","preventExtensions","msg","Loader","_loader","importPromises","traceurOptions","createImportPromise","promise","m","assert","item","thisLen","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","doCompile","compiler","filename","compile","traceur","WorkerGlobalScope","script","sourceMaps","Compiler","sourceMap","getSourceMap","btoa","Reflect","LoaderPolyfill","parseURI","url","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","fetchTextFromURL","isWorker","isBrowser","isWindows","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6-module-loader.src.js b/dist/es6-module-loader.src.js index d54b138..0f9e802 100644 --- a/dist/es6-module-loader.src.js +++ b/dist/es6-module-loader.src.js @@ -1603,9 +1603,15 @@ function logloads(loads) { throw new TypeError('"' + name + '" already exists in the module table'); // adjusted to pick up existing loads - for (var i = 0, l = loader.loads.length; i < l; i++) - if (loader.loads[i].name == name) - return resolve(loader.loads[i].linkSets[0].done); + var existingLoad; + for (var i = 0, l = loader.loads.length; i < l; i++) { + if (loader.loads[i].name == name) { + existingLoad = loader.loads[i]; + return existingLoad.linkSets[0].done.then(function() { + resolve(existingLoad); + }); + } + } var load = createLoad(name); From 96760d6549dee4a993b96ca8222c1281970291c3 Mon Sep 17 00:00:00 2001 From: guybedford Date: Sat, 3 Jan 2015 14:39:44 +0200 Subject: [PATCH 124/482] 0.11.1 --- bower.json | 2 +- dist/es6-module-loader-sans-promises.js | 2 +- dist/es6-module-loader.js | 2 +- package.json | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bower.json b/bower.json index e36403c..ea62612 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "es6-module-loader", - "version": "0.11.0", + "version": "0.11.1", "description": "An ES6 Module Loader polyfill based on the latest spec.", "homepage": "https://github.com/ModuleLoader/es6-module-loader", "main": "dist/es6-module-loader-sans-promises.js", diff --git a/dist/es6-module-loader-sans-promises.js b/dist/es6-module-loader-sans-promises.js index 89b8eb3..9e4e68f 100644 --- a/dist/es6-module-loader-sans-promises.js +++ b/dist/es6-module-loader-sans-promises.js @@ -1,5 +1,5 @@ /* - * es6-module-loader v0.11.0 + * es6-module-loader v0.11.1 * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2015 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ diff --git a/dist/es6-module-loader.js b/dist/es6-module-loader.js index 41d61fe..0d7c128 100644 --- a/dist/es6-module-loader.js +++ b/dist/es6-module-loader.js @@ -1,5 +1,5 @@ /* - * es6-module-loader v0.11.0 + * es6-module-loader v0.11.1 * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2015 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ diff --git a/package.json b/package.json index bc26c90..4fec8b2 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "es6-module-loader", "description": "An ES6 Module Loader shim", - "version": "0.11.0", + "version": "0.11.1", "homepage": "https://github.com/ModuleLoader/es6-module-loader", "author": { "name": "Guy Bedford, Luke Hoban, Addy Osmani", From ceb13870b22e1478670c3ee1d9b9beb7a2de660d Mon Sep 17 00:00:00 2001 From: Guy Bedford Date: Sun, 4 Jan 2015 19:13:51 +0200 Subject: [PATCH 125/482] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 9130f46..aac4d6c 100644 --- a/README.md +++ b/README.md @@ -4,14 +4,14 @@ Dynamically loads ES6 modules in browsers and [NodeJS](#nodejs-use) with support This project implements dynamic module loading through `System` exactly to the previous ES6-specified loader API at [2014-08-24 ES6 Specification Draft Rev 27, Section 15](http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#august_24_2014_draft_rev_27) and will continue to track this API as it is re-drafted as a browser specification (currently most likely to be at https://github.com/whatwg/loader). -* Provides an asynchronous loader (`System.import`) to [dynamically load ES6 modules](#basic-use). +* Provides an asynchronous loader (`System.import`) to [dynamically load ES6 modules](##getting-started). * Uses [Traceur](https://github.com/google/traceur-compiler) for compiling ES6 modules and syntax into ES5 in the browser with source map support. * Fully supports [ES6 circular references and live bindings](https://github.com/ModuleLoader/es6-module-loader/wiki/Circular-References-&-Bindings). * Includes [`baseURL` and `paths` implementations](https://github.com/ModuleLoader/es6-module-loader/wiki/Configuring-the-Loader). * Can be used as a [tracing tool](https://github.com/ModuleLoader/es6-module-loader/wiki/Tracing-API) for static analysis of modules. * Polyfills ES6 Promises in the browser with an optionally bundled ES6 promise implementation. * Supports ES6 module loading in IE8+. Other ES6 features only supported by Traceur in IE9+. -* The complete combined polyfill, including ES6 promises, comes to 9KB minified and gzipped, making it suitable for production use, provided that modules are [built into ES5 making them independent of Traceur](#moving-to-production). +* The complete combined polyfill, including ES6 promises, comes to 9KB minified and gzipped, making it suitable for production use, provided that modules are [built into ES5 making them independent of Traceur](https://github.com/ModuleLoader/es6-module-loader/wiki/Production-Workflows). For an overview of build workflows, [see the production guide](https://github.com/ModuleLoader/es6-module-loader/wiki/Production-Workflows). From 26092c2dcfabc8f84c4d51df2799fb435eca2c6b Mon Sep 17 00:00:00 2001 From: guybedford Date: Mon, 12 Jan 2015 11:15:10 +0200 Subject: [PATCH 126/482] fix linking issue in https://github.com/systemjs/systemjs/pull/310 --- src/loader.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/loader.js b/src/loader.js index 0acde08..9e0e7dc 100644 --- a/src/loader.js +++ b/src/loader.js @@ -568,7 +568,7 @@ function logloads(loads) { // 1. groups is an already-interleaved array of group kinds // 2. load.groupIndex is set when this function runs // 3. load.groupIndex is the interleaved index ie 0 declarative, 1 dynamic, 2 declarative, ... (or starting with dynamic) - function buildLinkageGroups(load, loads, groups, loader) { + function buildLinkageGroups(load, loads, groups) { groups[load.groupIndex] = groups[load.groupIndex] || []; // if the load already has a group index and its in its group, its already been done @@ -596,7 +596,7 @@ function logloads(loads) { if (loadDep.groupIndex === undefined || loadDep.groupIndex < loadDepGroupIndex) { // if already in a group, remove from the old group - if (loadDep.groupIndex) { + if (loadDep.groupIndex !== undefined) { groups[loadDep.groupIndex].splice(indexOf.call(groups[loadDep.groupIndex], loadDep), 1); // if the old group is empty, then we have a mixed depndency cycle @@ -607,7 +607,7 @@ function logloads(loads) { loadDep.groupIndex = loadDepGroupIndex; } - buildLinkageGroups(loadDep, loads, groups, loader); + buildLinkageGroups(loadDep, loads, groups); } } } @@ -646,7 +646,7 @@ function logloads(loads) { var groups = []; var startingLoad = linkSet.loads[0]; startingLoad.groupIndex = 0; - buildLinkageGroups(startingLoad, linkSet.loads, groups, loader); + buildLinkageGroups(startingLoad, linkSet.loads, groups); // determine the kind of the bottom group var curGroupDeclarative = startingLoad.isDeclarative == groups.length % 2; From fb6a061150c25407cd244c3a1786491c68e327b2 Mon Sep 17 00:00:00 2001 From: guybedford Date: Thu, 15 Jan 2015 11:04:14 +0200 Subject: [PATCH 127/482] 0.11.2 --- dist/es6-module-loader-sans-promises.js | 4 ++-- dist/es6-module-loader-sans-promises.js.map | 2 +- dist/es6-module-loader-sans-promises.src.js | 8 ++++---- dist/es6-module-loader.js | 4 ++-- dist/es6-module-loader.js.map | 2 +- dist/es6-module-loader.src.js | 8 ++++---- package.json | 2 +- 7 files changed, 15 insertions(+), 15 deletions(-) diff --git a/dist/es6-module-loader-sans-promises.js b/dist/es6-module-loader-sans-promises.js index 9e4e68f..bdd298c 100644 --- a/dist/es6-module-loader-sans-promises.js +++ b/dist/es6-module-loader-sans-promises.js @@ -1,8 +1,8 @@ /* - * es6-module-loader v0.11.1 + * es6-module-loader v0.11.2 * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2015 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(__global){function __eval(__source,__global,load){var __curRegister=System.register;System.register=function(a,b,c){"string"!=typeof a&&(c=b,b=a),load.declare=c,load.depsList=b};try{eval('(function() { var __moduleName = "'+(load.name||"").replace('"','"')+'"; '+__source+" \n }).call(__global);")}catch(e){throw("SyntaxError"==e.name||"TypeError"==e.name)&&(e.message="Evaluating "+(load.name||load.address)+"\n "+e.message),e}System.register=__curRegister}$__Object$getPrototypeOf=Object.getPrototypeOf||function(a){return a.__proto__};var $__Object$defineProperty;!function(){try{Object.defineProperty({},"a",{})&&($__Object$defineProperty=Object.defineProperty)}catch(a){$__Object$defineProperty=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),$__Object$create=Object.create||function(a,b){function c(){}if(c.prototype=a,"object"==typeof b)for(prop in b)b.hasOwnProperty(prop)&&(c[prop]=b[prop]);return new c},function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new A(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:c&&c.metadata||{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new A(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return e=a(c),e.status="linked",e.module=b.modules[c],e;for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k,l=0,m=g.loads.length;m>l;l++)if(g.loads[l].name==i)return k=g.loads[l],k.linkSets[0].done.then(function(){c(k)});var n=a(i);n.metadata=b.moduleMetadata;var o=h(g,n);g.loads.push(n),c(o.done),"locate"==j?d(g,n):"fetch"==j?e(g,n,A.resolve(b.moduleAddress)):(n.address=b.moduleAddress,f(g,n,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}}),this.traceurOptions={}}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=x.prototype.newModule;!function(){function a(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}var b;x.prototype.parse=function(c){if(!b)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=this.traceurOptions||{};d.modules="instantiate",d.script=!1,d.sourceMaps="inline",d.filename=c.address;var e=new b.Compiler(d),f=a(c.source,e,d.filename);if(!f)throw new Error("Error evaluating module "+c.address);var g=e.getSourceMap();__global.btoa&&g&&(f+="!eval"),f='var __moduleAddress = "'+c.address+'";'+f,__eval(f,__global,c)}}(),"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); +!function(__global){function __eval(__source,__global,load){var __curRegister=System.register;System.register=function(a,b,c){"string"!=typeof a&&(c=b,b=a),load.declare=c,load.depsList=b};try{eval('(function() { var __moduleName = "'+(load.name||"").replace('"','"')+'"; '+__source+" \n }).call(__global);")}catch(e){throw("SyntaxError"==e.name||"TypeError"==e.name)&&(e.message="Evaluating "+(load.name||load.address)+"\n "+e.message),e}System.register=__curRegister}$__Object$getPrototypeOf=Object.getPrototypeOf||function(a){return a.__proto__};var $__Object$defineProperty;!function(){try{Object.defineProperty({},"a",{})&&($__Object$defineProperty=Object.defineProperty)}catch(a){$__Object$defineProperty=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),$__Object$create=Object.create||function(a,b){function c(){}if(c.prototype=a,"object"==typeof b)for(prop in b)b.hasOwnProperty(prop)&&(c[prop]=b[prop]);return new c},function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new A(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:c&&c.metadata||{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new A(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return e=a(c),e.status="linked",e.module=b.modules[c],e;for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k,l=0,m=g.loads.length;m>l;l++)if(g.loads[l].name==i)return k=g.loads[l],k.linkSets[0].done.then(function(){c(k)});var n=a(i);n.metadata=b.moduleMetadata;var o=h(g,n);g.loads.push(n),c(o.done),"locate"==j?d(g,n):"fetch"==j?e(g,n,A.resolve(b.moduleAddress)):(n.address=b.moduleAddress,f(g,n,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var d=0,e=b.length;e>d;d++)for(var f=b[d],g=0;g=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}}),this.traceurOptions={}}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=x.prototype.newModule;!function(){function a(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}var b;x.prototype.parse=function(c){if(!b)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=this.traceurOptions||{};d.modules="instantiate",d.script=!1,d.sourceMaps="inline",d.filename=c.address;var e=new b.Compiler(d),f=a(c.source,e,d.filename);if(!f)throw new Error("Error evaluating module "+c.address);var g=e.getSourceMap();__global.btoa&&g&&(f+="!eval"),f='var __moduleAddress = "'+c.address+'";'+f,__eval(f,__global,c)}}(),"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); //# sourceMappingURL=es6-module-loader-sans-promises.js.map \ No newline at end of file diff --git a/dist/es6-module-loader-sans-promises.js.map b/dist/es6-module-loader-sans-promises.js.map index 6d9967a..c4fba1f 100644 --- a/dist/es6-module-loader-sans-promises.js.map +++ b/dist/es6-module-loader-sans-promises.js.map @@ -1 +1 @@ -{"version":3,"file":"es6-module-loader-sans-promises.js","sources":["es6-module-loader-sans-promises.src.js"],"names":["__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","e","message","address","$__Object$getPrototypeOf","Object","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","value","get","call","$__Object$create","create","o","props","F","prototype","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","Promise","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","resolve","loaderObj","normalize","then","modules","module","i","l","loads","length","push","proceedToLocate","proceedToFetch","locate","p","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","TypeError","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","all","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","existingLoad","done","linkSet","createLinkSet","startingLoad","loadingCount","reject","j","d","doLink","error","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","indexOf","linkIndex","splice","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","Error","preventExtensions","msg","Loader","this","_loader","importPromises","traceurOptions","createImportPromise","promise","m","require","console","assert","Array","item","thisLen","constructor","define","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","doCompile","compiler","filename","compile","traceur","window","WorkerGlobalScope","script","sourceMaps","Compiler","sourceMap","getSourceMap","btoa","exports","Reflect","global","LoaderPolyfill","parseURI","url","String","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","join","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","document","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","setTimeout","fetchTextFromURL","isWorker","self","isBrowser","isWindows","process","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","data","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"es6-module-loader-sans-promises.js","sources":["es6-module-loader-sans-promises.src.js"],"names":["__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","e","message","address","$__Object$getPrototypeOf","Object","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","value","get","call","$__Object$create","create","o","props","F","prototype","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","Promise","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","resolve","loaderObj","normalize","then","modules","module","i","l","loads","length","push","proceedToLocate","proceedToFetch","locate","p","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","TypeError","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","all","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","existingLoad","done","linkSet","createLinkSet","startingLoad","loadingCount","reject","j","d","doLink","error","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","indexOf","linkIndex","splice","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","Error","preventExtensions","msg","Loader","this","_loader","importPromises","traceurOptions","createImportPromise","promise","m","require","console","assert","Array","item","thisLen","constructor","define","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","doCompile","compiler","filename","compile","traceur","window","WorkerGlobalScope","script","sourceMaps","Compiler","sourceMap","getSourceMap","btoa","exports","Reflect","global","LoaderPolyfill","parseURI","url","String","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","join","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","document","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","setTimeout","fetchTextFromURL","isWorker","self","isBrowser","isWindows","process","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","data","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6-module-loader-sans-promises.src.js b/dist/es6-module-loader-sans-promises.src.js index 0be4198..3a21608 100644 --- a/dist/es6-module-loader-sans-promises.src.js +++ b/dist/es6-module-loader-sans-promises.src.js @@ -604,7 +604,7 @@ function logloads(loads) { // 1. groups is an already-interleaved array of group kinds // 2. load.groupIndex is set when this function runs // 3. load.groupIndex is the interleaved index ie 0 declarative, 1 dynamic, 2 declarative, ... (or starting with dynamic) - function buildLinkageGroups(load, loads, groups, loader) { + function buildLinkageGroups(load, loads, groups) { groups[load.groupIndex] = groups[load.groupIndex] || []; // if the load already has a group index and its in its group, its already been done @@ -632,7 +632,7 @@ function logloads(loads) { if (loadDep.groupIndex === undefined || loadDep.groupIndex < loadDepGroupIndex) { // if already in a group, remove from the old group - if (loadDep.groupIndex) { + if (loadDep.groupIndex !== undefined) { groups[loadDep.groupIndex].splice(indexOf.call(groups[loadDep.groupIndex], loadDep), 1); // if the old group is empty, then we have a mixed depndency cycle @@ -643,7 +643,7 @@ function logloads(loads) { loadDep.groupIndex = loadDepGroupIndex; } - buildLinkageGroups(loadDep, loads, groups, loader); + buildLinkageGroups(loadDep, loads, groups); } } } @@ -682,7 +682,7 @@ function logloads(loads) { var groups = []; var startingLoad = linkSet.loads[0]; startingLoad.groupIndex = 0; - buildLinkageGroups(startingLoad, linkSet.loads, groups, loader); + buildLinkageGroups(startingLoad, linkSet.loads, groups); // determine the kind of the bottom group var curGroupDeclarative = startingLoad.isDeclarative == groups.length % 2; diff --git a/dist/es6-module-loader.js b/dist/es6-module-loader.js index 0d7c128..9d5bd14 100644 --- a/dist/es6-module-loader.js +++ b/dist/es6-module-loader.js @@ -1,8 +1,8 @@ /* - * es6-module-loader v0.11.1 + * es6-module-loader v0.11.2 * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2015 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=0&&(n.splice(b,1),l("Handled previous rejection ["+a.id+"] "+e.formatObject(a.value)))}function h(a,b){m.push(a,b),null===o&&(o=d(i,0))}function i(){for(o=null;m.length>0;)m.shift()(m.shift())}var j,k=c,l=c;"undefined"!=typeof console&&(j=console,k="undefined"!=typeof j.error?function(a){j.error(a)}:function(a){j.log(a)},l="undefined"!=typeof j.info?function(a){j.info(a)}:function(a){j.log(a)}),a.onPotentiallyUnhandledRejection=function(a){h(f,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){h(g,a)},a.onFatalRejection=function(a){h(b,a.value)};var m=[],n=[],o=null;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../env":5,"../format":6}],5:[function(b,c){!function(a){"use strict";a(function(a){function b(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick}function c(){return"function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver}function d(a){function b(){var a=c;c=void 0,a()}var c,d=document.createTextNode(""),e=new a(b);e.observe(d,{characterData:!0});var f=0;return function(a){c=a,d.data=f^=1}}var e,f="undefined"!=typeof setTimeout&&setTimeout,g=function(a,b){return setTimeout(a,b)},h=function(a){return clearTimeout(a)},i=function(a){return f(a,0)};if(b())i=function(a){return process.nextTick(a)};else if(e=c())i=d(e);else if(!f){var j=a,k=j("vertx");g=function(a,b){return k.setTimer(b,a)},h=k.cancelTimer,i=k.runOnLoop||k.runOnContext}return{setTimer:g,clearTimer:h,asap:i}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c){!function(a){"use strict";a(function(){function a(a){var c="object"==typeof a&&null!==a&&a.stack?a.stack:b(a);return a instanceof Error?c:c+" (WARNING: non-Error used)"}function b(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=c(a,b)),b}function c(a,b){try{return JSON.stringify(a)}catch(c){return b}}return{formatError:a,formatObject:b,tryStringify:c}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],7:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===t?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new v;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return I(a)?a:new b(t,new w(q(a)))}function e(a){return new b(t,new w(new z(a)))}function f(){return Z}function g(){return new b(t,new v)}function h(a,b){var c=new v(a.receiver,a.join().context);return new b(t,c)}function i(a){return k(S,null,a)}function j(a,b){return k(N,a,b)}function k(a,c,d){function e(b,e,g){g.resolved||l(d,f,b,a(c,e,b),g)}function f(a,b,c){k[a]=b,0===--j&&c.become(new y(k))}for(var g,h="function"==typeof c?e:f,i=new v,j=d.length>>>0,k=new Array(j),m=0;m0?b(c,f.value,e):(e.become(f),m(a,c+1,f))}else b(c,d,e)}function m(a,b,c){for(var d=b;dc&&a._unreport()}}function o(a){return"object"!=typeof a||null===a?e(new TypeError("non-iterable passed to race()")):0===a.length?f():1===a.length?d(a[0]):p(a)}function p(a){var c,d,e,f=new v;for(c=0;c0||"function"!=typeof b&&0>e)return new this.constructor(t,d);var f=this._beget(),g=f._handler;return d.chain(g,d.receiver,a,b,c),f},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){return h(this._handler,this.constructor)},b.all=i,b.race=o,b._traverse=j,b._visitRemaining=m,t.prototype.when=t.prototype.become=t.prototype.notify=t.prototype.fail=t.prototype._unreport=t.prototype._report=T,t.prototype._state=0,t.prototype.state=function(){return this._state},t.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},t.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},t.prototype.visit=function(a,b,c,d){this.chain(W,a,b,c,d)},t.prototype.fold=function(a,b,c,d){this.when(new H(a,b,c,d))},R(t,u),u.prototype.become=function(a){a.fail()};var W=new u;R(t,v),v.prototype._state=0,v.prototype.resolve=function(a){this.become(q(a))},v.prototype.reject=function(a){this.resolved||this.become(new z(a))},v.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=C();return a},v.prototype.run=function(){var a=this.consumers,b=this.join();this.consumers=void 0;for(var c=0;cf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k,l=0,m=g.loads.length;m>l;l++)if(g.loads[l].name==i)return k=g.loads[l],k.linkSets[0].done.then(function(){c(k)});var n=a(i);n.metadata=b.moduleMetadata;var o=h(g,n);g.loads.push(n),c(o.done),"locate"==j?d(g,n):"fetch"==j?e(g,n,A.resolve(b.moduleAddress)):(n.address=b.moduleAddress,f(g,n,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c,d){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var e=0,f=b.length;f>e;e++)for(var g=b[e],h=0;h=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}}),this.traceurOptions={}}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=x.prototype.newModule;!function(){function a(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}var b;x.prototype.parse=function(c){if(!b)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=this.traceurOptions||{};d.modules="instantiate",d.script=!1,d.sourceMaps="inline",d.filename=c.address;var e=new b.Compiler(d),f=a(c.source,e,d.filename);if(!f)throw new Error("Error evaluating module "+c.address);var g=e.getSourceMap();__global.btoa&&g&&(f+="!eval"),f='var __moduleAddress = "'+c.address+'";'+f,__eval(f,__global,c)}}(),"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); +!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=0&&(n.splice(b,1),l("Handled previous rejection ["+a.id+"] "+e.formatObject(a.value)))}function h(a,b){m.push(a,b),null===o&&(o=d(i,0))}function i(){for(o=null;m.length>0;)m.shift()(m.shift())}var j,k=c,l=c;"undefined"!=typeof console&&(j=console,k="undefined"!=typeof j.error?function(a){j.error(a)}:function(a){j.log(a)},l="undefined"!=typeof j.info?function(a){j.info(a)}:function(a){j.log(a)}),a.onPotentiallyUnhandledRejection=function(a){h(f,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){h(g,a)},a.onFatalRejection=function(a){h(b,a.value)};var m=[],n=[],o=null;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../env":5,"../format":6}],5:[function(b,c){!function(a){"use strict";a(function(a){function b(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick}function c(){return"function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver}function d(a){function b(){var a=c;c=void 0,a()}var c,d=document.createTextNode(""),e=new a(b);e.observe(d,{characterData:!0});var f=0;return function(a){c=a,d.data=f^=1}}var e,f="undefined"!=typeof setTimeout&&setTimeout,g=function(a,b){return setTimeout(a,b)},h=function(a){return clearTimeout(a)},i=function(a){return f(a,0)};if(b())i=function(a){return process.nextTick(a)};else if(e=c())i=d(e);else if(!f){var j=a,k=j("vertx");g=function(a,b){return k.setTimer(b,a)},h=k.cancelTimer,i=k.runOnLoop||k.runOnContext}return{setTimer:g,clearTimer:h,asap:i}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c){!function(a){"use strict";a(function(){function a(a){var c="object"==typeof a&&null!==a&&a.stack?a.stack:b(a);return a instanceof Error?c:c+" (WARNING: non-Error used)"}function b(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=c(a,b)),b}function c(a,b){try{return JSON.stringify(a)}catch(c){return b}}return{formatError:a,formatObject:b,tryStringify:c}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],7:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===t?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new v;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return I(a)?a:new b(t,new w(q(a)))}function e(a){return new b(t,new w(new z(a)))}function f(){return Z}function g(){return new b(t,new v)}function h(a,b){var c=new v(a.receiver,a.join().context);return new b(t,c)}function i(a){return k(S,null,a)}function j(a,b){return k(N,a,b)}function k(a,c,d){function e(b,e,g){g.resolved||l(d,f,b,a(c,e,b),g)}function f(a,b,c){k[a]=b,0===--j&&c.become(new y(k))}for(var g,h="function"==typeof c?e:f,i=new v,j=d.length>>>0,k=new Array(j),m=0;m0?b(c,f.value,e):(e.become(f),m(a,c+1,f))}else b(c,d,e)}function m(a,b,c){for(var d=b;dc&&a._unreport()}}function o(a){return"object"!=typeof a||null===a?e(new TypeError("non-iterable passed to race()")):0===a.length?f():1===a.length?d(a[0]):p(a)}function p(a){var c,d,e,f=new v;for(c=0;c0||"function"!=typeof b&&0>e)return new this.constructor(t,d);var f=this._beget(),g=f._handler;return d.chain(g,d.receiver,a,b,c),f},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){return h(this._handler,this.constructor)},b.all=i,b.race=o,b._traverse=j,b._visitRemaining=m,t.prototype.when=t.prototype.become=t.prototype.notify=t.prototype.fail=t.prototype._unreport=t.prototype._report=T,t.prototype._state=0,t.prototype.state=function(){return this._state},t.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},t.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},t.prototype.visit=function(a,b,c,d){this.chain(W,a,b,c,d)},t.prototype.fold=function(a,b,c,d){this.when(new H(a,b,c,d))},R(t,u),u.prototype.become=function(a){a.fail()};var W=new u;R(t,v),v.prototype._state=0,v.prototype.resolve=function(a){this.become(q(a))},v.prototype.reject=function(a){this.resolved||this.become(new z(a))},v.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=C();return a},v.prototype.run=function(){var a=this.consumers,b=this.join();this.consumers=void 0;for(var c=0;cf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k,l=0,m=g.loads.length;m>l;l++)if(g.loads[l].name==i)return k=g.loads[l],k.linkSets[0].done.then(function(){c(k)});var n=a(i);n.metadata=b.moduleMetadata;var o=h(g,n);g.loads.push(n),c(o.done),"locate"==j?d(g,n):"fetch"==j?e(g,n,A.resolve(b.moduleAddress)):(n.address=b.moduleAddress,f(g,n,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var d=0,e=b.length;e>d;d++)for(var f=b[d],g=0;g=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}}),this.traceurOptions={}}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=x.prototype.newModule;!function(){function a(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}var b;x.prototype.parse=function(c){if(!b)if("undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope)b=require("traceur");else{if(!__global.traceur)throw new TypeError("Include Traceur for module syntax support");b=__global.traceur}c.isDeclarative=!0;var d=this.traceurOptions||{};d.modules="instantiate",d.script=!1,d.sourceMaps="inline",d.filename=c.address;var e=new b.Compiler(d),f=a(c.source,e,d.filename);if(!f)throw new Error("Error evaluating module "+c.address);var g=e.getSourceMap();__global.btoa&&g&&(f+="!eval"),f='var __moduleAddress = "'+c.address+'";'+f,__eval(f,__global,c)}}(),"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); //# sourceMappingURL=es6-module-loader.js.map \ No newline at end of file diff --git a/dist/es6-module-loader.js.map b/dist/es6-module-loader.js.map index c69813b..078f9a2 100644 --- a/dist/es6-module-loader.js.map +++ b/dist/es6-module-loader.js.map @@ -1 +1 @@ -{"version":3,"file":"es6-module-loader.js","sources":["es6-module-loader.src.js"],"names":["e","exports","module","define","amd","window","Promise","global","self","t","n","r","s","o","u","a","require","i","Error","f","call","length",1,"unhandledRejections","PromiseConstructor","../lib/Promise","../lib/decorators/unhandledRejection",2,"makePromise","Scheduler","async","asap","scheduler","factory","./Scheduler","./env","./makePromise",3,"this","_async","_running","_queue","Array","_queueLen","_afterQueue","_afterQueueLen","drain","_drain","prototype","enqueue","task","run","afterQueue",4,"throwit","noop","setTimer","format","report","handled","reported","push","logError","id","formatError","value","unreport","indexOf","splice","logInfo","formatObject","x","tasks","running","flush","shift","localConsole","console","error","log","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","../env","../format",5,"isNode","process","nextTick","hasMutationObserver","MutationObserver","WebKitMutationObserver","initMutationObserver","scheduled","node","document","createTextNode","observe","characterData","data","MutationObs","capturedSetTimeout","setTimeout","ms","clearTimer","clearTimeout","vertxRequire","vertx","cancelTimer","runOnLoop","runOnContext",6,"stack","String","JSON","tryStringify","defaultValue","stringify",7,"environment","resolver","handler","_handler","Handler","init","promiseResolve","resolve","promiseReject","reason","reject","promiseNotify","notify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","begetFrom","parent","child","receiver","join","context","all","promises","traverseWith","snd","traverse","tryCatch2","tryMap","mapAt","resolved","traverseAt","settleAt","results","pending","become","Fulfilled","maybeThenable","h","getHandlerMaybeThenable","state","fold","visitRemaining","start","markAsHandled","visit","_unreport","race","TypeError","runRace","getHandlerUntrusted","untrustedThen","then","Thenable","FailIfRejected","inheritedContext","createContext","consumers","thenable","AssimilateTask","errorId","_report","ReportTask","UnreportTask","cycle","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","Fold","z","c","to","failIfRejected","runContinuation1","next","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","b","thisArg","y","inherit","Parent","Child","objectCreate","constructor","Object","create","proto","_defer","onFulfilled","onRejected","onProgress","p","_beget","chain","_traverse","_visitRemaining","when","fail","_state","fulfilled","rejected","progress","q","cont","foreverPendingHandler","_resolve","_reject","_notify","__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","message","address","$__Object$getPrototypeOf","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","get","$__Object$create","props","F","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","loaderObj","normalize","modules","l","loads","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","existingLoad","done","linkSet","createLinkSet","startingLoad","loadingCount","j","d","doLink","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","linkIndex","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","preventExtensions","msg","Loader","_loader","importPromises","traceurOptions","createImportPromise","promise","m","assert","item","thisLen","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","doCompile","compiler","filename","compile","traceur","WorkerGlobalScope","script","sourceMaps","Compiler","sourceMap","getSourceMap","btoa","Reflect","LoaderPolyfill","parseURI","url","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","fetchTextFromURL","isWorker","isBrowser","isWindows","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"es6-module-loader.js","sources":["es6-module-loader.src.js"],"names":["e","exports","module","define","amd","window","Promise","global","self","t","n","r","s","o","u","a","require","i","Error","f","call","length",1,"unhandledRejections","PromiseConstructor","../lib/Promise","../lib/decorators/unhandledRejection",2,"makePromise","Scheduler","async","asap","scheduler","factory","./Scheduler","./env","./makePromise",3,"this","_async","_running","_queue","Array","_queueLen","_afterQueue","_afterQueueLen","drain","_drain","prototype","enqueue","task","run","afterQueue",4,"throwit","noop","setTimer","format","report","handled","reported","push","logError","id","formatError","value","unreport","indexOf","splice","logInfo","formatObject","x","tasks","running","flush","shift","localConsole","console","error","log","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","../env","../format",5,"isNode","process","nextTick","hasMutationObserver","MutationObserver","WebKitMutationObserver","initMutationObserver","scheduled","node","document","createTextNode","observe","characterData","data","MutationObs","capturedSetTimeout","setTimeout","ms","clearTimer","clearTimeout","vertxRequire","vertx","cancelTimer","runOnLoop","runOnContext",6,"stack","String","JSON","tryStringify","defaultValue","stringify",7,"environment","resolver","handler","_handler","Handler","init","promiseResolve","resolve","promiseReject","reason","reject","promiseNotify","notify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","begetFrom","parent","child","receiver","join","context","all","promises","traverseWith","snd","traverse","tryCatch2","tryMap","mapAt","resolved","traverseAt","settleAt","results","pending","become","Fulfilled","maybeThenable","h","getHandlerMaybeThenable","state","fold","visitRemaining","start","markAsHandled","visit","_unreport","race","TypeError","runRace","getHandlerUntrusted","untrustedThen","then","Thenable","FailIfRejected","inheritedContext","createContext","consumers","thenable","AssimilateTask","errorId","_report","ReportTask","UnreportTask","cycle","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","Fold","z","c","to","failIfRejected","runContinuation1","next","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","b","thisArg","y","inherit","Parent","Child","objectCreate","constructor","Object","create","proto","_defer","onFulfilled","onRejected","onProgress","p","_beget","chain","_traverse","_visitRemaining","when","fail","_state","fulfilled","rejected","progress","q","cont","foreverPendingHandler","_resolve","_reject","_notify","__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","message","address","$__Object$getPrototypeOf","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","get","$__Object$create","props","F","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","loaderObj","normalize","modules","l","loads","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","existingLoad","done","linkSet","createLinkSet","startingLoad","loadingCount","j","d","doLink","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","linkIndex","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","preventExtensions","msg","Loader","_loader","importPromises","traceurOptions","createImportPromise","promise","m","assert","item","thisLen","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","doCompile","compiler","filename","compile","traceur","WorkerGlobalScope","script","sourceMaps","Compiler","sourceMap","getSourceMap","btoa","Reflect","LoaderPolyfill","parseURI","url","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","fetchTextFromURL","isWorker","isBrowser","isWindows","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6-module-loader.src.js b/dist/es6-module-loader.src.js index 0f9e802..f9ec463 100644 --- a/dist/es6-module-loader.src.js +++ b/dist/es6-module-loader.src.js @@ -1829,7 +1829,7 @@ function logloads(loads) { // 1. groups is an already-interleaved array of group kinds // 2. load.groupIndex is set when this function runs // 3. load.groupIndex is the interleaved index ie 0 declarative, 1 dynamic, 2 declarative, ... (or starting with dynamic) - function buildLinkageGroups(load, loads, groups, loader) { + function buildLinkageGroups(load, loads, groups) { groups[load.groupIndex] = groups[load.groupIndex] || []; // if the load already has a group index and its in its group, its already been done @@ -1857,7 +1857,7 @@ function logloads(loads) { if (loadDep.groupIndex === undefined || loadDep.groupIndex < loadDepGroupIndex) { // if already in a group, remove from the old group - if (loadDep.groupIndex) { + if (loadDep.groupIndex !== undefined) { groups[loadDep.groupIndex].splice(indexOf.call(groups[loadDep.groupIndex], loadDep), 1); // if the old group is empty, then we have a mixed depndency cycle @@ -1868,7 +1868,7 @@ function logloads(loads) { loadDep.groupIndex = loadDepGroupIndex; } - buildLinkageGroups(loadDep, loads, groups, loader); + buildLinkageGroups(loadDep, loads, groups); } } } @@ -1907,7 +1907,7 @@ function logloads(loads) { var groups = []; var startingLoad = linkSet.loads[0]; startingLoad.groupIndex = 0; - buildLinkageGroups(startingLoad, linkSet.loads, groups, loader); + buildLinkageGroups(startingLoad, linkSet.loads, groups); // determine the kind of the bottom group var curGroupDeclarative = startingLoad.isDeclarative == groups.length % 2; diff --git a/package.json b/package.json index 4fec8b2..87e4ce8 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "es6-module-loader", "description": "An ES6 Module Loader shim", - "version": "0.11.1", + "version": "0.11.2", "homepage": "https://github.com/ModuleLoader/es6-module-loader", "author": { "name": "Guy Bedford, Luke Hoban, Addy Osmani", From 1f62e4be6295f1b572c5f4c261e6cb88ef685312 Mon Sep 17 00:00:00 2001 From: Douglas Duteil Date: Thu, 22 Jan 2015 13:20:14 +0100 Subject: [PATCH 128/482] Testify against the machine ! --- .travis.yml | 17 ++ README.md | 21 ++ karma-benchmark.conf.js | 31 +++ karma.conf.js | 135 +++++++++++ package.json | 20 +- test/_browser.js | 3 + test/_helper.js | 21 ++ test/_node.js | 12 + test/custom-loader.js | 123 ++++++++++ test/custom-loader.spec.js | 112 +++++++++ test/perf.js | 137 +++++++++++ test/system.normalize.spec.js | 95 ++++++++ test/system.spec.js | 418 ++++++++++++++++++++++++++++++++++ 13 files changed, 1143 insertions(+), 2 deletions(-) create mode 100644 karma-benchmark.conf.js create mode 100644 karma.conf.js create mode 100644 test/_browser.js create mode 100644 test/_helper.js create mode 100644 test/_node.js create mode 100644 test/custom-loader.js create mode 100644 test/custom-loader.spec.js create mode 100644 test/perf.js create mode 100644 test/system.normalize.spec.js create mode 100644 test/system.spec.js diff --git a/.travis.yml b/.travis.yml index 9f83187..0e19d98 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,22 @@ --- +git: + depth: 1 language: node_js node_js: - 0.10 - 0.11 +before_install: + - export CHROME_BIN=chromium-browser + - export DISPLAY=:99.0 + - sh -e /etc/init.d/xvfb start + - npm update -g + - npm install -g karma-cli grunt-cli +script: + - grunt + - npm test + - npm run test:browsers -- --polyfill + +after_script: + - npm run test:browsers -- --saucelabs + - npm run test:browsers -- --saucelabs --ie8 + - npm run test:browsers:perf diff --git a/README.md b/README.md index aac4d6c..bb116c0 100644 --- a/README.md +++ b/README.md @@ -112,6 +112,27 @@ In lieu of a formal styleguide, take care to maintain the existing coding style. _Also, please don't edit files in the "dist" subdirectory as they are generated via grunt. You'll find source code in the "lib" subdirectory!_ +## Testing + +- `npm run test:node` will use node to to run the tests +- `npm run test:browsers` will use karma to run the tests +- `npm run test:browsers:perf` will use karma to run benchmarks +- `npm test` run `npm run test:node && npm run test:browsers` + +`npm run test:browsers` supports options after a double dash (`--`) : + +- You can use the `--polyfill` option to test ths code with polyfill. + +- You can use the `--ie8` option to test ths code in the ie8 scope only. + +- You can use the `--saucelabs` option to use karma and saucelabs to run the tests in various browsers. +Note: you will need to export your username and key to launch it. + + ```sh + export SAUCE_USERNAME={your user name} && export SAUCE_ACCESS_KEY={the access key that you see once logged in} + npm run test:browsers -- --saucelabs + ``` + ## Credit Copyright (c) 2014 Luke Hoban, Addy Osmani, Guy Bedford diff --git a/karma-benchmark.conf.js b/karma-benchmark.conf.js new file mode 100644 index 0000000..7bd2138 --- /dev/null +++ b/karma-benchmark.conf.js @@ -0,0 +1,31 @@ +module.exports = function (config) { + + config.set({ + basePath: '', + frameworks: ['benchmark'], + files: [ + 'dist/es6-module-loader.src.js', + 'test/perf.js' + ], + reporters: ['benchmark'], + browsers: ['Chrome', 'Firefox'], + + browserDisconnectTimeout: 10000, + browserDisconnectTolerance: 2, + browserNoActivityTimeout: 30000, + captureTimeout: 120000 + }); + + if(process.env.TRAVIS){ + config.set({ + customLaunchers: { + 'TR_Chrome': { + base: 'Chrome', + flags: ['--no-sandbox'] + } + }, + browsers: ['TR_Chrome', 'Firefox'] + }); + } + +}; diff --git a/karma.conf.js b/karma.conf.js new file mode 100644 index 0000000..5a93c40 --- /dev/null +++ b/karma.conf.js @@ -0,0 +1,135 @@ +'use strict'; + +var util = require('util'); +var pkg = require('./package.json'); +var extend = util._extend; +var geSaLaKaCuLa = require('gesalakacula'); + +// No Karma options are passed after the double dash option (`--`) +// Example : karma start --single-run -- --polyfill +// >> { _: [], polyfill: true } + +var _argv = process.argv; +var argv = require('minimist')(_argv.slice(_argv.indexOf('--') + 1)); + + +var options = extend({ + travis: process.env.TRAVIS, + polyfill: false, + saucelabs: false, + ie8: false +}, argv); + +if (options.ie8){ + console.log('IE8 Mode !\n - polyfill required\n'); + options.polyfill = true; +} + +//// + +module.exports = function (config) { + + var files = [ + 'test/_helper.js', + [!options.ie8 ? 'node_modules/traceur/bin/traceur.js' : ''], + + 'dist/es6-module-loader' + + (options.polyfill ? '' : '-sans-promises') + + '.src.js', + + 'test/_browser.js', + 'test/custom-loader.js', + + [!options.ie8 ? 'test/*.spec.js' : 'test/*.normalize.spec.js'], + + {pattern: 'test/{loader,loads,syntax,worker}/**/*', included: false}, + {pattern: 'node_modules/when/es6-shim/Promise.js', included: false}, + {pattern: 'dist/es6-module-loader.js', included: false} + ]; + + // Default Config + config.set({ + basePath: '', + frameworks: ['mocha', 'expect'], + files: flatten(files), + reporters: ['mocha'], + browsers: ['Chrome', 'Firefox'] + }); + + if (options.travis) { + // TRAVIS config overwrite + config.set({ + singleRun: true, + reporters: ['dots'], + customLaunchers: { + 'TR_Chrome': { + base: 'Chrome', + flags: ['--no-sandbox'] + } + }, + browsers: ['TR_Chrome', 'Firefox'] + }); + } + + if (options.saucelabs) { + + var customLaunchers = geSaLaKaCuLa({ + 'Windows 7': { + 'internet explorer': '9..11' + } + }); + + if (options.ie8) { + customLaunchers = geSaLaKaCuLa({ + 'Windows 7': { + 'internet explorer': '8' + } + }); + } + + var now = new Date(); + var buildData = options.travis ? + { + location: 'TRAVIS', + name: process.env.TRAVIS_BUILD_NUMBER, + id: process.env.TRAVIS_BUILD_ID + } + : + { + location: 'LOCAL', + name: now.toString(), + id: +now + }; + var build = util.format('%s #%s (%s)', + buildData.location, buildData.name, buildData.id); + + console.log('SauceLabs Run\n- Build : ' + build + '\n'); + + config.set({ + reporters: ['dots', 'saucelabs'], + + browserDisconnectTimeout: 10000, + browserDisconnectTolerance: 2, + browserNoActivityTimeout: 30000, + captureTimeout: 120000, + + browsers: Object.keys(customLaunchers), + sauceLabs: { + testName: pkg.name, + recordScreenshots: false, + build: build, + tunnelIdentifier: options.travis ? + process.env.TRAVIS_JOB_NUMBER : Math.floor(Math.random() * 1000) + }, + customLaunchers: customLaunchers + }); + + + } +}; + +function flatten(arr) { + return arr.reduce(function (memo, val) { + return memo.concat(util.isArray(val) ? flatten(val) : val ? [val] : []); + }, []); +} diff --git a/package.json b/package.json index 87e4ce8..e4b598b 100644 --- a/package.json +++ b/package.json @@ -22,12 +22,25 @@ } ], "devDependencies": { + "expect.js": "^0.3.1", + "gesalakacula": "^1.0.0", "grunt": "~0.4.1", "grunt-contrib-concat": "^0.5.0", "grunt-contrib-jshint": "~0.6.0", "grunt-contrib-uglify": "~0.6.0", "grunt-esnext": "0.0.3", - "grunt-string-replace": "^0.2.7" + "grunt-string-replace": "^0.2.7", + "karma": "^0.12.28", + "karma-benchmark": "^0.4.0", + "karma-benchmark-reporter": "^0.1.1", + "karma-chrome-launcher": "^0.1.7", + "karma-expect": "^1.1.0", + "karma-firefox-launcher": "^0.1.3", + "karma-mocha": "^0.1.10", + "karma-mocha-reporter": "^0.3.1", + "karma-sauce-launcher": "^0.2.10", + "minimist": "^1.1.0", + "mocha": "^2.0.1" }, "keywords": [ "script", @@ -40,7 +53,10 @@ }, "main": "lib/index", "scripts": { - "test": "cd test && node test" + "test": "npm run test:node && npm run test:browsers", + "test:node": "mocha test/_node.js", + "test:browsers": "karma start --single-run", + "test:browsers:perf": "karma start karma-benchmark.conf.js --single-run" }, "dependencies": { "traceur": "0.0.79", diff --git a/test/_browser.js b/test/_browser.js new file mode 100644 index 0000000..7c2b49f --- /dev/null +++ b/test/_browser.js @@ -0,0 +1,3 @@ + +// Change base url to the karma "base" +System.baseURL += 'base/'; diff --git a/test/_helper.js b/test/_helper.js new file mode 100644 index 0000000..e14a710 --- /dev/null +++ b/test/_helper.js @@ -0,0 +1,21 @@ + + +(function (__global){ + 'use strict'; + + /** + * Describe a block if the bool is true. + * Will skip it otherwise. + * @param bool + * @returns {Function} describe or describe.skip + */ + function describeIf(bool) { + return (bool ? describe : describe.skip) + .apply(null, Array.prototype.slice.call(arguments, 1)); + } + + __global.describeIf = describeIf; + +}(typeof window != 'undefined' ? window : global)); + + diff --git a/test/_node.js b/test/_node.js new file mode 100644 index 0000000..a93d4f6 --- /dev/null +++ b/test/_node.js @@ -0,0 +1,12 @@ +'use strict'; + +global.expect = require('expect.js'); + +require('./_helper'); + +require('../lib'); + +require('./system.spec'); + +require('./custom-loader'); +require('./custom-loader.spec'); diff --git a/test/custom-loader.js b/test/custom-loader.js new file mode 100644 index 0000000..5a11447 --- /dev/null +++ b/test/custom-loader.js @@ -0,0 +1,123 @@ +// + +(function (__global) { + + + var customModules = {}; + var customFactories = {}; + + var executeModule = function (name) { + if (!customFactories[name]) { + return; + } + var module = customFactories[name].apply(null, []); + customModules[name] = module; + return module; + }; + + var customLoader = new Reflect.Loader({ + normalize: function (name, parentName, parentAddress) { + return new Promise(function (resolve, reject) { + if (name == 'asdfasdf') { + return setTimeout(function () { + resolve('test/loader/async-norm'); + }, 500); + } + + if (name == 'error1') { + return setTimeout(function () { reject('error1'); }, 100); + } + + var normalized = System.normalize(name, parentName, parentAddress); + resolve(normalized); + }); + }, + locate: function (load) { + if (load.name == 'error2') { + return new Promise(function (resolve, reject) { + setTimeout(function () { reject('error2'); }, 100); + }); + } + + if (load.name.substr(0, 5) == 'path/') { + load.name = 'test/loader/' + load.name.substr(5); + } + return System.locate(load); + }, + fetch: function (load) { + if (load.name == 'error3') { + throw 'error3'; + } + if (load.name == 'error4' || load.name == 'error5') { + return 'asdf'; + } + return System.fetch.apply(this, arguments); + }, + translate: function (load) { + if (load.name == 'error4') { + return new Promise(function (resolve, reject) { + setTimeout(function () { reject('error4'); }, 100); + }); + } + return System.translate.apply(this, arguments); + }, + instantiate: function (load) { + if (load.name == 'error5') { + return new Promise(function (resolve, reject) { + setTimeout(function () { reject('error5'); }, 100); + }); + } + // very bad AMD support + if (load.source.indexOf('define') == -1) { + return System.instantiate(load); + } + + var factory, deps; + var define = function (_deps, _factory) { + deps = _deps; + factory = _factory; + }; + eval(load.source); + + customFactories[load.name] = factory; + + // normalize all dependencies now + var normalizePromises = []; + for (var i = 0; i < deps.length; i++) { + normalizePromises.push(Promise.resolve(System.normalize(deps[i], load.name))); + } + + return Promise.all(normalizePromises).then(function (resolvedDeps) { + + return { + deps: deps, + execute: function () { + if (customModules[load.name]) { + return System.newModule(customModules[load.name]); + } + + // first ensure all dependencies have been executed + for (var i = 0; i < resolvedDeps.length; i++) { + resolvedDeps[i] = executeModule(resolvedDeps[i]); + } + + var module = factory.apply(null, resolvedDeps); + + customModules[load.name] = module; + return System.newModule(module); + } + }; + }); + } + }); + + customLoader.parse = function (load) { + return System.parse(load); + }; + + + if (typeof exports === 'object') + module.exports = customLoader; + + __global.customLoader = customLoader; +}(typeof window != 'undefined' ? window : global)); diff --git a/test/custom-loader.spec.js b/test/custom-loader.spec.js new file mode 100644 index 0000000..157f84f --- /dev/null +++ b/test/custom-loader.spec.js @@ -0,0 +1,112 @@ +// + +describe('Custom Loader', function () { + + describe('#import', function () { + + describe('scripts', function () { + it('should support ES6 scripts', function (done) { + customLoader.import('test/loader/test') + .then(function (m) { + setTimeout(function () { + expect(m.loader).to.be.equal('custom'); + done(); + }); + }, done) + }); + + it('should support AMD scripts', function (done) { + customLoader.import('test/loader/amd') + .then(function (m) { + setTimeout(function () { + expect(m.format).to.be.equal('amd'); + done(); + }); + }, done) + }); + }); + + describe('special #locate path rule', function () { + + it('should support special loading rules', function (done) { + customLoader.import('path/custom') + .then(function (m) { + setTimeout(function () { + expect(m.path).to.be.ok(); + done(); + }); + }, done) + }); + + }); + + describe('errors', function () { + + function dummyLoad(file, cb) { + System.import(file) + .then(function () { + setTimeout(function () { + expect(false, 'should not be successful').to.be.ok(); + cb(); + }); + }) + .catch(function (e) { + setTimeout(function () { + cb(e); + }); + }) + ; + } + + it('should make the normalize throw', function (done) { + dummyLoad('test/loader/error1-parent', function (e) { + expect(e).to.be.match(/Error loading "error1" at \S+error1\.js\nError loading "error1" from "test\/loader\/error1-parent"/); + done(); + }); + }); + + it('should make the locate throw', function (done) { + dummyLoad('test/loader/error2', function (e) { + expect(e).to.be.match(/Error loading "test\/loader\/error2" at \S+test\/loader\/error2\.js/); + done(); + }); + }); + + it('should make the fetch throw', function (done) { + dummyLoad('test/loader/error3', function (e) { + expect(e).to.be.match(/Error loading "test\/loader\/error3" at \S+test\/loader\/error3\.js/); + done(); + }); + }); + + it('should make the translate throw', function (done) { + dummyLoad('test/loader/error4', function (e) { + expect(e).to.be.match(/Error loading "test\/loader\/error4" at \S+test\/loader\/error4\.js/); + done(); + }); + }); + + it('should make the instantiate throw', function (done) { + dummyLoad('test/loader/error5', function (e) { + expect(e).to.be.match(/Error loading "test\/loader\/error5" at \S+test\/loader\/error5\.js/); + done(); + }); + }); + }); + + }); + + describe('#normalize', function () { + it('should support async normalization', function (done) { + customLoader.normalize('asdfasdf').then(function (normalized) { + return customLoader.import(normalized) + }).then(function (m) { + setTimeout(function () { + expect(m.n).to.be.equal('n'); + done(); + }); + }) + .catch(done); + }); + }); +}); diff --git a/test/perf.js b/test/perf.js new file mode 100644 index 0000000..261b38a --- /dev/null +++ b/test/perf.js @@ -0,0 +1,137 @@ +'use strict'; + +/* PARAMETERS */ +var NUM_MODULES = 1000; + + + /* + TREE LOOKS LIKE - + + MODULE NUM_MODULES + | + | + ------------------------------------- ... ----- + | | | + MODULE 0 MODULE TREE_DEPTH ... + | | + MODULE 1 MODULE TREE_DEPTH + 1 + ... ... + MODULE TREE_DEPTH - 1 MODULE TREE_DEPTH * 2 - 1 + +THAT IS - + DEPTH = TREE_DEPTH + BREADTH = FLOOR(NUM_MODULES / TREE_DEPTH) + + */ + + /* + + PERF RESULTS + ------------ + + WITH 1000 modules, + + TREE_DEPTH FULL LOAD TIME PER MODULE (including evaluation and defining) + 1 0.25ms + 10 0.27ms + 50 0.30ms + 100 0.35ms + 500 0.90ms + 1000 1.90ms + + */ + +//// + +System.set('module0', System.newModule({})); + +function instantiateAtDepth(treeDepth) { + return function (load) { + var num = parseInt(load.name.substr(6)); + + var deps = []; + + // the last module depends on all of them + if (num == NUM_MODULES) { + for (var i = 0; i < NUM_MODULES; i += treeDepth) + deps.push('module' + i); + } + else if (num % treeDepth != treeDepth - 1) + deps = ['module' + (num + 1)]; + + return { + deps: deps, + execute: function () { + eval(load.source); + return System.newModule({}); + } + }; + }; +} + +//// + +function hundredModulesBench(treeDepth) { + + benchmark('hundred modules depth ' + treeDepth, function (deferred) { + + // Generate range 0 to NUM_MODULES + var range = Array.apply(null, { length: NUM_MODULES }); + + Promise + // Define all the modules + .all(range.map(function (_, i) { + if (!i) return; + return System.define('module' + i, "function q() {} var p = 5;\n // non-trivial code"); + })) + + .then(function () { + // Import the last one + return System.import('module' + (NUM_MODULES - 1)); + }) + + .then(function () { + return Promise + // Remove all the modules + .all(range.map(function (_, i) { + if (!i) return; + return System.delete('module' + i); + }) + ); + }) + + // End of the bench + .then(function () { + deferred.resolve(); + }) + .catch(function (e) { + setTimeout(function () { + throw e; + }) + }) + ; + + }, { + defer: true, + timeout: false, + setup: function(){ + + System.instantiate = instantiateAtDepth(treeDepth); + + } + }); + +} + +//// + +suite('System', function () { + + hundredModulesBench(1); + hundredModulesBench(10); + hundredModulesBench(50); + hundredModulesBench(100); + hundredModulesBench(500); + hundredModulesBench(1000); + +}); diff --git a/test/system.normalize.spec.js b/test/system.normalize.spec.js new file mode 100644 index 0000000..bd89edb --- /dev/null +++ b/test/system.normalize.spec.js @@ -0,0 +1,95 @@ +// + +describe('System', function () { + describe('#normalize', function () { + + // Normalize tests - identical to https://github.com/google/traceur-compiler/blob/master/test/unit/runtime/System.js + + var originBaseUrl = System.baseURL; + + beforeEach(function () { + System.baseURL = 'http://example.org/a/b.html'; + }); + + afterEach(function () { + System.baseURL = originBaseUrl; + }); + + describe('when having no argument', function () { + + it('should throw with no specified name', function () { + expect(function () { System.normalize(); }) + .to.throwException(function (e) { + expect(e).to.be.a(TypeError); + expect(e.message).to.match(/Module name must be a string/); + }); + }); + + }); + + describe('when having one argument', function () { + + it('should not referer', function () { + expect(System.normalize('d/e/f')).to.equal('d/e/f'); + }); + + it.skip('should "below baseURL"', function () { + expect(System.normalize('../e/f')).to.equal('../e/f'); + }); + + it('should be backwards compat', function () { + expect(System.normalize('./a.js')).to.equal('a.js'); + }); + + it('should throw with an url as name', function () { + expect(function () { System.normalize('http://example.org/a/b.html'); }) + .to.throwException(function (e) { + expect(e).to.be.a(TypeError); + expect(e.message).to.match(/Illegal module name "\S+"/); + }); + }); + + it('should throw with embedded path', function () { + expect(function () { System.normalize('a/b/../c'); }) + .to.throwException(function (e) { + expect(e).to.be.a(TypeError); + expect(e.message).to.match(/Illegal module name "\S+"/); + }); + }); + + }); + + describe('when having two arguments', function () { + + var refererName = 'dir/file'; + + it('should support relative path', function () { + expect(System.normalize('./d/e/f', refererName)).to.equal('dir/d/e/f'); + expect(System.normalize('../e/f', refererName)).to.equal('e/f'); + }); + + it('should resolve the path with relative parent', function () { + expect(System.normalize('./a/b', 'c')).to.equal('a/b'); + expect(System.normalize('./a/b', 'c/d')).to.equal('c/a/b'); + expect(System.normalize('./a/b', '../c/d')).to.equal('../c/a/b'); + expect(System.normalize('./a/b', '../../c/d')).to.equal('../../c/a/b'); + }); + + it('should throw with embedded path', function () { + + expect(function () { System.normalize('a/b/../c'); }) + .to.throwException(function (e) { + expect(e).to.be.a(TypeError); + expect(e.message).to.match(/Illegal module name "\S+"/); + }); + + expect(function () { System.normalize('a/../b'); }) + .to.throwException(function (e) { + expect(e).to.be.a(TypeError); + expect(e.message).to.match(/Illegal module name "\S+"/); + }); + + }); + }); + }); +}); diff --git a/test/system.spec.js b/test/system.spec.js new file mode 100644 index 0000000..c6b8c6a --- /dev/null +++ b/test/system.spec.js @@ -0,0 +1,418 @@ +// + +describe('System', function () { + + var originBaseUrl = System.baseURL; + + afterEach(function () { + System.baseURL = originBaseUrl; + }); + + describe('prerequisite', function () { + + it('should be a instance of Loader', function () { + expect(System).to.be.a(Reflect.Loader); + }); + + }); + + describe('#locate', function () { + + beforeEach(function () { + System.baseURL = 'http://example.org/a/'; + }); + + it('should resolve paths', function () { + expect(System.locate({name: '@abc/def'})).to.equal('http://example.org/a/@abc/def.js'); + expect(System.locate({name: ' abc/def'})).to.equal('http://example.org/a/abc/def.js'); + }); + + it('should resolve paths with the existing config', function () { + System.paths['path/*'] = '/test/*.js'; + expect(System.locate({name: 'path/test'})).to.equal('http://example.org/test/test.js'); + }); + + }); + + describe('#import', function () { + + describe('an ES5 script', function () { + + it('should import a ES5 script', function (done) { + System.import('test/syntax/script').then(function (m) { + setTimeout(function () { + expect(!!m).to.be.ok(); + done(); + }, 0); + }, done); + }); + + it('should import a ES5 script once loaded', function (done) { + System.import('test/syntax/script').then(function () { + System.import('test/syntax/script').then(function (m) { + setTimeout(function () { + expect(!!m).to.be.ok(); + done(); + }, 0); + }, done); + }, done); + }); + + }); + + describe('an ES6 script', function () { + + it('should import an ES6 script', function (done) { + System.import('test/syntax/es6').then(function (m) { + setTimeout(function () { + expect(m.p).to.equal('p'); + done(); + }, 0); + }, done); + }); + + it('should import an ES6 script with its dependencies', function (done) { + System.import('test/syntax/es6-withdep').then(function (m) { + setTimeout(function () { + expect(m.p).to.equal('p'); + done(); + }, 0); + }, done); + }); + + it('should import an ES6 script with a generator', function (done) { + System.import('test/syntax/es6-generator').then(function (m) { + setTimeout(function () { + expect(!!m.generator).to.be.ok(); + done(); + }, 0); + }, done); + }); + + it('should import without bindings', function (done) { + System.import('test/syntax/direct').then(function (m) { + setTimeout(function () { + expect(!!m).to.be.ok(); + done(); + }, 0); + }, done); + }); + + it('should support es6 various syntax', function (done) { + System.import('test/syntax/es6-file').then(function (m) { + setTimeout(function () { + + expect(m.q).to.be.a('function'); + + expect(function () { (new m.q()).foo(); }) + .to.throwException(function (e) { + expect(e).to.equal('g'); + }); + + done(); + }); + }, done); + }); + + }); + + describe('with circular dependencies', function () { + + it('should resolve circular dependencies', function (done) { + System.import('test/syntax/circular1').then(function (m1) { + System.import('test/syntax/circular2').then(function (m2) { + setTimeout(function () { + expect(m1.variable1).to.equal('test circular 1'); + expect(m2.variable2).to.equal('test circular 2'); + + expect(m2.output, 'The module 2 output is the module 1 variable').to.equal('test circular 1'); + expect(m1.output, 'The module 1 output is the module 2 variable').to.equal('test circular 2'); + expect(m2.output1, 'The module 2 output1 is the module 1 output').to.equal('test circular 2'); + expect(m1.output2, 'The module 1 output2 is the module 2 output').to.equal('test circular 1'); + done(); + }, 0); + }, done); + }, done); + }); + + + it('should update circular dependencies', function (done) { + System.import('test/syntax/even').then(function (m) { + setTimeout(function () { + expect(m.counter, 'Counter initially at 1').to.be.equal(1); + expect(m.even(10), 'Must be an even number').to.be.ok(); + expect(m.counter, 'Counter sould now be at 7').to.be.equal(7); + expect(m.even(15), 'Must be an odd number').to.not.be.ok(); + expect(m.counter, 'Counter sould now be at 15').to.be.equal(15); + done(); + }, 0); + }, done); + }); + + }); + + describe('loading order', function () { + + function expectedOrder(file, order, done) { + System.import('test/loads/' + file).then(function (m) { + setTimeout(function () { + + order.forEach(function (letter) { + expect(m[letter], 'The "' + letter + '" file wasn\'t loaded').to.equal(letter); + }); + + done(); + }, 0); + }, done); + } + + it('should load in order (a)', function (done) { + expectedOrder('a', ['a', 'b'], done) + }); + + it('should load in order (c)', function (done) { + expectedOrder('c', ['c', 'a', 'b'], done) + }); + + it('should load in order (s)', function (done) { + expectedOrder('s', ['s', 'c', 'a', 'b'], done) + }); + + it('should load in order (_a)', function (done) { + expectedOrder('_a', ['b', 'd', 'g', 'a'], done) + }); + + it('should load in order (_e)', function (done) { + expectedOrder('_e', ['c', 'e'], done) + }); + + it('should load in order (_f)', function (done) { + expectedOrder('_f', ['g', 'f'], done) + }); + + it('should load in order (_h)', function (done) { + expectedOrder('_h', ['i', 'a', 'h'], done) + }); + + }); + + // + + describe('errors', function () { + + function supposeToFail(done) { + return function shouldFail() { + setTimeout(function () { + expect(false, 'should not be successful').to.be.ok(); + done(); + }, 0); + } + } + + it('should throw if on syntax error', function (done) { + System.import('test/loads/main').then(supposeToFail) + .catch(function (e) { + setTimeout(function () { + expect(e).to.be.equal('Error evaluating test/loads/deperror\ndep error'); + done(); + }, 0); + }); + }); + + it.skip('should throw what the script throws', function (done) { + System.import('test/loads/deperror').then(supposeToFail) + .catch(function (e) { + setTimeout(function () { + expect(false, 'should be successful').to.be.ok(); + done(); + }, 0); + }); + }); + + + it('Unhandled rejection test', function (done) { + System.import('test/loads/load-non-existet').then(supposeToFail) + .catch(function (e) { + setTimeout(function () { + expect(e).to.be.match(/Error loading "\S+" at \S+/); + done(); + }); + }); + }); + + }); + + // + + describe('es6 export syntax overview', function () { + it('should resolve different export syntax', function (done) { + System.import('test/syntax/export').then(function (m) { + setTimeout(function () { + expect(m.p, 'should export a number').to.be.equal(5); + expect(m.foo, 'should export a function').to.be.a('function'); + expect(m.q, 'should export an object').to.be.an('object'); + expect(m.default, 'should export a default function').to.be.a('function'); + expect(m.s, 'should export a set of variable').to.be.equal(4); + expect(m.t, 'should export a specifier number').to.be.equal(4); + expect(m.m, 'should export a specifier object ').to.be.an('object'); + done(); + }); + }, done); + }); + }); + + describe('es6 export default syntax', function () { + it('should resolve "export default"', function (done) { + System.import('test/syntax/export-default').then(function (m) { + setTimeout(function () { + expect(m.default()).to.be.equal('test'); + done(); + }); + }, done); + }); + }); + + describe('es6 export re-exporting', function () { + it('should support simple re-exporting', function (done) { + System.import('test/syntax/reexport1').then(function (m) { + setTimeout(function () { + expect(m.p, 'should export 5 from the "./export"').to.be.equal(5); + done(); + }); + }, done); + }); + + it('should support re-exporting binding', function (done) { + System.import('test/syntax/reexport-binding').then(function () { + System.import('test/syntax/rebinding').then(function (m) { + setTimeout(function () { + expect(m.p, 'should export "p" from the "./rebinding"').to.be.equal(4); + done(); + }); + }, done); + }, done); + }); + + it('should support re-exporting with a new name', function (done) { + System.import('test/syntax/reexport2').then(function (m) { + setTimeout(function () { + expect(m.q, 'should export "t" as "q" from the "./export"').to.be.equal(4); + expect(m.z, 'should export "q" as "z" from the "./export"').to.be.equal(5); + done(); + }); + }, done); + }); + + it('should support re-exporting', function (done) { + System.import('test/syntax/export-star').then(function (m) { + setTimeout(function () { + expect(m.foo, 'should export a function').to.be.equal('foo'); + expect(m.bar, 'should re-export export-star bar variable').to.be.equal('bar'); + done(); + }); + }, done); + }); + + it('should support re-exporting overwriting', function (done) { + System.import('test/syntax/export-star2').then(function (m) { + setTimeout(function () { + expect(m.bar, 'should re-export "./export-star" bar variable').to.be.equal('bar'); + expect(m.foo, 'should overwrite "./star-dep" foo variable with a function').to.be.a('function'); + done(); + }); + }, done); + }); + }); + + // + + describe('es6 import syntax overview', function () { + it('should resolve different import syntax', function (done) { + System.import('test/syntax/import').then(function (m) { + setTimeout(function () { + expect(m.a, 'should export "d" as "a" from the "./export"').to.be.a('function'); + expect(m.b, 'should export "p" as "b" for "s" as "p" from "./reexport1"').to.be.equal(4); + expect(m.c, 'should export "z" as "c" with "z" from "./reexport2"').to.be.equal(5); + expect(m.d, 'should export "r" as "d" for "q" as "r" from the "./reexport2"').to.be.equal(4); + expect(m.q, 'should export "q" as "*" from the "./reexport1"').to.be.an('object'); + expect(m.q.foo, 'should access the "foo" function of "./reexport1" through "q" ad "*" ').to.be.a('function'); + done(); + }); + }, done); + }); + }); + + // + + describe('a script with metas', function () { + it('should support module name meta', function (done) { + System.import('test/loader/moduleName').then(function (m) { + setTimeout(function () { + + expect(m.name).to.be.equal('test/loader/moduleName'); + expect(m.address).to.be.equal(System.baseURL + 'test/loader/moduleName.js'); + + done(); + }); + }, done); + }); + }); + + }); + + describe('#paths', function () { + + it('should support custom paths', function (done) { + System.paths['bar'] = 'test/loader/custom-path.js'; + System.import('bar').then(function (m) { + setTimeout(function () { + expect(m.bar).to.be.equal('bar'); + delete System.paths['bar']; + done(); + }, 0); + }, done) + }); + + + it('should support path wildcard', function (done) { + System.paths['bar/*'] = 'test/loader/custom-folder/*.js'; + System.import('bar/path').then(function (m) { + setTimeout(function () { + expect(m.bar).to.be.equal('baa'); + delete System.paths['bar/*']; + done(); + }, 0); + }, done) + }); + + it('should support most specific paths', function (done) { + System.paths['bar/bar'] = 'test/loader/specific-path.js'; + System.paths['bar/*'] = 'test/loader/custom-folder/*.js'; + System.import('bar/bar').then(function (m) { + setTimeout(function () { + expect(m.path).to.be.ok(); + delete System.paths['bar/bar']; + delete System.paths['bar/*']; + done(); + }, 0); + }, done) + }); + + }); + + describeIf( + typeof window != 'undefined' && window.Worker, + 'with Web Worker', function (done) { + it('should loading inside of a Web Worker', function () { + var worker = new Worker(System.baseURL + 'test/worker/worker.js'); + + worker.onmessage = function (e) { + setTimeout(function () { + expect(e.data).to.be.equal('p'); + done(); + }, 0); + }; + }); + + }); +}); From e86ac1ebf3d3b748bc798b74fa6dc22899f167e4 Mon Sep 17 00:00:00 2001 From: Douglas Duteil Date: Fri, 23 Jan 2015 16:56:53 +0100 Subject: [PATCH 129/482] test: remove setTimeout functions --- test/custom-loader.spec.js | 105 +++++------- test/system.spec.js | 337 ++++++++++++++++++------------------- 2 files changed, 210 insertions(+), 232 deletions(-) diff --git a/test/custom-loader.spec.js b/test/custom-loader.spec.js index 157f84f..38aa040 100644 --- a/test/custom-loader.spec.js +++ b/test/custom-loader.spec.js @@ -8,105 +8,92 @@ describe('Custom Loader', function () { it('should support ES6 scripts', function (done) { customLoader.import('test/loader/test') .then(function (m) { - setTimeout(function () { - expect(m.loader).to.be.equal('custom'); - done(); - }); - }, done) + expect(m.loader).to.be.equal('custom'); + }) + .then(done, done) }); it('should support AMD scripts', function (done) { customLoader.import('test/loader/amd') .then(function (m) { - setTimeout(function () { - expect(m.format).to.be.equal('amd'); - done(); - }); - }, done) + expect(m.format).to.be.equal('amd'); + }) + .then(done, done); }); }); - describe('special #locate path rule', function () { + describe('special #locate path rule', function a() { it('should support special loading rules', function (done) { customLoader.import('path/custom') .then(function (m) { - setTimeout(function () { - expect(m.path).to.be.ok(); - done(); - }); - }, done) - }); + expect(m.path).to.be.ok(); + }) + .then(done, done); + }) }); describe('errors', function () { - function dummyLoad(file, cb) { - System.import(file) - .then(function () { - setTimeout(function () { - expect(false, 'should not be successful').to.be.ok(); - cb(); - }); - }) - .catch(function (e) { - setTimeout(function () { - cb(e); - }); - }) - ; + function supposeToFail() { + expect(false, 'should not be successful').to.be.ok(); } it('should make the normalize throw', function (done) { - dummyLoad('test/loader/error1-parent', function (e) { - expect(e).to.be.match(/Error loading "error1" at \S+error1\.js\nError loading "error1" from "test\/loader\/error1-parent"/); - done(); - }); + customLoader.import('test/loader/error1-parent') + .then(supposeToFail, function (e) { + expect(e).to.be.match(/Error loading "test\/loader\/error1-parent" at \S+error1-parent\.js/); + }) + .then(done, done); }); it('should make the locate throw', function (done) { - dummyLoad('test/loader/error2', function (e) { - expect(e).to.be.match(/Error loading "test\/loader\/error2" at \S+test\/loader\/error2\.js/); - done(); - }); + customLoader.import('test/loader/error2') + .then(supposeToFail, function (e) { + expect(e).to.be.match(/Error loading "test\/loader\/error2" at \S+test\/loader\/error2\.js/); + }) + .then(done, done); }); it('should make the fetch throw', function (done) { - dummyLoad('test/loader/error3', function (e) { - expect(e).to.be.match(/Error loading "test\/loader\/error3" at \S+test\/loader\/error3\.js/); - done(); - }); + customLoader.import('test/loader/error3') + .then(supposeToFail, function (e) { + expect(e).to.be.match(/Error loading "test\/loader\/error3" at \S+test\/loader\/error3\.js/); + }) + .then(done, done); }); it('should make the translate throw', function (done) { - dummyLoad('test/loader/error4', function (e) { - expect(e).to.be.match(/Error loading "test\/loader\/error4" at \S+test\/loader\/error4\.js/); - done(); - }); + customLoader.import('test/loader/error4') + .then(supposeToFail, function (e) { + expect(e).to.be.match(/Error loading "test\/loader\/error4" at \S+test\/loader\/error4\.js/); + }) + .then(done, done); }); it('should make the instantiate throw', function (done) { - dummyLoad('test/loader/error5', function (e) { - expect(e).to.be.match(/Error loading "test\/loader\/error5" at \S+test\/loader\/error5\.js/); - done(); - }); + customLoader.import('test/loader/error5') + .then(supposeToFail, function (e) { + expect(e).to.be.match(/Error loading "test\/loader\/error5" at \S+test\/loader\/error5\.js/); + }) + .then(done, done); }); + }); }); describe('#normalize', function () { it('should support async normalization', function (done) { - customLoader.normalize('asdfasdf').then(function (normalized) { - return customLoader.import(normalized) - }).then(function (m) { - setTimeout(function () { + customLoader.normalize('asdfasdf') + .then(function (normalized) { + return customLoader.import(normalized); + }) + .then(function (m) { expect(m.n).to.be.equal('n'); - done(); - }); - }) - .catch(done); + }) + .then(done, done); }); }); }); diff --git a/test/system.spec.js b/test/system.spec.js index c6b8c6a..86a1929 100644 --- a/test/system.spec.js +++ b/test/system.spec.js @@ -23,13 +23,16 @@ describe('System', function () { }); it('should resolve paths', function () { - expect(System.locate({name: '@abc/def'})).to.equal('http://example.org/a/@abc/def.js'); - expect(System.locate({name: ' abc/def'})).to.equal('http://example.org/a/abc/def.js'); + expect(System.locate({name: '@abc/def'})) + .to.equal('http://example.org/a/@abc/def.js'); + expect(System.locate({name: ' abc/def'})) + .to.equal('http://example.org/a/abc/def.js'); }); it('should resolve paths with the existing config', function () { System.paths['path/*'] = '/test/*.js'; - expect(System.locate({name: 'path/test'})).to.equal('http://example.org/test/test.js'); + expect(System.locate({name: 'path/test'})) + .to.equal('http://example.org/test/test.js'); }); }); @@ -39,23 +42,22 @@ describe('System', function () { describe('an ES5 script', function () { it('should import a ES5 script', function (done) { - System.import('test/syntax/script').then(function (m) { - setTimeout(function () { + System.import('test/syntax/script') + .then(function (m) { expect(!!m).to.be.ok(); - done(); - }, 0); - }, done); + }) + .then(done, done); }); it('should import a ES5 script once loaded', function (done) { - System.import('test/syntax/script').then(function () { - System.import('test/syntax/script').then(function (m) { - setTimeout(function () { - expect(!!m).to.be.ok(); - done(); - }, 0); - }, done); - }, done); + System.import('test/syntax/script') + .then(function () { + return System.import('test/syntax/script'). + then(function (m) { + expect(!!m).to.be.ok(); + }); + }) + .then(done, done); }); }); @@ -63,44 +65,40 @@ describe('System', function () { describe('an ES6 script', function () { it('should import an ES6 script', function (done) { - System.import('test/syntax/es6').then(function (m) { - setTimeout(function () { + System.import('test/syntax/es6') + .then(function (m) { expect(m.p).to.equal('p'); - done(); - }, 0); - }, done); + }) + .then(done, done); }); it('should import an ES6 script with its dependencies', function (done) { - System.import('test/syntax/es6-withdep').then(function (m) { - setTimeout(function () { + System.import('test/syntax/es6-withdep') + .then(function (m) { expect(m.p).to.equal('p'); - done(); - }, 0); - }, done); + }) + .then(done, done); }); it('should import an ES6 script with a generator', function (done) { - System.import('test/syntax/es6-generator').then(function (m) { - setTimeout(function () { + System.import('test/syntax/es6-generator') + .then(function (m) { expect(!!m.generator).to.be.ok(); - done(); - }, 0); - }, done); + }) + .then(done, done); }); it('should import without bindings', function (done) { - System.import('test/syntax/direct').then(function (m) { - setTimeout(function () { + System.import('test/syntax/direct') + .then(function (m) { expect(!!m).to.be.ok(); - done(); - }, 0); - }, done); + }) + .then(done, done); }); it('should support es6 various syntax', function (done) { - System.import('test/syntax/es6-file').then(function (m) { - setTimeout(function () { + System.import('test/syntax/es6-file') + .then(function (m) { expect(m.q).to.be.a('function'); @@ -109,9 +107,8 @@ describe('System', function () { expect(e).to.equal('g'); }); - done(); - }); - }, done); + }) + .then(done, done); }); }); @@ -119,34 +116,37 @@ describe('System', function () { describe('with circular dependencies', function () { it('should resolve circular dependencies', function (done) { - System.import('test/syntax/circular1').then(function (m1) { - System.import('test/syntax/circular2').then(function (m2) { - setTimeout(function () { + System.import('test/syntax/circular1') + .then(function (m1) { + return System.import('test/syntax/circular2').then(function (m2) { expect(m1.variable1).to.equal('test circular 1'); expect(m2.variable2).to.equal('test circular 2'); - expect(m2.output, 'The module 2 output is the module 1 variable').to.equal('test circular 1'); - expect(m1.output, 'The module 1 output is the module 2 variable').to.equal('test circular 2'); - expect(m2.output1, 'The module 2 output1 is the module 1 output').to.equal('test circular 2'); - expect(m1.output2, 'The module 1 output2 is the module 2 output').to.equal('test circular 1'); - done(); - }, 0); - }, done); - }, done); + expect(m2.output, 'The module 2 output is the module 1 variable') + .to.equal('test circular 1'); + expect(m1.output, 'The module 1 output is the module 2 variable') + .to.equal('test circular 2'); + expect(m2.output1, 'The module 2 output1 is the module 1 output') + .to.equal('test circular 2'); + expect(m1.output2, 'The module 1 output2 is the module 2 output') + .to.equal('test circular 1'); + }); + }) + .then(done, done); }); it('should update circular dependencies', function (done) { - System.import('test/syntax/even').then(function (m) { - setTimeout(function () { + System.import('test/syntax/even') + .then(function (m) { expect(m.counter, 'Counter initially at 1').to.be.equal(1); expect(m.even(10), 'Must be an even number').to.be.ok(); expect(m.counter, 'Counter sould now be at 7').to.be.equal(7); expect(m.even(15), 'Must be an odd number').to.not.be.ok(); expect(m.counter, 'Counter sould now be at 15').to.be.equal(15); - done(); - }, 0); - }, done); + }) + .then(done, done); + }); }); @@ -154,16 +154,15 @@ describe('System', function () { describe('loading order', function () { function expectedOrder(file, order, done) { - System.import('test/loads/' + file).then(function (m) { - setTimeout(function () { - + System.import('test/loads/' + file) + .then(function (m) { order.forEach(function (letter) { - expect(m[letter], 'The "' + letter + '" file wasn\'t loaded').to.equal(letter); + expect(m[letter], 'The "' + letter + '" file wasn\'t loaded') + .to.equal(letter); }); - done(); - }, 0); - }, done); + }) + .then(done, done); } it('should load in order (a)', function (done) { @@ -200,44 +199,37 @@ describe('System', function () { describe('errors', function () { - function supposeToFail(done) { - return function shouldFail() { - setTimeout(function () { - expect(false, 'should not be successful').to.be.ok(); - done(); - }, 0); - } + function supposeToFail() { + expect(false, 'should not be successful').to.be.ok(); } it('should throw if on syntax error', function (done) { - System.import('test/loads/main').then(supposeToFail) + System.import('test/loads/main') + .then(supposeToFail) .catch(function (e) { - setTimeout(function () { - expect(e).to.be.equal('Error evaluating test/loads/deperror\ndep error'); - done(); - }, 0); - }); + expect(e) + .to.be.equal('Error evaluating test/loads/deperror\ndep error'); + }) + .then(done, done); }); it.skip('should throw what the script throws', function (done) { - System.import('test/loads/deperror').then(supposeToFail) - .catch(function (e) { - setTimeout(function () { - expect(false, 'should be successful').to.be.ok(); - done(); - }, 0); - }); + System.import('test/loads/deperror') + .then(supposeToFail) + .catch(function () { + expect(false, 'should be successful ??').to.be.ok(); + }) + .then(done, done); }); it('Unhandled rejection test', function (done) { - System.import('test/loads/load-non-existet').then(supposeToFail) + System.import('test/loads/load-non-existet') + .then(supposeToFail) .catch(function (e) { - setTimeout(function () { - expect(e).to.be.match(/Error loading "\S+" at \S+/); - done(); - }); - }); + expect(e).to.be.match(/Error loading "\S+" at \S+/); + }) + .then(done, done); }); }); @@ -246,81 +238,81 @@ describe('System', function () { describe('es6 export syntax overview', function () { it('should resolve different export syntax', function (done) { - System.import('test/syntax/export').then(function (m) { - setTimeout(function () { + System.import('test/syntax/export') + .then(function (m) { expect(m.p, 'should export a number').to.be.equal(5); expect(m.foo, 'should export a function').to.be.a('function'); expect(m.q, 'should export an object').to.be.an('object'); - expect(m.default, 'should export a default function').to.be.a('function'); + expect(m.default, 'should export a default function') + .to.be.a('function'); expect(m.s, 'should export a set of variable').to.be.equal(4); expect(m.t, 'should export a specifier number').to.be.equal(4); expect(m.m, 'should export a specifier object ').to.be.an('object'); - done(); - }); - }, done); + }) + .then(done, done); }); }); describe('es6 export default syntax', function () { it('should resolve "export default"', function (done) { - System.import('test/syntax/export-default').then(function (m) { - setTimeout(function () { + System.import('test/syntax/export-default') + .then(function (m) { expect(m.default()).to.be.equal('test'); - done(); - }); - }, done); + }) + .then(done, done); }); }); describe('es6 export re-exporting', function () { it('should support simple re-exporting', function (done) { - System.import('test/syntax/reexport1').then(function (m) { - setTimeout(function () { + System.import('test/syntax/reexport1') + .then(function (m) { expect(m.p, 'should export 5 from the "./export"').to.be.equal(5); - done(); - }); - }, done); + }) + .then(done, done); }); it('should support re-exporting binding', function (done) { - System.import('test/syntax/reexport-binding').then(function () { - System.import('test/syntax/rebinding').then(function (m) { - setTimeout(function () { - expect(m.p, 'should export "p" from the "./rebinding"').to.be.equal(4); - done(); + System.import('test/syntax/reexport-binding') + .then(function () { + return System.import('test/syntax/rebinding').then(function (m) { + expect(m.p, 'should export "p" from the "./rebinding"') + .to.be.equal(4); }); - }, done); - }, done); + }) + .then(done, done); }); it('should support re-exporting with a new name', function (done) { - System.import('test/syntax/reexport2').then(function (m) { - setTimeout(function () { - expect(m.q, 'should export "t" as "q" from the "./export"').to.be.equal(4); - expect(m.z, 'should export "q" as "z" from the "./export"').to.be.equal(5); - done(); - }); - }, done); + System.import('test/syntax/reexport2') + .then(function (m) { + expect(m.q, 'should export "t" as "q" from the "./export"') + .to.be.equal(4); + expect(m.z, 'should export "q" as "z" from the "./export"') + .to.be.equal(5); + }) + .then(done, done); }); it('should support re-exporting', function (done) { - System.import('test/syntax/export-star').then(function (m) { - setTimeout(function () { + System.import('test/syntax/export-star') + .then(function (m) { expect(m.foo, 'should export a function').to.be.equal('foo'); - expect(m.bar, 'should re-export export-star bar variable').to.be.equal('bar'); - done(); - }); - }, done); + expect(m.bar, 'should re-export export-star bar variable') + .to.be.equal('bar'); + }) + .then(done, done); }); it('should support re-exporting overwriting', function (done) { - System.import('test/syntax/export-star2').then(function (m) { - setTimeout(function () { - expect(m.bar, 'should re-export "./export-star" bar variable').to.be.equal('bar'); - expect(m.foo, 'should overwrite "./star-dep" foo variable with a function').to.be.a('function'); - done(); - }); - }, done); + System.import('test/syntax/export-star2') + .then(function (m) { + expect(m.bar, 'should re-export "./export-star" bar variable') + .to.be.equal('bar'); + expect(m.foo, 'should overwrite "./star-dep" foo variable with a function') + .to.be.a('function'); + }) + .then(done, done); }); }); @@ -328,17 +320,22 @@ describe('System', function () { describe('es6 import syntax overview', function () { it('should resolve different import syntax', function (done) { - System.import('test/syntax/import').then(function (m) { - setTimeout(function () { - expect(m.a, 'should export "d" as "a" from the "./export"').to.be.a('function'); - expect(m.b, 'should export "p" as "b" for "s" as "p" from "./reexport1"').to.be.equal(4); - expect(m.c, 'should export "z" as "c" with "z" from "./reexport2"').to.be.equal(5); - expect(m.d, 'should export "r" as "d" for "q" as "r" from the "./reexport2"').to.be.equal(4); - expect(m.q, 'should export "q" as "*" from the "./reexport1"').to.be.an('object'); - expect(m.q.foo, 'should access the "foo" function of "./reexport1" through "q" ad "*" ').to.be.a('function'); - done(); - }); - }, done); + System.import('test/syntax/import') + .then(function (m) { + expect(m.a, 'should export "d" as "a" from the "./export"') + .to.be.a('function'); + expect(m.b, 'should export "p" as "b" for "s" as "p" from "./reexport1"') + .to.be.equal(4); + expect(m.c, 'should export "z" as "c" with "z" from "./reexport2"') + .to.be.equal(5); + expect(m.d, 'should export "r" as "d" for "q" as "r" from the "./reexport2"') + .to.be.equal(4); + expect(m.q, 'should export "q" as "*" from the "./reexport1"') + .to.be.an('object'); + expect(m.q.foo, 'should access the "foo" function of "./reexport1" through "q" ad "*" ') + .to.be.a('function'); + }) + .then(done, done); }); }); @@ -346,15 +343,13 @@ describe('System', function () { describe('a script with metas', function () { it('should support module name meta', function (done) { - System.import('test/loader/moduleName').then(function (m) { - setTimeout(function () { - + System.import('test/loader/moduleName') + .then(function (m) { expect(m.name).to.be.equal('test/loader/moduleName'); - expect(m.address).to.be.equal(System.baseURL + 'test/loader/moduleName.js'); - - done(); - }); - }, done); + expect(m.address) + .to.be.equal(System.baseURL + 'test/loader/moduleName.js'); + }) + .then(done, done); }); }); @@ -364,54 +359,50 @@ describe('System', function () { it('should support custom paths', function (done) { System.paths['bar'] = 'test/loader/custom-path.js'; - System.import('bar').then(function (m) { - setTimeout(function () { + System.import('bar') + .then(function (m) { expect(m.bar).to.be.equal('bar'); delete System.paths['bar']; - done(); - }, 0); - }, done) + }) + .then(done, done); }); it('should support path wildcard', function (done) { System.paths['bar/*'] = 'test/loader/custom-folder/*.js'; - System.import('bar/path').then(function (m) { - setTimeout(function () { + System.import('bar/path') + .then(function (m) { expect(m.bar).to.be.equal('baa'); delete System.paths['bar/*']; - done(); - }, 0); - }, done) + }) + .then(done, done); }); it('should support most specific paths', function (done) { System.paths['bar/bar'] = 'test/loader/specific-path.js'; System.paths['bar/*'] = 'test/loader/custom-folder/*.js'; - System.import('bar/bar').then(function (m) { - setTimeout(function () { + System.import('bar/bar') + .then(function (m) { expect(m.path).to.be.ok(); delete System.paths['bar/bar']; delete System.paths['bar/*']; - done(); - }, 0); - }, done) + }) + .then(done, done); }); }); describeIf( typeof window != 'undefined' && window.Worker, - 'with Web Worker', function (done) { - it('should loading inside of a Web Worker', function () { + 'with Web Worker', function () { + it('should loading inside of a Web Worker', function (done) { var worker = new Worker(System.baseURL + 'test/worker/worker.js'); worker.onmessage = function (e) { - setTimeout(function () { - expect(e.data).to.be.equal('p'); - done(); - }, 0); + expect(e.data).to.be.equal('p'); + done(); }; + }); }); From 9147b82fcf549ee0c70abf4c3084475b22addaff Mon Sep 17 00:00:00 2001 From: Douglas Duteil Date: Fri, 23 Jan 2015 17:45:27 +0100 Subject: [PATCH 130/482] test: allow longer async tests --- test/mocha.opts | 1 + 1 file changed, 1 insertion(+) create mode 100644 test/mocha.opts diff --git a/test/mocha.opts b/test/mocha.opts new file mode 100644 index 0000000..cf80ee7 --- /dev/null +++ b/test/mocha.opts @@ -0,0 +1 @@ +--timeout 5000 From 27c6ebba91bb61bcb497b1a0a0b7fba383925b36 Mon Sep 17 00:00:00 2001 From: Douglas Duteil Date: Sun, 25 Jan 2015 04:08:03 +0100 Subject: [PATCH 131/482] docs(README): fix typos --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index bb116c0..86c7b49 100644 --- a/README.md +++ b/README.md @@ -121,9 +121,9 @@ _Also, please don't edit files in the "dist" subdirectory as they are generated `npm run test:browsers` supports options after a double dash (`--`) : -- You can use the `--polyfill` option to test ths code with polyfill. +- You can use the `--polyfill` option to test the code with polyfill. -- You can use the `--ie8` option to test ths code in the ie8 scope only. +- You can use the `--ie8` option to test the code in the ie8 scope only. - You can use the `--saucelabs` option to use karma and saucelabs to run the tests in various browsers. Note: you will need to export your username and key to launch it. From 4f024c543dd762f91e3a9893904782245ad618af Mon Sep 17 00:00:00 2001 From: Douglas Duteil Date: Sun, 25 Jan 2015 04:49:43 +0100 Subject: [PATCH 132/482] test: add script type module test --- karma.conf.js | 1 + test/browser-script-type-module.js | 13 +++++++++++++ test/system.spec.js | 12 ++++++++++++ 3 files changed, 26 insertions(+) create mode 100644 test/browser-script-type-module.js diff --git a/karma.conf.js b/karma.conf.js index 5a93c40..ac675b7 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -38,6 +38,7 @@ module.exports = function (config) { + '.src.js', 'test/_browser.js', + 'test/browser-script-type-module.js', 'test/custom-loader.js', [!options.ie8 ? 'test/*.spec.js' : 'test/*.normalize.spec.js'], diff --git a/test/browser-script-type-module.js b/test/browser-script-type-module.js new file mode 100644 index 0000000..b0c572c --- /dev/null +++ b/test/browser-script-type-module.js @@ -0,0 +1,13 @@ + +(function (__global){ + 'use strict'; + + if (!__global){ + return; + } + + document.write(''); + +}(typeof window != 'undefined' && window )); + + diff --git a/test/system.spec.js b/test/system.spec.js index 86a1929..026da18 100644 --- a/test/system.spec.js +++ b/test/system.spec.js @@ -406,4 +406,16 @@ describe('System', function () { }); }); + + describeIf( + typeof window != 'undefined', + 'with script type "module"', function () { + it('should load the module on the document "load" event', function (done) { + setTimeout(function(){ // wait for script processing first + expect(window.anon).to.be.a('function'); + done(); + }, 0); + }); + + }); }); From b254e7792227aab4065a356323fa01dff86f8383 Mon Sep 17 00:00:00 2001 From: Douglas Duteil Date: Sun, 25 Jan 2015 04:04:17 +0100 Subject: [PATCH 133/482] test: add karma coverage info --- .gitignore | 1 + README.md | 2 ++ karma.conf.js | 17 ++++++++++++++++- package.json | 1 + 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index ef3fd42..2b4ae38 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ node_modules bower_components tmp +coverage diff --git a/README.md b/README.md index 86c7b49..f6b6f49 100644 --- a/README.md +++ b/README.md @@ -123,6 +123,8 @@ _Also, please don't edit files in the "dist" subdirectory as they are generated - You can use the `--polyfill` option to test the code with polyfill. +- You can use the `--coverage` option to test and extract coverage info. + - You can use the `--ie8` option to test the code in the ie8 scope only. - You can use the `--saucelabs` option to use karma and saucelabs to run the tests in various browsers. diff --git a/karma.conf.js b/karma.conf.js index 5a93c40..3110eee 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -17,7 +17,8 @@ var options = extend({ travis: process.env.TRAVIS, polyfill: false, saucelabs: false, - ie8: false + ie8: false, + coverage: false }, argv); if (options.ie8){ @@ -56,6 +57,20 @@ module.exports = function (config) { browsers: ['Chrome', 'Firefox'] }); + if (options.coverage) { + config.set({ + reporters: ['mocha', 'coverage'], + preprocessors: { + 'dist/es6-module-loader*.src.js': ['coverage'] + }, + coverageReporter: { + type : 'html', + dir : 'coverage/' + }, + browsers: ['Chrome'] + }); + } + if (options.travis) { // TRAVIS config overwrite config.set({ diff --git a/package.json b/package.json index e4b598b..54ad9ef 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,7 @@ "karma-benchmark": "^0.4.0", "karma-benchmark-reporter": "^0.1.1", "karma-chrome-launcher": "^0.1.7", + "karma-coverage": "^0.2.7", "karma-expect": "^1.1.0", "karma-firefox-launcher": "^0.1.3", "karma-mocha": "^0.1.10", From a5937fbe93b073545a43240a7c5d8f79e0608c67 Mon Sep 17 00:00:00 2001 From: Douglas Duteil Date: Sun, 25 Jan 2015 06:16:12 +0100 Subject: [PATCH 134/482] test: fix ie9 console.log error On SauceLabs the instantiated IE browser can be available without developer tools opened. And for IE 8-9 it means no "console" object defined on window... --- karma.conf.js | 8 +++++++- test/_helper.js | 5 +++++ test/mocha.opts | 1 - 3 files changed, 12 insertions(+), 2 deletions(-) delete mode 100644 test/mocha.opts diff --git a/karma.conf.js b/karma.conf.js index 5a93c40..1d44119 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -53,7 +53,13 @@ module.exports = function (config) { frameworks: ['mocha', 'expect'], files: flatten(files), reporters: ['mocha'], - browsers: ['Chrome', 'Firefox'] + browsers: ['Chrome', 'Firefox'], + client: { + mocha: { + reporter: 'html', + timeout: 5000 + } + } }); if (options.travis) { diff --git a/test/_helper.js b/test/_helper.js index e14a710..8097ed5 100644 --- a/test/_helper.js +++ b/test/_helper.js @@ -3,6 +3,11 @@ (function (__global){ 'use strict'; + if(!__global.console){ + __global.console = { log : __global.dump || function (){} }; + } + + /** * Describe a block if the bool is true. * Will skip it otherwise. diff --git a/test/mocha.opts b/test/mocha.opts deleted file mode 100644 index cf80ee7..0000000 --- a/test/mocha.opts +++ /dev/null @@ -1 +0,0 @@ ---timeout 5000 From 2af4ba6e836b21f080602bfd8bfbaa105905e5f0 Mon Sep 17 00:00:00 2001 From: guybedford Date: Mon, 26 Jan 2015 12:46:50 +0200 Subject: [PATCH 135/482] add saucelabs tests --- .travis.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0e19d98..876d706 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,8 +15,6 @@ script: - grunt - npm test - npm run test:browsers -- --polyfill - -after_script: - npm run test:browsers -- --saucelabs - npm run test:browsers -- --saucelabs --ie8 - - npm run test:browsers:perf + - npm run test:browsers:perf \ No newline at end of file From 68d0d1e28b1ab7ff61b1f355253989d248af7d0c Mon Sep 17 00:00:00 2001 From: guybedford Date: Mon, 26 Jan 2015 12:52:29 +0200 Subject: [PATCH 136/482] add locate tests to ie8 tests --- test/system.normalize.spec.js | 21 +++++++++++++++++++++ test/system.spec.js | 21 --------------------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/test/system.normalize.spec.js b/test/system.normalize.spec.js index bd89edb..a13d0dd 100644 --- a/test/system.normalize.spec.js +++ b/test/system.normalize.spec.js @@ -92,4 +92,25 @@ describe('System', function () { }); }); }); + + describe('#locate', function () { + + beforeEach(function () { + System.baseURL = 'http://example.org/a/'; + }); + + it('should resolve paths', function () { + expect(System.locate({name: '@abc/def'})) + .to.equal('http://example.org/a/@abc/def.js'); + expect(System.locate({name: ' abc/def'})) + .to.equal('http://example.org/a/abc/def.js'); + }); + + it('should resolve paths with the existing config', function () { + System.paths['path/*'] = '/test/*.js'; + expect(System.locate({name: 'path/test'})) + .to.equal('http://example.org/test/test.js'); + }); + + }); }); diff --git a/test/system.spec.js b/test/system.spec.js index 86a1929..88753de 100644 --- a/test/system.spec.js +++ b/test/system.spec.js @@ -16,27 +16,6 @@ describe('System', function () { }); - describe('#locate', function () { - - beforeEach(function () { - System.baseURL = 'http://example.org/a/'; - }); - - it('should resolve paths', function () { - expect(System.locate({name: '@abc/def'})) - .to.equal('http://example.org/a/@abc/def.js'); - expect(System.locate({name: ' abc/def'})) - .to.equal('http://example.org/a/abc/def.js'); - }); - - it('should resolve paths with the existing config', function () { - System.paths['path/*'] = '/test/*.js'; - expect(System.locate({name: 'path/test'})) - .to.equal('http://example.org/test/test.js'); - }); - - }); - describe('#import', function () { describe('an ES5 script', function () { From 6e92b191f04be8f6810cfe469a78ff5eb6c59a75 Mon Sep 17 00:00:00 2001 From: guybedford Date: Mon, 26 Jan 2015 12:53:53 +0200 Subject: [PATCH 137/482] increase mocha timeout --- karma.conf.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/karma.conf.js b/karma.conf.js index 2201a9e..02d312b 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -58,7 +58,7 @@ module.exports = function (config) { client: { mocha: { reporter: 'html', - timeout: 5000 + timeout: 10000 } } }); From fb9f87f46c1722213d17ef2a6b4157dabae4dcbf Mon Sep 17 00:00:00 2001 From: guybedford Date: Sat, 27 Dec 2014 19:02:43 +0200 Subject: [PATCH 138/482] 6to5 support --- Gruntfile.js | 59 ++++++++++++++++++------- package.json | 4 +- src/6to5-loader.js | 41 ++++++++++++++++++ src/loader.js | 62 +-------------------------- src/traceur-loader.js | 58 +++++++++++++++++++++++++ test/test-6to5.html | 48 +++++++++++++++++++++ test/{test.html => test-traceur.html} | 6 +-- 7 files changed, 198 insertions(+), 80 deletions(-) create mode 100644 src/6to5-loader.js create mode 100644 src/traceur-loader.js create mode 100644 test/test-6to5.html rename test/{test.html => test-traceur.html} (82%) diff --git a/Gruntfile.js b/Gruntfile.js index 989c56f..9d1059a 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -14,35 +14,53 @@ module.exports = function (grunt) { jshintrc: '.jshintrc' }, dist: [ - 'lib/index.js', - 'lib/loader.js', - 'lib/system.js' + 'lib/index.js' ] }, concat: { dist: { files: { - 'dist/<%= pkg.name %>.src.js': [ + 'dist/<%= pkg.name %>-traceur.src.js': [ 'node_modules/when/es6-shim/Promise.js', 'src/polyfill-wrapper-start.js', - 'dist/<%= pkg.name %>.js', + 'dist/<%= pkg.name %>-traceur.js', 'src/polyfill-wrapper-end.js' ], - 'dist/<%= pkg.name %>-sans-promises.src.js': [ + 'dist/<%= pkg.name %>-6to5.src.js': [ + 'node_modules/when/es6-shim/Promise.js', + 'src/polyfill-wrapper-start.js', + 'dist/<%= pkg.name %>-6to5.js', + 'src/polyfill-wrapper-end.js' + ], + 'dist/<%= pkg.name %>-traceur-sp.src.js': [ + 'src/polyfill-wrapper-start.js', + 'dist/<%= pkg.name %>-traceur.js', + 'src/polyfill-wrapper-end.js' + ], + 'dist/<%= pkg.name %>-6to5-sp.src.js': [ 'src/polyfill-wrapper-start.js', - 'dist/<%= pkg.name %>.js', + 'dist/<%= pkg.name %>-6to5.js', 'src/polyfill-wrapper-end.js' ] } } }, esnext: { - dist: { + distTraceur: { src: [ 'src/loader.js', + 'src/traceur-loader.js', 'src/system.js' ], - dest: 'dist/<%= pkg.name %>.js' + dest: 'dist/<%= pkg.name %>-traceur.js' + }, + dist6to5: { + src: [ + 'src/loader.js', + 'src/6to5-loader.js', + 'src/system.js' + ], + dest: 'dist/<%= pkg.name %>-6to5.js' } }, 'string-replace': { @@ -71,16 +89,27 @@ module.exports = function (grunt) { }, sourceMap: true }, - dist: { + distTraceur: { options: { banner: '<%= meta.banner %>\n' }, - src: 'dist/<%= pkg.name %>.src.js', - dest: 'dist/<%= pkg.name %>.js' + src: 'dist/<%= pkg.name %>-traceur.src.js', + dest: 'dist/<%= pkg.name %>-traceur.js' + }, + dist6to5: { + options: { + banner: '<%= meta.banner %>\n' + }, + src: 'dist/<%= pkg.name %>-6to5.src.js', + dest: 'dist/<%= pkg.name %>-6to5.js' + }, + distTraceurSansPromises: { + src: 'dist/<%= pkg.name %>-traceur-sp.src.js', + dest: 'dist/<%= pkg.name %>-traceur-sp.js' }, - polyfillOnly: { - src: 'dist/<%= pkg.name %>-sans-promises.src.js', - dest: 'dist/<%= pkg.name %>-sans-promises.js' + dist6to5SansPromises: { + src: 'dist/<%= pkg.name %>-6to5-sp.src.js', + dest: 'dist/<%= pkg.name %>-6to5-sp.js' } } }); diff --git a/package.json b/package.json index 54ad9ef..6870c43 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "engines": { "node": ">=0.8.0" }, - "main": "lib/index", + "main": "lib/index-traceur", "scripts": { "test": "npm run test:node && npm run test:browsers", "test:node": "mocha test/_node.js", @@ -60,6 +60,8 @@ "test:browsers:perf": "karma start karma-benchmark.conf.js --single-run" }, "dependencies": { + "6to5": "^2.0.2", + "grunt-contrib-uglify": "0.6.0", "traceur": "0.0.79", "when": "^3.6.4" } diff --git a/src/6to5-loader.js b/src/6to5-loader.js new file mode 100644 index 0000000..89669fe --- /dev/null +++ b/src/6to5-loader.js @@ -0,0 +1,41 @@ +/* + * 6to5-specific Parsing Code for Loader + */ +(function(Loader) { + // parse function is used to parse a load record + // Returns an array of ModuleSpecifiers + var to5; + + Loader.prototype.parse = function(load) { + if (!to5) { + if (typeof window == 'undefined' && + typeof WorkerGlobalScope == 'undefined') + to5 = require('6to5'); + else if (__global.to5) + to5 = __global.to5; + else + throw new TypeError('Include 6to5 for module syntax support'); + } + + load.isDeclarative = true; + + var options = this.parseOptions || {}; + options.modules = 'system'; + options.sourceMap = 'inline'; + options.filename = load.address; + options.code = true; + options.ast = false; + options.runtime = true; + + var source = to5.transform(load.source, options).code; + + if (!source) + throw new Error('Error evaluating module ' + load.address); + + // add "!eval" to end of 6to5 sourceURL + // I believe this does something? + source = 'var __moduleAddress = "' + load.address + '";' + source + '!eval'; + + __eval(source, __global, load); + } +})(__global.LoaderPolyfill); \ No newline at end of file diff --git a/src/loader.js b/src/loader.js index 9e0e7dc..b063c65 100644 --- a/src/loader.js +++ b/src/loader.js @@ -899,7 +899,7 @@ function logloads(loads) { }); // 26.3.3.13 realm not implemented - this.traceurOptions = {}; + this.parseOptions = {}; } function Module() {} @@ -1058,66 +1058,6 @@ function logloads(loads) { var _newModule = Loader.prototype.newModule; - - /* - * Traceur-specific Parsing Code for Loader - */ - (function() { - // parse function is used to parse a load record - // Returns an array of ModuleSpecifiers - var traceur; - - function doCompile(source, compiler, filename) { - try { - return compiler.compile(source, filename); - } - catch(e) { - // traceur throws an error array - throw e[0]; - } - } - Loader.prototype.parse = function(load) { - if (!traceur) { - if (typeof window == 'undefined' && - typeof WorkerGlobalScope == 'undefined') - traceur = require('traceur'); - else if (__global.traceur) - traceur = __global.traceur; - else - throw new TypeError('Include Traceur for module syntax support'); - } - - console.assert(load.source, 'Non-empty source'); - - load.isDeclarative = true; - - var options = this.traceurOptions || {}; - options.modules = 'instantiate'; - options.script = false; - options.sourceMaps = 'inline'; - options.filename = load.address; - - var compiler = new traceur.Compiler(options); - - var source = doCompile(load.source, compiler, options.filename); - - if (!source) - throw new Error('Error evaluating module ' + load.address); - - var sourceMap = compiler.getSourceMap(); - - if (__global.btoa && sourceMap) { - // add "!eval" to end of Traceur sourceURL - // I believe this does something? - source += '!eval'; - } - - source = 'var __moduleAddress = "' + load.address + '";' + source; - - __eval(source, __global, load); - } - })(); - if (typeof exports === 'object') module.exports = Loader; diff --git a/src/traceur-loader.js b/src/traceur-loader.js new file mode 100644 index 0000000..a4d6cb6 --- /dev/null +++ b/src/traceur-loader.js @@ -0,0 +1,58 @@ +/* + * Traceur-specific Parsing Code for Loader + */ +(function(Loader) { + // parse function is used to parse a load record + // Returns an array of ModuleSpecifiers + var traceur; + + function doCompile(source, compiler, filename) { + try { + return compiler.compile(source, filename); + } + catch(e) { + // traceur throws an error array + throw e[0]; + } + } + Loader.prototype.parse = function(load) { + if (!traceur) { + if (typeof window == 'undefined' && + typeof WorkerGlobalScope == 'undefined') + traceur = require('traceur'); + else if (__global.traceur) + traceur = __global.traceur; + else + throw new TypeError('Include Traceur for module syntax support'); + } + + console.assert(load.source, 'Non-empty source'); + + load.isDeclarative = true; + + var options = this.parseOptions || {}; + options.modules = 'instantiate'; + options.script = false; + options.sourceMaps = 'inline'; + options.filename = load.address; + + var compiler = new traceur.Compiler(options); + + var source = doCompile(load.source, compiler, options.filename); + + if (!source) + throw new Error('Error evaluating module ' + load.address); + + var sourceMap = compiler.getSourceMap(); + + if (__global.btoa && sourceMap) { + // add "!eval" to end of Traceur sourceURL + // I believe this does something? + source += '!eval'; + } + + source = 'var __moduleAddress = "' + load.address + '";' + source; + + __eval(source, __global, load); + } +})(__global.LoaderPolyfill); \ No newline at end of file diff --git a/test/test-6to5.html b/test/test-6to5.html new file mode 100644 index 0000000..d0745d7 --- /dev/null +++ b/test/test-6to5.html @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/test/test.html b/test/test-traceur.html similarity index 82% rename from test/test.html rename to test/test-traceur.html index 91c946b..ee83c35 100644 --- a/test/test.html +++ b/test/test-traceur.html @@ -15,10 +15,10 @@ - + + - + - + @@ -19,6 +18,7 @@ diff --git a/test/test-traceur.html b/test/test-traceur.html index fdab75e..e247b43 100644 --- a/test/test-traceur.html +++ b/test/test-traceur.html @@ -9,7 +9,6 @@ diff --git a/test/worker/worker-6to5.js b/test/worker/worker-6to5.js index 295b4e0..af9ae04 100644 --- a/test/worker/worker-6to5.js +++ b/test/worker/worker-6to5.js @@ -1,9 +1,12 @@ importScripts("../../node_modules/6to5/browser.js", "../../node_modules/when/es6-shim/Promise.js", - "../../dist/es6-module-loader.src.js"); + "../../dist/es6-module-loader.src.js" + ); + +System.parser = '6to5'; System['import']('es6').then(function(m) { postMessage(m.p); }, function(err) { console.error(err, err.stack); -}); +}); \ No newline at end of file From 17ebe79e79227551c0cd13366c3503b6fedf7130 Mon Sep 17 00:00:00 2001 From: guybedford Date: Wed, 28 Jan 2015 11:06:15 +0200 Subject: [PATCH 148/482] update dependencies, all tests passing --- bower.json | 2 +- package.json | 4 ++-- test/system.spec.js | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/bower.json b/bower.json index ea62612..74fdfa1 100644 --- a/bower.json +++ b/bower.json @@ -5,7 +5,7 @@ "homepage": "https://github.com/ModuleLoader/es6-module-loader", "main": "dist/es6-module-loader-sans-promises.js", "dependencies": { - "traceur": "0.0.79" + "traceur": "0.0.82" }, "keywords": [ "es6", diff --git a/package.json b/package.json index 3ddee12..f87f401 100644 --- a/package.json +++ b/package.json @@ -63,9 +63,9 @@ "test:browser:perf": "karma start karma-benchmark.conf.js --single-run" }, "dependencies": { - "6to5": "^2.0.2", + "6to5": "^3.0.0", "grunt-contrib-uglify": "0.6.0", - "traceur": "0.0.79", + "traceur": "0.0.82", "when": "^3.6.4" } } diff --git a/test/system.spec.js b/test/system.spec.js index b243643..dccce23 100644 --- a/test/system.spec.js +++ b/test/system.spec.js @@ -97,7 +97,7 @@ describe('System', function () { describe('with circular dependencies', function () { - it('should resolve circular dependencies', function (done) { + (System.parser == 'traceur' ? it : it.skip)('should resolve circular dependencies', function (done) { System.import('test/syntax/circular1') .then(function (m1) { return System.import('test/syntax/circular2').then(function (m2) { From 1ac86b53ffe91e319723b45e331007f37ea08d2c Mon Sep 17 00:00:00 2001 From: Douglas Duteil Date: Wed, 28 Jan 2015 07:54:59 +0100 Subject: [PATCH 149/482] chore(travis): better saucelabs name Replace the TRAVIS_BUILD_NUMBER by the TRAVIS_JOB_NUMBER So saucelabs can make a difference between the jobs in the same build. It will log "TRAVIS #6.1" or "TRAVIS #6.2" instead of just "TRAVIS #6" --- karma.conf.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/karma.conf.js b/karma.conf.js index fda79df..731bbdc 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -113,7 +113,7 @@ module.exports = function(config) { var buildData = options.travis ? { location: 'TRAVIS', - name: process.env.TRAVIS_BUILD_NUMBER, + name: process.env.TRAVIS_JOB_NUMBER, id: process.env.TRAVIS_BUILD_ID } : From 6a48376698c742aafe8d45389b087bfc59c0b6af Mon Sep 17 00:00:00 2001 From: guybedford Date: Wed, 28 Jan 2015 11:07:29 +0200 Subject: [PATCH 150/482] add iojs travis tests --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index aac78b3..0c9d1a9 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,6 +5,7 @@ language: node_js node_js: - 0.10 - 0.11 + - iojs before_install: - export CHROME_BIN=chromium-browser - export DISPLAY=:99.0 @@ -19,4 +20,4 @@ script: - npm run test:browser-traceur -- --saucelabs - npm run test:browser-6to5 -- --saucelabs - npm run test:browser-traceur -- --saucelabs --ie8 - - npm run test:browser-6to5 -- --saucelabs --ie8 \ No newline at end of file + - npm run test:browser-6to5 -- --saucelabs --ie8 From ad8c9c7fb1abd8ab16be30e24906bce2c5fe4b8c Mon Sep 17 00:00:00 2001 From: guybedford Date: Wed, 28 Jan 2015 11:19:32 +0200 Subject: [PATCH 151/482] disable ie9 tests pending google/traceur-compiler#1659 --- karma.conf.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/karma.conf.js b/karma.conf.js index 731bbdc..2d155d1 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -97,7 +97,7 @@ module.exports = function(config) { var customLaunchers = geSaLaKaCuLa({ 'Windows 7': { - 'internet explorer': '9..11' + 'internet explorer': '10..11' } }); From 0793f8052e7f298e79bd3e5f381f797238dfa727 Mon Sep 17 00:00:00 2001 From: guybedford Date: Wed, 28 Jan 2015 11:41:50 +0200 Subject: [PATCH 152/482] test adjustments for ie --- .travis.yml | 4 ++-- README.md | 10 +++------- karma.conf.js | 3 +++ test/custom-loader.spec.js | 6 ++++-- test/system.spec.js | 4 +++- 5 files changed, 15 insertions(+), 12 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0c9d1a9..5177532 100644 --- a/.travis.yml +++ b/.travis.yml @@ -15,8 +15,8 @@ before_install: script: - grunt - npm test - - npm run test:browser-traceur -- --polyfill - - npm run test:browser-6to5 -- --polyfill + - npm run test:browser-traceur + - npm run test:browser-6to5 - npm run test:browser-traceur -- --saucelabs - npm run test:browser-6to5 -- --saucelabs - npm run test:browser-traceur -- --saucelabs --ie8 diff --git a/README.md b/README.md index f6b6f49..a55beca 100644 --- a/README.md +++ b/README.md @@ -5,20 +5,18 @@ Dynamically loads ES6 modules in browsers and [NodeJS](#nodejs-use) with support This project implements dynamic module loading through `System` exactly to the previous ES6-specified loader API at [2014-08-24 ES6 Specification Draft Rev 27, Section 15](http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#august_24_2014_draft_rev_27) and will continue to track this API as it is re-drafted as a browser specification (currently most likely to be at https://github.com/whatwg/loader). * Provides an asynchronous loader (`System.import`) to [dynamically load ES6 modules](##getting-started). -* Uses [Traceur](https://github.com/google/traceur-compiler) for compiling ES6 modules and syntax into ES5 in the browser with source map support. +* Supports both [Traceur](https://github.com/google/traceur-compiler) and [6to5](https://6to5.org/) for compiling ES6 modules and syntax into ES5 in the browser with source map support. * Fully supports [ES6 circular references and live bindings](https://github.com/ModuleLoader/es6-module-loader/wiki/Circular-References-&-Bindings). * Includes [`baseURL` and `paths` implementations](https://github.com/ModuleLoader/es6-module-loader/wiki/Configuring-the-Loader). * Can be used as a [tracing tool](https://github.com/ModuleLoader/es6-module-loader/wiki/Tracing-API) for static analysis of modules. * Polyfills ES6 Promises in the browser with an optionally bundled ES6 promise implementation. -* Supports ES6 module loading in IE8+. Other ES6 features only supported by Traceur in IE9+. +* Supports IE8+, with IE9+ support for ES6 development without pre-compilation. * The complete combined polyfill, including ES6 promises, comes to 9KB minified and gzipped, making it suitable for production use, provided that modules are [built into ES5 making them independent of Traceur](https://github.com/ModuleLoader/es6-module-loader/wiki/Production-Workflows). For an overview of build workflows, [see the production guide](https://github.com/ModuleLoader/es6-module-loader/wiki/Production-Workflows). For an example of a universal module loader based on this polyfill for loading AMD, CommonJS and globals, see [SystemJS](https://github.com/systemjs/systemjs). -_The current version is tested against **[Traceur 0.0.79](https://github.com/google/traceur-compiler/tree/0.0.79)**._ - ### Documentation * [A brief overview of ES6 module syntax](https://github.com/ModuleLoader/es6-module-loader/wiki/Brief-Overview-of-ES6-Module-syntax) @@ -30,9 +28,7 @@ _The current version is tested against **[Traceur 0.0.79](https://github.com/goo ### Getting Started -Download both [es6-module-loader.js](https://raw.githubusercontent.com/ModuleLoader/es6-module-loader/v0.11.0/dist/es6-module-loader.js) and traceur.js into the same folder. - -If using ES6 syntax (optional), include [`traceur.js`](https://raw.githubusercontent.com/jmcriffey/bower-traceur/0.0.79/traceur.js) in the page first then include `es6-module-loader.js`: +If using ES6 syntax (optional), include `traceur.js` in the page first then include `es6-module-loader.js`: ```html diff --git a/karma.conf.js b/karma.conf.js index 2d155d1..f6a6e75 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -25,6 +25,9 @@ if (options.ie8) { console.log('IE8 Mode !\n - polyfill required\n'); options.polyfill = true; } +if (options.saucelabs) { + options.polyfill = true; +} //// diff --git a/test/custom-loader.spec.js b/test/custom-loader.spec.js index 38aa040..258f8da 100644 --- a/test/custom-loader.spec.js +++ b/test/custom-loader.spec.js @@ -1,11 +1,13 @@ // +var ie = typeof window != 'undefined' && window.navigator.userAgent.match(/Trident/); + describe('Custom Loader', function () { describe('#import', function () { describe('scripts', function () { - it('should support ES6 scripts', function (done) { + (ie ? it.skip : it)('should support ES6 scripts', function (done) { customLoader.import('test/loader/test') .then(function (m) { expect(m.loader).to.be.equal('custom'); @@ -13,7 +15,7 @@ describe('Custom Loader', function () { .then(done, done) }); - it('should support AMD scripts', function (done) { + (ie ? it.skip : it)('should support AMD scripts', function (done) { customLoader.import('test/loader/amd') .then(function (m) { expect(m.format).to.be.equal('amd'); diff --git a/test/system.spec.js b/test/system.spec.js index dccce23..dba8e58 100644 --- a/test/system.spec.js +++ b/test/system.spec.js @@ -3,6 +3,8 @@ if (typeof to5 != 'undefined') System.parser = '6to5'; +var ie = typeof window != 'undefined' && window.navigator.userAgent.match(/Trident/); + describe('System', function () { var originBaseUrl = System.baseURL; @@ -377,7 +379,7 @@ describe('System', function () { describeIf( typeof window != 'undefined' && window.Worker, 'with Web Worker', function () { - it('should loading inside of a Web Worker', function (done) { + (ie ? it.skip : it)('should loading inside of a Web Worker', function (done) { var worker = new Worker(System.baseURL + 'test/worker/worker-' + System.parser + '.js'); worker.onmessage = function (e) { From 4ec569f0a95ed720c9f8278f7fe27d75af1a3a06 Mon Sep 17 00:00:00 2001 From: guybedford Date: Wed, 28 Jan 2015 12:04:51 +0200 Subject: [PATCH 153/482] skip generator tests in ie --- test/system.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/system.spec.js b/test/system.spec.js index dba8e58..97a1a04 100644 --- a/test/system.spec.js +++ b/test/system.spec.js @@ -64,7 +64,7 @@ describe('System', function () { .then(done, done); }); - it('should import an ES6 script with a generator', function (done) { + (ie ? it.skip : it)('should import an ES6 script with a generator', function (done) { System.import('test/syntax/es6-generator') .then(function (m) { expect(!!m.generator).to.be.ok(); From 701dca6c5dc3d6a262f9a86f64323755ac9df85f Mon Sep 17 00:00:00 2001 From: guybedford Date: Wed, 28 Jan 2015 12:14:43 +0200 Subject: [PATCH 154/482] remove iojs tests for now --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 5177532..bb08c14 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,7 +5,6 @@ language: node_js node_js: - 0.10 - 0.11 - - iojs before_install: - export CHROME_BIN=chromium-browser - export DISPLAY=:99.0 From 3ba5bd151cbf8962c65cd2ec12ad4b6678069129 Mon Sep 17 00:00:00 2001 From: guybedford Date: Wed, 28 Jan 2015 12:21:36 +0200 Subject: [PATCH 155/482] document 6to5 support --- README.md | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index a55beca..49d20bb 100644 --- a/README.md +++ b/README.md @@ -28,14 +28,22 @@ For an example of a universal module loader based on this polyfill for loading A ### Getting Started -If using ES6 syntax (optional), include `traceur.js` in the page first then include `es6-module-loader.js`: +If using ES6 syntax (optional), include `traceur.js` or `6to5.js` in the page first then include `es6-module-loader.js`: ```html ``` -Write an ES6 module: +To use 6to5, set the parser to `6to5` with the loader configuration: + +```html + +``` + +Then we can write any ES6 module: mymodule.js: ```javascript @@ -46,7 +54,7 @@ mymodule.js: } ``` -We can then load the module with the dynamic loader: +and load the module dynamically in the browser ```html - + ``` -To use 6to5, set the parser to `6to5` with the loader configuration: +To use 6to5, set the transpiler to `6to5` with the loader configuration: ```html ``` @@ -110,7 +110,7 @@ index.js: var System = require('es6-module-loader').System; /* * Include: - * System.parser = '6to5'; + * System.transpiler = '6to5'; * to use 6to5 instead of Traceur */ @@ -139,10 +139,10 @@ _Also, please don't edit files in the "dist" subdirectory as they are generated - `npm run test:node` will use node to to run the tests - `npm run test:browser` will run `npm run test:browser-6to5` and `npm run test:browser-traceur` -- `npm run test:browser-[parser]` use karma to run the tests with traceur or 6to5. +- `npm run test:browser-[transpiler]` use karma to run the tests with traceur or 6to5. - `npm run test:browser:perf` will use karma to run benchmarks -`npm run test:browser-[parser]` supports options after a double dash (`--`) : +`npm run test:browser-[transpiler]` supports options after a double dash (`--`) : - You can use the `--polyfill` option to test the code with polyfill. From d98a321b075481953307558f83efc538adb1a52d Mon Sep 17 00:00:00 2001 From: guybedford Date: Sun, 1 Feb 2015 16:54:56 +0200 Subject: [PATCH 164/482] 0.13.0 --- bower.json | 32 ------------- dist/es6-module-loader-sans-promises.js | 4 +- dist/es6-module-loader-sans-promises.js.map | 2 +- dist/es6-module-loader-sans-promises.src.js | 53 +++++++++------------ dist/es6-module-loader.js | 4 +- dist/es6-module-loader.js.map | 2 +- dist/es6-module-loader.src.js | 53 +++++++++------------ package.json | 6 +-- 8 files changed, 53 insertions(+), 103 deletions(-) delete mode 100644 bower.json diff --git a/bower.json b/bower.json deleted file mode 100644 index 6b7eb1b..0000000 --- a/bower.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "name": "es6-module-loader", - "version": "0.12.0", - "description": "An ES6 Module Loader polyfill based on the latest spec.", - "homepage": "https://github.com/ModuleLoader/es6-module-loader", - "main": "dist/es6-module-loader-sans-promises.js", - "dependencies": { - "traceur": "0.0.82" - }, - "keywords": [ - "es6", - "harmony", - "polyfill", - "modules" - ], - "ignore": [ - "demo", - "lib", - "test", - "grunt.js", - "package.json" - ], - "repository": { - "type": "git", - "url": "https://github.com/ModuleLoader/es6-module-loader.git" - }, - "licenses": [ - { - "type": "MIT" - } - ] -} diff --git a/dist/es6-module-loader-sans-promises.js b/dist/es6-module-loader-sans-promises.js index 49e655a..fe963c7 100644 --- a/dist/es6-module-loader-sans-promises.js +++ b/dist/es6-module-loader-sans-promises.js @@ -1,8 +1,8 @@ /* - * es6-module-loader v0.12.0 + * es6-module-loader v0.13.0 * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2015 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(__global){function __eval(__source,__global,load){var __curRegister=System.register;System.register=function(a,b,c){"string"!=typeof a&&(c=b,b=a),load.declare=c,load.depsList=b};try{eval('(function() { var __moduleName = "'+(load.name||"").replace('"','"')+'"; '+__source+" \n }).call(__global);")}catch(e){throw("SyntaxError"==e.name||"TypeError"==e.name)&&(e.message="Evaluating "+(load.name||load.address)+"\n "+e.message),e}System.register=__curRegister}$__Object$getPrototypeOf=Object.getPrototypeOf||function(a){return a.__proto__};var $__Object$defineProperty;!function(){try{Object.defineProperty({},"a",{})&&($__Object$defineProperty=Object.defineProperty)}catch(a){$__Object$defineProperty=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),$__Object$create=Object.create||function(a,b){function c(){}if(c.prototype=a,"object"==typeof b)for(prop in b)b.hasOwnProperty(prop)&&(c[prop]=b[prop]);return new c},function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new A(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:c&&c.metadata||{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new A(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return e=a(c),e.status="linked",e.module=b.modules[c],e;for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k,l=0,m=g.loads.length;m>l;l++)if(g.loads[l].name==i)return k=g.loads[l],k.linkSets[0].done.then(function(){c(k)});var n=a(i);n.metadata=b.moduleMetadata;var o=h(g,n);g.loads.push(n),c(o.done),"locate"==j?d(g,n):"fetch"==j?e(g,n,A.resolve(b.moduleAddress)):(n.address=b.moduleAddress,f(g,n,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var d=0,e=b.length;e>d;d++)for(var f=b[d],g=0;g=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=x.prototype.newModule;"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(a){function b(a){var b=this.traceurOptions||{};b.modules="instantiate",b.script=!1,b.sourceMaps="inline",b.filename=a.address;var d=new f.Compiler(b),e=c(a.source,d,b.filename);return e+="!eval"}function c(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}function d(a){var b=this.to5Options||{};b.modules="system",b.sourceMap="inline",b.filename=a.address,b.code=!0,b.ast=!1;var c=f.transform(a.source,b).code;return c+"\n//# sourceURL="+a.address+"!eval"}var e,f,g;a.prototype.parser="traceur",a.prototype.parse=function(a){if(!e){if(g="6to5"==this.parser?"to5":this.parser,f="undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope?require(this.parser):__global[g],!f)throw new TypeError("Include Traceur or 6to5 for module syntax support");e="6to5"==this.parser?d:b}var c=e.call(this,a);c='var __moduleAddress = "'+a.address+'";'+c,__eval(c,__global,a)}}(__global.LoaderPolyfill),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); +!function(__global){function __eval(__source,__global,load){var __curRegister=System.register;System.register=function(a,b,c){"string"!=typeof a&&(c=b,b=a),load.declare=c,load.depsList=b};try{eval('(function() { var __moduleName = "'+(load.name||"").replace('"','"')+'"; '+__source+" \n }).call(__global);")}catch(e){throw("SyntaxError"==e.name||"TypeError"==e.name)&&(e.message="Evaluating "+(load.name||load.address)+"\n "+e.message),e}System.register=__curRegister}$__Object$getPrototypeOf=Object.getPrototypeOf||function(a){return a.__proto__};var $__Object$defineProperty;!function(){try{Object.defineProperty({},"a",{})&&($__Object$defineProperty=Object.defineProperty)}catch(a){$__Object$defineProperty=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),$__Object$create=Object.create||function(a,b){function c(){}if(c.prototype=a,"object"==typeof b)for(prop in b)b.hasOwnProperty(prop)&&(c[prop]=b[prop]);return new c},function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new A(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:c&&c.metadata||{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new A(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return e=a(c),e.status="linked",e.module=b.modules[c],e;for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,__eval(a.loaderObj.transpile(b),__global,b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k,l=0,m=g.loads.length;m>l;l++)if(g.loads[l].name==i)return k=g.loads[l],k.linkSets[0].done.then(function(){c(k)});var n=a(i);n.metadata=b.moduleMetadata;var o=h(g,n);g.loads.push(n),c(o.done),"locate"==j?d(g,n):"fetch"==j?e(g,n,A.resolve(b.moduleAddress)):(n.address=b.moduleAddress,f(g,n,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var d=0,e=b.length;e>d;d++)for(var f=b[d],g=0;g=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var E=x.prototype.newModule;"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(a){function b(a){var b=this.traceurOptions||{};b.modules="instantiate",b.script=!1,b.sourceMaps="inline",b.filename=a.address;var d=new f.Compiler(b),e=c(a.source,d,b.filename);return e+="!eval"}function c(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}function d(a){var b=this.to5Options||{};b.modules="system",b.sourceMap="inline",b.filename=a.address,b.code=!0,b.ast=!1;var c=f.transform(a.source,b).code;return c+"\n//# sourceURL="+a.address+"!eval"}var e,f,g="undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope;a.prototype.transpiler="traceur",a.prototype.transpile=function(a){if(!e&&("6to5"==this.transpiler?(e=d,f=g?require("6to5-core"):__global.to5):(e=b,f=g?require("traceur"):__global.traceur),!f))throw new TypeError("Include Traceur or 6to5 for module syntax support.");return'var __moduleAddress = "'+a.address+'";'+e.call(this,a)}}(__global.LoaderPolyfill),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); //# sourceMappingURL=es6-module-loader-sans-promises.js.map \ No newline at end of file diff --git a/dist/es6-module-loader-sans-promises.js.map b/dist/es6-module-loader-sans-promises.js.map index 8c2a6da..5f2c7d0 100644 --- a/dist/es6-module-loader-sans-promises.js.map +++ b/dist/es6-module-loader-sans-promises.js.map @@ -1 +1 @@ -{"version":3,"file":"es6-module-loader-sans-promises.js","sources":["es6-module-loader-sans-promises.src.js"],"names":["__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","e","message","address","$__Object$getPrototypeOf","Object","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","value","get","call","$__Object$create","create","o","props","F","prototype","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","Promise","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","resolve","loaderObj","normalize","then","modules","module","i","l","loads","length","push","proceedToLocate","proceedToFetch","locate","p","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","TypeError","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","all","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","existingLoad","done","linkSet","createLinkSet","startingLoad","loadingCount","reject","j","d","doLink","error","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","indexOf","linkIndex","splice","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","Error","preventExtensions","msg","Loader","this","_loader","importPromises","createImportPromise","promise","m","require","console","assert","Array","item","thisLen","constructor","define","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","exports","Reflect","global","LoaderPolyfill","traceurParse","traceurOptions","script","sourceMaps","filename","compiler","parserModule","Compiler","doTraceurCompile","compile","to5Parse","to5Options","sourceMap","code","ast","transform","parser","parserName","window","WorkerGlobalScope","parseURI","url","String","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","join","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","document","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","setTimeout","fetchTextFromURL","isWorker","self","isBrowser","isWindows","process","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","data","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"es6-module-loader-sans-promises.js","sources":["es6-module-loader-sans-promises.src.js"],"names":["__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","e","message","address","$__Object$getPrototypeOf","Object","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","value","get","call","$__Object$create","create","o","props","F","prototype","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","Promise","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","resolve","loaderObj","normalize","then","modules","module","i","l","loads","length","push","proceedToLocate","proceedToFetch","locate","p","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","transpile","TypeError","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","all","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","existingLoad","done","linkSet","createLinkSet","startingLoad","loadingCount","reject","j","d","doLink","error","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","indexOf","linkIndex","splice","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","Error","preventExtensions","msg","Loader","this","_loader","importPromises","createImportPromise","promise","m","require","console","assert","Array","item","thisLen","constructor","define","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","exports","Reflect","global","LoaderPolyfill","traceurTranspile","traceurOptions","script","sourceMaps","filename","compiler","transpilerModule","Compiler","doTraceurCompile","compile","to5Transpile","to5Options","sourceMap","code","ast","transform","transpiler","isNode","window","WorkerGlobalScope","to5","traceur","parseURI","url","String","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","join","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","document","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","setTimeout","fetchTextFromURL","isWorker","self","isBrowser","isWindows","process","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","data","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6-module-loader-sans-promises.src.js b/dist/es6-module-loader-sans-promises.src.js index c01e293..02a7fd6 100644 --- a/dist/es6-module-loader-sans-promises.src.js +++ b/dist/es6-module-loader-sans-promises.src.js @@ -287,8 +287,7 @@ function logloads(loads) { // instead of load.kind, use load.isDeclarative load.isDeclarative = true; - // parse sets load.declare, load.depsList - loader.loaderObj.parse(load); + __eval(loader.loaderObj.transpile(load), __global, load); } else if (typeof instantiateResult == 'object') { load.depsList = instantiateResult.deps || []; @@ -1083,9 +1082,6 @@ function logloads(loads) { translate: function(load) { return load.source; }, - parse: function(load) { - throw new TypeError('Loader.parse is not implemented'); - }, // 26.3.3.18.5 instantiate: function(load) { } @@ -1104,47 +1100,42 @@ function logloads(loads) { })(); /* - * Traceur and 6to5 Parsing Code for Loader + * Traceur and 6to5 transpile hook for Loader */ (function(Loader) { - // parse function is used to parse a load record // Returns an array of ModuleSpecifiers - var parser, parserModule, parserName, parserOptionsName; + var transpiler, transpilerModule; + var isNode = typeof window == 'undefined' && typeof WorkerGlobalScope == 'undefined'; // use Traceur by default - Loader.prototype.parser = 'traceur'; - - Loader.prototype.parse = function(load) { - if (!parser) { - parserName = this.parser == '6to5' ? 'to5' : this.parser; + Loader.prototype.transpiler = 'traceur'; - // try to pick up parser from global or require - if (typeof window == 'undefined' && typeof WorkerGlobalScope == 'undefined') - parserModule = require(this.parser); - else - parserModule = __global[parserName]; + Loader.prototype.transpile = function(load) { + if (!transpiler) { + if (this.transpiler == '6to5') { + transpiler = to5Transpile; + transpilerModule = isNode ? require('6to5-core') : __global.to5; + } + else { + transpiler = traceurTranspile; + transpilerModule = isNode ? require('traceur') : __global.traceur; + } - if (!parserModule) - throw new TypeError('Include Traceur or 6to5 for module syntax support'); - - parser = this.parser == '6to5' ? to5Parse : traceurParse; + if (!transpilerModule) + throw new TypeError('Include Traceur or 6to5 for module syntax support.'); } - var source = parser.call(this, load); - - source = 'var __moduleAddress = "' + load.address + '";' + source; - - __eval(source, __global, load); + return 'var __moduleAddress = "' + load.address + '";' + transpiler.call(this, load); } - function traceurParse(load) { + function traceurTranspile(load) { var options = this.traceurOptions || {}; options.modules = 'instantiate'; options.script = false; options.sourceMaps = 'inline'; options.filename = load.address; - var compiler = new parserModule.Compiler(options); + var compiler = new transpilerModule.Compiler(options); var source = doTraceurCompile(load.source, compiler, options.filename); // add "!eval" to end of Traceur sourceURL @@ -1163,7 +1154,7 @@ function logloads(loads) { } } - function to5Parse(load) { + function to5Transpile(load) { var options = this.to5Options || {}; options.modules = 'system'; options.sourceMap = 'inline'; @@ -1171,7 +1162,7 @@ function logloads(loads) { options.code = true; options.ast = false; - var source = parserModule.transform(load.source, options).code; + var source = transpilerModule.transform(load.source, options).code; // add "!eval" to end of 6to5 sourceURL // I believe this does something? diff --git a/dist/es6-module-loader.js b/dist/es6-module-loader.js index 0375fc1..332b878 100644 --- a/dist/es6-module-loader.js +++ b/dist/es6-module-loader.js @@ -1,8 +1,8 @@ /* - * es6-module-loader v0.12.0 + * es6-module-loader v0.13.0 * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2015 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=0&&(n.splice(b,1),l("Handled previous rejection ["+a.id+"] "+e.formatObject(a.value)))}function h(a,b){m.push(a,b),null===o&&(o=d(i,0))}function i(){for(o=null;m.length>0;)m.shift()(m.shift())}var j,k=c,l=c;"undefined"!=typeof console&&(j=console,k="undefined"!=typeof j.error?function(a){j.error(a)}:function(a){j.log(a)},l="undefined"!=typeof j.info?function(a){j.info(a)}:function(a){j.log(a)}),a.onPotentiallyUnhandledRejection=function(a){h(f,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){h(g,a)},a.onFatalRejection=function(a){h(b,a.value)};var m=[],n=[],o=null;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../env":5,"../format":6}],5:[function(b,c){!function(a){"use strict";a(function(a){function b(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick}function c(){return"function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver}function d(a){function b(){var a=c;c=void 0,a()}var c,d=document.createTextNode(""),e=new a(b);e.observe(d,{characterData:!0});var f=0;return function(a){c=a,d.data=f^=1}}var e,f="undefined"!=typeof setTimeout&&setTimeout,g=function(a,b){return setTimeout(a,b)},h=function(a){return clearTimeout(a)},i=function(a){return f(a,0)};if(b())i=function(a){return process.nextTick(a)};else if(e=c())i=d(e);else if(!f){var j=a,k=j("vertx");g=function(a,b){return k.setTimer(b,a)},h=k.cancelTimer,i=k.runOnLoop||k.runOnContext}return{setTimer:g,clearTimer:h,asap:i}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c){!function(a){"use strict";a(function(){function a(a){var c="object"==typeof a&&null!==a&&a.stack?a.stack:b(a);return a instanceof Error?c:c+" (WARNING: non-Error used)"}function b(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=c(a,b)),b}function c(a,b){try{return JSON.stringify(a)}catch(c){return b}}return{formatError:a,formatObject:b,tryStringify:c}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],7:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===t?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new v;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return I(a)?a:new b(t,new w(q(a)))}function e(a){return new b(t,new w(new z(a)))}function f(){return Z}function g(){return new b(t,new v)}function h(a,b){var c=new v(a.receiver,a.join().context);return new b(t,c)}function i(a){return k(S,null,a)}function j(a,b){return k(N,a,b)}function k(a,c,d){function e(b,e,g){g.resolved||l(d,f,b,a(c,e,b),g)}function f(a,b,c){k[a]=b,0===--j&&c.become(new y(k))}for(var g,h="function"==typeof c?e:f,i=new v,j=d.length>>>0,k=new Array(j),m=0;m0?b(c,f.value,e):(e.become(f),m(a,c+1,f))}else b(c,d,e)}function m(a,b,c){for(var d=b;dc&&a._unreport()}}function o(a){return"object"!=typeof a||null===a?e(new TypeError("non-iterable passed to race()")):0===a.length?f():1===a.length?d(a[0]):p(a)}function p(a){var c,d,e,f=new v;for(c=0;c0||"function"!=typeof b&&0>e)return new this.constructor(t,d);var f=this._beget(),g=f._handler;return d.chain(g,d.receiver,a,b,c),f},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){return h(this._handler,this.constructor)},b.all=i,b.race=o,b._traverse=j,b._visitRemaining=m,t.prototype.when=t.prototype.become=t.prototype.notify=t.prototype.fail=t.prototype._unreport=t.prototype._report=T,t.prototype._state=0,t.prototype.state=function(){return this._state},t.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},t.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},t.prototype.visit=function(a,b,c,d){this.chain(W,a,b,c,d)},t.prototype.fold=function(a,b,c,d){this.when(new H(a,b,c,d))},R(t,u),u.prototype.become=function(a){a.fail()};var W=new u;R(t,v),v.prototype._state=0,v.prototype.resolve=function(a){this.become(q(a))},v.prototype.reject=function(a){this.resolved||this.become(new z(a))},v.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=C();return a},v.prototype.run=function(){var a=this.consumers,b=this.join();this.consumers=void 0;for(var c=0;cf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.parse(b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k,l=0,m=g.loads.length;m>l;l++)if(g.loads[l].name==i)return k=g.loads[l],k.linkSets[0].done.then(function(){c(k)});var n=a(i);n.metadata=b.moduleMetadata;var o=h(g,n);g.loads.push(n),c(o.done),"locate"==j?d(g,n):"fetch"==j?e(g,n,A.resolve(b.moduleAddress)):(n.address=b.moduleAddress,f(g,n,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var d=0,e=b.length;e>d;d++)for(var f=b[d],g=0;g=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},parse:function(){throw new TypeError("Loader.parse is not implemented")},instantiate:function(){}};var E=x.prototype.newModule;"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(a){function b(a){var b=this.traceurOptions||{};b.modules="instantiate",b.script=!1,b.sourceMaps="inline",b.filename=a.address;var d=new f.Compiler(b),e=c(a.source,d,b.filename);return e+="!eval"}function c(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}function d(a){var b=this.to5Options||{};b.modules="system",b.sourceMap="inline",b.filename=a.address,b.code=!0,b.ast=!1;var c=f.transform(a.source,b).code;return c+"\n//# sourceURL="+a.address+"!eval"}var e,f,g;a.prototype.parser="traceur",a.prototype.parse=function(a){if(!e){if(g="6to5"==this.parser?"to5":this.parser,f="undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope?require(this.parser):__global[g],!f)throw new TypeError("Include Traceur or 6to5 for module syntax support");e="6to5"==this.parser?d:b}var c=e.call(this,a);c='var __moduleAddress = "'+a.address+'";'+c,__eval(c,__global,a)}}(__global.LoaderPolyfill),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); +!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=0&&(n.splice(b,1),l("Handled previous rejection ["+a.id+"] "+e.formatObject(a.value)))}function h(a,b){m.push(a,b),null===o&&(o=d(i,0))}function i(){for(o=null;m.length>0;)m.shift()(m.shift())}var j,k=c,l=c;"undefined"!=typeof console&&(j=console,k="undefined"!=typeof j.error?function(a){j.error(a)}:function(a){j.log(a)},l="undefined"!=typeof j.info?function(a){j.info(a)}:function(a){j.log(a)}),a.onPotentiallyUnhandledRejection=function(a){h(f,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){h(g,a)},a.onFatalRejection=function(a){h(b,a.value)};var m=[],n=[],o=null;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../env":5,"../format":6}],5:[function(b,c){!function(a){"use strict";a(function(a){function b(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick}function c(){return"function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver}function d(a){function b(){var a=c;c=void 0,a()}var c,d=document.createTextNode(""),e=new a(b);e.observe(d,{characterData:!0});var f=0;return function(a){c=a,d.data=f^=1}}var e,f="undefined"!=typeof setTimeout&&setTimeout,g=function(a,b){return setTimeout(a,b)},h=function(a){return clearTimeout(a)},i=function(a){return f(a,0)};if(b())i=function(a){return process.nextTick(a)};else if(e=c())i=d(e);else if(!f){var j=a,k=j("vertx");g=function(a,b){return k.setTimer(b,a)},h=k.cancelTimer,i=k.runOnLoop||k.runOnContext}return{setTimer:g,clearTimer:h,asap:i}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c){!function(a){"use strict";a(function(){function a(a){var c="object"==typeof a&&null!==a&&a.stack?a.stack:b(a);return a instanceof Error?c:c+" (WARNING: non-Error used)"}function b(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=c(a,b)),b}function c(a,b){try{return JSON.stringify(a)}catch(c){return b}}return{formatError:a,formatObject:b,tryStringify:c}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],7:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===t?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new v;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return I(a)?a:new b(t,new w(q(a)))}function e(a){return new b(t,new w(new z(a)))}function f(){return Z}function g(){return new b(t,new v)}function h(a,b){var c=new v(a.receiver,a.join().context);return new b(t,c)}function i(a){return k(S,null,a)}function j(a,b){return k(N,a,b)}function k(a,c,d){function e(b,e,g){g.resolved||l(d,f,b,a(c,e,b),g)}function f(a,b,c){k[a]=b,0===--j&&c.become(new y(k))}for(var g,h="function"==typeof c?e:f,i=new v,j=d.length>>>0,k=new Array(j),m=0;m0?b(c,f.value,e):(e.become(f),m(a,c+1,f))}else b(c,d,e)}function m(a,b,c){for(var d=b;dc&&a._unreport()}}function o(a){return"object"!=typeof a||null===a?e(new TypeError("non-iterable passed to race()")):0===a.length?f():1===a.length?d(a[0]):p(a)}function p(a){var c,d,e,f=new v;for(c=0;c0||"function"!=typeof b&&0>e)return new this.constructor(t,d);var f=this._beget(),g=f._handler;return d.chain(g,d.receiver,a,b,c),f},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){return h(this._handler,this.constructor)},b.all=i,b.race=o,b._traverse=j,b._visitRemaining=m,t.prototype.when=t.prototype.become=t.prototype.notify=t.prototype.fail=t.prototype._unreport=t.prototype._report=T,t.prototype._state=0,t.prototype.state=function(){return this._state},t.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},t.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},t.prototype.visit=function(a,b,c,d){this.chain(W,a,b,c,d)},t.prototype.fold=function(a,b,c,d){this.when(new H(a,b,c,d))},R(t,u),u.prototype.become=function(a){a.fail()};var W=new u;R(t,v),v.prototype._state=0,v.prototype.resolve=function(a){this.become(q(a))},v.prototype.reject=function(a){this.resolved||this.become(new z(a))},v.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=C();return a},v.prototype.run=function(){var a=this.consumers,b=this.join();this.consumers=void 0;for(var c=0;cf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,__eval(a.loaderObj.transpile(b),__global,b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k,l=0,m=g.loads.length;m>l;l++)if(g.loads[l].name==i)return k=g.loads[l],k.linkSets[0].done.then(function(){c(k)});var n=a(i);n.metadata=b.moduleMetadata;var o=h(g,n);g.loads.push(n),c(o.done),"locate"==j?d(g,n):"fetch"==j?e(g,n,A.resolve(b.moduleAddress)):(n.address=b.moduleAddress,f(g,n,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var d=0,e=b.length;e>d;d++)for(var f=b[d],g=0;g=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var E=x.prototype.newModule;"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(a){function b(a){var b=this.traceurOptions||{};b.modules="instantiate",b.script=!1,b.sourceMaps="inline",b.filename=a.address;var d=new f.Compiler(b),e=c(a.source,d,b.filename);return e+="!eval"}function c(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}function d(a){var b=this.to5Options||{};b.modules="system",b.sourceMap="inline",b.filename=a.address,b.code=!0,b.ast=!1;var c=f.transform(a.source,b).code;return c+"\n//# sourceURL="+a.address+"!eval"}var e,f,g="undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope;a.prototype.transpiler="traceur",a.prototype.transpile=function(a){if(!e&&("6to5"==this.transpiler?(e=d,f=g?require("6to5-core"):__global.to5):(e=b,f=g?require("traceur"):__global.traceur),!f))throw new TypeError("Include Traceur or 6to5 for module syntax support.");return'var __moduleAddress = "'+a.address+'";'+e.call(this,a)}}(__global.LoaderPolyfill),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); //# sourceMappingURL=es6-module-loader.js.map \ No newline at end of file diff --git a/dist/es6-module-loader.js.map b/dist/es6-module-loader.js.map index a3de5ac..61e09f7 100644 --- a/dist/es6-module-loader.js.map +++ b/dist/es6-module-loader.js.map @@ -1 +1 @@ -{"version":3,"file":"es6-module-loader.js","sources":["es6-module-loader.src.js"],"names":["e","exports","module","define","amd","window","Promise","global","self","t","n","r","s","o","u","a","require","i","Error","f","call","length",1,"unhandledRejections","PromiseConstructor","../lib/Promise","../lib/decorators/unhandledRejection",2,"makePromise","Scheduler","async","asap","scheduler","factory","./Scheduler","./env","./makePromise",3,"this","_async","_running","_queue","Array","_queueLen","_afterQueue","_afterQueueLen","drain","_drain","prototype","enqueue","task","run","afterQueue",4,"throwit","noop","setTimer","format","report","handled","reported","push","logError","id","formatError","value","unreport","indexOf","splice","logInfo","formatObject","x","tasks","running","flush","shift","localConsole","console","error","log","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","../env","../format",5,"isNode","process","nextTick","hasMutationObserver","MutationObserver","WebKitMutationObserver","initMutationObserver","scheduled","node","document","createTextNode","observe","characterData","data","MutationObs","capturedSetTimeout","setTimeout","ms","clearTimer","clearTimeout","vertxRequire","vertx","cancelTimer","runOnLoop","runOnContext",6,"stack","String","JSON","tryStringify","defaultValue","stringify",7,"environment","resolver","handler","_handler","Handler","init","promiseResolve","resolve","promiseReject","reason","reject","promiseNotify","notify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","begetFrom","parent","child","receiver","join","context","all","promises","traverseWith","snd","traverse","tryCatch2","tryMap","mapAt","resolved","traverseAt","settleAt","results","pending","become","Fulfilled","maybeThenable","h","getHandlerMaybeThenable","state","fold","visitRemaining","start","markAsHandled","visit","_unreport","race","TypeError","runRace","getHandlerUntrusted","untrustedThen","then","Thenable","FailIfRejected","inheritedContext","createContext","consumers","thenable","AssimilateTask","errorId","_report","ReportTask","UnreportTask","cycle","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","Fold","z","c","to","failIfRejected","runContinuation1","next","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","b","thisArg","y","inherit","Parent","Child","objectCreate","constructor","Object","create","proto","_defer","onFulfilled","onRejected","onProgress","p","_beget","chain","_traverse","_visitRemaining","when","fail","_state","fulfilled","rejected","progress","q","cont","foreverPendingHandler","_resolve","_reject","_notify","__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","message","address","$__Object$getPrototypeOf","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","get","$__Object$create","props","F","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","loaderObj","normalize","modules","l","loads","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","parse","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","existingLoad","done","linkSet","createLinkSet","startingLoad","loadingCount","j","d","doLink","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","linkIndex","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","preventExtensions","msg","Loader","_loader","importPromises","createImportPromise","promise","m","assert","item","thisLen","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","Reflect","LoaderPolyfill","traceurParse","traceurOptions","script","sourceMaps","filename","compiler","parserModule","Compiler","doTraceurCompile","compile","to5Parse","to5Options","sourceMap","code","ast","transform","parser","parserName","WorkerGlobalScope","parseURI","url","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","fetchTextFromURL","isWorker","isBrowser","isWindows","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"es6-module-loader.js","sources":["es6-module-loader.src.js"],"names":["e","exports","module","define","amd","window","Promise","global","self","t","n","r","s","o","u","a","require","i","Error","f","call","length",1,"unhandledRejections","PromiseConstructor","../lib/Promise","../lib/decorators/unhandledRejection",2,"makePromise","Scheduler","async","asap","scheduler","factory","./Scheduler","./env","./makePromise",3,"this","_async","_running","_queue","Array","_queueLen","_afterQueue","_afterQueueLen","drain","_drain","prototype","enqueue","task","run","afterQueue",4,"throwit","noop","setTimer","format","report","handled","reported","push","logError","id","formatError","value","unreport","indexOf","splice","logInfo","formatObject","x","tasks","running","flush","shift","localConsole","console","error","log","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","../env","../format",5,"isNode","process","nextTick","hasMutationObserver","MutationObserver","WebKitMutationObserver","initMutationObserver","scheduled","node","document","createTextNode","observe","characterData","data","MutationObs","capturedSetTimeout","setTimeout","ms","clearTimer","clearTimeout","vertxRequire","vertx","cancelTimer","runOnLoop","runOnContext",6,"stack","String","JSON","tryStringify","defaultValue","stringify",7,"environment","resolver","handler","_handler","Handler","init","promiseResolve","resolve","promiseReject","reason","reject","promiseNotify","notify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","begetFrom","parent","child","receiver","join","context","all","promises","traverseWith","snd","traverse","tryCatch2","tryMap","mapAt","resolved","traverseAt","settleAt","results","pending","become","Fulfilled","maybeThenable","h","getHandlerMaybeThenable","state","fold","visitRemaining","start","markAsHandled","visit","_unreport","race","TypeError","runRace","getHandlerUntrusted","untrustedThen","then","Thenable","FailIfRejected","inheritedContext","createContext","consumers","thenable","AssimilateTask","errorId","_report","ReportTask","UnreportTask","cycle","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","Fold","z","c","to","failIfRejected","runContinuation1","next","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","b","thisArg","y","inherit","Parent","Child","objectCreate","constructor","Object","create","proto","_defer","onFulfilled","onRejected","onProgress","p","_beget","chain","_traverse","_visitRemaining","when","fail","_state","fulfilled","rejected","progress","q","cont","foreverPendingHandler","_resolve","_reject","_notify","__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","message","address","$__Object$getPrototypeOf","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","get","$__Object$create","props","F","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","loaderObj","normalize","modules","l","loads","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","transpile","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","existingLoad","done","linkSet","createLinkSet","startingLoad","loadingCount","j","d","doLink","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","linkIndex","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","preventExtensions","msg","Loader","_loader","importPromises","createImportPromise","promise","m","assert","item","thisLen","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","Reflect","LoaderPolyfill","traceurTranspile","traceurOptions","script","sourceMaps","filename","compiler","transpilerModule","Compiler","doTraceurCompile","compile","to5Transpile","to5Options","sourceMap","code","ast","transform","transpiler","WorkerGlobalScope","to5","traceur","parseURI","url","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","fetchTextFromURL","isWorker","isBrowser","isWindows","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":";;;;;;CAAC,SAASA,GAAG,gBAAiBC,SAAQC,OAAOD,QAAQD,IAAI,kBAAmBG,SAAQA,OAAOC,IAAID,OAAOH,GAAG,mBAAoBK,QAAOA,OAAOC,QAAQN,IAAI,mBAAoBO,QAAOA,OAAOD,QAAQN,IAAI,mBAAoBQ,QAAOA,KAAKF,QAAQN,MAAM,WAAW,GAAIG,EAAsB,OAAO,SAAUH,GAAES,EAAEC,EAAEC,GAAG,QAASC,GAAEC,EAAEC,GAAG,IAAIJ,EAAEG,GAAG,CAAC,IAAIJ,EAAEI,GAAG,CAAC,GAAIE,GAAkB,kBAATC,UAAqBA,OAAQ,KAAIF,GAAGC,EAAE,MAAOA,GAAEF,GAAE,EAAI,IAAGI,EAAE,MAAOA,GAAEJ,GAAE,EAAI,MAAM,IAAIK,OAAM,uBAAuBL,EAAE,KAAK,GAAIM,GAAET,EAAEG,IAAIZ,WAAYQ,GAAEI,GAAG,GAAGO,KAAKD,EAAElB,QAAQ,SAASD,GAAG,GAAIU,GAAED,EAAEI,GAAG,GAAGb,EAAG,OAAOY,GAAEF,EAAEA,EAAEV,IAAImB,EAAEA,EAAElB,QAAQD,EAAES,EAAEC,EAAEC,GAAG,MAAOD,GAAEG,GAAGZ,QAAkD,IAAI,GAA1CgB,GAAkB,kBAATD,UAAqBA,QAAgBH,EAAE,EAAEA,EAAEF,EAAEU,OAAOR,IAAID,EAAED,EAAEE,GAAI,OAAOD,KAAKU,GAAG,SAASN,EAAQd,GAQ7sB,GAAIqB,GAAsBP,EAAQ,wCAC9BQ,EAAqBD,EAAoBP,EAAQ,kBAErDd,GAAOD,QAA2B,mBAAVM,QAAyBA,OAAOD,QAAUkB,EACnC,mBAAVhB,MAAyBA,KAAKF,QAAYkB,EACjDA,IAEXC,iBAAiB,EAAEC,uCAAuC,IAAIC,GAAG,SAASX,EAAQd,IAKrF,SAAUC,GAAU,YACpBA,GAAO,SAAUa,GAEhB,GAAIY,GAAcZ,EAAQ,iBACtBa,EAAYb,EAAQ,eACpBc,EAAQd,EAAQ,SAASe,IAE7B,OAAOH,IACNI,UAAW,GAAIH,GAAUC,QAIN,kBAAX3B,IAAyBA,EAAOC,IAAMD,EAAS,SAAU8B,GAAW/B,EAAOD,QAAUgC,EAAQjB,OAEpGkB,cAAc,EAAEC,QAAQ,EAAEC,gBAAgB,IAAIC,GAAG,SAASrB,EAAQd,IAKpE,SAASC,GAAU,YACpBA,GAAO,WAUN,QAAS0B,GAAUC,GAClBQ,KAAKC,OAAST,EACdQ,KAAKE,UAAW,EAEhBF,KAAKG,OAAS,GAAIC,OAAM,OACxBJ,KAAKK,UAAY,EACjBL,KAAKM,YAAc,GAAIF,OAAM,IAC7BJ,KAAKO,eAAiB,CAEtB,IAAIrC,GAAO8B,IACXA,MAAKQ,MAAQ,WACZtC,EAAKuC,UAkDP,MA1CAlB,GAAUmB,UAAUC,QAAU,SAASC,GACtCZ,KAAKG,OAAOH,KAAKK,aAAeO,EAChCZ,KAAKa,OAONtB,EAAUmB,UAAUI,WAAa,SAASF,GACzCZ,KAAKM,YAAYN,KAAKO,kBAAoBK,EAC1CZ,KAAKa,OAGNtB,EAAUmB,UAAUG,IAAM,WACpBb,KAAKE,WACTF,KAAKE,UAAW,EAChBF,KAAKC,OAAOD,KAAKQ,SAOnBjB,EAAUmB,UAAUD,OAAS,WAE5B,IADA,GAAI9B,GAAI,EACDA,EAAIqB,KAAKK,YAAa1B,EAC5BqB,KAAKG,OAAOxB,GAAGkC,MACfb,KAAKG,OAAOxB,GAAK,MAMlB,KAHAqB,KAAKK,UAAY,EACjBL,KAAKE,UAAW,EAEXvB,EAAI,EAAGA,EAAIqB,KAAKO,iBAAkB5B,EACtCqB,KAAKM,YAAY3B,GAAGkC,MACpBb,KAAKM,YAAY3B,GAAK,MAGvBqB,MAAKO,eAAiB,GAGhBhB,KAGY,kBAAX1B,IAAyBA,EAAOC,IAAMD,EAAS,SAAS8B,GAAW/B,EAAOD,QAAUgC,WAEvFoB,GAAG,SAASrC,EAAQd,IAKzB,SAASC,GAAU,YACpBA,GAAO,SAASa,GAwEf,QAASsC,GAAQtD,GAChB,KAAMA,GAGP,QAASuD,MA1ET,GAAIC,GAAWxC,EAAQ,UAAUwC,SAC7BC,EAASzC,EAAQ,YAErB,OAAO,UAA4BV,GAmClC,QAASoD,GAAO/C,GACXA,EAAEgD,UACLC,EAASC,KAAKlD,GACdmD,EAAS,oCAAsCnD,EAAEoD,GAAK,KAAON,EAAOO,YAAYrD,EAAEsD,SAIpF,QAASC,GAASvD,GACjB,GAAIM,GAAI2C,EAASO,QAAQxD,EACtBM,IAAK,IACP2C,EAASQ,OAAOnD,EAAG,GACnBoD,EAAQ,+BAAiC1D,EAAEoD,GAAK,KAAON,EAAOa,aAAa3D,EAAEsD,SAI/E,QAAShB,GAAQ9B,EAAGoD,GACnBC,EAAMX,KAAK1C,EAAGoD,GACC,OAAZE,IACFA,EAAUjB,EAASkB,EAAO,IAI5B,QAASA,KAER,IADAD,EAAU,KACJD,EAAMnD,OAAS,GACpBmD,EAAMG,QAAQH,EAAMG,SA3DtB,GAEIC,GAFAd,EAAWP,EACXc,EAAUd,CAGQ,oBAAZsB,WAITD,EAAeC,QACff,EAAyC,mBAAvBc,GAAaE,MAC5B,SAAU9E,GAAK4E,EAAaE,MAAM9E,IAClC,SAAUA,GAAK4E,EAAaG,IAAI/E,IAEnCqE,EAAuC,mBAAtBO,GAAaI,KAC3B,SAAUhF,GAAK4E,EAAaI,KAAKhF,IACjC,SAAUA,GAAK4E,EAAaG,IAAI/E,KAGpCM,EAAQ2E,gCAAkC,SAASC,GAClDjC,EAAQS,EAAQwB,IAGjB5E,EAAQ6E,uCAAyC,SAASD,GACzDjC,EAAQiB,EAAUgB,IAGnB5E,EAAQ8E,iBAAmB,SAASF,GACnCjC,EAAQK,EAAS4B,EAAUjB,OAG5B,IAAIO,MACAZ,KACAa,EAAU,IA+Bd,OAAOnE,OAUW,kBAAXH,IAAyBA,EAAOC,IAAMD,EAAS,SAAS8B,GAAW/B,EAAOD,QAAUgC,EAAQjB,OAElGqE,SAAS,EAAEC,YAAY,IAAIC,GAAG,SAASvE,EAAQd,IAMjD,SAASC,GAAU,YACpBA,GAAO,SAASa,GAqCf,QAASwE,KACR,MAA0B,mBAAZC,UAAuC,OAAZA,SACZ,kBAArBA,SAAQC,SAGjB,QAASC,KACR,MAAoC,kBAArBC,mBAAmCA,kBACd,kBAA3BC,yBAAyCA,uBAGnD,QAASC,GAAqBF,GAM7B,QAASzC,KACR,GAAIhC,GAAI4E,CACRA,GAAY,OACZ5E,IARD,GAAI4E,GACAC,EAAOC,SAASC,eAAe,IAC/BrF,EAAI,GAAI+E,GAAiBzC,EAC7BtC,GAAEsF,QAAQH,GAAQI,eAAe,GAQjC,IAAInF,GAAI,CACR,OAAO,UAAUE,GAChB4E,EAAY5E,EACZ6E,EAAKK,KAAQpF,GAAK,GAtDpB,GAAIqF,GACAC,EAA2C,mBAAfC,aAA8BA,WAG1DhD,EAAW,SAASrC,EAAGsF,GAAM,MAAOD,YAAWrF,EAAGsF,IAClDC,EAAa,SAASjG,GAAK,MAAOkG,cAAalG,IAC/CsB,EAAO,SAAUZ,GAAK,MAAOoF,GAAmBpF,EAAG,GAGvD,IAAIqE,IACHzD,EAAO,SAAUZ,GAAK,MAAOsE,SAAQC,SAASvE,QAExC,IAAImF,EAAcX,IACxB5D,EAAO+D,EAAqBQ,OAEtB,KAAKC,EAAoB,CAC/B,GAAIK,GAAe5F,EACf6F,EAAQD,EAAa,QACzBpD,GAAW,SAAUrC,EAAGsF,GAAM,MAAOI,GAAMrD,SAASiD,EAAItF,IACxDuF,EAAaG,EAAMC,YACnB/E,EAAO8E,EAAME,WAAaF,EAAMG,aAGjC,OACCxD,SAAUA,EACVkD,WAAYA,EACZ3E,KAAMA,MAgCY,kBAAX5B,IAAyBA,EAAOC,IAAMD,EAAS,SAAS8B,GAAW/B,EAAOD,QAAUgC,EAAQjB,UAE/FiG,GAAG,SAASjG,EAAQd,IAKzB,SAASC,GAAU,YACpBA,GAAO,WAeN,QAAS6D,GAAYhE,GACpB,GAAIY,GAAiB,gBAANZ,IAAwB,OAANA,GAAcA,EAAEkH,MAAQlH,EAAEkH,MAAQ5C,EAAatE,EAChF,OAAOA,aAAakB,OAAQN,EAAIA,EAAI,6BASrC,QAAS0D,GAAazD,GACrB,GAAID,GAAIuG,OAAOtG,EAIf,OAHS,oBAAND,GAA2C,mBAATwG,QACpCxG,EAAIyG,EAAaxG,EAAGD,IAEdA,EAUR,QAASyG,GAAa9C,EAAG+C,GACxB,IACC,MAAOF,MAAKG,UAAUhD,GACrB,MAAMvE,GACP,MAAOsH,IA3CT,OACCtD,YAAaA,EACbM,aAAcA,EACd+C,aAAcA,MA6CI,kBAAXlH,IAAyBA,EAAOC,IAAMD,EAAS,SAAS8B,GAAW/B,EAAOD,QAAUgC,WAEvFuF,GAAG,SAASxG,EAAQd,IAKzB,SAASC,GAAU,YACpBA,GAAO,WAEN,MAAO,UAAqBsH,GAiB3B,QAASnH,GAAQoH,EAAUC,GAC1BrF,KAAKsF,SAAWF,IAAaG,EAAUF,EAAUG,EAAKJ,GAQvD,QAASI,GAAKJ,GAgBb,QAASK,GAAgBxD,GACxBoD,EAAQK,QAAQzD,GAOjB,QAAS0D,GAAeC,GACvBP,EAAQQ,OAAOD,GAQhB,QAASE,GAAe7D,GACvBoD,EAAQU,OAAO9D,GAjChB,GAAIoD,GAAU,GAAIW,EAElB,KACCZ,EAASK,EAAgBE,EAAeG,GACvC,MAAOpI,GACRiI,EAAcjI,GAGf,MAAO2H,GA4CR,QAASK,GAAQzD,GAChB,MAAOgE,GAAUhE,GAAKA,EACnB,GAAIjE,GAAQuH,EAAS,GAAIW,GAAMC,EAAWlE,KAQ9C,QAAS4D,GAAO5D,GACf,MAAO,IAAIjE,GAAQuH,EAAS,GAAIW,GAAM,GAAIE,GAASnE,KAOpD,QAASoE,KACR,MAAOC,GAQR,QAASC,KACR,MAAO,IAAIvI,GAAQuH,EAAS,GAAIS,IAoDjC,QAASQ,GAAUC,EAAQzI,GAC1B,GAAI0I,GAAQ,GAAIV,GAAQS,EAAOE,SAAUF,EAAOG,OAAOC,QACvD,OAAO,IAAI7I,GAAQuH,EAASmB,GAgB7B,QAASI,GAAIC,GACZ,MAAOC,GAAaC,EAAK,KAAMF,GAUhC,QAASG,GAASrI,EAAGkI,GACpB,MAAOC,GAAaG,EAAWtI,EAAGkI,GAGnC,QAASC,GAAaI,EAAQvI,EAAGkI,GAwBhC,QAASM,GAAM1I,EAAGsD,EAAGmD,GAChBA,EAASkC,UACZC,EAAWR,EAAUS,EAAU7I,EAAGyI,EAAOvI,EAAGoD,EAAGtD,GAAIyG,GAIrD,QAASoC,GAAS7I,EAAGsD,EAAGmD,GACvBqC,EAAQ9I,GAAKsD,EACI,MAAZyF,GACJtC,EAASuC,OAAO,GAAIC,GAAUH,IA1BhC,IAAK,GAAWxF,GANZoD,EAAuB,kBAANxG,GAAmBwI,EAAQG,EAE5CpC,EAAW,GAAIY,GACf0B,EAAUX,EAAShI,SAAW,EAC9B0I,EAAU,GAAIrH,OAAMsH,GAEf/I,EAAI,EAAMA,EAAIoI,EAAShI,SAAWqG,EAASkC,WAAY3I,EAC/DsD,EAAI8E,EAASpI,GAEH,SAANsD,GAAkBtD,IAAKoI,GAK3BQ,EAAWR,EAAU1B,EAAS1G,EAAGsD,EAAGmD,KAJjCsC,CAWJ,OAJe,KAAZA,GACFtC,EAASuC,OAAO,GAAIC,GAAUH,IAGxB,GAAIzJ,GAAQuH,EAASH,GAgB7B,QAASmC,GAAWR,EAAU1B,EAAS1G,EAAGsD,EAAGmD,GAC5C,GAAIyC,EAAc5F,GAAI,CACrB,GAAI6F,GAAIC,EAAwB9F,GAC5B3D,EAAIwJ,EAAEE,OAEA,KAAN1J,EACHwJ,EAAEG,KAAK5C,EAAS1G,EAAG,OAAQyG,GACjB9G,EAAI,EACd+G,EAAQ1G,EAAGmJ,EAAEnG,MAAOyD,IAEpBA,EAASuC,OAAOG,GAChBI,EAAenB,EAAUpI,EAAE,EAAGmJ,QAG/BzC,GAAQ1G,EAAGsD,EAAGmD,GAKhB,QAAS8C,GAAenB,EAAUoB,EAAO9C,GACxC,IAAI,GAAI1G,GAAEwJ,EAAOxJ,EAAEoI,EAAShI,SAAUJ,EACrCyJ,EAAcjC,EAAWY,EAASpI,IAAK0G,GAIzC,QAAS+C,GAAcN,EAAGzC,GACzB,GAAGyC,IAAMzC,EAAT,CAIA,GAAI/G,GAAIwJ,EAAEE,OACD,KAAN1J,EACFwJ,EAAEO,MAAMP,EAAG,OAAQA,EAAEQ,WACR,EAAJhK,GACTwJ,EAAEQ,aAkBJ,QAASC,GAAKxB,GACb,MAAuB,gBAAbA,IAAsC,OAAbA,EAC3BlB,EAAO,GAAI2C,WAAU,kCAKF,IAApBzB,EAAShI,OAAesH,IACP,IAApBU,EAAShI,OAAe2G,EAAQqB,EAAS,IACzC0B,EAAQ1B,GAGb,QAAS0B,GAAQ1B,GAChB,GACIpI,GAAGsD,EAAG6F,EADN1C,EAAW,GAAIY,EAEnB,KAAIrH,EAAE,EAAGA,EAAEoI,EAAShI,SAAUJ,EAE7B,GADAsD,EAAI8E,EAASpI,GACH,SAANsD,GAAkBtD,IAAKoI,GAA3B,CAKA,GADAe,EAAI3B,EAAWlE,GACE,IAAd6F,EAAEE,QAAe,CACnB5C,EAASuC,OAAOG,GAChBI,EAAenB,EAAUpI,EAAE,EAAGmJ,EAC9B,OAEAA,EAAEO,MAAMjD,EAAUA,EAASM,QAASN,EAASS,QAG/C,MAAO,IAAI7H,GAAQuH,EAASH,GAW7B,QAASe,GAAWlE,GACnB,MAAGgE,GAAUhE,GACLA,EAAEqD,SAASsB,OAEZiB,EAAc5F,GAAKyG,EAAoBzG,GAAK,GAAI2F,GAAU3F,GASlE,QAAS8F,GAAwB9F,GAChC,MAAOgE,GAAUhE,GAAKA,EAAEqD,SAASsB,OAAS8B,EAAoBzG,GAQ/D,QAASyG,GAAoBzG,GAC5B,IACC,GAAI0G,GAAgB1G,EAAE2G,IACtB,OAAgC,kBAAlBD,GACX,GAAIE,GAASF,EAAe1G,GAC5B,GAAI2F,GAAU3F,GAChB,MAAMvE,GACP,MAAO,IAAI0I,GAAS1I,IAQtB,QAAS6H,MAmDT,QAASuD,MAcT,QAAS9C,GAAQW,EAAUoC,GAC1B/K,EAAQgL,cAAchJ,KAAM+I,GAE5B/I,KAAKiJ,UAAY,OACjBjJ,KAAK2G,SAAWA,EAChB3G,KAAKqF,QAAU,OACfrF,KAAKsH,UAAW,EAqGjB,QAASpB,GAAMb,GACdrF,KAAKqF,QAAUA,EAuBhB,QAASwD,GAASD,EAAMM,GACvBlD,EAAQlH,KAAKkB,MACbkC,EAAMvB,QAAQ,GAAIwI,GAAeP,EAAMM,EAAUlJ,OAUlD,QAAS4H,GAAU3F,GAClBjE,EAAQgL,cAAchJ,MACtBA,KAAK2B,MAAQM,EAsBd,QAASmE,GAASnE,GACjBjE,EAAQgL,cAAchJ,MAEtBA,KAAKyB,KAAO2H,EACZpJ,KAAK2B,MAAQM,EACbjC,KAAKqB,SAAU,EACfrB,KAAKsB,UAAW,EAEhBtB,KAAKqJ,UAkCN,QAASC,GAAW1G,EAAWiE,GAC9B7G,KAAK4C,UAAYA,EACjB5C,KAAK6G,QAAUA,EAUhB,QAAS0C,GAAa3G,GACrB5C,KAAK4C,UAAYA,EA0BlB,QAAS4G,KACR,MAAO,IAAIpD,GAAS,GAAIoC,WAAU,kBASnC,QAASiB,GAAiBC,EAAcrE,GACvCrF,KAAK0J,aAAeA,EACpB1J,KAAKqF,QAAUA,EAWhB,QAASsE,GAAahI,EAAO0D,GAC5BrF,KAAKqF,QAAUA,EACfrF,KAAK2B,MAAQA,EAsBd,QAASwH,GAAeP,EAAMM,EAAU9D,GACvCpF,KAAK4J,MAAQhB,EACb5I,KAAKkJ,SAAWA,EAChBlJ,KAAKoF,SAAWA,EAYjB,QAASyE,GAAcjB,EAAMM,EAAUxD,EAASG,EAAQE,GACvD,IACC6C,EAAK9J,KAAKoK,EAAUxD,EAASG,EAAQE,GACpC,MAAOrI,GACRmI,EAAOnI,IAQT,QAASoM,GAAKjL,EAAGkL,EAAGC,EAAGC,GACtBjK,KAAKnB,EAAIA,EAAGmB,KAAK+J,EAAIA,EAAG/J,KAAKgK,EAAIA,EAAGhK,KAAKiK,GAAKA,EAC9CjK,KAAKoF,SAAW8E,EAChBlK,KAAK2G,SAAW3G,KAqBjB,QAASiG,GAAUhE,GAClB,MAAOA,aAAajE,GASrB,QAAS6J,GAAc5F,GACtB,OAAqB,gBAANA,IAA+B,kBAANA,KAA2B,OAANA,EAG9D,QAASkI,GAAiBtL,EAAGiJ,EAAGnB,EAAUyD,GACzC,MAAgB,kBAANvL,GACFuL,EAAKzC,OAAOG,IAGpB9J,EAAQqM,aAAavC,GACrBwC,EAAezL,EAAGiJ,EAAEnG,MAAOgF,EAAUyD,OACrCpM,GAAQuM,eAGT,QAASC,GAAiB3L,EAAGoD,EAAG6F,EAAGnB,EAAUyD,GAC5C,MAAgB,kBAANvL,GACFuL,EAAKzC,OAAOG,IAGpB9J,EAAQqM,aAAavC,GACrB2C,EAAgB5L,EAAGoD,EAAG6F,EAAEnG,MAAOgF,EAAUyD,OACzCpM,GAAQuM,eAMT,QAASG,GAAU7L,EAAGoD,EAAG6F,EAAGnB,EAAUyD,GACrC,MAAgB,kBAANvL,GACFuL,EAAKrE,OAAO9D,IAGpBjE,EAAQqM,aAAavC,GACrB6C,EAAe9L,EAAGoD,EAAG0E,EAAUyD,OAC/BpM,GAAQuM,eAGT,QAASpD,GAAUtI,EAAGJ,EAAGmM,GACxB,IACC,MAAO/L,GAAEJ,EAAGmM,GACX,MAAMlN,GACP,MAAOmI,GAAOnI,IAQhB,QAAS4M,GAAezL,EAAGoD,EAAG4I,EAAST,GACtC,IACCA,EAAKzC,OAAOxB,EAAWtH,EAAEC,KAAK+L,EAAS5I,KACtC,MAAMvE,GACP0M,EAAKzC,OAAO,GAAIvB,GAAS1I,KAO3B,QAAS+M,GAAgB5L,EAAGoD,EAAG6I,EAAGD,EAAST,GAC1C,IACCvL,EAAEC,KAAK+L,EAAS5I,EAAG6I,EAAGV,GACrB,MAAM1M,GACP0M,EAAKzC,OAAO,GAAIvB,GAAS1I,KAQ3B,QAASiN,GAAe9L,EAAGoD,EAAG4I,EAAST,GACtC,IACCA,EAAKrE,OAAOlH,EAAEC,KAAK+L,EAAS5I,IAC3B,MAAMvE,GACP0M,EAAKrE,OAAOrI,IAId,QAASqN,GAAQC,EAAQC,GACxBA,EAAMvK,UAAYwK,EAAaF,EAAOtK,WACtCuK,EAAMvK,UAAUyK,YAAcF,EAG/B,QAAShE,GAAIhF,EAAG6I,GACf,MAAOA,GAGR,QAAS7J,MAp2BT,GAAIiB,GAAQiD,EAAYzF,UAEpBwL,EAAeE,OAAOC,QACzB,SAASC,GACR,QAASL,MAET,MADAA,GAAMvK,UAAY4K,EACX,GAAIL,GA0DbjN,GAAQ0H,QAAUA,EAClB1H,EAAQ6H,OAASA,EACjB7H,EAAQqI,MAAQA,EAEhBrI,EAAQuN,OAAShF,EACjBvI,EAAQsH,SAAWa,EAmDnBnI,EAAQ0C,UAAUkI,KAAO,SAAS4C,EAAaC,EAAYC,GAC1D,GAAIjF,GAASzG,KAAKsF,SACd0C,EAAQvB,EAAOG,OAAOoB,OAE1B,IAA4B,kBAAhBwD,IAA8BxD,EAAQ,GAC1B,kBAAfyD,IAAqC,EAARzD,EAErC,MAAO,IAAIhI,MAAKmL,YAAY5F,EAASkB,EAGtC,IAAIkF,GAAI3L,KAAK4L,SACTlF,EAAQiF,EAAErG,QAId,OAFAmB,GAAOoF,MAAMnF,EAAOD,EAAOE,SAAU6E,EAAaC,EAAYC,GAEvDC,GASR3N,EAAQ0C,UAAU,SAAW,SAAS+K,GACrC,MAAOzL,MAAK4I,KAAK,OAAQ6C,IAQ1BzN,EAAQ0C,UAAUkL,OAAS,WAC1B,MAAOpF,GAAUxG,KAAKsF,SAAUtF,KAAKmL,cAUtCnN,EAAQ8I,IAAMA,EACd9I,EAAQuK,KAAOA,EACfvK,EAAQ8N,UAAY5E,EAgFpBlJ,EAAQ+N,gBAAkB7D,EAkH1B3C,EAAQ7E,UAAUsL,KACfzG,EAAQ7E,UAAUiH,OAClBpC,EAAQ7E,UAAUqF,OAClBR,EAAQ7E,UAAUuL,KAClB1G,EAAQ7E,UAAU4H,UAClB/C,EAAQ7E,UAAU2I,QAClBpI,EAEHsE,EAAQ7E,UAAUwL,OAAS,EAE3B3G,EAAQ7E,UAAUsH,MAAQ,WACzB,MAAOhI,MAAKkM,QAQb3G,EAAQ7E,UAAUkG,KAAO,WAExB,IADA,GAAIkB,GAAI9H,KACY,SAAd8H,EAAEzC,SACPyC,EAAIA,EAAEzC,OAEP,OAAOyC,IAGRvC,EAAQ7E,UAAUmL,MAAQ,SAAS5B,EAAItD,EAAUwF,EAAWC,EAAUC,GACrErM,KAAKgM,MACJ5G,SAAU6E,EACVtD,SAAUA,EACVwF,UAAWA,EACXC,SAAUA,EACVC,SAAUA,KAIZ9G,EAAQ7E,UAAU2H,MAAQ,SAAS1B,EAAUwF,EAAWC,EAAUC,GACjErM,KAAK6L,MAAM3B,EAAgBvD,EAAUwF,EAAWC,EAAUC,IAG3D9G,EAAQ7E,UAAUuH,KAAO,SAASpJ,EAAGkL,EAAGC,EAAGC,GAC1CjK,KAAKgM,KAAK,GAAIlC,GAAKjL,EAAGkL,EAAGC,EAAGC,KAS7Bc,EAAQxF,EAASuD,GAEjBA,EAAepI,UAAUiH,OAAS,SAASG,GAC1CA,EAAEmE,OAGH,IAAI/B,GAAiB,GAAIpB,EAezBiC,GAAQxF,EAASS,GAEjBA,EAAQtF,UAAUwL,OAAS,EAE3BlG,EAAQtF,UAAUgF,QAAU,SAASzD,GACpCjC,KAAK2H,OAAOxB,EAAWlE,KAGxB+D,EAAQtF,UAAUmF,OAAS,SAAS5D,GAChCjC,KAAKsH,UAIRtH,KAAK2H,OAAO,GAAIvB,GAASnE,KAG1B+D,EAAQtF,UAAUkG,KAAO,WACxB,IAAK5G,KAAKsH,SACT,MAAOtH,KAKR,KAFA,GAAI8H,GAAI9H,KAEa,SAAd8H,EAAEzC,SAER,GADAyC,EAAIA,EAAEzC,QACFyC,IAAM9H,KACT,MAAOA,MAAKqF,QAAUmE,GAIxB,OAAO1B,IAGR9B,EAAQtF,UAAUG,IAAM,WACvB,GAAIyL,GAAItM,KAAKiJ,UACT5D,EAAUrF,KAAK4G,MACnB5G,MAAKiJ,UAAY,MAEjB,KAAK,GAAItK,GAAI,EAAGA,EAAI2N,EAAEvN,SAAUJ,EAC/B0G,EAAQ2G,KAAKM,EAAE3N,KAIjBqH,EAAQtF,UAAUiH,OAAS,SAAStC,GAChCrF,KAAKsH,WAIRtH,KAAKsH,UAAW,EAChBtH,KAAKqF,QAAUA,EACO,SAAnBrF,KAAKiJ,WACP/G,EAAMvB,QAAQX,MAGK,SAAjBA,KAAK6G,SACPxB,EAAQgE,QAAQrJ,KAAK6G,WAIvBb,EAAQtF,UAAUsL,KAAO,SAAStC,GAC9B1J,KAAKsH,SACPpF,EAAMvB,QAAQ,GAAI8I,GAAiBC,EAAc1J,KAAKqF,UAEhC,SAAnBrF,KAAKiJ,UACPjJ,KAAKiJ,WAAaS,GAElB1J,KAAKiJ,UAAU1H,KAAKmI,IAQvB1D,EAAQtF,UAAUqF,OAAS,SAAS9D,GAC/BjC,KAAKsH,UACRpF,EAAMvB,QAAQ,GAAIgJ,GAAa1H,EAAGjC,QAIpCgG,EAAQtF,UAAUuL,KAAO,SAASpF,GACjC,GAAImD,GAAuB,mBAAZnD,GAA0B7G,KAAK6G,QAAUA,CACxD7G,MAAKsH,UAAYtH,KAAKqF,QAAQuB,OAAOqF,KAAKjC,IAG3ChE,EAAQtF,UAAU2I,QAAU,SAASxC,GACpC7G,KAAKsH,UAAYtH,KAAKqF,QAAQuB,OAAOyC,QAAQxC,IAG9Cb,EAAQtF,UAAU4H,UAAY,WAC7BtI,KAAKsH,UAAYtH,KAAKqF,QAAQuB,OAAO0B,aAYtCyC,EAAQxF,EAASW,GAEjBA,EAAMxF,UAAUsL,KAAO,SAAStC,GAC/BxH,EAAMvB,QAAQ,GAAI8I,GAAiBC,EAAc1J,QAGlDkG,EAAMxF,UAAU2I,QAAU,SAASxC,GAClC7G,KAAK4G,OAAOyC,QAAQxC,IAGrBX,EAAMxF,UAAU4H,UAAY,WAC3BtI,KAAK4G,OAAO0B,aAcbyC,EAAQ/E,EAAS6C,GAYjBkC,EAAQxF,EAASqC,GAEjBA,EAAUlH,UAAUwL,OAAS,EAE7BtE,EAAUlH,UAAUuH,KAAO,SAASpJ,EAAGkL,EAAGC,EAAGC,GAC5CO,EAAiB3L,EAAGkL,EAAG/J,KAAMgK,EAAGC,IAGjCrC,EAAUlH,UAAUsL,KAAO,SAASO,GACnCpC,EAAiBoC,EAAKJ,UAAWnM,KAAMuM,EAAK5F,SAAU4F,EAAKnH,UAG5D,IAAIgE,GAAU,CAkBd2B,GAAQxF,EAASa,GAEjBA,EAAS1F,UAAUwL,OAAS,GAE5B9F,EAAS1F,UAAUuH,KAAO,SAASpJ,EAAGkL,EAAGC,EAAGC,GAC3CA,EAAGtC,OAAO3H,OAGXoG,EAAS1F,UAAUsL,KAAO,SAASO,GACN,kBAAlBA,GAAKH,UACdpM,KAAKsI,YAEN6B,EAAiBoC,EAAKH,SAAUpM,KAAMuM,EAAK5F,SAAU4F,EAAKnH,WAG3DgB,EAAS1F,UAAU2I,QAAU,SAASxC,GACrC3E,EAAMpB,WAAW,GAAIwI,GAAWtJ,KAAM6G,KAGvCT,EAAS1F,UAAU4H,UAAY,WAC3BtI,KAAKqB,UAGRrB,KAAKqB,SAAU,EACfa,EAAMpB,WAAW,GAAIyI,GAAavJ,SAGnCoG,EAAS1F,UAAUuL,KAAO,SAASpF,GAClC7I,EAAQ8E,iBAAiB9C,KAAkB,SAAZ6G,EAAqB7G,KAAK6G,QAAUA,IAQpEyC,EAAW5I,UAAUG,IAAM,WACtBb,KAAK4C,UAAUvB,UAClBrB,KAAK4C,UAAUtB,UAAW,EAC1BtD,EAAQ2E,gCAAgC3C,KAAK4C,UAAW5C,KAAK6G,WAQ/D0C,EAAa7I,UAAUG,IAAM,WACzBb,KAAK4C,UAAUtB,UACjBtD,EAAQ6E,uCAAuC7C,KAAK4C,YAQtD5E,EAAQgL,cACLhL,EAAQqM,aACRrM,EAAQuM,YACRvM,EAAQ2E,gCACR3E,EAAQ6E,uCACR7E,EAAQ8E,iBACR7B,CAIH,IAAIuL,GAAwB,GAAIjH,GAC5Be,EAAwB,GAAItI,GAAQuH,EAASiH,EAyMjD,OAxLA/C,GAAiB/I,UAAUG,IAAM,WAChCb,KAAKqF,QAAQuB,OAAOoF,KAAKhM,KAAK0J,eAY/BC,EAAajJ,UAAUG,IAAM,WAC5B,GAAIyL,GAAItM,KAAKqF,QAAQ4D,SACrB,IAAS,SAANqD,EAIH,IAAK,GAAItC,GAAGrL,EAAI,EAAGA,EAAI2N,EAAEvN,SAAUJ,EAClCqL,EAAIsC,EAAE3N,GACN+L,EAAUV,EAAEqC,SAAUrM,KAAK2B,MAAO3B,KAAKqF,QAAS2E,EAAErD,SAAUqD,EAAE5E,WAiBhE+D,EAAezI,UAAUG,IAAM,WAI9B,QAAS4L,GAASxK,GAAK6F,EAAEpC,QAAQzD,GACjC,QAASyK,GAAQzK,GAAM6F,EAAEjC,OAAO5D,GAChC,QAAS0K,GAAQ1K,GAAM6F,EAAE/B,OAAO9D,GALhC,GAAI6F,GAAI9H,KAAKoF,QACbyE,GAAc7J,KAAK4J,MAAO5J,KAAKkJ,SAAUuD,EAAUC,EAASC,IAyB7D7C,EAAKpJ,UAAUyL,UAAY,SAASlK,GACnCjC,KAAKnB,EAAEC,KAAKkB,KAAKgK,EAAGhK,KAAK+J,EAAG9H,EAAGjC,KAAKiK,KAGrCH,EAAKpJ,UAAU0L,SAAW,SAASnK,GAClCjC,KAAKiK,GAAGpE,OAAO5D,IAGhB6H,EAAKpJ,UAAU2L,SAAW,SAASpK,GAClCjC,KAAKiK,GAAGlE,OAAO9D,IA8GTjE,MAGW,kBAAXH,IAAyBA,EAAOC,IAAMD,EAAS,SAAS8B,GAAW/B,EAAOD,QAAUgC,gBAElF,IACV,KAGD,SAAUiN,UAo/CV,QAASC,QAAOC,SAAUF,SAAUG,MAElC,GAAIC,eAAgBC,OAAOC,QAC3BD,QAAOC,SAAW,SAASC,EAAMC,EAAMC,GAClB,gBAARF,KACTE,EAAUD,EACVA,EAAOD,GAITJ,KAAKM,QAAUA,EACfN,KAAKO,SAAWF,EAElB,KACEG,KAAK,sCAAwCR,KAAKI,MAAQ,IAAIK,QAAQ,IAAK,KAAQ,MAAQV,SAAW,0BAExG,MAAMpP,GAGJ,MAFc,eAAVA,EAAEyP,MAAmC,aAAVzP,EAAEyP,QAC/BzP,EAAE+P,QAAU,eAAiBV,KAAKI,MAAQJ,KAAKW,SAAW,MAAShQ,EAAE+P,SACjE/P,EAGRuP,OAAOC,SAAWF,cAxgDpBW,yBAA2BvC,OAAOwC,gBAAkB,SAASC,GAC3D,MAAOA,GAAIC,UAGb,IAAIC,2BACH,WACC,IACQ3C,OAAO4C,kBAAmB,UAC9BD,yBAA2B3C,OAAO4C,gBAEpC,MAAOtQ,GACPqQ,yBAA2B,SAAUF,EAAKI,EAAMC,GAC9C,IACEL,EAAII,GAAQC,EAAIvM,OAASuM,EAAIC,IAAIrP,KAAK+O,GAExC,MAAMnQ,UAKZ0Q,iBAAmBhD,OAAOC,QAAU,SAAS9M,EAAG8P,GAC9C,QAASC,MAGT,GAFAA,EAAE5N,UAAYnC,EAEQ,gBAAZ,GACR,IAAK0P,OAAQI,GACPA,EAAME,eAAe,QACvBD,EAAEL,MAAQI,EAAMJ,MAItB,OAAO,IAAIK,IA2Gb,WA+BE,QAASE,GAAWrB,GAClB,OACEsB,OAAQ,UACRtB,KAAMA,EACNuB,YACAC,gBACAC,aASJ,QAASC,GAAWC,EAAQ3B,EAAM4B,GAChC,MAAO,IAAI/Q,GAAQgR,GACjBC,KAAMF,EAAQrB,QAAU,QAAU,SAClCoB,OAAQA,EACRI,WAAY/B,EAEZgC,eAAgBJ,GAAWA,EAAQH,aACnCQ,aAAcL,EAAQM,OACtBC,cAAeP,EAAQrB,WAK3B,QAAS6B,GAAYT,EAAQU,EAASC,EAAaC,GAEjD,MAAO,IAAI1R,GAAQ,SAAS0H,GAC1BA,EAAQoJ,EAAOa,UAAUC,UAAUJ,EAASC,EAAaC,MAG1D9G,KAAK,SAASuE,GACb,GAAIJ,EACJ,IAAI+B,EAAOe,QAAQ1C,GAKjB,MAJAJ,GAAOyB,EAAWrB,GAClBJ,EAAK0B,OAAS,SAEd1B,EAAKnP,OAASkR,EAAOe,QAAQ1C,GACtBJ,CAGT,KAAK,GAAIpO,GAAI,EAAGmR,EAAIhB,EAAOiB,MAAMhR,OAAY+Q,EAAJnR,EAAOA,IAE9C,GADAoO,EAAO+B,EAAOiB,MAAMpR,GAChBoO,EAAKI,MAAQA,EAGjB,MAAOJ,EAQT,OALAA,GAAOyB,EAAWrB,GAClB2B,EAAOiB,MAAMxO,KAAKwL,GAElBiD,EAAgBlB,EAAQ/B,GAEjBA,IAKX,QAASiD,GAAgBlB,EAAQ/B,GAC/BkD,EAAenB,EAAQ/B,EACrB/O,EAAQ0H,UAEPkD,KAAK,WACJ,MAAOkG,GAAOa,UAAUO,QAAS/C,KAAMJ,EAAKI,KAAMyB,SAAU7B,EAAK6B,cAMvE,QAASqB,GAAenB,EAAQ/B,EAAMpB,GACpCwE,EAAmBrB,EAAQ/B,EACzBpB,EAEC/C,KAAK,SAAS8E,GAEb,MAAmB,WAAfX,EAAK0B,QAET1B,EAAKW,QAAUA,EAERoB,EAAOa,UAAUS,OAAQjD,KAAMJ,EAAKI,KAAMyB,SAAU7B,EAAK6B,SAAUlB,QAASA,KAJnF,UAYN,QAASyC,GAAmBrB,EAAQ/B,EAAMpB,GACxCA,EAEC/C,KAAK,SAASyG,GACb,MAAmB,WAAftC,EAAK0B,OAEFK,EAAOa,UAAUU,WAAYlD,KAAMJ,EAAKI,KAAMyB,SAAU7B,EAAK6B,SAAUlB,QAASX,EAAKW,QAAS2B,OAAQA,IAF7G,SAMDzG,KAAK,SAASyG,GACb,MAAmB,WAAftC,EAAK0B,QAET1B,EAAKsC,OAASA,EACPP,EAAOa,UAAUW,aAAcnD,KAAMJ,EAAKI,KAAMyB,SAAU7B,EAAK6B,SAAUlB,QAASX,EAAKW,QAAS2B,OAAQA,KAH/G,SAODzG,KAAK,SAAS2H,GACb,GAAmB,WAAfxD,EAAK0B,OAAT,CAGA,GAA0B+B,SAAtBD,EACFxD,EAAKW,QAAUX,EAAKW,SAAW,wBAAyB+C,EAAU,IAGlE1D,EAAK2D,eAAgB,EACrB7D,OAAOiC,EAAOa,UAAUgB,UAAU5D,GAAOH,SAAUG,OAEhD,CAAA,GAAgC,gBAArBwD,GAMd,KAAM/H,WAAU,mCALhBuE,GAAKO,SAAWiD,EAAkBnD,SAClCL,EAAK6D,QAAUL,EAAkBK,QACjC7D,EAAK2D,eAAgB,EAMvB3D,EAAK4B,eAIL,KAAK,GAHDrB,GAAWP,EAAKO,SAEhBuD,KACKlS,EAAI,EAAGmR,EAAIxC,EAASvO,OAAY+Q,EAAJnR,EAAOA,KAAK,SAAU6Q,EAASsB,GAClED,EAAatP,KACXgO,EAAYT,EAAQU,EAASzC,EAAKI,KAAMJ,EAAKW,SAG5C9E,KAAK,SAASmI,GAab,GALAhE,EAAK4B,aAAamC,IAChBE,IAAKxB,EACL7N,MAAOoP,EAAQ5D,MAGK,UAAlB4D,EAAQtC,OAEV,IAAK,GADDC,GAAW3B,EAAK2B,SAASuC,WACpBtS,EAAI,EAAGmR,EAAIpB,EAAS3P,OAAY+Q,EAAJnR,EAAOA,IAC1CuS,EAAiBxC,EAAS/P,GAAIoS,QAOrCzD,EAAS3O,GAAIA,EAEhB,OAAOX,GAAQ8I,IAAI+J,MAIpBjI,KAAK,WAMJmE,EAAK0B,OAAS,QAGd,KAAK,GADDC,GAAW3B,EAAK2B,SAASuC,WACpBtS,EAAI,EAAGmR,EAAIpB,EAAS3P,OAAY+Q,EAAJnR,EAAOA,IAC1CwS,EAAoBzC,EAAS/P,GAAIoO,KAIpC,SAAS,SAASqE,GAEjBrE,EAAK0B,OAAS,SACd1B,EAAKsE,UAAYD,CAGjB,KAAK,GADD1C,GAAW3B,EAAK2B,SAASuC,WACpBtS,EAAI,EAAGmR,EAAIpB,EAAS3P,OAAY+Q,EAAJnR,EAAOA,IAC1C2S,EAAc5C,EAAS/P,GAAIoO,EAAMqE,KAUvC,QAASpC,GAA6BuC,GACpC,MAAO,UAAS7L,GACd,GAAIoJ,GAASyC,EAAUzC,OACnB3B,EAAOoE,EAAUrC,WACjBD,EAAOsC,EAAUtC,IAErB,IAAIH,EAAOe,QAAQ1C,GACjB,KAAM,IAAI3E,WAAU,IAAM2E,EAAO,uCAInC,KAAK,GADDqE,GACK7S,EAAI,EAAGmR,EAAIhB,EAAOiB,MAAMhR,OAAY+Q,EAAJnR,EAAOA,IAC9C,GAAImQ,EAAOiB,MAAMpR,GAAGwO,MAAQA,EAE1B,MADAqE,GAAe1C,EAAOiB,MAAMpR,GACrB6S,EAAa9C,SAAS,GAAG+C,KAAK7I,KAAK,WACxClD,EAAQ8L,IAKd,IAAIzE,GAAOyB,EAAWrB,EAEtBJ,GAAK6B,SAAW2C,EAAUpC,cAE1B,IAAIuC,GAAUC,EAAc7C,EAAQ/B,EAEpC+B,GAAOiB,MAAMxO,KAAKwL,GAElBrH,EAAQgM,EAAQD,MAEJ,UAARxC,EACFe,EAAgBlB,EAAQ/B,GAET,SAARkC,EACPgB,EAAenB,EAAQ/B,EAAM/O,EAAQ0H,QAAQ6L,EAAUjC,iBAIvDvC,EAAKW,QAAU6D,EAAUjC,cACzBa,EAAmBrB,EAAQ/B,EAAM/O,EAAQ0H,QAAQ6L,EAAUnC,iBAWjE,QAASuC,GAAc7C,EAAQ8C,GAC7B,GAAIF,IACF5C,OAAQA,EACRiB,SACA6B,aAAcA,EACdC,aAAc,EAOhB,OALAH,GAAQD,KAAO,GAAIzT,GAAQ,SAAS0H,EAASG,GAC3C6L,EAAQhM,QAAUA,EAClBgM,EAAQ7L,OAASA,IAEnBqL,EAAiBQ,EAASE,GACnBF,EAGT,QAASR,GAAiBQ,EAAS3E,GAGjC,IAAK,GAAIpO,GAAI,EAAGmR,EAAI4B,EAAQ3B,MAAMhR,OAAY+Q,EAAJnR,EAAOA,IAC/C,GAAI+S,EAAQ3B,MAAMpR,IAAMoO,EACtB,MAEJ2E,GAAQ3B,MAAMxO,KAAKwL,GACnBA,EAAK2B,SAASnN,KAAKmQ,GAGA,UAAf3E,EAAK0B,QACPiD,EAAQG,cAKV,KAAK,GAFD/C,GAAS4C,EAAQ5C,OAEZnQ,EAAI,EAAGmR,EAAI/C,EAAK4B,aAAa5P,OAAY+Q,EAAJnR,EAAOA,IAAK,CACxD,GAAIwO,GAAOJ,EAAK4B,aAAahQ,GAAGgD,KAEhC,KAAImN,EAAOe,QAAQ1C,GAGnB,IAAK,GAAI2E,GAAI,EAAGC,EAAIjD,EAAOiB,MAAMhR,OAAYgT,EAAJD,EAAOA,IAC9C,GAAIhD,EAAOiB,MAAM+B,GAAG3E,MAAQA,EAA5B,CAGA+D,EAAiBQ,EAAS5C,EAAOiB,MAAM+B,GACvC,SASN,QAASE,GAAON,GACd,GAAIlP,IAAQ,CACZ,KACEyP,EAAKP,EAAS,SAAS3E,EAAMqE,GAC3BE,EAAcI,EAAS3E,EAAMqE,GAC7B5O,GAAQ,IAGZ,MAAM9E,GACJ4T,EAAcI,EAAS,KAAMhU,GAC7B8E,GAAQ,EAEV,MAAOA,GAIT,QAAS2O,GAAoBO,EAAS3E,GAQpC,GAFA2E,EAAQG,iBAEJH,EAAQG,aAAe,GAA3B,CAIA,GAAID,GAAeF,EAAQE,YAK3B,IAAIF,EAAQ5C,OAAOa,UAAUiB,WAAY,EAAO,CAE9C,IAAK,GADDb,MAAWkB,OAAOS,EAAQ3B,OACrBpR,EAAI,EAAGmR,EAAIC,EAAMhR,OAAY+Q,EAAJnR,EAAOA,IAAK,CAC5C,GAAIoO,GAAOgD,EAAMpR,EACjBoO,GAAKnP,OAAUmP,EAAK2D,eAGlBvD,KAAMJ,EAAKI,KACXvP,OAAQsU,MACRC,WAAW,IAJXvU,OAAQsU,OAMVnF,EAAK0B,OAAS,SACd2D,EAAWV,EAAQ5C,OAAQ/B,GAE7B,MAAO2E,GAAQhM,QAAQkM,GAIzB,GAAIS,GAASL,EAAON,EAEhBW,IAKJX,EAAQhM,QAAQkM,IAIlB,QAASN,GAAcI,EAAS3E,EAAMqE,GACpC,GAAItC,GAAS4C,EAAQ5C,MAEjB4C,GAAQ3B,MAAM,GAAG5C,MAAQJ,EAAKI,OAChCiE,EAAMkB,EAAWlB,EAAK,kBAAoBrE,EAAKI,KAAO,WAAauE,EAAQ3B,MAAM,GAAG5C,KAAO,SAAWuE,EAAQ3B,MAAM,GAAGrC,SAAW,aAAe,OAEnJ0D,EAAMkB,EAAWlB,EAAK,kBAAoBrE,EAAKI,KAAO,SAAWJ,EAAKW,SAAW,aAAe,KAGhG,KAAK,GADDqC,GAAQ2B,EAAQ3B,MAAMkB,WACjBtS,EAAI,EAAGmR,EAAIC,EAAMhR,OAAY+Q,EAAJnR,EAAOA,IAAK,CAC5C,GAAIoO,GAAOgD,EAAMpR,EAGjBmQ,GAAOa,UAAU4C,OAASzD,EAAOa,UAAU4C,WACQ,IAA/C1Q,EAAQ/C,KAAKgQ,EAAOa,UAAU4C,OAAQxF,IACxC+B,EAAOa,UAAU4C,OAAOhR,KAAKwL,EAE/B,IAAIyF,GAAY3Q,EAAQ/C,KAAKiO,EAAK2B,SAAUgD,EAG5C,IADA3E,EAAK2B,SAAS5M,OAAO0Q,EAAW,GACJ,GAAxBzF,EAAK2B,SAAS3P,OAAa,CAC7B,GAAI0T,GAAmB5Q,EAAQ/C,KAAK4S,EAAQ5C,OAAOiB,MAAOhD,EAClC,KAApB0F,GACFf,EAAQ5C,OAAOiB,MAAMjO,OAAO2Q,EAAkB,IAGpDf,EAAQ7L,OAAOuL,GAIjB,QAASgB,GAAWtD,EAAQ/B,GAE1B,GAAI+B,EAAOa,UAAU+C,MAAO,CACrB5D,EAAOa,UAAUI,QACpBjB,EAAOa,UAAUI,SACnB,IAAI4C,KACJ5F,GAAK4B,aAAaiE,QAAQ,SAASC,GACjCF,EAAOE,EAAI7B,KAAO6B,EAAIlR,QAExBmN,EAAOa,UAAUI,MAAMhD,EAAKI,OAC1BA,KAAMJ,EAAKI,KACXC,KAAML,EAAK4B,aAAamE,IAAI,SAASD,GAAM,MAAOA,GAAI7B,MACtD2B,OAAQA,EACRjF,QAASX,EAAKW,QACdkB,SAAU7B,EAAK6B,SACfS,OAAQtC,EAAKsC,OACb0D,KAAMhG,EAAK2D,cAAgB,cAAgB,WAI3C3D,EAAKI,OAEP2B,EAAOe,QAAQ9C,EAAKI,MAAQJ,EAAKnP,OAEnC,IAAIoV,GAAYnR,EAAQ/C,KAAKgQ,EAAOiB,MAAOhD,EAC1B,KAAbiG,GACFlE,EAAOiB,MAAMjO,OAAOkR,EAAW,EACjC,KAAK,GAAIrU,GAAI,EAAGmR,EAAI/C,EAAK2B,SAAS3P,OAAY+Q,EAAJnR,EAAOA,IAC/CqU,EAAYnR,EAAQ/C,KAAKiO,EAAK2B,SAAS/P,GAAGoR,MAAOhD,GAChC,IAAbiG,GACFjG,EAAK2B,SAAS/P,GAAGoR,MAAMjO,OAAOkR,EAAW,EAE7CjG,GAAK2B,SAAS5M,OAAO,EAAGiL,EAAK2B,SAAS3P,QAUxC,QAASkU,GAAmBlG,EAAMgD,EAAOmD,GAKvC,GAJAA,EAAOnG,EAAKoG,YAAcD,EAAOnG,EAAKoG,gBAIa,IAA/CtR,EAAQ/C,KAAKoU,EAAOnG,EAAKoG,YAAapG,GAA1C,CAIAmG,EAAOnG,EAAKoG,YAAY5R,KAAKwL,EAE7B,KAAK,GAAIpO,GAAI,EAAGmR,EAAIC,EAAMhR,OAAY+Q,EAAJnR,EAAOA,IAIvC,IAAK,GAHDyU,GAAUrD,EAAMpR,GAGXmT,EAAI,EAAGA,EAAI/E,EAAK4B,aAAa5P,OAAQ+S,IAC5C,GAAIsB,EAAQjG,MAAQJ,EAAK4B,aAAamD,GAAGnQ,MAAO,CAM9C,GAAI0R,GAAoBtG,EAAKoG,YAAcC,EAAQ1C,eAAiB3D,EAAK2D,cAGzE,IAA2BF,SAAvB4C,EAAQD,YAA4BC,EAAQD,WAAaE,EAAmB,CAG9E,GAA2B7C,SAAvB4C,EAAQD,aACVD,EAAOE,EAAQD,YAAYrR,OAAOD,EAAQ/C,KAAKoU,EAAOE,EAAQD,YAAaC,GAAU,GAG5C,GAArCF,EAAOE,EAAQD,YAAYpU,QAC7B,KAAM,IAAIyJ,WAAU,kCAGxB4K,GAAQD,WAAaE,EAGvBJ,EAAmBG,EAASrD,EAAOmD,KAM3C,QAASI,GAAiB5B,EAAS3E,EAAMwG,GACvC,IACE,GAAI3V,GAASmP,EAAK6D,UAEpB,MAAMlT,GAEJ,WADA6V,GAAUxG,EAAMrP,GAGlB,MAAKE,IAAYA,YAAkB4V,GAG1B5V,MAFP2V,GAAUxG,EAAM,GAAIvE,WAAU,4CAMlC,QAASyJ,GAAKP,EAAS6B,GAErB,GAAIzE,GAAS4C,EAAQ5C,MAErB,IAAK4C,EAAQ3B,MAAMhR,OAAnB,CAWA,GAAImU,MACAtB,EAAeF,EAAQ3B,MAAM,EACjC6B,GAAauB,WAAa,EAC1BF,EAAmBrB,EAAcF,EAAQ3B,MAAOmD,EAMhD,KAAK,GAHDO,GAAsB7B,EAAalB,eAAiBwC,EAAOnU,OAAS,EAG/DJ,EAAIuU,EAAOnU,OAAS,EAAGJ,GAAK,EAAGA,IAAK,CAE3C,IAAK,GADD+U,GAAQR,EAAOvU,GACVmT,EAAI,EAAGA,EAAI4B,EAAM3U,OAAQ+S,IAAK,CACrC,GAAI/E,GAAO2G,EAAM5B,EAGjB,IAAI2B,EACFE,EAAsB5G,EAAM2E,EAAQ3B,MAAOjB,OAGxC,CACH,GAAIlR,GAAS0V,EAAiB5B,EAAS3E,EAAMwG,EAC7C,KAAK3V,EACH,MACFmP,GAAKnP,QACHuP,KAAMJ,EAAKI,KACXvP,OAAQA,GAEVmP,EAAK0B,OAAS,SAEhB2D,EAAWtD,EAAQ/B,GAIrB0G,GAAuBA,IAO3B,QAASG,GAAwBzG,EAAM2B,GACrC,GAAI+E,GAAgB/E,EAAO+E,aAC3B,OAAOA,GAAc1G,KAAU0G,EAAc1G,IAC3CA,KAAMA,EACNwB,gBACA/Q,OAAQ,GAAI4V,GACZM,eAKJ,QAASH,GAAsB5G,EAAMgD,EAAOjB,GAC1C,IAAI/B,EAAKnP,OAAT,CAGA,GAAIA,GAASmP,EAAKnP,OAASgW,EAAwB7G,EAAKI,KAAM2B,GAC1DiF,EAAYhH,EAAKnP,OAAOA,OAExBoW,EAAgBjH,EAAKM,QAAQvO,KAAK8N,SAAU,SAASO,EAAMxL,GAI7D/D,EAAOqW,QAAS,EAChBF,EAAU5G,GAAQxL,CAElB,KAAK,GAAIhD,GAAI,EAAGmR,EAAIlS,EAAOkW,UAAU/U,OAAY+Q,EAAJnR,EAAOA,IAAK,CACvD,GAAIuV,GAAiBtW,EAAOkW,UAAUnV,EACtC,KAAKuV,EAAeD,OAAQ,CAC1B,GAAIE,GAAgBtS,EAAQ/C,KAAKoV,EAAevF,aAAc/Q,EAC9DsW,GAAeE,QAAQD,GAAeJ,IAK1C,MADAnW,GAAOqW,QAAS,EACTtS,GAIT/D,GAAOwW,QAAUJ,EAAcI,QAC/BxW,EAAOgT,QAAUoD,EAAcpD,OAI/B,KAAK,GAAIjS,GAAI,EAAGmR,EAAI/C,EAAK4B,aAAa5P,OAAY+Q,EAAJnR,EAAOA,IAAK,CACxD,GAAI0V,GAAUtH,EAAK4B,aAAahQ,GAAGgD,MAC/B2S,EAAYxF,EAAOe,QAAQwE,EAI/B,KAAKC,EAEH,IAAK,GAAIxC,GAAI,EAAGA,EAAI/B,EAAMhR,OAAQ+S,IAC5B/B,EAAM+B,GAAG3E,MAAQkH,IAIhBtE,EAAM+B,GAAGlU,OAMZ0W,EAAYV,EAAwBS,EAASvF,IAL7C6E,EAAsB5D,EAAM+B,GAAI/B,EAAOjB,GACvCwF,EAAYvE,EAAM+B,GAAGlU,QAUvB0W,GAAUR,WACZlW,EAAO+Q,aAAapN,KAAK+S,GACzBA,EAAUR,UAAUvS,KAAK3D,IAIzBA,EAAO+Q,aAAapN,KAAK,MAIvB3D,EAAOwW,QAAQzV,IACjBf,EAAOwW,QAAQzV,GAAG2V,EAAU1W,QAGhCmP,EAAK0B,OAAS,UAYhB,QAAS8F,GAAqBzF,EAAQ/B,GAIpC,MADAyH,GAAkBzH,EAAKnP,UAAYkR,GAC5B/B,EAAKnP,OAAOA,OAYrB,QAAS6W,GAAU7W,GACjB,IACEA,EAAOgT,QAAQ9R,KAAK8N,UAEtB,MAAMlP,GACJ,MAAOA,IAMX,QAAS8W,GAAkB5W,EAAQ8W,EAAM5F,GACvC,GAAI6F,GAAMC,EAAgBhX,EAAQ8W,EAAM5F,EACxC,IAAI6F,EACF,KAAMA,GAGV,QAASC,GAAgBhX,EAAQ8W,EAAM5F,GACrC,IAAIlR,EAAOuU,WAAcvU,EAAO+Q,aAAhC,CAGA+F,EAAKnT,KAAK3D,EAKV,KAAK,GAFD+W,GADAvH,EAAOxP,EAAO+Q,aAGThQ,EAAI,EAAGmR,EAAI1C,EAAKrO,OAAY+Q,EAAJnR,EAAOA,IAAK,CAC3C,GAAIkU,GAAMzF,EAAKzO,EAGf,IAAKkU,GAE0B,IAA3BhR,EAAQ/C,KAAK4V,EAAM7B,KACrB8B,EAAMC,EAAgB/B,EAAK6B,EAAM5F,IAI/B,MADA6F,GAAMrC,EAAWqC,EAAK,oBAAsB9B,EAAI1F,KAAO,MAM7D,GAAIvP,EAAO2U,OACT,MAAO,IAAI3T,OAAM,2BAEnB,KAAIhB,EAAOuU,UAgBX,MAbAvU,GAAOuU,WAAY,EACnBwC,EAAMF,EAAU7W,GACZ+W,EACF/W,EAAO2U,QAAS,EAETnH,OAAOyJ,mBAIdzJ,OAAOyJ,kBAAkBjX,EAAOA,QAGlCA,EAAOgT,QAAUJ,OACVmE,GAGT,QAASrC,GAAWqC,EAAKG,GAKvB,MAJIH,aAAe/V,OACjB+V,EAAIlH,QAAUqH,EAAMH,EAAIlH,QAExBkH,EAAMG,EAAMH,EACPA,EAMT,QAASI,GAAOhG,GACd,GAAsB,gBAAXA,GACT,KAAM,IAAIvG,WAAU,4BAElBuG,GAAQa,YACV5P,KAAK4P,UAAYb,EAAQa,WACvBb,EAAQmB,SACVlQ,KAAKkQ,OAASnB,EAAQmB,QACpBnB,EAAQqB,QACVpQ,KAAKoQ,MAAQrB,EAAQqB,OACnBrB,EAAQsB,YACVrQ,KAAKqQ,UAAYtB,EAAQsB,WACvBtB,EAAQuB,cACVtQ,KAAKsQ,YAAcvB,EAAQuB,aAE7BtQ,KAAKgV,SACHrF,UAAW3P,KACX+P,SACAF,WACAoF,kBACApB,kBAIF7F,EAAehO,KAAM,UACnBmO,IAAK,WACH,MAAOvB,aAOb,QAAS4G,MAGT,QAAS0B,GAAoBpG,EAAQ3B,EAAMgI,GACzC,GAAIF,GAAiBnG,EAAOkG,QAAQC,cACpC,OAAOA,GAAe9H,GAAQgI,EAAQvM,KAAK,SAASwM,GAElD,MADAH,GAAe9H,GAAQqD,OAChB4E,GACN,SAAS1X,GAEV,KADAuX,GAAe9H,GAAQqD,OACjB9S,IAvyBV,GAAIM,GAAU4O,SAAS5O,SAAWU,QAAQ,wBACtCkO,UAASrK,UACXA,QAAQ8S,OAAS9S,QAAQ8S,QAAU,aAGrC,IAAIxT,GAAUzB,MAAMM,UAAUmB,SAAW,SAASyT,GAChD,IAAK,GAAI3W,GAAI,EAAG4W,EAAUvV,KAAKjB,OAAYwW,EAAJ5W,EAAaA,IAClD,GAAIqB,KAAKrB,KAAO2W,EACd,MAAO3W,EAGX,OAAO,IAELqP,EAAiBD,yBAyGjB0C,EAAU,CAqrBdsE,GAAOrU,WAELyK,YAAa4J,EAEblX,OAAQ,SAASsP,EAAMkC,EAAQN,GAE7B,GAAI/O,KAAKgV,QAAQC,eAAe9H,GAC9B,KAAM,IAAI3E,WAAU,6BACtB,OAAO0M,GAAoBlV,KAAMmN,EAAM,GAAInP,GAAQgR,GACjDC,KAAM,YACNH,OAAQ9O,KAAKgV,QACb9F,WAAY/B,EACZgC,eAAgBJ,GAAWA,EAAQH,aACnCQ,aAAcC,EACdC,cAAeP,GAAWA,EAAQrB,aAItC8H,SAAU,SAASrI,GACjB,MAAOnN,MAAKgV,QAAQnF,QAAQ1C,SAAenN,MAAKgV,QAAQnF,QAAQ1C,IAAQ,GAI1EgB,IAAK,SAAS6C,GACZ,MAAKhR,MAAKgV,QAAQnF,QAAQmB,IAE1BwD,EAAkBxU,KAAKgV,QAAQnF,QAAQmB,MAAUhR,MAC1CA,KAAKgV,QAAQnF,QAAQmB,GAAKpT,QAHjC,QAMF6X,IAAK,SAAStI,GACZ,QAASnN,KAAKgV,QAAQnF,QAAQ1C,IAGhCuI,SAAU,SAASvI,EAAM4B,GAEvB,GAAIY,GAAY3P,IAGhB,OAAOhC,GAAQ0H,QAAQiK,EAAUC,UAAUzC,EAAM4B,GAAWA,EAAQ5B,KAAM4B,GAAWA,EAAQrB,UAC5F9E,KAAK,SAASuE,GACb,GAAI2B,GAASa,EAAUqF,OAEvB,OAAIlG,GAAOe,QAAQ1C,IACjBqH,EAAkB1F,EAAOe,QAAQ1C,MAAW2B,EAAOkG,SAC5ClG,EAAOe,QAAQ1C,GAAMvP,QAGvBkR,EAAOmG,eAAe9H,IAAS+H,EAAoBvF,EAAWxC,EACnE0B,EAAWC,EAAQ3B,EAAM4B,OACxBnG,KAAK,SAASmE,GAEb,aADO+B,GAAOmG,eAAe9H,GACtBoH,EAAqBzF,EAAQ/B,SAM5CA,KAAM,SAASI,GACb,MAAInN,MAAKgV,QAAQnF,QAAQ1C,IACvBqH,EAAkBxU,KAAKgV,QAAQnF,QAAQ1C,MAAWnN,KAAKgV,SAChDhX,EAAQ0H,QAAQ1F,KAAKgV,QAAQnF,QAAQ1C,GAAMvP,SAE7CoC,KAAKgV,QAAQC,eAAe9H,IAAS+H,EAAoBlV,KAAMmN,EAAM0B,EAAW7O,KAAKgV,QAAS7H,QAGvGvP,OAAQ,SAASyR,EAAQN,GACvB,GAAIhC,GAAOyB,GACXzB,GAAKW,QAAUqB,GAAWA,EAAQrB,OAClC,IAAIgE,GAAUC,EAAc3R,KAAKgV,QAASjI,GACtC4I,EAAgB3X,EAAQ0H,QAAQ2J,GAChCP,EAAS9O,KAAKgV,QACdrJ,EAAI+F,EAAQD,KAAK7I,KAAK,WACxB,MAAO2L,GAAqBzF,EAAQ/B,IAGtC,OADAoD,GAAmBrB,EAAQ/B,EAAM4I,GAC1BhK,GAGTiK,UAAW,SAAU/H,GACnB,GAAkB,gBAAPA,GACT,KAAM,IAAIrF,WAAU,kBAItB,IAAI4M,GAAI,GAAI5B,EAEZ,KAAK,GAAIxC,KAAOnD,IACd,SAAWmD,GACThD,EAAeoH,EAAGpE,GAChB6E,cAAc,EACdC,YAAY,EACZ3H,IAAK,WACH,MAAON,GAAImD,OAGdA,EAML,OAHI5F,QAAOyJ,mBACTzJ,OAAOyJ,kBAAkBO,GAEpBA,GAGTW,IAAK,SAAS5I,EAAMvP,GAClB,KAAMA,YAAkB4V,IACtB,KAAM,IAAIhL,WAAU,cAAgB2E,EAAO,6BAC7CnN,MAAKgV,QAAQnF,QAAQ1C,IACnBvP,OAAQA,IAQZgS,UAAW,SAASzC,GAClB,MAAOA,IAGT+C,OAAQ,SAASnD,GACf,MAAOA,GAAKI,MAGdiD,MAAO,WACL,KAAM,IAAI5H,WAAU,0BAGtB6H,UAAW,SAAStD,GAClB,MAAOA,GAAKsC,QAGdiB,YAAa,aAIf,IAAI4B,GAAa6C,EAAOrU,UAAUkV,SAEX,iBAAZjY,WACTC,OAAOD,QAAUoX,GAEnBnI,SAASoJ,QAAUpJ,SAASoJ,YAC5BpJ,SAASoJ,QAAQjB,OAASnI,SAASoJ,QAAQjB,QAAUA,EACrDnI,SAASoJ,QAAQ/X,OAAS2O,SAASoJ,QAAQ/X,QAAU2O,SACrDA,SAASqJ,eAAiBlB,KAO5B,SAAUA,GA0BR,QAASmB,GAAiBnJ,GACxB,GAAIgC,GAAU/O,KAAKmW,kBACnBpH,GAAQc,QAAU,cAClBd,EAAQqH,QAAS,EACjBrH,EAAQsH,WAAa,SACrBtH,EAAQuH,SAAWvJ,EAAKW,OAExB,IAAI6I,GAAW,GAAIC,GAAiBC,SAAS1H,GACzCM,EAASqH,EAAiB3J,EAAKsC,OAAQkH,EAAUxH,EAAQuH,SAM7D,OAFAjH,IAAU,QAIZ,QAASqH,GAAiBrH,EAAQkH,EAAUD,GAC1C,IACE,MAAOC,GAASI,QAAQtH,EAAQiH,GAElC,MAAM5Y,GAEJ,KAAMA,GAAE,IAIZ,QAASkZ,GAAa7J,GACpB,GAAIgC,GAAU/O,KAAK6W,cACnB9H,GAAQc,QAAU,SAClBd,EAAQ+H,UAAY,SACpB/H,EAAQuH,SAAWvJ,EAAKW,QACxBqB,EAAQgI,MAAO,EACfhI,EAAQiI,KAAM,CAEd,IAAI3H,GAASmH,EAAiBS,UAAUlK,EAAKsC,OAAQN,GAASgI,IAI9D,OAAO1H,GAAS,mBAAqBtC,EAAKW,QAAU,QA9DtD,GAAIwJ,GAAYV,EACZtT,EAA0B,mBAAVnF,SAAqD,mBAArBoZ,kBAGpDpC,GAAOrU,UAAUwW,WAAa,UAE9BnC,EAAOrU,UAAUiQ,UAAY,SAAS5D,GACpC,IAAKmK,IACoB,QAAnBlX,KAAKkX,YACPA,EAAaN,EACbJ,EAAmBtT,EAASxE,QAAQ,aAAekO,SAASwK,MAG5DF,EAAahB,EACbM,EAAmBtT,EAASxE,QAAQ,WAAakO,SAASyK,UAGvDb,GACH,KAAM,IAAIhO,WAAU,qDAGxB,OAAO,0BAA4BuE,EAAKW,QAAU,KAAOwJ,EAAWpY,KAAKkB,KAAM+M,KA6ChFH,SAASqJ,gBAcZ,WAQE,QAASqB,GAASC,GAChB,GAAInC,GAAIvQ,OAAO0S,GAAK/J,QAAQ,aAAc,IAAIgK,MAAM,6GAEpD,OAAQpC,IACNqC,KAAWrC,EAAE,IAAM,GACnBsC,SAAWtC,EAAE,IAAM,GACnBuC,UAAWvC,EAAE,IAAM,GACnBwC,KAAWxC,EAAE,IAAM,GACnByC,SAAWzC,EAAE,IAAM,GACnB0C,KAAW1C,EAAE,IAAM,GACnB2C,SAAW3C,EAAE,IAAM,GACnB4C,OAAW5C,EAAE,IAAM,GACnB6C,KAAW7C,EAAE,IAAM,IACjB,KAGN,QAAS8C,GAAkBC,GACzB,GAAIC,KAUJ,OATAD,GAAM3K,QAAQ,kBAAmB,IAC9BA,QAAQ,iBAAkB,KAC1BA,QAAQ,UAAW,QACnBA,QAAQ,aAAc,SAAU7B,GACrB,QAANA,EACFyM,EAAOC,MAEPD,EAAO7W,KAAKoK,KAEXyM,EAAOxR,KAAK,IAAI4G,QAAQ,MAA2B,MAApB2K,EAAMG,OAAO,GAAa,IAAM,IAGxE,QAASC,GAAcC,EAAMf,GAK3B,MAHAA,GAAOH,EAASG,GAAQ,IACxBe,EAAOlB,EAASkB,GAAQ,IAEhBf,GAASe,GAAef,EAAKC,UAAYc,EAAKd,WACnDD,EAAKC,UAAYD,EAAKE,UAAYF,EAAKE,UAAYa,EAAKb,WACzDO,EAAkBT,EAAKC,UAAYD,EAAKE,WAAyC,MAA5BF,EAAKM,SAASO,OAAO,GAAab,EAAKM,SAAYN,EAAKM,UAAaS,EAAKb,YAAca,EAAKT,SAAW,IAAM,IAAMS,EAAKT,SAASU,MAAM,EAAGD,EAAKT,SAASW,YAAY,KAAO,GAAKjB,EAAKM,SAAYS,EAAKT,WAC3PN,EAAKC,UAAYD,EAAKE,WAAaF,EAAKM,SAAWN,EAAKO,OAAUP,EAAKO,QAAUQ,EAAKR,QACvFP,EAAKQ,KAJiB,KAiQxB,QAASU,KACPhV,SAASiV,oBAAqB,mBAAoBD,GAAW,GAC7D5a,OAAO6a,oBAAqB,OAAQD,GAAW,GAC/CE,IAGF,QAASA,KAEP,IAAK,GADDC,GAAUnV,SAASoV,qBAAqB,UACnCpa,EAAI,EAAGA,EAAIma,EAAQ/Z,OAAQJ,IAAK,CACvC,GAAIyX,GAAS0C,EAAQna,EACrB,IAAmB,UAAfyX,EAAO4C,KAAkB,CAC3B,GAAI3J,GAAS+G,EAAO6C,UAAUC,OAAO,EAIrCtM,UAASK,OAAOrP,OAAOyR,GAAQ,SAAS,SAASsF,GAAOzQ,WAAW,WAAa,KAAMyQ,SA1T9F,GAiDIwE,GAjDAC,EAA2B,mBAATlb,OAAqD,mBAAtBiZ,oBAAqCjZ,eAAgBiZ,mBACtGkC,EAA6B,mBAAVtb,UAA0Bqb,EAC7CE,EAA8B,mBAAXnW,YAA4BA,QAAQoW,SAAS/B,MAAM,QACtExZ,EAAU4O,SAAS5O,SAAWU,QAAQ,wBAgD1C,IAA6B,mBAAlB8a,gBACTL,EAAmB,SAAS5B,EAAKkC,EAAS5T,GAsBxC,QAASkH,KACP0M,EAAQC,EAAIC,cAEd,QAASnX,KACPqD,EAAO6T,EAAIE,WAAa,KAAOrC,GAAO,aAzBxC,GAAImC,GAAM,GAAIF,gBACVK,GAAa,EACbC,GAAY,CAChB,MAAM,mBAAqBJ,IAAM,CAE/B,GAAIK,GAAc,uBAAuBC,KAAKzC,EAC1CwC,KACFF,EAAaE,EAAY,KAAOhc,OAAOkc,SAASrC,KAC5CmC,EAAY,KACdF,GAAcE,EAAY,KAAOhc,OAAOkc,SAASvC,WAGlDmC,GAAuC,mBAAlBK,kBACxBR,EAAM,GAAIQ,gBACVR,EAAIS,OAASpN,EACb2M,EAAIU,QAAU5X,EACdkX,EAAIW,UAAY7X,EAChBkX,EAAIY,WAAa,aACjBZ,EAAIa,QAAU,EACdT,GAAY,GASdJ,EAAIc,mBAAqB,WACA,IAAnBd,EAAIe,aACa,MAAff,EAAIjL,QAAiC,GAAdiL,EAAIjL,QAAeiL,EAAIC,aAChD5M,IAEAvK,MAINkX,EAAIgB,KAAK,MAAOnD,GAAK,GAEjBuC,GACF5V,WAAW,WACTwV,EAAIiB,QACH,GAELjB,EAAIiB,KAAK,WAGR,CAAA,GAAsB,mBAAXjc,SAkBd,KAAM,IAAI8J,WAAU,sCAjBpB,IAAIoS,EACJzB,GAAmB,SAAS5B,EAAKkC,EAAS5T,GACxC,GAAwB,SAApB0R,EAAI2B,OAAO,EAAG,GAChB,KAAM,2DAKR,OAJA0B,GAAKA,GAAMlc,QAAQ,MACnB6Y,EAAMA,EAAI2B,OAAO,GACbI,IACF/B,EAAMA,EAAI/J,QAAQ,MAAO,OACpBoN,EAAGC,SAAStD,EAAK,SAAS5C,EAAK5Q,GACpC,MAAI4Q,GACK9O,EAAO8O,OAEd8E,GAAQ1V,EAAO,OAQvB,GAAI+W,GAAe,SAASC,GAC1B,QAASD,GAAa/L,GAIpB,GAHAgM,EAASjc,KAAKkB,KAAM+O,OAGG,mBAAZkL,WAA2BA,SAASxC,KAAM,CACnD,GAAIA,GAAO7K,SAASqN,SAASxC,KAAKuD,MAAM,KAAK,GAAGA,MAAM,KAAK,EAC3Dhb,MAAKib,QAAUxD,EAAKyD,UAAU,EAAGzD,EAAKiB,YAAY,KAAO,OAEtD,CAAA,GAAsB,mBAAXvV,WAA0BA,QAAQgY,IAMhD,KAAM,IAAI3S,WAAU,yBALpBxI,MAAKib,QAAU,QAAU9X,QAAQgY,MAAQ,IACrC7B,IACFtZ,KAAKib,QAAUjb,KAAKib,QAAQzN,QAAQ,MAAO,MAK/CxN,KAAKob,OAAUC,IAAK,QAgJtB,MA7IAP,GAAahN,UAA0B,OAAbiN,EAAoBA,EAAWO,SAAS5a,UAClEoa,EAAapa,UAAY0N,iBAA+B,OAAb2M,EAAoBA,EAASra,UAAY,MAEpFqN,yBAAyB+M,EAAapa,UAAW,eAC/CiB,MAAOmZ,IAGT/M,yBAAyB+M,EAAapa,UAAW,UAC/CyN,IAAK,WACH,MAAOkL,GAAYtb,OAAUqb,EAAWlb,KAAO0O,UAGjDkJ,YAAY,IAGd/H,yBAAyB+M,EAAapa,UAAW,UAC/CyN,IAAK,WAAa,OAAO,GACzB2H,YAAY,IAGd/H,yBAAyB+M,EAAapa,UAAW,aAC/CiB,MAAO,SAASwL,EAAMoO,GACpB,GAAmB,gBAARpO,GACT,KAAM,IAAI3E,WAAU,+BAEtB,IAAIgT,GAAWrO,EAAK6N,MAAM,IAE1B,IAAuB,GAAnBQ,EAASzc,OACX,KAAM,IAAIyJ,WAAU,0BAGtB,IAAI7J,GAAI,EAEJ8c,GAAM,EAENC,EAAU,CACd,IAAmB,KAAfF,EAAS,GAAW,CAEtB,GADA7c,IACIA,GAAK6c,EAASzc,OAChB,KAAM,IAAIyJ,WAAU,wBAA0B2E,EAAO,IACvDsO,IAAM,MAEH,CACH,KAAsB,MAAfD,EAAS7c,IAEd,GADAA,IACIA,GAAK6c,EAASzc,OAChB,KAAM,IAAIyJ,WAAU,wBAA0B2E,EAAO,IAErDxO,KACF8c,GAAM,GACRC,EAAU/c,EAGZ,IAAK,GAAImT,GAAInT,EAAGmT,EAAI0J,EAASzc,OAAQ+S,IAAK,CACxC,GAAI6J,GAAUH,EAAS1J,EACvB,IAAe,IAAX6J,GAA4B,KAAXA,GAA6B,MAAXA,EACrC,KAAM,IAAInT,WAAU,wBAA0B2E,EAAO,KAGzD,IAAKsO,EACH,MAAOtO,EAGT,EAAA,GAAIyO,MACAC,GAAeN,GAAc,IAAIP,MAAM,IACvBa,GAAY9c,OAAS,EAAI2c,EAK7C,MAHAE,GAAkBA,EAAgB3K,OAAO4K,EAAY/Z,OAAO,EAAG+Z,EAAY9c,OAAS,EAAI2c,IACxFE,EAAkBA,EAAgB3K,OAAOuK,EAAS1Z,OAAOnD,EAAG6c,EAASzc,OAASJ,IAEvEid,EAAgBhV,KAAK,MAG9BkP,YAAY,EACZgG,UAAU,IAGZ/N,yBAAyB+M,EAAapa,UAAW,UAC/CiB,MAAO,SAASoL,GACd,GAKoBgP,GALhB5O,EAAOJ,EAAKI,KAKZ6O,EAAY,EAGhB,KAAK,GAAIrQ,KAAK3L,MAAKob,MAAO,CACxB,GAAIa,GAAYtQ,EAAEqP,MAAM,IACxB,IAAIiB,EAAUld,OAAS,EACrB,KAAM,IAAIyJ,WAAU,2CAGtB,IAAwB,GAApByT,EAAUld,QACZ,GAAIoO,GAAQxB,GAAKA,EAAE5M,OAASid,EAAUjd,OAAQ,CAC5Cid,EAAYrQ,CACZ,YAMEwB,GAAK+L,OAAO,EAAG+C,EAAU,GAAGld,SAAWkd,EAAU,IAAM9O,EAAK+L,OAAO/L,EAAKpO,OAASkd,EAAU,GAAGld,SAAWkd,EAAU,KACrHD,EAAYrQ,EACZoQ,EAAW5O,EAAK+L,OAAO+C,EAAU,GAAGld,OAAQoO,EAAKpO,OAASkd,EAAU,GAAGld,OAASkd,EAAU,GAAGld,SAKnG,GAAImd,GAAUlc,KAAKob,MAAMY,EAWzB,OAVID,KACFG,EAAUA,EAAQ1O,QAAQ,IAAKuO,IAM7B1C,IACF6C,EAAUA,EAAQ1O,QAAQ,KAAM,QAE3B+K,EAAcvY,KAAKib,QAASiB,IAGrCpG,YAAY,EACZgG,UAAU,IAGZ/N,yBAAyB+M,EAAapa,UAAW,SAC/CiB,MAAO,SAASoL,GACd,GAAI7O,GAAO8B,IACX,OAAO,IAAIhC,GAAQ,SAAS0H,EAASG,GACnCsT,EAAiBZ,EAAcra,EAAK+c,QAASlO,EAAKW,SAAU,SAAS2B,GACnE3J,EAAQ2J,IACPxJ,MAIPiQ,YAAY,EACZgG,UAAU,IAGLhB,GACPlO,SAASqJ,gBAEPhJ,EAAS,GAAI6N,EAUjB,IAPuB,gBAAZnd,WACTC,OAAOD,QAAUsP,GAEnBL,SAASK,OAASA,EAIdoM,GAAqD,mBAAjC1V,UAASoV,qBAAqC,CACpE,GAAIoD,GAAYxY,SAASoV,qBAAqB,SAC9CoD,GAAYA,EAAUA,EAAUpd,OAAS,GAuBb,aAAxB4E,SAAS8W,WACXvW,WAAW2U,GAEJlV,SAASyY,mBAChBzY,SAASyY,iBAAiB,mBAAoBzD,GAAW,GACzD5a,OAAOqe,iBAAiB,OAAQzD,GAAW,IAIzCwD,EAAUE,aAAa,cACzBte,OAAOoe,EAAUE,aAAa,qBAgChB,mBAAVte,QAAwBA,OAAsC,mBAArBoZ,mBACRjZ,KAAOD"} \ No newline at end of file diff --git a/dist/es6-module-loader.src.js b/dist/es6-module-loader.src.js index a47d57e..1b55b67 100644 --- a/dist/es6-module-loader.src.js +++ b/dist/es6-module-loader.src.js @@ -1512,8 +1512,7 @@ function logloads(loads) { // instead of load.kind, use load.isDeclarative load.isDeclarative = true; - // parse sets load.declare, load.depsList - loader.loaderObj.parse(load); + __eval(loader.loaderObj.transpile(load), __global, load); } else if (typeof instantiateResult == 'object') { load.depsList = instantiateResult.deps || []; @@ -2308,9 +2307,6 @@ function logloads(loads) { translate: function(load) { return load.source; }, - parse: function(load) { - throw new TypeError('Loader.parse is not implemented'); - }, // 26.3.3.18.5 instantiate: function(load) { } @@ -2329,47 +2325,42 @@ function logloads(loads) { })(); /* - * Traceur and 6to5 Parsing Code for Loader + * Traceur and 6to5 transpile hook for Loader */ (function(Loader) { - // parse function is used to parse a load record // Returns an array of ModuleSpecifiers - var parser, parserModule, parserName, parserOptionsName; + var transpiler, transpilerModule; + var isNode = typeof window == 'undefined' && typeof WorkerGlobalScope == 'undefined'; // use Traceur by default - Loader.prototype.parser = 'traceur'; - - Loader.prototype.parse = function(load) { - if (!parser) { - parserName = this.parser == '6to5' ? 'to5' : this.parser; + Loader.prototype.transpiler = 'traceur'; - // try to pick up parser from global or require - if (typeof window == 'undefined' && typeof WorkerGlobalScope == 'undefined') - parserModule = require(this.parser); - else - parserModule = __global[parserName]; + Loader.prototype.transpile = function(load) { + if (!transpiler) { + if (this.transpiler == '6to5') { + transpiler = to5Transpile; + transpilerModule = isNode ? require('6to5-core') : __global.to5; + } + else { + transpiler = traceurTranspile; + transpilerModule = isNode ? require('traceur') : __global.traceur; + } - if (!parserModule) - throw new TypeError('Include Traceur or 6to5 for module syntax support'); - - parser = this.parser == '6to5' ? to5Parse : traceurParse; + if (!transpilerModule) + throw new TypeError('Include Traceur or 6to5 for module syntax support.'); } - var source = parser.call(this, load); - - source = 'var __moduleAddress = "' + load.address + '";' + source; - - __eval(source, __global, load); + return 'var __moduleAddress = "' + load.address + '";' + transpiler.call(this, load); } - function traceurParse(load) { + function traceurTranspile(load) { var options = this.traceurOptions || {}; options.modules = 'instantiate'; options.script = false; options.sourceMaps = 'inline'; options.filename = load.address; - var compiler = new parserModule.Compiler(options); + var compiler = new transpilerModule.Compiler(options); var source = doTraceurCompile(load.source, compiler, options.filename); // add "!eval" to end of Traceur sourceURL @@ -2388,7 +2379,7 @@ function logloads(loads) { } } - function to5Parse(load) { + function to5Transpile(load) { var options = this.to5Options || {}; options.modules = 'system'; options.sourceMap = 'inline'; @@ -2396,7 +2387,7 @@ function logloads(loads) { options.code = true; options.ast = false; - var source = parserModule.transform(load.source, options).code; + var source = transpilerModule.transform(load.source, options).code; // add "!eval" to end of 6to5 sourceURL // I believe this does something? diff --git a/package.json b/package.json index c1bcac9..edcaf8f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "es6-module-loader", "description": "An ES6 Module Loader shim", - "version": "0.12.0", + "version": "0.13.0", "homepage": "https://github.com/ModuleLoader/es6-module-loader", "author": { "name": "Guy Bedford, Luke Hoban, Addy Osmani", @@ -63,9 +63,9 @@ "test:browser:perf": "karma start karma-benchmark.conf.js --single-run" }, "dependencies": { - "6to5-core": "~3.3.1", + "6to5-core": "~3.3.2", "grunt-contrib-uglify": "0.6.0", "traceur": "0.0.82", - "when": "^3.6.4" + "when": "^3.7.2" } } From 9c019283bcde579f664b8b56dcebb56bf2271205 Mon Sep 17 00:00:00 2001 From: Ryan Berdeen Date: Mon, 2 Feb 2015 14:31:08 -0500 Subject: [PATCH 165/482] fix link in readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7fd4c97..cf4f31b 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Dynamically loads ES6 modules in browsers and [NodeJS](#nodejs-use) with support This project implements dynamic module loading through `System` exactly to the previous ES6-specified loader API at [2014-08-24 ES6 Specification Draft Rev 27, Section 15](http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#august_24_2014_draft_rev_27) and will continue to track this API as it is re-drafted as a browser specification (currently most likely to be at https://github.com/whatwg/loader). -* Provides an asynchronous loader (`System.import`) to [dynamically load ES6 modules](##getting-started). +* Provides an asynchronous loader (`System.import`) to [dynamically load ES6 modules](#getting-started). * Supports both [Traceur](https://github.com/google/traceur-compiler) and [6to5](https://6to5.org/) for compiling ES6 modules and syntax into ES5 in the browser with source map support. * Fully supports [ES6 circular references and live bindings](https://github.com/ModuleLoader/es6-module-loader/wiki/Circular-References-&-Bindings). * Includes [`baseURL` and `paths` implementations](https://github.com/ModuleLoader/es6-module-loader/wiki/Configuring-the-Loader). From 9fd45635647dbdaad552ad89f83174d865658f36 Mon Sep 17 00:00:00 2001 From: Guy Bedford Date: Wed, 4 Feb 2015 21:38:55 +0200 Subject: [PATCH 166/482] update copyright --- LICENSE-MIT | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE-MIT b/LICENSE-MIT index 87dd93e..5dbb45c 100644 --- a/LICENSE-MIT +++ b/LICENSE-MIT @@ -1,4 +1,4 @@ -Copyright (c) 2013-2014 Guy Bedford, Luke Hoban, Addy Osmani +Copyright (c) 2013-2015 Guy Bedford, Luke Hoban, Addy Osmani Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation From db1171ad263baa3b17349ebb6d274ad61284dd54 Mon Sep 17 00:00:00 2001 From: guybedford Date: Fri, 6 Feb 2015 16:19:28 +0200 Subject: [PATCH 167/482] support multi-version traceur --- lib/index-traceur.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/index-traceur.js b/lib/index-traceur.js index a863ab4..8325061 100644 --- a/lib/index-traceur.js +++ b/lib/index-traceur.js @@ -1,5 +1,4 @@ -if (!global.traceur) - require('traceur'); +require('traceur'); var System = require('../dist/es6-module-loader.src'); From a8f91db7acec1b18934d2594ff679abc680d649f Mon Sep 17 00:00:00 2001 From: Douglas Duteil Date: Tue, 10 Feb 2015 10:28:15 +0100 Subject: [PATCH 168/482] chore(travis): test on nodejs 0.12 --- .travis.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0ae983f..058f588 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,8 +3,9 @@ git: depth: 1 language: node_js node_js: - - 0.10 - - 0.11 + - '0.10' + - '0.11' + - '0.12' env: global: - SAUCE_LABS=false PARSER=false OPTIONS="" From 7555659b0fa9c9877a2d516922ab1cfb767f11b5 Mon Sep 17 00:00:00 2001 From: guybedford Date: Tue, 10 Feb 2015 14:33:58 +0200 Subject: [PATCH 169/482] disable ie8 tests --- .travis.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 058f588..ff8c87c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -18,10 +18,10 @@ matrix: env: SAUCE_LABS=true PARSER="traceur" - node_js: "0.10" env: SAUCE_LABS=true PARSER="6to5" - - node_js: "0.10" - env: SAUCE_LABS=true PARSER="traceur" OPTIONS="--ie8" - - node_js: "0.10" - env: SAUCE_LABS=true PARSER="6to5" OPTIONS="--ie8" +# - node_js: "0.10" +# env: SAUCE_LABS=true PARSER="traceur" OPTIONS="--ie8" +# - node_js: "0.10" +# env: SAUCE_LABS=true PARSER="6to5" OPTIONS="--ie8" before_install: - export CHROME_BIN=chromium-browser - export DISPLAY=:99.0 From 0b63565ddf006a1b8b791d61c47c1e1604b6c143 Mon Sep 17 00:00:00 2001 From: Guy Bedford Date: Tue, 10 Feb 2015 15:51:21 +0200 Subject: [PATCH 170/482] remove npm update in travis --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ff8c87c..2dba9ef 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,7 +26,7 @@ before_install: - export CHROME_BIN=chromium-browser - export DISPLAY=:99.0 - sh -e /etc/init.d/xvfb start - - npm update -g +# - npm update -g - npm install -g karma-cli grunt-cli before_script: - grunt From 606f8e5351061be7d3cf7be25dfcf070fda64b21 Mon Sep 17 00:00:00 2001 From: guybedford Date: Thu, 12 Feb 2015 16:08:52 +0200 Subject: [PATCH 171/482] 0.13.1 --- .gitignore | 1 + dist/es6-module-loader-sans-promises.js | 2 +- dist/es6-module-loader.js | 2 +- package.json | 4 ++-- 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 2b4ae38..8215547 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ node_modules bower_components tmp coverage +.DS_Store diff --git a/dist/es6-module-loader-sans-promises.js b/dist/es6-module-loader-sans-promises.js index fe963c7..4a7ebd7 100644 --- a/dist/es6-module-loader-sans-promises.js +++ b/dist/es6-module-loader-sans-promises.js @@ -1,5 +1,5 @@ /* - * es6-module-loader v0.13.0 + * es6-module-loader v0.13.1 * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2015 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ diff --git a/dist/es6-module-loader.js b/dist/es6-module-loader.js index 332b878..d6ff733 100644 --- a/dist/es6-module-loader.js +++ b/dist/es6-module-loader.js @@ -1,5 +1,5 @@ /* - * es6-module-loader v0.13.0 + * es6-module-loader v0.13.1 * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2015 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ diff --git a/package.json b/package.json index edcaf8f..1b2999b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "es6-module-loader", "description": "An ES6 Module Loader shim", - "version": "0.13.0", + "version": "0.13.1", "homepage": "https://github.com/ModuleLoader/es6-module-loader", "author": { "name": "Guy Bedford, Luke Hoban, Addy Osmani", @@ -63,7 +63,7 @@ "test:browser:perf": "karma start karma-benchmark.conf.js --single-run" }, "dependencies": { - "6to5-core": "~3.3.2", + "6to5-core": "~3.5.3", "grunt-contrib-uglify": "0.6.0", "traceur": "0.0.82", "when": "^3.7.2" From f3d2ba31e794dbc3852c0e40b7bcf87467c9f177 Mon Sep 17 00:00:00 2001 From: guybedford Date: Fri, 13 Feb 2015 19:55:10 +0200 Subject: [PATCH 172/482] add back npm update --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 2dba9ef..ff8c87c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,7 +26,7 @@ before_install: - export CHROME_BIN=chromium-browser - export DISPLAY=:99.0 - sh -e /etc/init.d/xvfb start -# - npm update -g + - npm update -g - npm install -g karma-cli grunt-cli before_script: - grunt From 7877d55aae9849baf1f6e70f73332a022d87a94b Mon Sep 17 00:00:00 2001 From: guybedford Date: Fri, 13 Feb 2015 20:23:31 +0200 Subject: [PATCH 173/482] move grunt uglify to devDependencies --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 1b2999b..ab4aedf 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,6 @@ }, "dependencies": { "6to5-core": "~3.5.3", - "grunt-contrib-uglify": "0.6.0", "traceur": "0.0.82", "when": "^3.7.2" } From 48acf7e82f7049b8a577982888ff8913b1f367c2 Mon Sep 17 00:00:00 2001 From: guybedford Date: Tue, 17 Feb 2015 22:44:32 +0200 Subject: [PATCH 174/482] disable jsx support --- src/transpiler.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/transpiler.js b/src/transpiler.js index 1484830..57b91d8 100644 --- a/src/transpiler.js +++ b/src/transpiler.js @@ -60,6 +60,8 @@ options.filename = load.address; options.code = true; options.ast = false; + options.blacklist = options.blacklist || []; + options.blacklist.push('react'); var source = transpilerModule.transform(load.source, options).code; From 67f45bfc2f1b3e7f64ef49cefe489ff87be1c580 Mon Sep 17 00:00:00 2001 From: guybedford Date: Tue, 17 Feb 2015 23:09:46 +0200 Subject: [PATCH 175/482] Merge System.define correction --- src/loader.js | 6 ++++++ test/loader/master.js | 1 + test/system.spec.js | 30 ++++++++++++++++++++++++++++++ test/test.js | 28 ++++++++++++++++++++++++++++ 4 files changed, 65 insertions(+) create mode 100644 test/loader/master.js diff --git a/src/loader.js b/src/loader.js index e9041a9..ad6297d 100644 --- a/src/loader.js +++ b/src/loader.js @@ -345,6 +345,12 @@ function logloads(loads) { for (var i = 0, l = loader.loads.length; i < l; i++) { if (loader.loads[i].name == name) { existingLoad = loader.loads[i]; + + if(step == 'translate' && !existingLoad.source) { + existingLoad.address = stepState.moduleAddress; + proceedToTranslate(loader, existingLoad, Promise.resolve(stepState.moduleSource)); + } + return existingLoad.linkSets[0].done.then(function() { resolve(existingLoad); }); diff --git a/test/loader/master.js b/test/loader/master.js new file mode 100644 index 0000000..ec0c73a --- /dev/null +++ b/test/loader/master.js @@ -0,0 +1 @@ +import 'slave'; diff --git a/test/system.spec.js b/test/system.spec.js index 0be0c6a..36343e9 100644 --- a/test/system.spec.js +++ b/test/system.spec.js @@ -375,6 +375,36 @@ describe('System', function () { }); }); + + describe('#System.define', function () { + + it('should load System.define', function(done) { + var oldLocate = System.locate; + var slaveLocatePromise = new Promise(function(resolve, reject) { + + System.locate = function(load) { + if(load.name === 'slave') { + setTimeout(function() { + System.define('slave', 'var double = [1,2,3].map(i => i * 2);'); + resolve('slave.js'); + }, 1); + return slaveLocatePromise; + } + return oldLocate.apply(this, arguments); + }; + + }); + + System.import('test/loader/master').then(function(m) { + done() + }, done).then(reset, reset); + + function reset() { + System.locate = oldLocate; + } + }); + + }); describeIf( typeof window != 'undefined' && window.Worker, diff --git a/test/test.js b/test/test.js index d7b811b..30e35f6 100644 --- a/test/test.js +++ b/test/test.js @@ -441,6 +441,34 @@ function runTests() { }); }); + test('should load System.define', function(assert) { + var oldLocate = System.locate; + var slaveLocatePromise = new Promise(function(resolve, reject) { + + System.locate = function(load) { + if(load.name === 'slave') { + setTimeout(function() { + System.define('slave', 'var double = [1,2,3].map(i => i * 2);'); + resolve('slave.js'); + }, 1); + return slaveLocatePromise; + } + return oldLocate.apply(this, arguments); + }; + + }); + + System.import('loader/master').then(function() { + assert(true, true, 'Able to load'); + }, function(err) { + assert('Did not resolve'); + }).then(reset, reset); + + function reset() { + System.locate = oldLocate; + } + }); + var customModules = {}; var customFactories = {}; From e616a94378a93f087dabe03ab41b1bea91427416 Mon Sep 17 00:00:00 2001 From: guybedford Date: Tue, 17 Feb 2015 23:40:15 +0200 Subject: [PATCH 176/482] rename 6to5 to babel --- .travis.yml | 7 ++++--- karma.conf.js | 4 ++-- lib/{index-6to5.js => index-babel.js} | 2 +- package.json | 8 ++++---- src/transpiler.js | 16 ++++++++-------- test/{_node-6to5.js => _node-babel.js} | 4 ++-- test/system.spec.js | 4 ++-- test/{test-6to5.html => test-babel.html} | 6 +++--- test/test.js | 2 +- test/worker/{worker-6to5.js => worker-babel.js} | 4 ++-- 10 files changed, 29 insertions(+), 28 deletions(-) rename lib/{index-6to5.js => index-babel.js} (81%) rename test/{_node-6to5.js => _node-babel.js} (71%) rename test/{test-6to5.html => test-babel.html} (84%) rename test/worker/{worker-6to5.js => worker-babel.js} (73%) diff --git a/.travis.yml b/.travis.yml index ff8c87c..e814e7f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,22 +6,23 @@ node_js: - '0.10' - '0.11' - '0.12' + - 'iojs' env: global: - SAUCE_LABS=false PARSER=false OPTIONS="" matrix: - PARSER="traceur" - - PARSER="6to5" + - PARSER="babel" matrix: include: - node_js: "0.10" env: SAUCE_LABS=true PARSER="traceur" - node_js: "0.10" - env: SAUCE_LABS=true PARSER="6to5" + env: SAUCE_LABS=true PARSER="babel" # - node_js: "0.10" # env: SAUCE_LABS=true PARSER="traceur" OPTIONS="--ie8" # - node_js: "0.10" -# env: SAUCE_LABS=true PARSER="6to5" OPTIONS="--ie8" +# env: SAUCE_LABS=true PARSER="babel" OPTIONS="--ie8" before_install: - export CHROME_BIN=chromium-browser - export DISPLAY=:99.0 diff --git a/karma.conf.js b/karma.conf.js index 41a2afe..614e64e 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -35,9 +35,9 @@ module.exports = function(config) { var files = [ 'test/_helper.js', - [options['6to5'] ? 'node_modules/regenerator/runtime.js' : ''], + [options['babel'] ? 'node_modules/regenerator/runtime.js' : ''], - [!options.ie8 ? (!options['6to5'] ? 'node_modules/traceur/bin/traceur.js' : 'node_modules/6to5-core/browser.js') : ''], + [!options.ie8 ? (!options['babel'] ? 'node_modules/traceur/bin/traceur.js' : 'node_modules/babel-core/browser.js') : ''], 'dist/es6-module-loader' + (options.polyfill ? '' : '-sans-promises') + '.src.js', diff --git a/lib/index-6to5.js b/lib/index-babel.js similarity index 81% rename from lib/index-6to5.js rename to lib/index-babel.js index c970a06..d8cd982 100644 --- a/lib/index-6to5.js +++ b/lib/index-babel.js @@ -1,6 +1,6 @@ var System = require('../dist/es6-module-loader.src'); -System.transpiler = '6to5'; +System.transpiler = 'babel'; module.exports = { Loader: global.LoaderPolyfill, diff --git a/package.json b/package.json index ab4aedf..03c11c6 100644 --- a/package.json +++ b/package.json @@ -56,14 +56,14 @@ "main": "lib/index-traceur", "scripts": { "test": "npm run test:node && npm run test:browser", - "test:node": "mocha test/_node-traceur.js && mocha test/_node-6to5.js", - "test:browser": "npm run test:browser-traceur && npm run test:browser-6to5", + "test:node": "mocha test/_node-traceur.js && mocha test/_node-babel.js", + "test:browser": "npm run test:browser-traceur && npm run test:browser-babel", "test:browser-traceur": "karma start --single-run", - "test:browser-6to5": "karma start --single-run --6to5", + "test:browser-babel": "karma start --single-run --babel", "test:browser:perf": "karma start karma-benchmark.conf.js --single-run" }, "dependencies": { - "6to5-core": "~3.5.3", + "babel-core": "^4.1.1", "traceur": "0.0.82", "when": "^3.7.2" } diff --git a/src/transpiler.js b/src/transpiler.js index 57b91d8..e4fbd52 100644 --- a/src/transpiler.js +++ b/src/transpiler.js @@ -1,5 +1,5 @@ /* - * Traceur and 6to5 transpile hook for Loader + * Traceur and Babel transpile hook for Loader */ (function(Loader) { // Returns an array of ModuleSpecifiers @@ -11,9 +11,9 @@ Loader.prototype.transpile = function(load) { if (!transpiler) { - if (this.transpiler == '6to5') { - transpiler = to5Transpile; - transpilerModule = isNode ? require('6to5-core') : __global.to5; + if (this.transpiler == 'babel') { + transpiler = babelTranspile; + transpilerModule = isNode ? require('babel-core') : __global.babel; } else { transpiler = traceurTranspile; @@ -21,7 +21,7 @@ } if (!transpilerModule) - throw new TypeError('Include Traceur or 6to5 for module syntax support.'); + throw new TypeError('Include Traceur or Babel for module syntax support.'); } return 'var __moduleAddress = "' + load.address + '";' + transpiler.call(this, load); @@ -53,8 +53,8 @@ } } - function to5Transpile(load) { - var options = this.to5Options || {}; + function babelTranspile(load) { + var options = this.babelOptions || {}; options.modules = 'system'; options.sourceMap = 'inline'; options.filename = load.address; @@ -65,7 +65,7 @@ var source = transpilerModule.transform(load.source, options).code; - // add "!eval" to end of 6to5 sourceURL + // add "!eval" to end of Babel sourceURL // I believe this does something? return source + '\n//# sourceURL=' + load.address + '!eval'; } diff --git a/test/_node-6to5.js b/test/_node-babel.js similarity index 71% rename from test/_node-6to5.js rename to test/_node-babel.js index 055c72a..dd736ce 100644 --- a/test/_node-6to5.js +++ b/test/_node-babel.js @@ -6,9 +6,9 @@ require('./_helper'); require('regenerator/runtime'); -global.System = require('../lib/index-6to5').System; +global.System = require('../lib/index-babel').System; -System.parser = '6to5'; +System.parser = 'babel'; require('./system.spec'); diff --git a/test/system.spec.js b/test/system.spec.js index 36343e9..8a2ce8c 100644 --- a/test/system.spec.js +++ b/test/system.spec.js @@ -1,7 +1,7 @@ // -if (typeof to5 != 'undefined') - System.transpiler = '6to5'; +if (typeof babel != 'undefined') + System.transpiler = 'babel'; var ie = typeof window != 'undefined' && window.navigator.userAgent.match(/Trident/); diff --git a/test/test-6to5.html b/test/test-babel.html similarity index 84% rename from test/test-6to5.html rename to test/test-babel.html index a9a2ea1..14c2ad9 100644 --- a/test/test-6to5.html +++ b/test/test-babel.html @@ -5,8 +5,8 @@ - - + + ``` -To use 6to5, set the transpiler to `6to5` with the loader configuration: +To use Babel, set the transpiler to `babel` with the loader configuration: ```html ``` @@ -74,7 +74,7 @@ If using Traceur, these can be set with: System.traceurOptions = {...}; ``` -Or with 6to5: +Or with Babel: ```javascript System.to5Options = {...}; @@ -110,8 +110,8 @@ index.js: var System = require('es6-module-loader').System; /* * Include: - * System.transpiler = '6to5'; - * to use 6to5 instead of Traceur + * System.transpiler = 'babel'; + * to use Babel instead of Traceur */ System.import('some-module').then(function(m) { @@ -138,8 +138,8 @@ _Also, please don't edit files in the "dist" subdirectory as they are generated ## Testing - `npm run test:node` will use node to to run the tests -- `npm run test:browser` will run `npm run test:browser-6to5` and `npm run test:browser-traceur` -- `npm run test:browser-[transpiler]` use karma to run the tests with traceur or 6to5. +- `npm run test:browser` will run `npm run test:browser-babel` and `npm run test:browser-traceur` +- `npm run test:browser-[transpiler]` use karma to run the tests with Traceur or Babel. - `npm run test:browser:perf` will use karma to run benchmarks `npm run test:browser-[transpiler]` supports options after a double dash (`--`) : diff --git a/dist/es6-module-loader-sans-promises.js b/dist/es6-module-loader-sans-promises.js index 4a7ebd7..16bbe6f 100644 --- a/dist/es6-module-loader-sans-promises.js +++ b/dist/es6-module-loader-sans-promises.js @@ -1,8 +1,8 @@ /* - * es6-module-loader v0.13.1 + * es6-module-loader v0.14.0 * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2015 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(__global){function __eval(__source,__global,load){var __curRegister=System.register;System.register=function(a,b,c){"string"!=typeof a&&(c=b,b=a),load.declare=c,load.depsList=b};try{eval('(function() { var __moduleName = "'+(load.name||"").replace('"','"')+'"; '+__source+" \n }).call(__global);")}catch(e){throw("SyntaxError"==e.name||"TypeError"==e.name)&&(e.message="Evaluating "+(load.name||load.address)+"\n "+e.message),e}System.register=__curRegister}$__Object$getPrototypeOf=Object.getPrototypeOf||function(a){return a.__proto__};var $__Object$defineProperty;!function(){try{Object.defineProperty({},"a",{})&&($__Object$defineProperty=Object.defineProperty)}catch(a){$__Object$defineProperty=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),$__Object$create=Object.create||function(a,b){function c(){}if(c.prototype=a,"object"==typeof b)for(prop in b)b.hasOwnProperty(prop)&&(c[prop]=b[prop]);return new c},function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new A(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:c&&c.metadata||{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new A(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return e=a(c),e.status="linked",e.module=b.modules[c],e;for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,__eval(a.loaderObj.transpile(b),__global,b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k,l=0,m=g.loads.length;m>l;l++)if(g.loads[l].name==i)return k=g.loads[l],k.linkSets[0].done.then(function(){c(k)});var n=a(i);n.metadata=b.moduleMetadata;var o=h(g,n);g.loads.push(n),c(o.done),"locate"==j?d(g,n):"fetch"==j?e(g,n,A.resolve(b.moduleAddress)):(n.address=b.moduleAddress,f(g,n,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var d=0,e=b.length;e>d;d++)for(var f=b[d],g=0;g=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var E=x.prototype.newModule;"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(a){function b(a){var b=this.traceurOptions||{};b.modules="instantiate",b.script=!1,b.sourceMaps="inline",b.filename=a.address;var d=new f.Compiler(b),e=c(a.source,d,b.filename);return e+="!eval"}function c(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}function d(a){var b=this.to5Options||{};b.modules="system",b.sourceMap="inline",b.filename=a.address,b.code=!0,b.ast=!1;var c=f.transform(a.source,b).code;return c+"\n//# sourceURL="+a.address+"!eval"}var e,f,g="undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope;a.prototype.transpiler="traceur",a.prototype.transpile=function(a){if(!e&&("6to5"==this.transpiler?(e=d,f=g?require("6to5-core"):__global.to5):(e=b,f=g?require("traceur"):__global.traceur),!f))throw new TypeError("Include Traceur or 6to5 for module syntax support.");return'var __moduleAddress = "'+a.address+'";'+e.call(this,a)}}(__global.LoaderPolyfill),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); +!function(__global){function __eval(__source,__global,load){var __curRegister=System.register;System.register=function(a,b,c){"string"!=typeof a&&(c=b,b=a),load.declare=c,load.depsList=b};try{eval('(function() { var __moduleName = "'+(load.name||"").replace('"','"')+'"; '+__source+" \n }).call(__global);")}catch(e){throw("SyntaxError"==e.name||"TypeError"==e.name)&&(e.message="Evaluating "+(load.name||load.address)+"\n "+e.message),e}System.register=__curRegister}$__Object$getPrototypeOf=Object.getPrototypeOf||function(a){return a.__proto__};var $__Object$defineProperty;!function(){try{Object.defineProperty({},"a",{})&&($__Object$defineProperty=Object.defineProperty)}catch(a){$__Object$defineProperty=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),$__Object$create=Object.create||function(a,b){function c(){}if(c.prototype=a,"object"==typeof b)for(prop in b)b.hasOwnProperty(prop)&&(c[prop]=b[prop]);return new c},function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new A(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:c&&c.metadata||{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new A(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return e=a(c),e.status="linked",e.module=b.modules[c],e;for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,__eval(a.loaderObj.transpile(b),__global,b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k,l=0,m=g.loads.length;m>l;l++)if(g.loads[l].name==i)return k=g.loads[l],"translate"!=j||k.source||(k.address=b.moduleAddress,f(g,k,A.resolve(b.moduleSource))),k.linkSets[0].done.then(function(){c(k)});var n=a(i);n.metadata=b.moduleMetadata;var o=h(g,n);g.loads.push(n),c(o.done),"locate"==j?d(g,n):"fetch"==j?e(g,n,A.resolve(b.moduleAddress)):(n.address=b.moduleAddress,f(g,n,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var d=0,e=b.length;e>d;d++)for(var f=b[d],g=0;g=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var E=x.prototype.newModule;"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(a){function b(a){var b=this.traceurOptions||{};b.modules="instantiate",b.script=!1,b.sourceMaps="inline",b.filename=a.address;var d=new f.Compiler(b),e=c(a.source,d,b.filename);return e+="!eval"}function c(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}function d(a){var b=this.babelOptions||{};b.modules="system",b.sourceMap="inline",b.filename=a.address,b.code=!0,b.ast=!1,b.blacklist=b.blacklist||[],b.blacklist.push("react");var c=f.transform(a.source,b).code;return c+"\n//# sourceURL="+a.address+"!eval"}var e,f,g="undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope;a.prototype.transpiler="traceur",a.prototype.transpile=function(a){if(!e&&("babel"==this.transpiler?(e=d,f=g?require("babel-core"):__global.babel):(e=b,f=g?require("traceur"):__global.traceur),!f))throw new TypeError("Include Traceur or Babel for module syntax support.");return'var __moduleAddress = "'+a.address+'";'+e.call(this,a)}}(__global.LoaderPolyfill),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); //# sourceMappingURL=es6-module-loader-sans-promises.js.map \ No newline at end of file diff --git a/dist/es6-module-loader-sans-promises.js.map b/dist/es6-module-loader-sans-promises.js.map index 5f2c7d0..e8020ed 100644 --- a/dist/es6-module-loader-sans-promises.js.map +++ b/dist/es6-module-loader-sans-promises.js.map @@ -1 +1 @@ -{"version":3,"file":"es6-module-loader-sans-promises.js","sources":["es6-module-loader-sans-promises.src.js"],"names":["__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","e","message","address","$__Object$getPrototypeOf","Object","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","value","get","call","$__Object$create","create","o","props","F","prototype","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","Promise","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","resolve","loaderObj","normalize","then","modules","module","i","l","loads","length","push","proceedToLocate","proceedToFetch","locate","p","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","transpile","TypeError","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","all","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","existingLoad","done","linkSet","createLinkSet","startingLoad","loadingCount","reject","j","d","doLink","error","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","indexOf","linkIndex","splice","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","Error","preventExtensions","msg","Loader","this","_loader","importPromises","createImportPromise","promise","m","require","console","assert","Array","item","thisLen","constructor","define","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","exports","Reflect","global","LoaderPolyfill","traceurTranspile","traceurOptions","script","sourceMaps","filename","compiler","transpilerModule","Compiler","doTraceurCompile","compile","to5Transpile","to5Options","sourceMap","code","ast","transform","transpiler","isNode","window","WorkerGlobalScope","to5","traceur","parseURI","url","String","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","join","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","document","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","setTimeout","fetchTextFromURL","isWorker","self","isBrowser","isWindows","process","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","data","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"es6-module-loader-sans-promises.js","sources":["es6-module-loader-sans-promises.src.js"],"names":["__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","e","message","address","$__Object$getPrototypeOf","Object","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","value","get","call","$__Object$create","create","o","props","F","prototype","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","Promise","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","resolve","loaderObj","normalize","then","modules","module","i","l","loads","length","push","proceedToLocate","proceedToFetch","locate","p","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","transpile","TypeError","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","all","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","existingLoad","done","linkSet","createLinkSet","startingLoad","loadingCount","reject","j","d","doLink","error","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","indexOf","linkIndex","splice","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","Error","preventExtensions","msg","Loader","this","_loader","importPromises","createImportPromise","promise","m","require","console","assert","Array","item","thisLen","constructor","define","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","exports","Reflect","global","LoaderPolyfill","traceurTranspile","traceurOptions","script","sourceMaps","filename","compiler","transpilerModule","Compiler","doTraceurCompile","compile","babelTranspile","babelOptions","sourceMap","code","ast","blacklist","transform","transpiler","isNode","window","WorkerGlobalScope","babel","traceur","parseURI","url","String","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","join","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","document","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","setTimeout","fetchTextFromURL","isWorker","self","isBrowser","isWindows","process","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","data","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":";;;;;;CAAA,SAAUA,UA4/CV,QAASC,QAAOC,SAAUF,SAAUG,MAElC,GAAIC,eAAgBC,OAAOC,QAC3BD,QAAOC,SAAW,SAASC,EAAMC,EAAMC,GAClB,gBAARF,KACTE,EAAUD,EACVA,EAAOD,GAITJ,KAAKM,QAAUA,EACfN,KAAKO,SAAWF,EAElB,KACEG,KAAK,sCAAwCR,KAAKI,MAAQ,IAAIK,QAAQ,IAAK,KAAQ,MAAQV,SAAW,0BAExG,MAAMW,GAGJ,MAFc,eAAVA,EAAEN,MAAmC,aAAVM,EAAEN,QAC/BM,EAAEC,QAAU,eAAiBX,KAAKI,MAAQJ,KAAKY,SAAW,MAASF,EAAEC,SACjED,EAGRR,OAAOC,SAAWF,cAhhDpBY,yBAA2BC,OAAOC,gBAAkB,SAASC,GAC3D,MAAOA,GAAIC,UAGb,IAAIC,2BACH,WACC,IACQJ,OAAOK,kBAAmB,UAC9BD,yBAA2BJ,OAAOK,gBAEpC,MAAOT,GACPQ,yBAA2B,SAAUF,EAAKI,EAAMC,GAC9C,IACEL,EAAII,GAAQC,EAAIC,OAASD,EAAIE,IAAIC,KAAKR,GAExC,MAAMN,UAKZe,iBAAmBX,OAAOY,QAAU,SAASC,EAAGC,GAC9C,QAASC,MAGT,GAFAA,EAAEC,UAAYH,EAEQ,gBAAZ,GACR,IAAKP,OAAQQ,GACPA,EAAMG,eAAe,QACvBF,EAAET,MAAQQ,EAAMR,MAItB,OAAO,IAAIS,IA2Gb,WA+BE,QAASG,GAAW5B,GAClB,OACE6B,OAAQ,UACR7B,KAAMA,EACN8B,YACAC,gBACAC,aASJ,QAASC,GAAWC,EAAQlC,EAAMmC,GAChC,MAAO,IAAIC,GAAQC,GACjBC,KAAMH,EAAQ3B,QAAU,QAAU,SAClC0B,OAAQA,EACRK,WAAYvC,EAEZwC,eAAgBL,GAAWA,EAAQH,aACnCS,aAAcN,EAAQO,OACtBC,cAAeR,EAAQ3B,WAK3B,QAASoC,GAAYV,EAAQW,EAASC,EAAaC,GAEjD,MAAO,IAAIX,GAAQ,SAASY,GAC1BA,EAAQd,EAAOe,UAAUC,UAAUL,EAASC,EAAaC,MAG1DI,KAAK,SAASnD,GACb,GAAIJ,EACJ,IAAIsC,EAAOkB,QAAQpD,GAKjB,MAJAJ,GAAOgC,EAAW5B,GAClBJ,EAAKiC,OAAS,SAEdjC,EAAKyD,OAASnB,EAAOkB,QAAQpD,GACtBJ,CAGT,KAAK,GAAI0D,GAAI,EAAGC,EAAIrB,EAAOsB,MAAMC,OAAYF,EAAJD,EAAOA,IAE9C,GADA1D,EAAOsC,EAAOsB,MAAMF,GAChB1D,EAAKI,MAAQA,EAGjB,MAAOJ,EAQT,OALAA,GAAOgC,EAAW5B,GAClBkC,EAAOsB,MAAME,KAAK9D,GAElB+D,EAAgBzB,EAAQtC,GAEjBA,IAKX,QAAS+D,GAAgBzB,EAAQtC,GAC/BgE,EAAe1B,EAAQtC,EACrBwC,EAAQY,UAEPG,KAAK,WACJ,MAAOjB,GAAOe,UAAUY,QAAS7D,KAAMJ,EAAKI,KAAMgC,SAAUpC,EAAKoC,cAMvE,QAAS4B,GAAe1B,EAAQtC,EAAMkE,GACpCC,EAAmB7B,EAAQtC,EACzBkE,EAECX,KAAK,SAAS3C,GAEb,MAAmB,WAAfZ,EAAKiC,QAETjC,EAAKY,QAAUA,EAER0B,EAAOe,UAAUe,OAAQhE,KAAMJ,EAAKI,KAAMgC,SAAUpC,EAAKoC,SAAUxB,QAASA,KAJnF,UAYN,QAASuD,GAAmB7B,EAAQtC,EAAMkE,GACxCA,EAECX,KAAK,SAAST,GACb,MAAmB,WAAf9C,EAAKiC,OAEFK,EAAOe,UAAUgB,WAAYjE,KAAMJ,EAAKI,KAAMgC,SAAUpC,EAAKoC,SAAUxB,QAASZ,EAAKY,QAASkC,OAAQA,IAF7G,SAMDS,KAAK,SAAST,GACb,MAAmB,WAAf9C,EAAKiC,QAETjC,EAAK8C,OAASA,EACPR,EAAOe,UAAUiB,aAAclE,KAAMJ,EAAKI,KAAMgC,SAAUpC,EAAKoC,SAAUxB,QAASZ,EAAKY,QAASkC,OAAQA,KAH/G,SAODS,KAAK,SAASgB,GACb,GAAmB,WAAfvE,EAAKiC,OAAT,CAGA,GAA0BuC,SAAtBD,EACFvE,EAAKY,QAAUZ,EAAKY,SAAW,wBAAyB6D,EAAU,IAGlEzE,EAAK0E,eAAgB,EACrB5E,OAAOwC,EAAOe,UAAUsB,UAAU3E,GAAOH,SAAUG,OAEhD,CAAA,GAAgC,gBAArBuE,GAMd,KAAMK,WAAU,mCALhB5E,GAAKO,SAAWgE,EAAkBlE,SAClCL,EAAK6E,QAAUN,EAAkBM,QACjC7E,EAAK0E,eAAgB,EAMvB1E,EAAKmC,eAIL,KAAK,GAHD5B,GAAWP,EAAKO,SAEhBuE,KACKpB,EAAI,EAAGC,EAAIpD,EAASsD,OAAYF,EAAJD,EAAOA,KAAK,SAAUT,EAAS8B,GAClED,EAAahB,KACXd,EAAYV,EAAQW,EAASjD,EAAKI,KAAMJ,EAAKY,SAG5C2C,KAAK,SAASyB,GAab,GALAhF,EAAKmC,aAAa4C,IAChBE,IAAKhC,EACL3B,MAAO0D,EAAQ5E,MAGK,UAAlB4E,EAAQ/C,OAEV,IAAK,GADDC,GAAWlC,EAAKkC,SAASgD,WACpBxB,EAAI,EAAGC,EAAIzB,EAAS2B,OAAYF,EAAJD,EAAOA,IAC1CyB,EAAiBjD,EAASwB,GAAIsB,QAOrCzE,EAASmD,GAAIA,EAEhB,OAAOlB,GAAQ4C,IAAIN,MAIpBvB,KAAK,WAMJvD,EAAKiC,OAAS,QAGd,KAAK,GADDC,GAAWlC,EAAKkC,SAASgD,WACpBxB,EAAI,EAAGC,EAAIzB,EAAS2B,OAAYF,EAAJD,EAAOA,IAC1C2B,EAAoBnD,EAASwB,GAAI1D,KAIpC,SAAS,SAASsF,GAEjBtF,EAAKiC,OAAS,SACdjC,EAAKuF,UAAYD,CAGjB,KAAK,GADDpD,GAAWlC,EAAKkC,SAASgD,WACpBxB,EAAI,EAAGC,EAAIzB,EAAS2B,OAAYF,EAAJD,EAAOA,IAC1C8B,EAActD,EAASwB,GAAI1D,EAAMsF,KAUvC,QAAS7C,GAA6BgD,GACpC,MAAO,UAASrC,GACd,GAAId,GAASmD,EAAUnD,OACnBlC,EAAOqF,EAAU9C,WACjBD,EAAO+C,EAAU/C,IAErB,IAAIJ,EAAOkB,QAAQpD,GACjB,KAAM,IAAIwE,WAAU,IAAMxE,EAAO,uCAInC,KAAK,GADDsF,GACKhC,EAAI,EAAGC,EAAIrB,EAAOsB,MAAMC,OAAYF,EAAJD,EAAOA,IAC9C,GAAIpB,EAAOsB,MAAMF,GAAGtD,MAAQA,EAQ1B,MAPAsF,GAAepD,EAAOsB,MAAMF,GAEjB,aAARhB,GAAwBgD,EAAa5C,SACtC4C,EAAa9E,QAAU6E,EAAU1C,cACjCoB,EAAmB7B,EAAQoD,EAAclD,EAAQY,QAAQqC,EAAU5C,gBAG9D6C,EAAaxD,SAAS,GAAGyD,KAAKpC,KAAK,WACxCH,EAAQsC,IAKd,IAAI1F,GAAOgC,EAAW5B,EAEtBJ,GAAKoC,SAAWqD,EAAU7C,cAE1B,IAAIgD,GAAUC,EAAcvD,EAAQtC,EAEpCsC,GAAOsB,MAAME,KAAK9D,GAElBoD,EAAQwC,EAAQD,MAEJ,UAARjD,EACFqB,EAAgBzB,EAAQtC,GAET,SAAR0C,EACPsB,EAAe1B,EAAQtC,EAAMwC,EAAQY,QAAQqC,EAAU1C,iBAIvD/C,EAAKY,QAAU6E,EAAU1C,cACzBoB,EAAmB7B,EAAQtC,EAAMwC,EAAQY,QAAQqC,EAAU5C,iBAWjE,QAASgD,GAAcvD,EAAQwD,GAC7B,GAAIF,IACFtD,OAAQA,EACRsB,SACAkC,aAAcA,EACdC,aAAc,EAOhB,OALAH,GAAQD,KAAO,GAAInD,GAAQ,SAASY,EAAS4C,GAC3CJ,EAAQxC,QAAUA,EAClBwC,EAAQI,OAASA,IAEnBb,EAAiBS,EAASE,GACnBF,EAGT,QAAST,GAAiBS,EAAS5F,GAGjC,IAAK,GAAI0D,GAAI,EAAGC,EAAIiC,EAAQhC,MAAMC,OAAYF,EAAJD,EAAOA,IAC/C,GAAIkC,EAAQhC,MAAMF,IAAM1D,EACtB,MAEJ4F,GAAQhC,MAAME,KAAK9D,GACnBA,EAAKkC,SAAS4B,KAAK8B,GAGA,UAAf5F,EAAKiC,QACP2D,EAAQG,cAKV,KAAK,GAFDzD,GAASsD,EAAQtD,OAEZoB,EAAI,EAAGC,EAAI3D,EAAKmC,aAAa0B,OAAYF,EAAJD,EAAOA,IAAK,CACxD,GAAItD,GAAOJ,EAAKmC,aAAauB,GAAGpC,KAEhC,KAAIgB,EAAOkB,QAAQpD,GAGnB,IAAK,GAAI6F,GAAI,EAAGC,EAAI5D,EAAOsB,MAAMC,OAAYqC,EAAJD,EAAOA,IAC9C,GAAI3D,EAAOsB,MAAMqC,GAAG7F,MAAQA,EAA5B,CAGA+E,EAAiBS,EAAStD,EAAOsB,MAAMqC,GACvC,SASN,QAASE,GAAOP,GACd,GAAIQ,IAAQ,CACZ,KACEC,EAAKT,EAAS,SAAS5F,EAAMsF,GAC3BE,EAAcI,EAAS5F,EAAMsF,GAC7Bc,GAAQ,IAGZ,MAAM1F,GACJ8E,EAAcI,EAAS,KAAMlF,GAC7B0F,GAAQ,EAEV,MAAOA,GAIT,QAASf,GAAoBO,EAAS5F,GAQpC,GAFA4F,EAAQG,iBAEJH,EAAQG,aAAe,GAA3B,CAIA,GAAID,GAAeF,EAAQE,YAK3B,IAAIF,EAAQtD,OAAOe,UAAUwB,WAAY,EAAO,CAE9C,IAAK,GADDjB,MAAWsB,OAAOU,EAAQhC,OACrBF,EAAI,EAAGC,EAAIC,EAAMC,OAAYF,EAAJD,EAAOA,IAAK,CAC5C,GAAI1D,GAAO4D,EAAMF,EACjB1D,GAAKyD,OAAUzD,EAAK0E,eAGlBtE,KAAMJ,EAAKI,KACXqD,OAAQ6C,MACRC,WAAW,IAJX9C,OAAQ6C,OAMVtG,EAAKiC,OAAS,SACduE,EAAWZ,EAAQtD,OAAQtC,GAE7B,MAAO4F,GAAQxC,QAAQ0C,GAIzB,GAAIW,GAASN,EAAOP,EAEhBa,IAKJb,EAAQxC,QAAQ0C,IAIlB,QAASN,GAAcI,EAAS5F,EAAMsF,GACpC,GAAIhD,GAASsD,EAAQtD,MAEjBsD,GAAQhC,MAAM,GAAGxD,MAAQJ,EAAKI,OAChCkF,EAAMoB,EAAWpB,EAAK,kBAAoBtF,EAAKI,KAAO,WAAawF,EAAQhC,MAAM,GAAGxD,KAAO,SAAWwF,EAAQhC,MAAM,GAAGhD,SAAW,aAAe,OAEnJ0E,EAAMoB,EAAWpB,EAAK,kBAAoBtF,EAAKI,KAAO,SAAWJ,EAAKY,SAAW,aAAe,KAGhG,KAAK,GADDgD,GAAQgC,EAAQhC,MAAMsB,WACjBxB,EAAI,EAAGC,EAAIC,EAAMC,OAAYF,EAAJD,EAAOA,IAAK,CAC5C,GAAI1D,GAAO4D,EAAMF,EAGjBpB,GAAOe,UAAUsD,OAASrE,EAAOe,UAAUsD,WACQ,IAA/CC,EAAQpF,KAAKc,EAAOe,UAAUsD,OAAQ3G,IACxCsC,EAAOe,UAAUsD,OAAO7C,KAAK9D,EAE/B,IAAI6G,GAAYD,EAAQpF,KAAKxB,EAAKkC,SAAU0D,EAG5C,IADA5F,EAAKkC,SAAS4E,OAAOD,EAAW,GACJ,GAAxB7G,EAAKkC,SAAS2B,OAAa,CAC7B,GAAIkD,GAAmBH,EAAQpF,KAAKoE,EAAQtD,OAAOsB,MAAO5D,EAClC,KAApB+G,GACFnB,EAAQtD,OAAOsB,MAAMkD,OAAOC,EAAkB,IAGpDnB,EAAQI,OAAOV,GAIjB,QAASkB,GAAWlE,EAAQtC,GAE1B,GAAIsC,EAAOe,UAAU2D,MAAO,CACrB1E,EAAOe,UAAUO,QACpBtB,EAAOe,UAAUO,SACnB,IAAIqD,KACJjH,GAAKmC,aAAa+E,QAAQ,SAASC,GACjCF,EAAOE,EAAIlC,KAAOkC,EAAI7F,QAExBgB,EAAOe,UAAUO,MAAM5D,EAAKI,OAC1BA,KAAMJ,EAAKI,KACXC,KAAML,EAAKmC,aAAaiF,IAAI,SAASD,GAAM,MAAOA,GAAIlC,MACtDgC,OAAQA,EACRrG,QAASZ,EAAKY,QACdwB,SAAUpC,EAAKoC,SACfU,OAAQ9C,EAAK8C,OACbuE,KAAMrH,EAAK0E,cAAgB,cAAgB,WAI3C1E,EAAKI,OAEPkC,EAAOkB,QAAQxD,EAAKI,MAAQJ,EAAKyD,OAEnC,IAAI6D,GAAYV,EAAQpF,KAAKc,EAAOsB,MAAO5D,EAC1B,KAAbsH,GACFhF,EAAOsB,MAAMkD,OAAOQ,EAAW,EACjC,KAAK,GAAI5D,GAAI,EAAGC,EAAI3D,EAAKkC,SAAS2B,OAAYF,EAAJD,EAAOA,IAC/C4D,EAAYV,EAAQpF,KAAKxB,EAAKkC,SAASwB,GAAGE,MAAO5D,GAChC,IAAbsH,GACFtH,EAAKkC,SAASwB,GAAGE,MAAMkD,OAAOQ,EAAW,EAE7CtH,GAAKkC,SAAS4E,OAAO,EAAG9G,EAAKkC,SAAS2B,QAUxC,QAAS0D,GAAmBvH,EAAM4D,EAAO4D,GAKvC,GAJAA,EAAOxH,EAAKyH,YAAcD,EAAOxH,EAAKyH,gBAIa,IAA/Cb,EAAQpF,KAAKgG,EAAOxH,EAAKyH,YAAazH,GAA1C,CAIAwH,EAAOxH,EAAKyH,YAAY3D,KAAK9D,EAE7B,KAAK,GAAI0D,GAAI,EAAGC,EAAIC,EAAMC,OAAYF,EAAJD,EAAOA,IAIvC,IAAK,GAHDgE,GAAU9D,EAAMF,GAGXuC,EAAI,EAAGA,EAAIjG,EAAKmC,aAAa0B,OAAQoC,IAC5C,GAAIyB,EAAQtH,MAAQJ,EAAKmC,aAAa8D,GAAG3E,MAAO,CAM9C,GAAIqG,GAAoB3H,EAAKyH,YAAcC,EAAQhD,eAAiB1E,EAAK0E,cAGzE,IAA2BF,SAAvBkD,EAAQD,YAA4BC,EAAQD,WAAaE,EAAmB,CAG9E,GAA2BnD,SAAvBkD,EAAQD,aACVD,EAAOE,EAAQD,YAAYX,OAAOF,EAAQpF,KAAKgG,EAAOE,EAAQD,YAAaC,GAAU,GAG5C,GAArCF,EAAOE,EAAQD,YAAY5D,QAC7B,KAAM,IAAIe,WAAU,kCAGxB8C,GAAQD,WAAaE,EAGvBJ,EAAmBG,EAAS9D,EAAO4D,KAM3C,QAASI,GAAiBhC,EAAS5F,EAAM6H,GACvC,IACE,GAAIpE,GAASzD,EAAK6E,UAEpB,MAAMnE,GAEJ,WADAmH,GAAU7H,EAAMU,GAGlB,MAAK+C,IAAYA,YAAkBqE,GAG1BrE,MAFPoE,GAAU7H,EAAM,GAAI4E,WAAU,4CAMlC,QAASyB,GAAKT,EAASiC,GAErB,GAAIvF,GAASsD,EAAQtD,MAErB,IAAKsD,EAAQhC,MAAMC,OAAnB,CAWA,GAAI2D,MACA1B,EAAeF,EAAQhC,MAAM,EACjCkC,GAAa2B,WAAa,EAC1BF,EAAmBzB,EAAcF,EAAQhC,MAAO4D,EAMhD,KAAK,GAHDO,GAAsBjC,EAAapB,eAAiB8C,EAAO3D,OAAS,EAG/DH,EAAI8D,EAAO3D,OAAS,EAAGH,GAAK,EAAGA,IAAK,CAE3C,IAAK,GADDsE,GAAQR,EAAO9D,GACVuC,EAAI,EAAGA,EAAI+B,EAAMnE,OAAQoC,IAAK,CACrC,GAAIjG,GAAOgI,EAAM/B,EAGjB,IAAI8B,EACFE,EAAsBjI,EAAM4F,EAAQhC,MAAOtB,OAGxC,CACH,GAAImB,GAASmE,EAAiBhC,EAAS5F,EAAM6H,EAC7C,KAAKpE,EACH,MACFzD,GAAKyD,QACHrD,KAAMJ,EAAKI,KACXqD,OAAQA,GAEVzD,EAAKiC,OAAS,SAEhBuE,EAAWlE,EAAQtC,GAIrB+H,GAAuBA,IAO3B,QAASG,GAAwB9H,EAAMkC,GACrC,GAAI6F,GAAgB7F,EAAO6F,aAC3B,OAAOA,GAAc/H,KAAU+H,EAAc/H,IAC3CA,KAAMA,EACN+B,gBACAsB,OAAQ,GAAIqE,GACZM,eAKJ,QAASH,GAAsBjI,EAAM4D,EAAOtB,GAC1C,IAAItC,EAAKyD,OAAT,CAGA,GAAIA,GAASzD,EAAKyD,OAASyE,EAAwBlI,EAAKI,KAAMkC,GAC1D+F,EAAYrI,EAAKyD,OAAOA,OAExB6E,EAAgBtI,EAAKM,QAAQkB,KAAK3B,SAAU,SAASO,EAAMkB,GAI7DmC,EAAO8E,QAAS,EAChBF,EAAUjI,GAAQkB,CAElB,KAAK,GAAIoC,GAAI,EAAGC,EAAIF,EAAO2E,UAAUvE,OAAYF,EAAJD,EAAOA,IAAK,CACvD,GAAI8E,GAAiB/E,EAAO2E,UAAU1E,EACtC,KAAK8E,EAAeD,OAAQ,CAC1B,GAAIE,GAAgB7B,EAAQpF,KAAKgH,EAAerG,aAAcsB,EAC9D+E,GAAeE,QAAQD,GAAeJ,IAK1C,MADA5E,GAAO8E,QAAS,EACTjH,GAITmC,GAAOiF,QAAUJ,EAAcI,QAC/BjF,EAAOoB,QAAUyD,EAAczD,OAI/B,KAAK,GAAInB,GAAI,EAAGC,EAAI3D,EAAKmC,aAAa0B,OAAYF,EAAJD,EAAOA,IAAK,CACxD,GAAIiF,GAAU3I,EAAKmC,aAAauB,GAAGpC,MAC/BsH,EAAYtG,EAAOkB,QAAQmF,EAI/B,KAAKC,EAEH,IAAK,GAAI3C,GAAI,EAAGA,EAAIrC,EAAMC,OAAQoC,IAC5BrC,EAAMqC,GAAG7F,MAAQuI,IAIhB/E,EAAMqC,GAAGxC,OAMZmF,EAAYV,EAAwBS,EAASrG,IAL7C2F,EAAsBrE,EAAMqC,GAAIrC,EAAOtB,GACvCsG,EAAYhF,EAAMqC,GAAGxC,QAUvBmF,GAAUR,WACZ3E,EAAOtB,aAAa2B,KAAK8E,GACzBA,EAAUR,UAAUtE,KAAKL,IAIzBA,EAAOtB,aAAa2B,KAAK,MAIvBL,EAAOiF,QAAQhF,IACjBD,EAAOiF,QAAQhF,GAAGkF,EAAUnF,QAGhCzD,EAAKiC,OAAS,UAYhB,QAAS4G,GAAqBvG,EAAQtC,GAIpC,MADA8I,GAAkB9I,EAAKyD,UAAYnB,GAC5BtC,EAAKyD,OAAOA,OAYrB,QAASsF,GAAUtF,GACjB,IACEA,EAAOoB,QAAQrD,KAAK3B,UAEtB,MAAMa,GACJ,MAAOA,IAMX,QAASoI,GAAkBrF,EAAQuF,EAAM1G,GACvC,GAAI2G,GAAMC,EAAgBzF,EAAQuF,EAAM1G,EACxC,IAAI2G,EACF,KAAMA,GAGV,QAASC,GAAgBzF,EAAQuF,EAAM1G,GACrC,IAAImB,EAAO8C,WAAc9C,EAAOtB,aAAhC,CAGA6G,EAAKlF,KAAKL,EAKV,KAAK,GAFDwF,GADA5I,EAAOoD,EAAOtB,aAGTuB,EAAI,EAAGC,EAAItD,EAAKwD,OAAYF,EAAJD,EAAOA,IAAK,CAC3C,GAAIyD,GAAM9G,EAAKqD,EAGf,IAAKyD,GAE0B,IAA3BP,EAAQpF,KAAKwH,EAAM7B,KACrB8B,EAAMC,EAAgB/B,EAAK6B,EAAM1G,IAI/B,MADA2G,GAAMvC,EAAWuC,EAAK,oBAAsB9B,EAAI/G,KAAO,MAM7D,GAAIqD,EAAOkD,OACT,MAAO,IAAIwC,OAAM,2BAEnB,KAAI1F,EAAO8C,UAgBX,MAbA9C,GAAO8C,WAAY,EACnB0C,EAAMF,EAAUtF,GACZwF,EACFxF,EAAOkD,QAAS,EAET7F,OAAOsI,mBAIdtI,OAAOsI,kBAAkB3F,EAAOA,QAGlCA,EAAOoB,QAAUL,OACVyE,GAGT,QAASvC,GAAWuC,EAAKI,GAKvB,MAJIJ,aAAeE,OACjBF,EAAItI,QAAU0I,EAAMJ,EAAItI,QAExBsI,EAAMI,EAAMJ,EACPA,EAMT,QAASK,GAAO/G,GACd,GAAsB,gBAAXA,GACT,KAAM,IAAIqC,WAAU,4BAElBrC,GAAQe,YACViG,KAAKjG,UAAYf,EAAQe,WACvBf,EAAQ0B,SACVsF,KAAKtF,OAAS1B,EAAQ0B,QACpB1B,EAAQ6B,QACVmF,KAAKnF,MAAQ7B,EAAQ6B,OACnB7B,EAAQ8B,YACVkF,KAAKlF,UAAY9B,EAAQ8B,WACvB9B,EAAQ+B,cACViF,KAAKjF,YAAc/B,EAAQ+B,aAE7BiF,KAAKC,SACHnG,UAAWkG,KACX3F,SACAJ,WACAiG,kBACAtB,kBAIFhH,EAAeoI,KAAM,UACnBhI,IAAK,WACH,MAAO1B,aAOb,QAASiI,MAGT,QAAS4B,GAAoBpH,EAAQlC,EAAMuJ,GACzC,GAAIF,GAAiBnH,EAAOkH,QAAQC,cACpC,OAAOA,GAAerJ,GAAQuJ,EAAQpG,KAAK,SAASqG,GAElD,MADAH,GAAerJ,GAAQoE,OAChBoF,GACN,SAASlJ,GAEV,KADA+I,GAAerJ,GAAQoE,OACjB9D,IA7yBV,GAAI8B,GAAU3C,SAAS2C,SAAWqH,QAAQ,wBACtChK,UAASiK,UACXA,QAAQC,OAASD,QAAQC,QAAU,aAGrC,IAAInD,GAAUoD,MAAMlI,UAAU8E,SAAW,SAASqD,GAChD,IAAK,GAAIvG,GAAI,EAAGwG,EAAUX,KAAK1F,OAAYqG,EAAJxG,EAAaA,IAClD,GAAI6F,KAAK7F,KAAOuG,EACd,MAAOvG,EAGX,OAAO,IAELvC,EAAiBD,yBAyGjBuD,EAAU,CA2rBd6E,GAAOxH,WAELqI,YAAab,EAEbc,OAAQ,SAAShK,EAAM0C,EAAQP,GAE7B,GAAIgH,KAAKC,QAAQC,eAAerJ,GAC9B,KAAM,IAAIwE,WAAU,6BACtB,OAAO8E,GAAoBH,KAAMnJ,EAAM,GAAIoC,GAAQC,GACjDC,KAAM,YACNJ,OAAQiH,KAAKC,QACb7G,WAAYvC,EACZwC,eAAgBL,GAAWA,EAAQH,aACnCS,aAAcC,EACdC,cAAeR,GAAWA,EAAQ3B,aAItCyJ,SAAU,SAASjK,GACjB,MAAOmJ,MAAKC,QAAQhG,QAAQpD,SAAemJ,MAAKC,QAAQhG,QAAQpD,IAAQ,GAI1EmB,IAAK,SAAS0D,GACZ,MAAKsE,MAAKC,QAAQhG,QAAQyB,IAE1B6D,EAAkBS,KAAKC,QAAQhG,QAAQyB,MAAUsE,MAC1CA,KAAKC,QAAQhG,QAAQyB,GAAKxB,QAHjC,QAMF6G,IAAK,SAASlK,GACZ,QAASmJ,KAAKC,QAAQhG,QAAQpD,IAGhCmK,SAAU,SAASnK,EAAMmC,GAEvB,GAAIc,GAAYkG,IAGhB,OAAO/G,GAAQY,QAAQC,EAAUC,UAAUlD,EAAMmC,GAAWA,EAAQnC,KAAMmC,GAAWA,EAAQ3B,UAC5F2C,KAAK,SAASnD,GACb,GAAIkC,GAASe,EAAUmG,OAEvB,OAAIlH,GAAOkB,QAAQpD,IACjB0I,EAAkBxG,EAAOkB,QAAQpD,MAAWkC,EAAOkH,SAC5ClH,EAAOkB,QAAQpD,GAAMqD,QAGvBnB,EAAOmH,eAAerJ,IAASsJ,EAAoBrG,EAAWjD,EACnEiC,EAAWC,EAAQlC,EAAMmC,OACxBgB,KAAK,SAASvD,GAEb,aADOsC,GAAOmH,eAAerJ,GACtByI,EAAqBvG,EAAQtC,SAM5CA,KAAM,SAASI,GACb,MAAImJ,MAAKC,QAAQhG,QAAQpD,IACvB0I,EAAkBS,KAAKC,QAAQhG,QAAQpD,MAAWmJ,KAAKC,SAChDhH,EAAQY,QAAQmG,KAAKC,QAAQhG,QAAQpD,GAAMqD,SAE7C8F,KAAKC,QAAQC,eAAerJ,IAASsJ,EAAoBH,KAAMnJ,EAAMiC,EAAWkH,KAAKC,QAASpJ,QAGvGqD,OAAQ,SAASX,EAAQP,GACvB,GAAIvC,GAAOgC,GACXhC,GAAKY,QAAU2B,GAAWA,EAAQ3B,OAClC,IAAIgF,GAAUC,EAAc0D,KAAKC,QAASxJ,GACtCwK,EAAgBhI,EAAQY,QAAQN,GAChCR,EAASiH,KAAKC,QACdtF,EAAI0B,EAAQD,KAAKpC,KAAK,WACxB,MAAOsF,GAAqBvG,EAAQtC,IAGtC,OADAmE,GAAmB7B,EAAQtC,EAAMwK,GAC1BtG,GAGTuG,UAAW,SAAUzJ,GACnB,GAAkB,gBAAPA,GACT,KAAM,IAAI4D,WAAU,kBAItB,IAAIgF,GAAI,GAAI9B,EAEZ,KAAK,GAAI7C,KAAOjE,IACd,SAAWiE,GACT9D,EAAeyI,EAAG3E,GAChByF,cAAc,EACdC,YAAY,EACZpJ,IAAK,WACH,MAAOP,GAAIiE,OAGdA,EAML,OAHInE,QAAOsI,mBACTtI,OAAOsI,kBAAkBQ,GAEpBA,GAGTgB,IAAK,SAASxK,EAAMqD,GAClB,KAAMA,YAAkBqE,IACtB,KAAM,IAAIlD,WAAU,cAAgBxE,EAAO,6BAC7CmJ,MAAKC,QAAQhG,QAAQpD,IACnBqD,OAAQA,IAQZH,UAAW,SAASlD,GAClB,MAAOA,IAGT6D,OAAQ,SAASjE,GACf,MAAOA,GAAKI,MAGdgE,MAAO,WACL,KAAM,IAAIQ,WAAU,0BAGtBP,UAAW,SAASrE,GAClB,MAAOA,GAAK8C,QAGdwB,YAAa,aAIf,IAAIgC,GAAagD,EAAOxH,UAAU2I,SAEX,iBAAZI,WACTpH,OAAOoH,QAAUvB,GAEnBzJ,SAASiL,QAAUjL,SAASiL,YAC5BjL,SAASiL,QAAQxB,OAASzJ,SAASiL,QAAQxB,QAAUA,EACrDzJ,SAASiL,QAAQC,OAASlL,SAASiL,QAAQC,QAAUlL,SACrDA,SAASmL,eAAiB1B,KAO5B,SAAUA,GA0BR,QAAS2B,GAAiBjL,GACxB,GAAIuC,GAAUgH,KAAK2B,kBACnB3I,GAAQiB,QAAU,cAClBjB,EAAQ4I,QAAS,EACjB5I,EAAQ6I,WAAa,SACrB7I,EAAQ8I,SAAWrL,EAAKY,OAExB,IAAI0K,GAAW,GAAIC,GAAiBC,SAASjJ,GACzCO,EAAS2I,EAAiBzL,EAAK8C,OAAQwI,EAAU/I,EAAQ8I,SAM7D,OAFAvI,IAAU,QAIZ,QAAS2I,GAAiB3I,EAAQwI,EAAUD,GAC1C,IACE,MAAOC,GAASI,QAAQ5I,EAAQuI,GAElC,MAAM3K,GAEJ,KAAMA,GAAE,IAIZ,QAASiL,GAAe3L,GACtB,GAAIuC,GAAUgH,KAAKqC,gBACnBrJ,GAAQiB,QAAU,SAClBjB,EAAQsJ,UAAY,SACpBtJ,EAAQ8I,SAAWrL,EAAKY,QACxB2B,EAAQuJ,MAAO,EACfvJ,EAAQwJ,KAAM,EACdxJ,EAAQyJ,UAAYzJ,EAAQyJ,cAC5BzJ,EAAQyJ,UAAUlI,KAAK,QAEvB,IAAIhB,GAASyI,EAAiBU,UAAUjM,EAAK8C,OAAQP,GAASuJ,IAI9D,OAAOhJ,GAAS,mBAAqB9C,EAAKY,QAAU,QAhEtD,GAAIsL,GAAYX,EACZY,EAA0B,mBAAVC,SAAqD,mBAArBC,kBAGpD/C,GAAOxH,UAAUoK,WAAa,UAE9B5C,EAAOxH,UAAU6C,UAAY,SAAS3E,GACpC,IAAKkM,IACoB,SAAnB3C,KAAK2C,YACPA,EAAaP,EACbJ,EAAmBY,EAAStC,QAAQ,cAAgBhK,SAASyM,QAG7DJ,EAAajB,EACbM,EAAmBY,EAAStC,QAAQ,WAAahK,SAAS0M,UAGvDhB,GACH,KAAM,IAAI3G,WAAU,sDAGxB,OAAO,0BAA4B5E,EAAKY,QAAU,KAAOsL,EAAW1K,KAAK+H,KAAMvJ,KA+ChFH,SAASmL,gBAcZ,WAQE,QAASwB,GAASC,GAChB,GAAI7C,GAAI8C,OAAOD,GAAKhM,QAAQ,aAAc,IAAIkM,MAAM,6GAEpD,OAAQ/C,IACNgD,KAAWhD,EAAE,IAAM,GACnBiD,SAAWjD,EAAE,IAAM,GACnBkD,UAAWlD,EAAE,IAAM,GACnBmD,KAAWnD,EAAE,IAAM,GACnBoD,SAAWpD,EAAE,IAAM,GACnBqD,KAAWrD,EAAE,IAAM,GACnBsD,SAAWtD,EAAE,IAAM,GACnBuD,OAAWvD,EAAE,IAAM,GACnBwD,KAAWxD,EAAE,IAAM,IACjB,KAGN,QAASyD,GAAkBC,GACzB,GAAIC,KAUJ,OATAD,GAAM7M,QAAQ,kBAAmB,IAC9BA,QAAQ,iBAAkB,KAC1BA,QAAQ,UAAW,QACnBA,QAAQ,aAAc,SAAUyD,GACrB,QAANA,EACFqJ,EAAOC,MAEPD,EAAOzJ,KAAKI,KAEXqJ,EAAOE,KAAK,IAAIhN,QAAQ,MAA2B,MAApB6M,EAAMI,OAAO,GAAa,IAAM,IAGxE,QAASC,GAAcC,EAAMhB,GAK3B,MAHAA,GAAOJ,EAASI,GAAQ,IACxBgB,EAAOpB,EAASoB,GAAQ,IAEhBhB,GAASgB,GAAehB,EAAKC,UAAYe,EAAKf,WACnDD,EAAKC,UAAYD,EAAKE,UAAYF,EAAKE,UAAYc,EAAKd,WACzDO,EAAkBT,EAAKC,UAAYD,EAAKE,WAAyC,MAA5BF,EAAKM,SAASQ,OAAO,GAAad,EAAKM,SAAYN,EAAKM,UAAaU,EAAKd,YAAcc,EAAKV,SAAW,IAAM,IAAMU,EAAKV,SAASW,MAAM,EAAGD,EAAKV,SAASY,YAAY,KAAO,GAAKlB,EAAKM,SAAYU,EAAKV,WAC3PN,EAAKC,UAAYD,EAAKE,WAAaF,EAAKM,SAAWN,EAAKO,OAAUP,EAAKO,QAAUS,EAAKT,QACvFP,EAAKQ,KAJiB,KAiQxB,QAASW,KACPC,SAASC,oBAAqB,mBAAoBF,GAAW,GAC7D3B,OAAO6B,oBAAqB,OAAQF,GAAW,GAC/CG,IAGF,QAASA,KAEP,IAAK,GADDC,GAAUH,SAASI,qBAAqB,UACnC1K,EAAI,EAAGA,EAAIyK,EAAQtK,OAAQH,IAAK,CACvC,GAAIyH,GAASgD,EAAQzK,EACrB,IAAmB,UAAfyH,EAAOkD,KAAkB,CAC3B,GAAIvL,GAASqI,EAAOmD,UAAUC,OAAO,EAIrC1O,UAASK,OAAOuD,OAAOX,GAAQ,SAAS,SAASmG,GAAOuF,WAAW,WAAa,KAAMvF,SA1T9F,GAiDIwF,GAjDAC,EAA2B,mBAATC,OAAqD,mBAAtBtC,oBAAqCsC,eAAgBtC,mBACtGuC,EAA6B,mBAAVxC,UAA0BsC,EAC7CG,EAA8B,mBAAXC,YAA4BA,QAAQC,SAASpC,MAAM,QACtEnK,EAAU3C,SAAS2C,SAAWqH,QAAQ,wBAgD1C,IAA6B,mBAAlBmF,gBACTP,EAAmB,SAAShC,EAAKwC,EAASjJ,GAsBxC,QAAShG,KACPiP,EAAQC,EAAIC,cAEd,QAAS/I,KACPJ,EAAOkJ,EAAIE,WAAa,KAAO3C,GAAO,aAzBxC,GAAIyC,GAAM,GAAIF,gBACVK,GAAa,EACbC,GAAY,CAChB,MAAM,mBAAqBJ,IAAM,CAE/B,GAAIK,GAAc,uBAAuBC,KAAK/C,EAC1C8C,KACFF,EAAaE,EAAY,KAAOnD,OAAOqD,SAAS1C,KAC5CwC,EAAY,KACdF,GAAcE,EAAY,KAAOnD,OAAOqD,SAAS5C,WAGlDwC,GAAuC,mBAAlBK,kBACxBR,EAAM,GAAIQ,gBACVR,EAAIS,OAAS3P,EACbkP,EAAIU,QAAUxJ,EACd8I,EAAIW,UAAYzJ,EAChB8I,EAAIY,WAAa,aACjBZ,EAAIa,QAAU,EACdT,GAAY,GASdJ,EAAIc,mBAAqB,WACA,IAAnBd,EAAIe,aACa,MAAff,EAAIjN,QAAiC,GAAdiN,EAAIjN,QAAeiN,EAAIC,aAChDnP,IAEAoG,MAIN8I,EAAIgB,KAAK,MAAOzD,GAAK,GAEjB6C,GACFd,WAAW,WACTU,EAAIiB,QACH,GAELjB,EAAIiB,KAAK,WAGR,CAAA,GAAsB,mBAAXtG,SAkBd,KAAM,IAAIjF,WAAU,sCAjBpB,IAAIwL,EACJ3B,GAAmB,SAAShC,EAAKwC,EAASjJ,GACxC,GAAwB,SAApByG,EAAI8B,OAAO,EAAG,GAChB,KAAM,2DAKR,OAJA6B,GAAKA,GAAMvG,QAAQ,MACnB4C,EAAMA,EAAI8B,OAAO,GACbM,IACFpC,EAAMA,EAAIhM,QAAQ,MAAO,OACpB2P,EAAGC,SAAS5D,EAAK,SAASxD,EAAKqH,GACpC,MAAIrH,GACKjD,EAAOiD,OAEdgG,GAAQqB,EAAO,OAQvB,GAAIC,GAAe,SAASC,GAC1B,QAASD,GAAahO,GAIpB,GAHAiO,EAAShP,KAAK+H,KAAMhH,OAGG,mBAAZkN,WAA2BA,SAAS7C,KAAM,CACnD,GAAIA,GAAO/M,SAAS4P,SAAS7C,KAAK6D,MAAM,KAAK,GAAGA,MAAM,KAAK,EAC3DlH,MAAKmH,QAAU9D,EAAK+D,UAAU,EAAG/D,EAAKkB,YAAY,KAAO,OAEtD,CAAA,GAAsB,mBAAXgB,WAA0BA,QAAQ8B,IAMhD,KAAM,IAAIhM,WAAU,yBALpB2E,MAAKmH,QAAU,QAAU5B,QAAQ8B,MAAQ,IACrC/B,IACFtF,KAAKmH,QAAUnH,KAAKmH,QAAQjQ,QAAQ,MAAO,MAK/C8I,KAAKsH,OAAUC,IAAK,QAgJtB,MA7IAP,GAAatP,UAA0B,OAAbuP,EAAoBA,EAAWO,SAASjP,UAClEyO,EAAazO,UAAYL,iBAA+B,OAAb+O,EAAoBA,EAAS1O,UAAY,MAEpFZ,yBAAyBqP,EAAazO,UAAW,eAC/CR,MAAOiP,IAGTrP,yBAAyBqP,EAAazO,UAAW,UAC/CP,IAAK,WACH,MAAOqN,GAAYxC,OAAUsC,EAAWC,KAAO9O,UAGjD8K,YAAY,IAGdzJ,yBAAyBqP,EAAazO,UAAW,UAC/CP,IAAK,WAAa,OAAO,GACzBoJ,YAAY,IAGdzJ,yBAAyBqP,EAAazO,UAAW,aAC/CR,MAAO,SAASlB,EAAM4Q,GACpB,GAAmB,gBAAR5Q,GACT,KAAM,IAAIwE,WAAU,+BAEtB,IAAIqM,GAAW7Q,EAAKqQ,MAAM,IAE1B,IAAuB,GAAnBQ,EAASpN,OACX,KAAM,IAAIe,WAAU,0BAGtB,IAAIlB,GAAI,EAEJwN,GAAM,EAENC,EAAU,CACd,IAAmB,KAAfF,EAAS,GAAW,CAEtB,GADAvN,IACIA,GAAKuN,EAASpN,OAChB,KAAM,IAAIe,WAAU,wBAA0BxE,EAAO,IACvD8Q,IAAM,MAEH,CACH,KAAsB,MAAfD,EAASvN,IAEd,GADAA,IACIA,GAAKuN,EAASpN,OAChB,KAAM,IAAIe,WAAU,wBAA0BxE,EAAO,IAErDsD,KACFwN,GAAM,GACRC,EAAUzN,EAGZ,IAAK,GAAIuC,GAAIvC,EAAGuC,EAAIgL,EAASpN,OAAQoC,IAAK,CACxC,GAAImL,GAAUH,EAAShL,EACvB,IAAe,IAAXmL,GAA4B,KAAXA,GAA6B,MAAXA,EACrC,KAAM,IAAIxM,WAAU,wBAA0BxE,EAAO,KAGzD,IAAK8Q,EACH,MAAO9Q,EAGT,EAAA,GAAIiR,MACAC,GAAeN,GAAc,IAAIP,MAAM,IACvBa,GAAYzN,OAAS,EAAIsN,EAK7C,MAHAE,GAAkBA,EAAgBnM,OAAOoM,EAAYxK,OAAO,EAAGwK,EAAYzN,OAAS,EAAIsN,IACxFE,EAAkBA,EAAgBnM,OAAO+L,EAASnK,OAAOpD,EAAGuN,EAASpN,OAASH,IAEvE2N,EAAgB5D,KAAK,MAG9B9C,YAAY,EACZ4G,UAAU,IAGZrQ,yBAAyBqP,EAAazO,UAAW,UAC/CR,MAAO,SAAStB,GACd,GAKoBwR,GALhBpR,EAAOJ,EAAKI,KAKZqR,EAAY,EAGhB,KAAK,GAAIvN,KAAKqF,MAAKsH,MAAO,CACxB,GAAIa,GAAYxN,EAAEuM,MAAM,IACxB,IAAIiB,EAAU7N,OAAS,EACrB,KAAM,IAAIe,WAAU,2CAGtB,IAAwB,GAApB8M,EAAU7N,QACZ,GAAIzD,GAAQ8D,GAAKA,EAAEL,OAAS4N,EAAU5N,OAAQ,CAC5C4N,EAAYvN,CACZ,YAME9D,GAAKmO,OAAO,EAAGmD,EAAU,GAAG7N,SAAW6N,EAAU,IAAMtR,EAAKmO,OAAOnO,EAAKyD,OAAS6N,EAAU,GAAG7N,SAAW6N,EAAU,KACrHD,EAAYvN,EACZsN,EAAWpR,EAAKmO,OAAOmD,EAAU,GAAG7N,OAAQzD,EAAKyD,OAAS6N,EAAU,GAAG7N,OAAS6N,EAAU,GAAG7N,SAKnG,GAAI8N,GAAUpI,KAAKsH,MAAMY,EAWzB,OAVID,KACFG,EAAUA,EAAQlR,QAAQ,IAAK+Q,IAM7B5C,IACF+C,EAAUA,EAAQlR,QAAQ,KAAM,QAE3BkN,EAAcpE,KAAKmH,QAASiB,IAGrChH,YAAY,EACZ4G,UAAU,IAGZrQ,yBAAyBqP,EAAazO,UAAW,SAC/CR,MAAO,SAAStB,GACd,GAAI2O,GAAOpF,IACX,OAAO,IAAI/G,GAAQ,SAASY,EAAS4C,GACnCyI,EAAiBd,EAAcgB,EAAK+B,QAAS1Q,EAAKY,SAAU,SAASkC,GACnEM,EAAQN,IACPkD,MAIP2E,YAAY,EACZ4G,UAAU,IAGLhB,GACP1Q,SAASmL,gBAEP9K,EAAS,GAAIqQ,EAUjB,IAPuB,gBAAZ1F,WACTpH,OAAOoH,QAAU3K,GAEnBL,SAASK,OAASA,EAId0O,GAAqD,mBAAjCZ,UAASI,qBAAqC,CACpE,GAAIwD,GAAY5D,SAASI,qBAAqB,SAC9CwD,GAAYA,EAAUA,EAAU/N,OAAS,GAuBb,aAAxBmK,SAASiC,WACXzB,WAAWN,GAEJF,SAAS6D,mBAChB7D,SAAS6D,iBAAiB,mBAAoB9D,GAAW,GACzD3B,OAAOyF,iBAAiB,OAAQ9D,GAAW,IAIzC6D,EAAUE,aAAa,cACzB1F,OAAOwF,EAAUE,aAAa,qBAgChB,mBAAV1F,QAAwBA,OAAsC,mBAArBC,mBACRsC,KAAO5D"} \ No newline at end of file diff --git a/dist/es6-module-loader-sans-promises.src.js b/dist/es6-module-loader-sans-promises.src.js index 02a7fd6..8cbe2d0 100644 --- a/dist/es6-module-loader-sans-promises.src.js +++ b/dist/es6-module-loader-sans-promises.src.js @@ -381,6 +381,12 @@ function logloads(loads) { for (var i = 0, l = loader.loads.length; i < l; i++) { if (loader.loads[i].name == name) { existingLoad = loader.loads[i]; + + if(step == 'translate' && !existingLoad.source) { + existingLoad.address = stepState.moduleAddress; + proceedToTranslate(loader, existingLoad, Promise.resolve(stepState.moduleSource)); + } + return existingLoad.linkSets[0].done.then(function() { resolve(existingLoad); }); @@ -1100,7 +1106,7 @@ function logloads(loads) { })(); /* - * Traceur and 6to5 transpile hook for Loader + * Traceur and Babel transpile hook for Loader */ (function(Loader) { // Returns an array of ModuleSpecifiers @@ -1112,9 +1118,9 @@ function logloads(loads) { Loader.prototype.transpile = function(load) { if (!transpiler) { - if (this.transpiler == '6to5') { - transpiler = to5Transpile; - transpilerModule = isNode ? require('6to5-core') : __global.to5; + if (this.transpiler == 'babel') { + transpiler = babelTranspile; + transpilerModule = isNode ? require('babel-core') : __global.babel; } else { transpiler = traceurTranspile; @@ -1122,7 +1128,7 @@ function logloads(loads) { } if (!transpilerModule) - throw new TypeError('Include Traceur or 6to5 for module syntax support.'); + throw new TypeError('Include Traceur or Babel for module syntax support.'); } return 'var __moduleAddress = "' + load.address + '";' + transpiler.call(this, load); @@ -1154,17 +1160,19 @@ function logloads(loads) { } } - function to5Transpile(load) { - var options = this.to5Options || {}; + function babelTranspile(load) { + var options = this.babelOptions || {}; options.modules = 'system'; options.sourceMap = 'inline'; options.filename = load.address; options.code = true; options.ast = false; + options.blacklist = options.blacklist || []; + options.blacklist.push('react'); var source = transpilerModule.transform(load.source, options).code; - // add "!eval" to end of 6to5 sourceURL + // add "!eval" to end of Babel sourceURL // I believe this does something? return source + '\n//# sourceURL=' + load.address + '!eval'; } diff --git a/dist/es6-module-loader.js b/dist/es6-module-loader.js index d6ff733..abfc69a 100644 --- a/dist/es6-module-loader.js +++ b/dist/es6-module-loader.js @@ -1,8 +1,8 @@ /* - * es6-module-loader v0.13.1 + * es6-module-loader v0.14.0 * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2015 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=0&&(n.splice(b,1),l("Handled previous rejection ["+a.id+"] "+e.formatObject(a.value)))}function h(a,b){m.push(a,b),null===o&&(o=d(i,0))}function i(){for(o=null;m.length>0;)m.shift()(m.shift())}var j,k=c,l=c;"undefined"!=typeof console&&(j=console,k="undefined"!=typeof j.error?function(a){j.error(a)}:function(a){j.log(a)},l="undefined"!=typeof j.info?function(a){j.info(a)}:function(a){j.log(a)}),a.onPotentiallyUnhandledRejection=function(a){h(f,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){h(g,a)},a.onFatalRejection=function(a){h(b,a.value)};var m=[],n=[],o=null;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../env":5,"../format":6}],5:[function(b,c){!function(a){"use strict";a(function(a){function b(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick}function c(){return"function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver}function d(a){function b(){var a=c;c=void 0,a()}var c,d=document.createTextNode(""),e=new a(b);e.observe(d,{characterData:!0});var f=0;return function(a){c=a,d.data=f^=1}}var e,f="undefined"!=typeof setTimeout&&setTimeout,g=function(a,b){return setTimeout(a,b)},h=function(a){return clearTimeout(a)},i=function(a){return f(a,0)};if(b())i=function(a){return process.nextTick(a)};else if(e=c())i=d(e);else if(!f){var j=a,k=j("vertx");g=function(a,b){return k.setTimer(b,a)},h=k.cancelTimer,i=k.runOnLoop||k.runOnContext}return{setTimer:g,clearTimer:h,asap:i}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c){!function(a){"use strict";a(function(){function a(a){var c="object"==typeof a&&null!==a&&a.stack?a.stack:b(a);return a instanceof Error?c:c+" (WARNING: non-Error used)"}function b(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=c(a,b)),b}function c(a,b){try{return JSON.stringify(a)}catch(c){return b}}return{formatError:a,formatObject:b,tryStringify:c}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],7:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===t?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new v;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return I(a)?a:new b(t,new w(q(a)))}function e(a){return new b(t,new w(new z(a)))}function f(){return Z}function g(){return new b(t,new v)}function h(a,b){var c=new v(a.receiver,a.join().context);return new b(t,c)}function i(a){return k(S,null,a)}function j(a,b){return k(N,a,b)}function k(a,c,d){function e(b,e,g){g.resolved||l(d,f,b,a(c,e,b),g)}function f(a,b,c){k[a]=b,0===--j&&c.become(new y(k))}for(var g,h="function"==typeof c?e:f,i=new v,j=d.length>>>0,k=new Array(j),m=0;m0?b(c,f.value,e):(e.become(f),m(a,c+1,f))}else b(c,d,e)}function m(a,b,c){for(var d=b;dc&&a._unreport()}}function o(a){return"object"!=typeof a||null===a?e(new TypeError("non-iterable passed to race()")):0===a.length?f():1===a.length?d(a[0]):p(a)}function p(a){var c,d,e,f=new v;for(c=0;c0||"function"!=typeof b&&0>e)return new this.constructor(t,d);var f=this._beget(),g=f._handler;return d.chain(g,d.receiver,a,b,c),f},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){return h(this._handler,this.constructor)},b.all=i,b.race=o,b._traverse=j,b._visitRemaining=m,t.prototype.when=t.prototype.become=t.prototype.notify=t.prototype.fail=t.prototype._unreport=t.prototype._report=T,t.prototype._state=0,t.prototype.state=function(){return this._state},t.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},t.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},t.prototype.visit=function(a,b,c,d){this.chain(W,a,b,c,d)},t.prototype.fold=function(a,b,c,d){this.when(new H(a,b,c,d))},R(t,u),u.prototype.become=function(a){a.fail()};var W=new u;R(t,v),v.prototype._state=0,v.prototype.resolve=function(a){this.become(q(a))},v.prototype.reject=function(a){this.resolved||this.become(new z(a))},v.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=C();return a},v.prototype.run=function(){var a=this.consumers,b=this.join();this.consumers=void 0;for(var c=0;cf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,__eval(a.loaderObj.transpile(b),__global,b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k,l=0,m=g.loads.length;m>l;l++)if(g.loads[l].name==i)return k=g.loads[l],k.linkSets[0].done.then(function(){c(k)});var n=a(i);n.metadata=b.moduleMetadata;var o=h(g,n);g.loads.push(n),c(o.done),"locate"==j?d(g,n):"fetch"==j?e(g,n,A.resolve(b.moduleAddress)):(n.address=b.moduleAddress,f(g,n,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var d=0,e=b.length;e>d;d++)for(var f=b[d],g=0;g=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var E=x.prototype.newModule;"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(a){function b(a){var b=this.traceurOptions||{};b.modules="instantiate",b.script=!1,b.sourceMaps="inline",b.filename=a.address;var d=new f.Compiler(b),e=c(a.source,d,b.filename);return e+="!eval"}function c(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}function d(a){var b=this.to5Options||{};b.modules="system",b.sourceMap="inline",b.filename=a.address,b.code=!0,b.ast=!1;var c=f.transform(a.source,b).code;return c+"\n//# sourceURL="+a.address+"!eval"}var e,f,g="undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope;a.prototype.transpiler="traceur",a.prototype.transpile=function(a){if(!e&&("6to5"==this.transpiler?(e=d,f=g?require("6to5-core"):__global.to5):(e=b,f=g?require("traceur"):__global.traceur),!f))throw new TypeError("Include Traceur or 6to5 for module syntax support.");return'var __moduleAddress = "'+a.address+'";'+e.call(this,a)}}(__global.LoaderPolyfill),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); +!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=0&&(n.splice(b,1),l("Handled previous rejection ["+a.id+"] "+e.formatObject(a.value)))}function h(a,b){m.push(a,b),null===o&&(o=d(i,0))}function i(){for(o=null;m.length>0;)m.shift()(m.shift())}var j,k=c,l=c;"undefined"!=typeof console&&(j=console,k="undefined"!=typeof j.error?function(a){j.error(a)}:function(a){j.log(a)},l="undefined"!=typeof j.info?function(a){j.info(a)}:function(a){j.log(a)}),a.onPotentiallyUnhandledRejection=function(a){h(f,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){h(g,a)},a.onFatalRejection=function(a){h(b,a.value)};var m=[],n=[],o=null;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../env":5,"../format":6}],5:[function(b,c){!function(a){"use strict";a(function(a){function b(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick}function c(){return"function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver}function d(a){function b(){var a=c;c=void 0,a()}var c,d=document.createTextNode(""),e=new a(b);e.observe(d,{characterData:!0});var f=0;return function(a){c=a,d.data=f^=1}}var e,f="undefined"!=typeof setTimeout&&setTimeout,g=function(a,b){return setTimeout(a,b)},h=function(a){return clearTimeout(a)},i=function(a){return f(a,0)};if(b())i=function(a){return process.nextTick(a)};else if(e=c())i=d(e);else if(!f){var j=a,k=j("vertx");g=function(a,b){return k.setTimer(b,a)},h=k.cancelTimer,i=k.runOnLoop||k.runOnContext}return{setTimer:g,clearTimer:h,asap:i}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c){!function(a){"use strict";a(function(){function a(a){var c="object"==typeof a&&null!==a&&a.stack?a.stack:b(a);return a instanceof Error?c:c+" (WARNING: non-Error used)"}function b(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=c(a,b)),b}function c(a,b){try{return JSON.stringify(a)}catch(c){return b}}return{formatError:a,formatObject:b,tryStringify:c}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],7:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===t?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new v;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return I(a)?a:new b(t,new w(q(a)))}function e(a){return new b(t,new w(new z(a)))}function f(){return _}function g(){return new b(t,new v)}function h(a,b){var c=new v(a.receiver,a.join().context);return new b(t,c)}function i(a){return k(S,null,a)}function j(a,b){return k(N,a,b)}function k(a,c,d){function e(b,e,g){g.resolved||l(d,f,b,a(c,e,b),g)}function f(a,b,c){k[a]=b,0===--j&&c.become(new y(k))}for(var g,h="function"==typeof c?e:f,i=new v,j=d.length>>>0,k=new Array(j),m=0;m0?b(c,f.value,e):(e.become(f),m(a,c+1,f))}else b(c,d,e)}function m(a,b,c){for(var d=b;dc&&a._unreport()}}function o(a){return"object"!=typeof a||null===a?e(new TypeError("non-iterable passed to race()")):0===a.length?f():1===a.length?d(a[0]):p(a)}function p(a){var c,d,e,f=new v;for(c=0;c0||"function"!=typeof b&&0>e)return new this.constructor(t,d);var f=this._beget(),g=f._handler;return d.chain(g,d.receiver,a,b,c),f},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){return h(this._handler,this.constructor)},b.all=i,b.race=o,b._traverse=j,b._visitRemaining=m,t.prototype.when=t.prototype.become=t.prototype.notify=t.prototype.fail=t.prototype._unreport=t.prototype._report=T,t.prototype._state=0,t.prototype.state=function(){return this._state},t.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},t.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},t.prototype.visit=function(a,b,c,d){this.chain(Y,a,b,c,d)},t.prototype.fold=function(a,b,c,d){this.when(new H(a,b,c,d))},R(t,u),u.prototype.become=function(a){a.fail()};var Y=new u;R(t,v),v.prototype._state=0,v.prototype.resolve=function(a){this.become(q(a))},v.prototype.reject=function(a){this.resolved||this.become(new z(a))},v.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=C();return a},v.prototype.run=function(){var a=this.consumers,b=this.handler;this.handler=this.handler.join(),this.consumers=void 0;for(var c=0;cf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,__eval(a.loaderObj.transpile(b),__global,b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k,l=0,m=g.loads.length;m>l;l++)if(g.loads[l].name==i)return k=g.loads[l],"translate"!=j||k.source||(k.address=b.moduleAddress,f(g,k,A.resolve(b.moduleSource))),k.linkSets[0].done.then(function(){c(k)});var n=a(i);n.metadata=b.moduleMetadata;var o=h(g,n);g.loads.push(n),c(o.done),"locate"==j?d(g,n):"fetch"==j?e(g,n,A.resolve(b.moduleAddress)):(n.address=b.moduleAddress,f(g,n,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var d=0,e=b.length;e>d;d++)for(var f=b[d],g=0;g=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var E=x.prototype.newModule;"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(a){function b(a){var b=this.traceurOptions||{};b.modules="instantiate",b.script=!1,b.sourceMaps="inline",b.filename=a.address;var d=new f.Compiler(b),e=c(a.source,d,b.filename);return e+="!eval"}function c(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}function d(a){var b=this.babelOptions||{};b.modules="system",b.sourceMap="inline",b.filename=a.address,b.code=!0,b.ast=!1,b.blacklist=b.blacklist||[],b.blacklist.push("react");var c=f.transform(a.source,b).code;return c+"\n//# sourceURL="+a.address+"!eval"}var e,f,g="undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope;a.prototype.transpiler="traceur",a.prototype.transpile=function(a){if(!e&&("babel"==this.transpiler?(e=d,f=g?require("babel-core"):__global.babel):(e=b,f=g?require("traceur"):__global.traceur),!f))throw new TypeError("Include Traceur or Babel for module syntax support.");return'var __moduleAddress = "'+a.address+'";'+e.call(this,a)}}(__global.LoaderPolyfill),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); //# sourceMappingURL=es6-module-loader.js.map \ No newline at end of file diff --git a/dist/es6-module-loader.js.map b/dist/es6-module-loader.js.map index 61e09f7..1f0f99d 100644 --- a/dist/es6-module-loader.js.map +++ b/dist/es6-module-loader.js.map @@ -1 +1 @@ -{"version":3,"file":"es6-module-loader.js","sources":["es6-module-loader.src.js"],"names":["e","exports","module","define","amd","window","Promise","global","self","t","n","r","s","o","u","a","require","i","Error","f","call","length",1,"unhandledRejections","PromiseConstructor","../lib/Promise","../lib/decorators/unhandledRejection",2,"makePromise","Scheduler","async","asap","scheduler","factory","./Scheduler","./env","./makePromise",3,"this","_async","_running","_queue","Array","_queueLen","_afterQueue","_afterQueueLen","drain","_drain","prototype","enqueue","task","run","afterQueue",4,"throwit","noop","setTimer","format","report","handled","reported","push","logError","id","formatError","value","unreport","indexOf","splice","logInfo","formatObject","x","tasks","running","flush","shift","localConsole","console","error","log","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","../env","../format",5,"isNode","process","nextTick","hasMutationObserver","MutationObserver","WebKitMutationObserver","initMutationObserver","scheduled","node","document","createTextNode","observe","characterData","data","MutationObs","capturedSetTimeout","setTimeout","ms","clearTimer","clearTimeout","vertxRequire","vertx","cancelTimer","runOnLoop","runOnContext",6,"stack","String","JSON","tryStringify","defaultValue","stringify",7,"environment","resolver","handler","_handler","Handler","init","promiseResolve","resolve","promiseReject","reason","reject","promiseNotify","notify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","begetFrom","parent","child","receiver","join","context","all","promises","traverseWith","snd","traverse","tryCatch2","tryMap","mapAt","resolved","traverseAt","settleAt","results","pending","become","Fulfilled","maybeThenable","h","getHandlerMaybeThenable","state","fold","visitRemaining","start","markAsHandled","visit","_unreport","race","TypeError","runRace","getHandlerUntrusted","untrustedThen","then","Thenable","FailIfRejected","inheritedContext","createContext","consumers","thenable","AssimilateTask","errorId","_report","ReportTask","UnreportTask","cycle","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","Fold","z","c","to","failIfRejected","runContinuation1","next","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","b","thisArg","y","inherit","Parent","Child","objectCreate","constructor","Object","create","proto","_defer","onFulfilled","onRejected","onProgress","p","_beget","chain","_traverse","_visitRemaining","when","fail","_state","fulfilled","rejected","progress","q","cont","foreverPendingHandler","_resolve","_reject","_notify","__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","message","address","$__Object$getPrototypeOf","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","get","$__Object$create","props","F","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","loaderObj","normalize","modules","l","loads","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","transpile","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","existingLoad","done","linkSet","createLinkSet","startingLoad","loadingCount","j","d","doLink","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","linkIndex","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","preventExtensions","msg","Loader","_loader","importPromises","createImportPromise","promise","m","assert","item","thisLen","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","Reflect","LoaderPolyfill","traceurTranspile","traceurOptions","script","sourceMaps","filename","compiler","transpilerModule","Compiler","doTraceurCompile","compile","to5Transpile","to5Options","sourceMap","code","ast","transform","transpiler","WorkerGlobalScope","to5","traceur","parseURI","url","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","fetchTextFromURL","isWorker","isBrowser","isWindows","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"es6-module-loader.js","sources":["es6-module-loader.src.js"],"names":["e","exports","module","define","amd","window","Promise","global","self","t","n","r","s","o","u","a","require","i","Error","f","call","length",1,"unhandledRejections","PromiseConstructor","../lib/Promise","../lib/decorators/unhandledRejection",2,"makePromise","Scheduler","async","asap","scheduler","factory","./Scheduler","./env","./makePromise",3,"this","_async","_running","_queue","_queueLen","_afterQueue","_afterQueueLen","drain","_drain","prototype","enqueue","task","run","afterQueue",4,"throwit","noop","setTimer","format","report","handled","reported","push","logError","id","formatError","value","unreport","indexOf","splice","logInfo","formatObject","x","tasks","running","flush","shift","localConsole","console","error","log","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","../env","../format",5,"isNode","process","nextTick","hasMutationObserver","MutationObserver","WebKitMutationObserver","initMutationObserver","scheduled","node","document","createTextNode","observe","characterData","data","MutationObs","capturedSetTimeout","setTimeout","ms","clearTimer","clearTimeout","vertxRequire","vertx","cancelTimer","runOnLoop","runOnContext",6,"stack","String","JSON","tryStringify","defaultValue","stringify",7,"environment","resolver","handler","_handler","Handler","init","promiseResolve","resolve","promiseReject","reason","reject","promiseNotify","notify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","begetFrom","parent","child","receiver","join","context","all","promises","traverseWith","snd","traverse","tryCatch2","tryMap","mapAt","resolved","traverseAt","settleAt","results","pending","become","Fulfilled","Array","maybeThenable","h","getHandlerMaybeThenable","state","fold","visitRemaining","start","markAsHandled","visit","_unreport","race","TypeError","runRace","getHandlerUntrusted","untrustedThen","then","Thenable","FailIfRejected","inheritedContext","createContext","consumers","thenable","AssimilateTask","errorId","_report","ReportTask","UnreportTask","cycle","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","Fold","z","c","to","failIfRejected","runContinuation1","next","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","b","thisArg","y","inherit","Parent","Child","objectCreate","constructor","initEmitRejection","emit","type","CustomEvent","hasCustomEvent","ev","detail","key","bubbles","cancelable","dispatchEvent","emitRejection","Object","create","proto","_defer","onFulfilled","onRejected","onProgress","p","_beget","chain","_traverse","_visitRemaining","when","fail","_state","fulfilled","rejected","progress","q","cont","foreverPendingHandler","_resolve","_reject","_notify","__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","message","address","$__Object$getPrototypeOf","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","get","$__Object$create","props","F","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","loaderObj","normalize","modules","l","loads","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","transpile","execute","loadPromises","index","depLoad","concat","addLoadToLinkSet","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","existingLoad","done","linkSet","createLinkSet","startingLoad","loadingCount","j","d","doLink","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","linkIndex","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","preventExtensions","msg","Loader","_loader","importPromises","createImportPromise","promise","m","assert","item","thisLen","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","Reflect","LoaderPolyfill","traceurTranspile","traceurOptions","script","sourceMaps","filename","compiler","transpilerModule","Compiler","doTraceurCompile","compile","babelTranspile","babelOptions","sourceMap","code","ast","blacklist","transform","transpiler","WorkerGlobalScope","babel","traceur","parseURI","url","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","removeEventListener","ready","scripts","getElementsByTagName","innerHTML","substr","fetchTextFromURL","isWorker","isBrowser","isWindows","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6-module-loader.src.js b/dist/es6-module-loader.src.js index 1b55b67..b91add2 100644 --- a/dist/es6-module-loader.src.js +++ b/dist/es6-module-loader.src.js @@ -52,9 +52,9 @@ define(function() { this._async = async; this._running = false; - this._queue = new Array(1<<16); + this._queue = this; this._queueLen = 0; - this._afterQueue = new Array(1<<4); + this._afterQueue = {}; this._afterQueueLen = 0; var self = this; @@ -126,6 +126,7 @@ define(function(require) { var format = require('../format'); return function unhandledRejection(Promise) { + var logError = noop; var logInfo = noop; var localConsole; @@ -345,6 +346,7 @@ define(function() { return function makePromise(environment) { var tasks = environment.scheduler; + var emitRejection = initEmitRejection(); var objectCreate = Object.create || function(proto) { @@ -811,7 +813,8 @@ define(function() { Pending.prototype.run = function() { var q = this.consumers; - var handler = this.join(); + var handler = this.handler; + this.handler = this.handler.join(); this.consumers = void 0; for (var i = 0; i < q.length; ++i) { @@ -973,6 +976,8 @@ define(function() { }; Rejected.prototype.fail = function(context) { + this.reported = true; + emitRejection('unhandledRejection', this); Promise.onFatalRejection(this, context === void 0 ? this.context : context); }; @@ -982,9 +987,10 @@ define(function() { } ReportTask.prototype.run = function() { - if(!this.rejection.handled) { + if(!this.rejection.handled && !this.rejection.reported) { this.rejection.reported = true; - Promise.onPotentiallyUnhandledRejection(this.rejection, this.context); + emitRejection('unhandledRejection', this.rejection) || + Promise.onPotentiallyUnhandledRejection(this.rejection, this.context); } }; @@ -994,14 +1000,14 @@ define(function() { UnreportTask.prototype.run = function() { if(this.rejection.reported) { - Promise.onPotentiallyUnhandledRejectionHandled(this.rejection); + emitRejection('rejectionHandled', this.rejection) || + Promise.onPotentiallyUnhandledRejectionHandled(this.rejection); } }; // Unhandled rejection hooks // By default, everything is a noop - // TODO: Better names: "annotate"? Promise.createContext = Promise.enterContext = Promise.exitContext @@ -1214,6 +1220,45 @@ define(function() { function noop() {} + function initEmitRejection() { + /*global process, self, CustomEvent*/ + if(typeof process !== 'undefined' && process !== null + && typeof process.emit === 'function') { + // Returning falsy here means to call the default + // onPotentiallyUnhandledRejection API. This is safe even in + // browserify since process.emit always returns falsy in browserify: + // https://github.com/defunctzombie/node-process/blob/master/browser.js#L40-L46 + return function(type, rejection) { + return type === 'unhandledRejection' + ? process.emit(type, rejection.value, rejection) + : process.emit(type, rejection); + }; + } else if(typeof self !== 'undefined' && typeof CustomEvent === 'function') { + return (function(noop, self, CustomEvent) { + var hasCustomEvent = false; + try { + var ev = new CustomEvent('unhandledRejection'); + hasCustomEvent = ev instanceof CustomEvent; + } catch (e) {} + + return !hasCustomEvent ? noop : function(type, rejection) { + var ev = new CustomEvent(type, { + detail: { + reason: rejection.value, + key: rejection + }, + bubbles: false, + cancelable: true + }); + + return !self.dispatchEvent(ev); + }; + }(noop, self, CustomEvent)); + } + + return noop; + } + return Promise; }; }); @@ -1606,6 +1651,12 @@ function logloads(loads) { for (var i = 0, l = loader.loads.length; i < l; i++) { if (loader.loads[i].name == name) { existingLoad = loader.loads[i]; + + if(step == 'translate' && !existingLoad.source) { + existingLoad.address = stepState.moduleAddress; + proceedToTranslate(loader, existingLoad, Promise.resolve(stepState.moduleSource)); + } + return existingLoad.linkSets[0].done.then(function() { resolve(existingLoad); }); @@ -2325,7 +2376,7 @@ function logloads(loads) { })(); /* - * Traceur and 6to5 transpile hook for Loader + * Traceur and Babel transpile hook for Loader */ (function(Loader) { // Returns an array of ModuleSpecifiers @@ -2337,9 +2388,9 @@ function logloads(loads) { Loader.prototype.transpile = function(load) { if (!transpiler) { - if (this.transpiler == '6to5') { - transpiler = to5Transpile; - transpilerModule = isNode ? require('6to5-core') : __global.to5; + if (this.transpiler == 'babel') { + transpiler = babelTranspile; + transpilerModule = isNode ? require('babel-core') : __global.babel; } else { transpiler = traceurTranspile; @@ -2347,7 +2398,7 @@ function logloads(loads) { } if (!transpilerModule) - throw new TypeError('Include Traceur or 6to5 for module syntax support.'); + throw new TypeError('Include Traceur or Babel for module syntax support.'); } return 'var __moduleAddress = "' + load.address + '";' + transpiler.call(this, load); @@ -2379,17 +2430,19 @@ function logloads(loads) { } } - function to5Transpile(load) { - var options = this.to5Options || {}; + function babelTranspile(load) { + var options = this.babelOptions || {}; options.modules = 'system'; options.sourceMap = 'inline'; options.filename = load.address; options.code = true; options.ast = false; + options.blacklist = options.blacklist || []; + options.blacklist.push('react'); var source = transpilerModule.transform(load.source, options).code; - // add "!eval" to end of 6to5 sourceURL + // add "!eval" to end of Babel sourceURL // I believe this does something? return source + '\n//# sourceURL=' + load.address + '!eval'; } diff --git a/package.json b/package.json index 03c11c6..8c9e6df 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "es6-module-loader", "description": "An ES6 Module Loader shim", - "version": "0.13.1", + "version": "0.14.0", "homepage": "https://github.com/ModuleLoader/es6-module-loader", "author": { "name": "Guy Bedford, Luke Hoban, Addy Osmani", From cf4f7577d911f3e758951b45cc2ba41376cc6003 Mon Sep 17 00:00:00 2001 From: Peter Robins Date: Sun, 22 Feb 2015 11:46:14 +0000 Subject: [PATCH 178/482] Correct link to Babel in Readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ac5e797..1551a90 100644 --- a/README.md +++ b/README.md @@ -5,7 +5,7 @@ Dynamically loads ES6 modules in browsers and [NodeJS](#nodejs-use) with support This project implements dynamic module loading through `System` exactly to the previous ES6-specified loader API at [2014-08-24 ES6 Specification Draft Rev 27, Section 15](http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#august_24_2014_draft_rev_27) and will continue to track this API as it is re-drafted as a browser specification (currently most likely to be at https://github.com/whatwg/loader). * Provides an asynchronous loader (`System.import`) to [dynamically load ES6 modules](#getting-started). -* Supports both [Traceur](https://github.com/google/traceur-compiler) and [Babel](https://babel.org/) for compiling ES6 modules and syntax into ES5 in the browser with source map support. +* Supports both [Traceur](https://github.com/google/traceur-compiler) and [Babel](http://babeljs.io/) for compiling ES6 modules and syntax into ES5 in the browser with source map support. * Fully supports [ES6 circular references and live bindings](https://github.com/ModuleLoader/es6-module-loader/wiki/Circular-References-&-Bindings). * Includes [`baseURL` and `paths` implementations](https://github.com/ModuleLoader/es6-module-loader/wiki/Configuring-the-Loader). * Can be used as a [tracing tool](https://github.com/ModuleLoader/es6-module-loader/wiki/Tracing-API) for static analysis of modules. From 2f7560e6cd562f301fc945d8b7f0f9b155e25bc1 Mon Sep 17 00:00:00 2001 From: Peter Robins Date: Sun, 22 Feb 2015 13:15:14 +0000 Subject: [PATCH 179/482] Correct demo reference in Readme --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1551a90..48a0fed 100644 --- a/README.md +++ b/README.md @@ -95,7 +95,7 @@ As well as defining `window.System`, this polyfill provides support for the ` Date: Tue, 3 Mar 2015 15:12:11 +0200 Subject: [PATCH 180/482] support input source maps (#314) --- src/transpiler.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/transpiler.js b/src/transpiler.js index e4fbd52..10b5fa0 100644 --- a/src/transpiler.js +++ b/src/transpiler.js @@ -33,6 +33,7 @@ options.script = false; options.sourceMaps = 'inline'; options.filename = load.address; + options.inputSourceMap = load.metadata.sourceMap; var compiler = new transpilerModule.Compiler(options); var source = doTraceurCompile(load.source, compiler, options.filename); From 69b25899e38604eda8e53f50107004a1e696d24f Mon Sep 17 00:00:00 2001 From: guybedford Date: Tue, 3 Mar 2015 15:25:08 +0200 Subject: [PATCH 181/482] ensure delete re-execution (#313) --- src/loader.js | 5 ++++- test/loader/module.js | 7 +++++++ test/system.spec.js | 24 ++++++++++++++++++++++++ test/test.js | 17 +++++++++++++++++ 4 files changed, 52 insertions(+), 1 deletion(-) create mode 100644 test/loader/module.js diff --git a/src/loader.js b/src/loader.js index ad6297d..817aed4 100644 --- a/src/loader.js +++ b/src/loader.js @@ -939,7 +939,10 @@ function logloads(loads) { }, // 26.3.3.3 'delete': function(name) { - return this._loader.modules[name] ? delete this._loader.modules[name] : false; + var loader = this._loader; + delete loader.importPromises[name]; + delete loader.moduleRecords[name]; + return loader.modules[name] ? delete loader.modules[name] : false; }, // 26.3.3.4 entries not implemented // 26.3.3.5 diff --git a/test/loader/module.js b/test/loader/module.js new file mode 100644 index 0000000..c04c425 --- /dev/null +++ b/test/loader/module.js @@ -0,0 +1,7 @@ +export var run; + +(function(global) { + run = global.run ? 'second' : 'first'; + + global.run = true; +})(typeof window == 'undefined' ? global : window); \ No newline at end of file diff --git a/test/system.spec.js b/test/system.spec.js index 8a2ce8c..07ce78f 100644 --- a/test/system.spec.js +++ b/test/system.spec.js @@ -46,6 +46,30 @@ describe('System', function () { }); + describe('System registry methods', function() { + + it('should support set, get and delete', function(done) { + + var testPath = 'test/loader/module'; + + System.import(testPath).then(function(m) { + expect(m.run).to.equal('first'); + System.delete(testPath); + return System.import(testPath); + }) + .then(function(m) { + expect(m.run).to.equal('second'); + System.delete('loader.module'); + System.set(testPath, System.newModule({ custom: 'module' })); + return System.import(testPath); + }) + .then(function(m) { + expect(m.custom).to.equal('module'); + }) + .then(done, done); + }); + }); + describe('an ES6 script', function () { it('should import an ES6 script', function (done) { diff --git a/test/test.js b/test/test.js index 662a307..cbcbe59 100644 --- a/test/test.js +++ b/test/test.js @@ -179,6 +179,23 @@ function runTests() { assert(System.normalize('../a/b', '../../c/d'), '../../a/b'); }); + test('Setting & deleting modules', function(assert, err) { + System['import']('loader/module').then(function(m1) { + System['delete']('loader/module'); + System['import']('loader/module').then(function(m2) { + System['delete']('loader/module'); + System.set('loader/module', System.newModule({custom: 'module'})); + System['import']('loader/module').then(function(m3) { + assert( + [m1.run, 'first'], + [m2.run, 'second'], + [m3.custom, 'module'] + ); + }, err); + }, err); + }, err); + }); + test('Import a script', function(assert, err) { System['import']('syntax/script').then(function(m) { assert(!!m, true); From d4b91b59eb1bd19fd23f018a5d04b2cfa27dcbec Mon Sep 17 00:00:00 2001 From: guybedford Date: Tue, 3 Mar 2015 17:10:39 +0200 Subject: [PATCH 182/482] build --- dist/es6-module-loader-sans-promises.js | 2 +- dist/es6-module-loader-sans-promises.js.map | 2 +- dist/es6-module-loader-sans-promises.src.js | 6 +++++- dist/es6-module-loader.js | 2 +- dist/es6-module-loader.js.map | 2 +- dist/es6-module-loader.src.js | 6 +++++- 6 files changed, 14 insertions(+), 6 deletions(-) diff --git a/dist/es6-module-loader-sans-promises.js b/dist/es6-module-loader-sans-promises.js index 16bbe6f..4cf8380 100644 --- a/dist/es6-module-loader-sans-promises.js +++ b/dist/es6-module-loader-sans-promises.js @@ -4,5 +4,5 @@ * Copyright (c) 2015 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(__global){function __eval(__source,__global,load){var __curRegister=System.register;System.register=function(a,b,c){"string"!=typeof a&&(c=b,b=a),load.declare=c,load.depsList=b};try{eval('(function() { var __moduleName = "'+(load.name||"").replace('"','"')+'"; '+__source+" \n }).call(__global);")}catch(e){throw("SyntaxError"==e.name||"TypeError"==e.name)&&(e.message="Evaluating "+(load.name||load.address)+"\n "+e.message),e}System.register=__curRegister}$__Object$getPrototypeOf=Object.getPrototypeOf||function(a){return a.__proto__};var $__Object$defineProperty;!function(){try{Object.defineProperty({},"a",{})&&($__Object$defineProperty=Object.defineProperty)}catch(a){$__Object$defineProperty=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),$__Object$create=Object.create||function(a,b){function c(){}if(c.prototype=a,"object"==typeof b)for(prop in b)b.hasOwnProperty(prop)&&(c[prop]=b[prop]);return new c},function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new A(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:c&&c.metadata||{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new A(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return e=a(c),e.status="linked",e.module=b.modules[c],e;for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,__eval(a.loaderObj.transpile(b),__global,b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k,l=0,m=g.loads.length;m>l;l++)if(g.loads[l].name==i)return k=g.loads[l],"translate"!=j||k.source||(k.address=b.moduleAddress,f(g,k,A.resolve(b.moduleSource))),k.linkSets[0].done.then(function(){c(k)});var n=a(i);n.metadata=b.moduleMetadata;var o=h(g,n);g.loads.push(n),c(o.done),"locate"==j?d(g,n):"fetch"==j?e(g,n,A.resolve(b.moduleAddress)):(n.address=b.moduleAddress,f(g,n,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var d=0,e=b.length;e>d;d++)for(var f=b[d],g=0;g=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var E=x.prototype.newModule;"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(a){function b(a){var b=this.traceurOptions||{};b.modules="instantiate",b.script=!1,b.sourceMaps="inline",b.filename=a.address;var d=new f.Compiler(b),e=c(a.source,d,b.filename);return e+="!eval"}function c(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}function d(a){var b=this.babelOptions||{};b.modules="system",b.sourceMap="inline",b.filename=a.address,b.code=!0,b.ast=!1,b.blacklist=b.blacklist||[],b.blacklist.push("react");var c=f.transform(a.source,b).code;return c+"\n//# sourceURL="+a.address+"!eval"}var e,f,g="undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope;a.prototype.transpiler="traceur",a.prototype.transpile=function(a){if(!e&&("babel"==this.transpiler?(e=d,f=g?require("babel-core"):__global.babel):(e=b,f=g?require("traceur"):__global.traceur),!f))throw new TypeError("Include Traceur or Babel for module syntax support.");return'var __moduleAddress = "'+a.address+'";'+e.call(this,a)}}(__global.LoaderPolyfill),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); +!function(__global){function __eval(__source,__global,load){var __curRegister=System.register;System.register=function(a,b,c){"string"!=typeof a&&(c=b,b=a),load.declare=c,load.depsList=b};try{eval('(function() { var __moduleName = "'+(load.name||"").replace('"','"')+'"; '+__source+" \n }).call(__global);")}catch(e){throw("SyntaxError"==e.name||"TypeError"==e.name)&&(e.message="Evaluating "+(load.name||load.address)+"\n "+e.message),e}System.register=__curRegister}$__Object$getPrototypeOf=Object.getPrototypeOf||function(a){return a.__proto__};var $__Object$defineProperty;!function(){try{Object.defineProperty({},"a",{})&&($__Object$defineProperty=Object.defineProperty)}catch(a){$__Object$defineProperty=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),$__Object$create=Object.create||function(a,b){function c(){}if(c.prototype=a,"object"==typeof b)for(prop in b)b.hasOwnProperty(prop)&&(c[prop]=b[prop]);return new c},function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new A(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:c&&c.metadata||{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new A(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return e=a(c),e.status="linked",e.module=b.modules[c],e;for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,__eval(a.loaderObj.transpile(b),__global,b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k,l=0,m=g.loads.length;m>l;l++)if(g.loads[l].name==i)return k=g.loads[l],"translate"!=j||k.source||(k.address=b.moduleAddress,f(g,k,A.resolve(b.moduleSource))),k.linkSets[0].done.then(function(){c(k)});var n=a(i);n.metadata=b.moduleMetadata;var o=h(g,n);g.loads.push(n),c(o.done),"locate"==j?d(g,n):"fetch"==j?e(g,n,A.resolve(b.moduleAddress)):(n.address=b.moduleAddress,f(g,n,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var d=0,e=b.length;e>d;d++)for(var f=b[d],g=0;g=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){var b=this._loader;return delete b.importPromises[a],delete b.moduleRecords[a],b.modules[a]?delete b.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var E=x.prototype.newModule;"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(a){function b(a){var b=this.traceurOptions||{};b.modules="instantiate",b.script=!1,b.sourceMaps="inline",b.filename=a.address,b.inputSourceMap=a.metadata.sourceMap;var d=new f.Compiler(b),e=c(a.source,d,b.filename);return e+="!eval"}function c(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}function d(a){var b=this.babelOptions||{};b.modules="system",b.sourceMap="inline",b.filename=a.address,b.code=!0,b.ast=!1,b.blacklist=b.blacklist||[],b.blacklist.push("react");var c=f.transform(a.source,b).code;return c+"\n//# sourceURL="+a.address+"!eval"}var e,f,g="undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope;a.prototype.transpiler="traceur",a.prototype.transpile=function(a){if(!e&&("babel"==this.transpiler?(e=d,f=g?require("babel-core"):__global.babel):(e=b,f=g?require("traceur"):__global.traceur),!f))throw new TypeError("Include Traceur or Babel for module syntax support.");return'var __moduleAddress = "'+a.address+'";'+e.call(this,a)}}(__global.LoaderPolyfill),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); //# sourceMappingURL=es6-module-loader-sans-promises.js.map \ No newline at end of file diff --git a/dist/es6-module-loader-sans-promises.js.map b/dist/es6-module-loader-sans-promises.js.map index e8020ed..3ab5528 100644 --- a/dist/es6-module-loader-sans-promises.js.map +++ b/dist/es6-module-loader-sans-promises.js.map @@ -1 +1 @@ -{"version":3,"file":"es6-module-loader-sans-promises.js","sources":["es6-module-loader-sans-promises.src.js"],"names":["__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","e","message","address","$__Object$getPrototypeOf","Object","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","value","get","call","$__Object$create","create","o","props","F","prototype","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","Promise","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","resolve","loaderObj","normalize","then","modules","module","i","l","loads","length","push","proceedToLocate","proceedToFetch","locate","p","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","transpile","TypeError","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","all","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","existingLoad","done","linkSet","createLinkSet","startingLoad","loadingCount","reject","j","d","doLink","error","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","indexOf","linkIndex","splice","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","Error","preventExtensions","msg","Loader","this","_loader","importPromises","createImportPromise","promise","m","require","console","assert","Array","item","thisLen","constructor","define","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","exports","Reflect","global","LoaderPolyfill","traceurTranspile","traceurOptions","script","sourceMaps","filename","compiler","transpilerModule","Compiler","doTraceurCompile","compile","babelTranspile","babelOptions","sourceMap","code","ast","blacklist","transform","transpiler","isNode","window","WorkerGlobalScope","babel","traceur","parseURI","url","String","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","join","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","document","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","setTimeout","fetchTextFromURL","isWorker","self","isBrowser","isWindows","process","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","data","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"es6-module-loader-sans-promises.js","sources":["es6-module-loader-sans-promises.src.js"],"names":["__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","e","message","address","$__Object$getPrototypeOf","Object","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","value","get","call","$__Object$create","create","o","props","F","prototype","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","Promise","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","resolve","loaderObj","normalize","then","modules","module","i","l","loads","length","push","proceedToLocate","proceedToFetch","locate","p","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","transpile","TypeError","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","all","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","existingLoad","done","linkSet","createLinkSet","startingLoad","loadingCount","reject","j","d","doLink","error","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","indexOf","linkIndex","splice","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","Error","preventExtensions","msg","Loader","this","_loader","importPromises","createImportPromise","promise","m","require","console","assert","Array","item","thisLen","constructor","define","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","exports","Reflect","global","LoaderPolyfill","traceurTranspile","traceurOptions","script","sourceMaps","filename","inputSourceMap","sourceMap","compiler","transpilerModule","Compiler","doTraceurCompile","compile","babelTranspile","babelOptions","code","ast","blacklist","transform","transpiler","isNode","window","WorkerGlobalScope","babel","traceur","parseURI","url","String","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","join","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","document","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","setTimeout","fetchTextFromURL","isWorker","self","isBrowser","isWindows","process","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","data","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6-module-loader-sans-promises.src.js b/dist/es6-module-loader-sans-promises.src.js index 8cbe2d0..84470a8 100644 --- a/dist/es6-module-loader-sans-promises.src.js +++ b/dist/es6-module-loader-sans-promises.src.js @@ -975,7 +975,10 @@ function logloads(loads) { }, // 26.3.3.3 'delete': function(name) { - return this._loader.modules[name] ? delete this._loader.modules[name] : false; + var loader = this._loader; + delete loader.importPromises[name]; + delete loader.moduleRecords[name]; + return loader.modules[name] ? delete loader.modules[name] : false; }, // 26.3.3.4 entries not implemented // 26.3.3.5 @@ -1140,6 +1143,7 @@ function logloads(loads) { options.script = false; options.sourceMaps = 'inline'; options.filename = load.address; + options.inputSourceMap = load.metadata.sourceMap; var compiler = new transpilerModule.Compiler(options); var source = doTraceurCompile(load.source, compiler, options.filename); diff --git a/dist/es6-module-loader.js b/dist/es6-module-loader.js index abfc69a..b0f0814 100644 --- a/dist/es6-module-loader.js +++ b/dist/es6-module-loader.js @@ -4,5 +4,5 @@ * Copyright (c) 2015 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=0&&(n.splice(b,1),l("Handled previous rejection ["+a.id+"] "+e.formatObject(a.value)))}function h(a,b){m.push(a,b),null===o&&(o=d(i,0))}function i(){for(o=null;m.length>0;)m.shift()(m.shift())}var j,k=c,l=c;"undefined"!=typeof console&&(j=console,k="undefined"!=typeof j.error?function(a){j.error(a)}:function(a){j.log(a)},l="undefined"!=typeof j.info?function(a){j.info(a)}:function(a){j.log(a)}),a.onPotentiallyUnhandledRejection=function(a){h(f,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){h(g,a)},a.onFatalRejection=function(a){h(b,a.value)};var m=[],n=[],o=null;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../env":5,"../format":6}],5:[function(b,c){!function(a){"use strict";a(function(a){function b(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick}function c(){return"function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver}function d(a){function b(){var a=c;c=void 0,a()}var c,d=document.createTextNode(""),e=new a(b);e.observe(d,{characterData:!0});var f=0;return function(a){c=a,d.data=f^=1}}var e,f="undefined"!=typeof setTimeout&&setTimeout,g=function(a,b){return setTimeout(a,b)},h=function(a){return clearTimeout(a)},i=function(a){return f(a,0)};if(b())i=function(a){return process.nextTick(a)};else if(e=c())i=d(e);else if(!f){var j=a,k=j("vertx");g=function(a,b){return k.setTimer(b,a)},h=k.cancelTimer,i=k.runOnLoop||k.runOnContext}return{setTimer:g,clearTimer:h,asap:i}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c){!function(a){"use strict";a(function(){function a(a){var c="object"==typeof a&&null!==a&&a.stack?a.stack:b(a);return a instanceof Error?c:c+" (WARNING: non-Error used)"}function b(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=c(a,b)),b}function c(a,b){try{return JSON.stringify(a)}catch(c){return b}}return{formatError:a,formatObject:b,tryStringify:c}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],7:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===t?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new v;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return I(a)?a:new b(t,new w(q(a)))}function e(a){return new b(t,new w(new z(a)))}function f(){return _}function g(){return new b(t,new v)}function h(a,b){var c=new v(a.receiver,a.join().context);return new b(t,c)}function i(a){return k(S,null,a)}function j(a,b){return k(N,a,b)}function k(a,c,d){function e(b,e,g){g.resolved||l(d,f,b,a(c,e,b),g)}function f(a,b,c){k[a]=b,0===--j&&c.become(new y(k))}for(var g,h="function"==typeof c?e:f,i=new v,j=d.length>>>0,k=new Array(j),m=0;m0?b(c,f.value,e):(e.become(f),m(a,c+1,f))}else b(c,d,e)}function m(a,b,c){for(var d=b;dc&&a._unreport()}}function o(a){return"object"!=typeof a||null===a?e(new TypeError("non-iterable passed to race()")):0===a.length?f():1===a.length?d(a[0]):p(a)}function p(a){var c,d,e,f=new v;for(c=0;c0||"function"!=typeof b&&0>e)return new this.constructor(t,d);var f=this._beget(),g=f._handler;return d.chain(g,d.receiver,a,b,c),f},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){return h(this._handler,this.constructor)},b.all=i,b.race=o,b._traverse=j,b._visitRemaining=m,t.prototype.when=t.prototype.become=t.prototype.notify=t.prototype.fail=t.prototype._unreport=t.prototype._report=T,t.prototype._state=0,t.prototype.state=function(){return this._state},t.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},t.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},t.prototype.visit=function(a,b,c,d){this.chain(Y,a,b,c,d)},t.prototype.fold=function(a,b,c,d){this.when(new H(a,b,c,d))},R(t,u),u.prototype.become=function(a){a.fail()};var Y=new u;R(t,v),v.prototype._state=0,v.prototype.resolve=function(a){this.become(q(a))},v.prototype.reject=function(a){this.resolved||this.become(new z(a))},v.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=C();return a},v.prototype.run=function(){var a=this.consumers,b=this.handler;this.handler=this.handler.join(),this.consumers=void 0;for(var c=0;cf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,__eval(a.loaderObj.transpile(b),__global,b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k,l=0,m=g.loads.length;m>l;l++)if(g.loads[l].name==i)return k=g.loads[l],"translate"!=j||k.source||(k.address=b.moduleAddress,f(g,k,A.resolve(b.moduleSource))),k.linkSets[0].done.then(function(){c(k)});var n=a(i);n.metadata=b.moduleMetadata;var o=h(g,n);g.loads.push(n),c(o.done),"locate"==j?d(g,n):"fetch"==j?e(g,n,A.resolve(b.moduleAddress)):(n.address=b.moduleAddress,f(g,n,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var d=0,e=b.length;e>d;d++)for(var f=b[d],g=0;g=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){return this._loader.modules[a]?delete this._loader.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var E=x.prototype.newModule;"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(a){function b(a){var b=this.traceurOptions||{};b.modules="instantiate",b.script=!1,b.sourceMaps="inline",b.filename=a.address;var d=new f.Compiler(b),e=c(a.source,d,b.filename);return e+="!eval"}function c(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}function d(a){var b=this.babelOptions||{};b.modules="system",b.sourceMap="inline",b.filename=a.address,b.code=!0,b.ast=!1,b.blacklist=b.blacklist||[],b.blacklist.push("react");var c=f.transform(a.source,b).code;return c+"\n//# sourceURL="+a.address+"!eval"}var e,f,g="undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope;a.prototype.transpiler="traceur",a.prototype.transpile=function(a){if(!e&&("babel"==this.transpiler?(e=d,f=g?require("babel-core"):__global.babel):(e=b,f=g?require("traceur"):__global.traceur),!f))throw new TypeError("Include Traceur or Babel for module syntax support.");return'var __moduleAddress = "'+a.address+'";'+e.call(this,a)}}(__global.LoaderPolyfill),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); +!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=0&&(n.splice(b,1),l("Handled previous rejection ["+a.id+"] "+e.formatObject(a.value)))}function h(a,b){m.push(a,b),null===o&&(o=d(i,0))}function i(){for(o=null;m.length>0;)m.shift()(m.shift())}var j,k=c,l=c;"undefined"!=typeof console&&(j=console,k="undefined"!=typeof j.error?function(a){j.error(a)}:function(a){j.log(a)},l="undefined"!=typeof j.info?function(a){j.info(a)}:function(a){j.log(a)}),a.onPotentiallyUnhandledRejection=function(a){h(f,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){h(g,a)},a.onFatalRejection=function(a){h(b,a.value)};var m=[],n=[],o=null;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../env":5,"../format":6}],5:[function(b,c){!function(a){"use strict";a(function(a){function b(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick}function c(){return"function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver}function d(a){function b(){var a=c;c=void 0,a()}var c,d=document.createTextNode(""),e=new a(b);e.observe(d,{characterData:!0});var f=0;return function(a){c=a,d.data=f^=1}}var e,f="undefined"!=typeof setTimeout&&setTimeout,g=function(a,b){return setTimeout(a,b)},h=function(a){return clearTimeout(a)},i=function(a){return f(a,0)};if(b())i=function(a){return process.nextTick(a)};else if(e=c())i=d(e);else if(!f){var j=a,k=j("vertx");g=function(a,b){return k.setTimer(b,a)},h=k.cancelTimer,i=k.runOnLoop||k.runOnContext}return{setTimer:g,clearTimer:h,asap:i}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c){!function(a){"use strict";a(function(){function a(a){var c="object"==typeof a&&null!==a&&a.stack?a.stack:b(a);return a instanceof Error?c:c+" (WARNING: non-Error used)"}function b(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=c(a,b)),b}function c(a,b){try{return JSON.stringify(a)}catch(c){return b}}return{formatError:a,formatObject:b,tryStringify:c}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],7:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===t?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new v;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return I(a)?a:new b(t,new w(q(a)))}function e(a){return new b(t,new w(new z(a)))}function f(){return _}function g(){return new b(t,new v)}function h(a,b){var c=new v(a.receiver,a.join().context);return new b(t,c)}function i(a){return k(S,null,a)}function j(a,b){return k(N,a,b)}function k(a,c,d){function e(b,e,g){g.resolved||l(d,f,b,a(c,e,b),g)}function f(a,b,c){k[a]=b,0===--j&&c.become(new y(k))}for(var g,h="function"==typeof c?e:f,i=new v,j=d.length>>>0,k=new Array(j),m=0;m0?b(c,f.value,e):(e.become(f),m(a,c+1,f))}else b(c,d,e)}function m(a,b,c){for(var d=b;dc&&a._unreport()}}function o(a){return"object"!=typeof a||null===a?e(new TypeError("non-iterable passed to race()")):0===a.length?f():1===a.length?d(a[0]):p(a)}function p(a){var c,d,e,f=new v;for(c=0;c0||"function"!=typeof b&&0>e)return new this.constructor(t,d);var f=this._beget(),g=f._handler;return d.chain(g,d.receiver,a,b,c),f},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){return h(this._handler,this.constructor)},b.all=i,b.race=o,b._traverse=j,b._visitRemaining=m,t.prototype.when=t.prototype.become=t.prototype.notify=t.prototype.fail=t.prototype._unreport=t.prototype._report=T,t.prototype._state=0,t.prototype.state=function(){return this._state},t.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},t.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},t.prototype.visit=function(a,b,c,d){this.chain(Y,a,b,c,d)},t.prototype.fold=function(a,b,c,d){this.when(new H(a,b,c,d))},R(t,u),u.prototype.become=function(a){a.fail()};var Y=new u;R(t,v),v.prototype._state=0,v.prototype.resolve=function(a){this.become(q(a))},v.prototype.reject=function(a){this.resolved||this.become(new z(a))},v.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=C();return a},v.prototype.run=function(){var a=this.consumers,b=this.handler;this.handler=this.handler.join(),this.consumers=void 0;for(var c=0;cf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,__eval(a.loaderObj.transpile(b),__global,b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k,l=0,m=g.loads.length;m>l;l++)if(g.loads[l].name==i)return k=g.loads[l],"translate"!=j||k.source||(k.address=b.moduleAddress,f(g,k,A.resolve(b.moduleSource))),k.linkSets[0].done.then(function(){c(k)});var n=a(i);n.metadata=b.moduleMetadata;var o=h(g,n);g.loads.push(n),c(o.done),"locate"==j?d(g,n):"fetch"==j?e(g,n,A.resolve(b.moduleAddress)):(n.address=b.moduleAddress,f(g,n,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var d=0,e=b.length;e>d;d++)for(var f=b[d],g=0;g=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){var b=this._loader;return delete b.importPromises[a],delete b.moduleRecords[a],b.modules[a]?delete b.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var E=x.prototype.newModule;"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(a){function b(a){var b=this.traceurOptions||{};b.modules="instantiate",b.script=!1,b.sourceMaps="inline",b.filename=a.address,b.inputSourceMap=a.metadata.sourceMap;var d=new f.Compiler(b),e=c(a.source,d,b.filename);return e+="!eval"}function c(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}function d(a){var b=this.babelOptions||{};b.modules="system",b.sourceMap="inline",b.filename=a.address,b.code=!0,b.ast=!1,b.blacklist=b.blacklist||[],b.blacklist.push("react");var c=f.transform(a.source,b).code;return c+"\n//# sourceURL="+a.address+"!eval"}var e,f,g="undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope;a.prototype.transpiler="traceur",a.prototype.transpile=function(a){if(!e&&("babel"==this.transpiler?(e=d,f=g?require("babel-core"):__global.babel):(e=b,f=g?require("traceur"):__global.traceur),!f))throw new TypeError("Include Traceur or Babel for module syntax support.");return'var __moduleAddress = "'+a.address+'";'+e.call(this,a)}}(__global.LoaderPolyfill),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); //# sourceMappingURL=es6-module-loader.js.map \ No newline at end of file diff --git a/dist/es6-module-loader.js.map b/dist/es6-module-loader.js.map index 1f0f99d..a1ddf5a 100644 --- a/dist/es6-module-loader.js.map +++ b/dist/es6-module-loader.js.map @@ -1 +1 @@ -{"version":3,"file":"es6-module-loader.js","sources":["es6-module-loader.src.js"],"names":["e","exports","module","define","amd","window","Promise","global","self","t","n","r","s","o","u","a","require","i","Error","f","call","length",1,"unhandledRejections","PromiseConstructor","../lib/Promise","../lib/decorators/unhandledRejection",2,"makePromise","Scheduler","async","asap","scheduler","factory","./Scheduler","./env","./makePromise",3,"this","_async","_running","_queue","_queueLen","_afterQueue","_afterQueueLen","drain","_drain","prototype","enqueue","task","run","afterQueue",4,"throwit","noop","setTimer","format","report","handled","reported","push","logError","id","formatError","value","unreport","indexOf","splice","logInfo","formatObject","x","tasks","running","flush","shift","localConsole","console","error","log","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","../env","../format",5,"isNode","process","nextTick","hasMutationObserver","MutationObserver","WebKitMutationObserver","initMutationObserver","scheduled","node","document","createTextNode","observe","characterData","data","MutationObs","capturedSetTimeout","setTimeout","ms","clearTimer","clearTimeout","vertxRequire","vertx","cancelTimer","runOnLoop","runOnContext",6,"stack","String","JSON","tryStringify","defaultValue","stringify",7,"environment","resolver","handler","_handler","Handler","init","promiseResolve","resolve","promiseReject","reason","reject","promiseNotify","notify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","begetFrom","parent","child","receiver","join","context","all","promises","traverseWith","snd","traverse","tryCatch2","tryMap","mapAt","resolved","traverseAt","settleAt","results","pending","become","Fulfilled","Array","maybeThenable","h","getHandlerMaybeThenable","state","fold","visitRemaining","start","markAsHandled","visit","_unreport","race","TypeError","runRace","getHandlerUntrusted","untrustedThen","then","Thenable","FailIfRejected","inheritedContext","createContext","consumers","thenable","AssimilateTask","errorId","_report","ReportTask","UnreportTask","cycle","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","Fold","z","c","to","failIfRejected","runContinuation1","next","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","b","thisArg","y","inherit","Parent","Child","objectCreate","constructor","initEmitRejection","emit","type","CustomEvent","hasCustomEvent","ev","detail","key","bubbles","cancelable","dispatchEvent","emitRejection","Object","create","proto","_defer","onFulfilled","onRejected","onProgress","p","_beget","chain","_traverse","_visitRemaining","when","fail","_state","fulfilled","rejected","progress","q","cont","foreverPendingHandler","_resolve","_reject","_notify","__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","message","address","$__Object$getPrototypeOf","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","get","$__Object$create","props","F","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","loaderObj","normalize","modules","l","loads","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","transpile","execute","loadPromises","index","depLoad","concat","addLoadToLinkSet","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","existingLoad","done","linkSet","createLinkSet","startingLoad","loadingCount","j","d","doLink","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","linkIndex","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","preventExtensions","msg","Loader","_loader","importPromises","createImportPromise","promise","m","assert","item","thisLen","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","Reflect","LoaderPolyfill","traceurTranspile","traceurOptions","script","sourceMaps","filename","compiler","transpilerModule","Compiler","doTraceurCompile","compile","babelTranspile","babelOptions","sourceMap","code","ast","blacklist","transform","transpiler","WorkerGlobalScope","babel","traceur","parseURI","url","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","removeEventListener","ready","scripts","getElementsByTagName","innerHTML","substr","fetchTextFromURL","isWorker","isBrowser","isWindows","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"es6-module-loader.js","sources":["es6-module-loader.src.js"],"names":["e","exports","module","define","amd","window","Promise","global","self","t","n","r","s","o","u","a","require","i","Error","f","call","length",1,"unhandledRejections","PromiseConstructor","../lib/Promise","../lib/decorators/unhandledRejection",2,"makePromise","Scheduler","async","asap","scheduler","factory","./Scheduler","./env","./makePromise",3,"this","_async","_running","_queue","_queueLen","_afterQueue","_afterQueueLen","drain","_drain","prototype","enqueue","task","run","afterQueue",4,"throwit","noop","setTimer","format","report","handled","reported","push","logError","id","formatError","value","unreport","indexOf","splice","logInfo","formatObject","x","tasks","running","flush","shift","localConsole","console","error","log","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","../env","../format",5,"isNode","process","nextTick","hasMutationObserver","MutationObserver","WebKitMutationObserver","initMutationObserver","scheduled","node","document","createTextNode","observe","characterData","data","MutationObs","capturedSetTimeout","setTimeout","ms","clearTimer","clearTimeout","vertxRequire","vertx","cancelTimer","runOnLoop","runOnContext",6,"stack","String","JSON","tryStringify","defaultValue","stringify",7,"environment","resolver","handler","_handler","Handler","init","promiseResolve","resolve","promiseReject","reason","reject","promiseNotify","notify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","begetFrom","parent","child","receiver","join","context","all","promises","traverseWith","snd","traverse","tryCatch2","tryMap","mapAt","resolved","traverseAt","settleAt","results","pending","become","Fulfilled","Array","maybeThenable","h","getHandlerMaybeThenable","state","fold","visitRemaining","start","markAsHandled","visit","_unreport","race","TypeError","runRace","getHandlerUntrusted","untrustedThen","then","Thenable","FailIfRejected","inheritedContext","createContext","consumers","thenable","AssimilateTask","errorId","_report","ReportTask","UnreportTask","cycle","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","Fold","z","c","to","failIfRejected","runContinuation1","next","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","b","thisArg","y","inherit","Parent","Child","objectCreate","constructor","initEmitRejection","emit","type","CustomEvent","hasCustomEvent","ev","detail","key","bubbles","cancelable","dispatchEvent","emitRejection","Object","create","proto","_defer","onFulfilled","onRejected","onProgress","p","_beget","chain","_traverse","_visitRemaining","when","fail","_state","fulfilled","rejected","progress","q","cont","foreverPendingHandler","_resolve","_reject","_notify","__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","message","address","$__Object$getPrototypeOf","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","get","$__Object$create","props","F","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","loaderObj","normalize","modules","l","loads","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","transpile","execute","loadPromises","index","depLoad","concat","addLoadToLinkSet","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","existingLoad","done","linkSet","createLinkSet","startingLoad","loadingCount","j","d","doLink","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","linkIndex","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","preventExtensions","msg","Loader","_loader","importPromises","createImportPromise","promise","m","assert","item","thisLen","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","Reflect","LoaderPolyfill","traceurTranspile","traceurOptions","script","sourceMaps","filename","inputSourceMap","sourceMap","compiler","transpilerModule","Compiler","doTraceurCompile","compile","babelTranspile","babelOptions","code","ast","blacklist","transform","transpiler","WorkerGlobalScope","babel","traceur","parseURI","url","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","removeEventListener","ready","scripts","getElementsByTagName","innerHTML","substr","fetchTextFromURL","isWorker","isBrowser","isWindows","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6-module-loader.src.js b/dist/es6-module-loader.src.js index b91add2..816af58 100644 --- a/dist/es6-module-loader.src.js +++ b/dist/es6-module-loader.src.js @@ -2245,7 +2245,10 @@ function logloads(loads) { }, // 26.3.3.3 'delete': function(name) { - return this._loader.modules[name] ? delete this._loader.modules[name] : false; + var loader = this._loader; + delete loader.importPromises[name]; + delete loader.moduleRecords[name]; + return loader.modules[name] ? delete loader.modules[name] : false; }, // 26.3.3.4 entries not implemented // 26.3.3.5 @@ -2410,6 +2413,7 @@ function logloads(loads) { options.script = false; options.sourceMaps = 'inline'; options.filename = load.address; + options.inputSourceMap = load.metadata.sourceMap; var compiler = new transpilerModule.Compiler(options); var source = doTraceurCompile(load.source, compiler, options.filename); From 3fa8477b993e0799514d9b95a803bd81b23a33eb Mon Sep 17 00:00:00 2001 From: guybedford Date: Tue, 3 Mar 2015 18:12:31 +0200 Subject: [PATCH 183/482] 0.15.0 --- dist/es6-module-loader-sans-promises.js | 2 +- dist/es6-module-loader.js | 2 +- package.json | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/dist/es6-module-loader-sans-promises.js b/dist/es6-module-loader-sans-promises.js index 4cf8380..463a66c 100644 --- a/dist/es6-module-loader-sans-promises.js +++ b/dist/es6-module-loader-sans-promises.js @@ -1,5 +1,5 @@ /* - * es6-module-loader v0.14.0 + * es6-module-loader v0.15.0 * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2015 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ diff --git a/dist/es6-module-loader.js b/dist/es6-module-loader.js index b0f0814..ad714b4 100644 --- a/dist/es6-module-loader.js +++ b/dist/es6-module-loader.js @@ -1,5 +1,5 @@ /* - * es6-module-loader v0.14.0 + * es6-module-loader v0.15.0 * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2015 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ diff --git a/package.json b/package.json index 8c9e6df..f6914af 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "es6-module-loader", "description": "An ES6 Module Loader shim", - "version": "0.14.0", + "version": "0.15.0", "homepage": "https://github.com/ModuleLoader/es6-module-loader", "author": { "name": "Guy Bedford, Luke Hoban, Addy Osmani", @@ -63,8 +63,8 @@ "test:browser:perf": "karma start karma-benchmark.conf.js --single-run" }, "dependencies": { - "babel-core": "^4.1.1", - "traceur": "0.0.82", + "babel-core": "^4.6.6", + "traceur": "0.0.86", "when": "^3.7.2" } } From d267fc435ba1468bce6454488e72e2a1ab69ad4a Mon Sep 17 00:00:00 2001 From: Matthew Phillips Date: Wed, 4 Mar 2015 08:04:47 -0500 Subject: [PATCH 184/482] Remove assertion that throws in IE8 Throws because of the use of `Array.prototype.some`. Fixes #321 --- src/loader.js | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/loader.js b/src/loader.js index 817aed4..31a4f7a 100644 --- a/src/loader.js +++ b/src/loader.js @@ -273,10 +273,6 @@ function logloads(loads) { // 15.2.4.6.1 AddDependencyLoad (load is parentLoad) .then(function(depLoad) { - console.assert(!load.dependencies.some(function(dep) { - return dep.key == request; - }), 'not already a dependency'); - // adjusted from spec to maintain dependency order // this is due to the System.register internal implementation needs load.dependencies[index] = { From 180852baec05bbcc99d79a5f849c85fbbb64b463 Mon Sep 17 00:00:00 2001 From: guybedford Date: Sat, 7 Mar 2015 17:01:56 +0200 Subject: [PATCH 185/482] run transpilers through module registry --- src/transpiler.js | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/transpiler.js b/src/transpiler.js index 10b5fa0..3a9444a 100644 --- a/src/transpiler.js +++ b/src/transpiler.js @@ -4,24 +4,28 @@ (function(Loader) { // Returns an array of ModuleSpecifiers var transpiler, transpilerModule; - var isNode = typeof window == 'undefined' && typeof WorkerGlobalScope == 'undefined'; // use Traceur by default Loader.prototype.transpiler = 'traceur'; Loader.prototype.transpile = function(load) { if (!transpiler) { - if (this.transpiler == 'babel') { - transpiler = babelTranspile; - transpilerModule = isNode ? require('babel-core') : __global.babel; + transpilerModule = this.get('@' + this.transpiler); + + if (transpilerModule) { + transpilerModule = transpilerModule['default']; } else { - transpiler = traceurTranspile; - transpilerModule = isNode ? require('traceur') : __global.traceur; + transpilerModule = __global[this.transpiler] || typeof require != 'undefined' && require(this.transpiler == 'babel' ? 'babel-core' : 'traceur'); + if (!transpilerModule) + throw new TypeError('Include Traceur or Babel for module syntax support.'); + this.set('@' + this.transpiler, this.newModule({ 'default': transpilerModule, __useDefault: true })); } - - if (!transpilerModule) - throw new TypeError('Include Traceur or Babel for module syntax support.'); + + if (this.transpiler == 'babel') + transpiler = babelTranspile; + else if (this.transpiler == 'traceur') + transpiler = traceurTranspile; } return 'var __moduleAddress = "' + load.address + '";' + transpiler.call(this, load); From e23ad7e190fe503b0675a6907d9217de170bdea3 Mon Sep 17 00:00:00 2001 From: guybedford Date: Sat, 7 Mar 2015 17:16:30 +0200 Subject: [PATCH 186/482] require order corrections --- lib/index-traceur.js | 4 +--- src/transpiler.js | 7 ++++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/lib/index-traceur.js b/lib/index-traceur.js index 8325061..b8b9cdf 100644 --- a/lib/index-traceur.js +++ b/lib/index-traceur.js @@ -1,8 +1,6 @@ -require('traceur'); - var System = require('../dist/es6-module-loader.src'); -System.parser = 'traceur'; +System.transpiler = 'traceur'; module.exports = { Loader: global.LoaderPolyfill, diff --git a/src/transpiler.js b/src/transpiler.js index 3a9444a..1c37fa3 100644 --- a/src/transpiler.js +++ b/src/transpiler.js @@ -16,7 +16,12 @@ transpilerModule = transpilerModule['default']; } else { - transpilerModule = __global[this.transpiler] || typeof require != 'undefined' && require(this.transpiler == 'babel' ? 'babel-core' : 'traceur'); + transpilerModule = __global[this.transpiler]; + if (!transpilerModule && typeof require != 'undefined') { + var curSystem = __global.System; + transpilerModule = require(this.transpiler == 'babel' ? 'babel-core' : 'traceur'); + __global.System = curSystem; + } if (!transpilerModule) throw new TypeError('Include Traceur or Babel for module syntax support.'); this.set('@' + this.transpiler, this.newModule({ 'default': transpilerModule, __useDefault: true })); From d0fec4be55caa6a9a8db97e3330964042624ea94 Mon Sep 17 00:00:00 2001 From: guybedford Date: Sat, 7 Mar 2015 20:53:10 +0200 Subject: [PATCH 187/482] rename transpiler modules --- src/transpiler.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/transpiler.js b/src/transpiler.js index 1c37fa3..090d5e7 100644 --- a/src/transpiler.js +++ b/src/transpiler.js @@ -10,7 +10,7 @@ Loader.prototype.transpile = function(load) { if (!transpiler) { - transpilerModule = this.get('@' + this.transpiler); + transpilerModule = this.get(this.transpiler); if (transpilerModule) { transpilerModule = transpilerModule['default']; @@ -24,7 +24,7 @@ } if (!transpilerModule) throw new TypeError('Include Traceur or Babel for module syntax support.'); - this.set('@' + this.transpiler, this.newModule({ 'default': transpilerModule, __useDefault: true })); + this.set(this.transpiler, this.newModule({ 'default': transpilerModule, __useDefault: true })); } if (this.transpiler == 'babel') From 869934849d80137f4bb62991de497509724e6b94 Mon Sep 17 00:00:00 2001 From: Dan Harper Date: Sun, 8 Mar 2015 13:30:59 +0000 Subject: [PATCH 188/482] Correct "babelOptions" in README, was "to5Options" --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 48a0fed..6431dca 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ System.traceurOptions = {...}; Or with Babel: ```javascript -System.to5Options = {...}; +System.babelOptions = {...}; ``` #### Module Tag From c309e1126cd9cc5183e41a5c3109250b1039d48e Mon Sep 17 00:00:00 2001 From: guybedford Date: Sun, 8 Mar 2015 18:06:28 +0200 Subject: [PATCH 189/482] complete transition to running loader as a module --- karma.conf.js | 5 ++ lib/index-babel.js | 1 + lib/index-traceur.js | 1 + src/loader.js | 154 ++++++++++++++++++---------------- src/polyfill-wrapper-end.js | 20 +---- src/transpiler.js | 55 ++++++------ test/_browser.js | 5 ++ test/custom-loader.js | 16 +++- test/test-babel.html | 2 +- test/test-traceur.html | 4 +- test/test.js | 25 ++++-- test/worker/worker-babel.js | 4 +- test/worker/worker-traceur.js | 5 +- 13 files changed, 160 insertions(+), 137 deletions(-) diff --git a/karma.conf.js b/karma.conf.js index 614e64e..95d46ee 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -48,6 +48,8 @@ module.exports = function(config) { [!options.ie8 ? 'test/*.spec.js' : 'test/*.normalize.spec.js'], {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/when/es6-shim/Promise.js', included: false}, {pattern: 'dist/es6-module-loader*.js', included: false} ]; @@ -63,6 +65,9 @@ module.exports = function(config) { mocha: { reporter: 'html', timeout: 8000 + }, + system: { + transpiler: options.babel ? 'babel' : 'traceur' } } }); diff --git a/lib/index-babel.js b/lib/index-babel.js index d8cd982..1913336 100644 --- a/lib/index-babel.js +++ b/lib/index-babel.js @@ -1,6 +1,7 @@ var System = require('../dist/es6-module-loader.src'); System.transpiler = 'babel'; +System.paths['babel'] = require.resolve('babel-core/browser.js'); module.exports = { Loader: global.LoaderPolyfill, diff --git a/lib/index-traceur.js b/lib/index-traceur.js index b8b9cdf..69a483b 100644 --- a/lib/index-traceur.js +++ b/lib/index-traceur.js @@ -1,6 +1,7 @@ var System = require('../dist/es6-module-loader.src'); System.transpiler = 'traceur'; +System.paths['traceur'] = require.resolve('traceur/bin/traceur.js'); module.exports = { Loader: global.LoaderPolyfill, diff --git a/src/loader.js b/src/loader.js index 31a4f7a..889ed89 100644 --- a/src/loader.js +++ b/src/loader.js @@ -230,88 +230,100 @@ function logloads(loads) { .then(function(source) { if (load.status != 'loading') return; - return loader.loaderObj.translate({ name: load.name, metadata: load.metadata, address: load.address, source: source }); - }) - // 15.2.4.5.2 CallInstantiate - .then(function(source) { - if (load.status != 'loading') - return; - load.source = source; - return loader.loaderObj.instantiate({ name: load.name, metadata: load.metadata, address: load.address, source: source }); - }) + return Promise.resolve(loader.loaderObj.translate({ name: load.name, metadata: load.metadata, address: load.address, source: source })) - // 15.2.4.5.3 InstantiateSucceeded - .then(function(instantiateResult) { - if (load.status != 'loading') - return; - - if (instantiateResult === undefined) { - load.address = load.address || ''; - - // instead of load.kind, use load.isDeclarative - load.isDeclarative = true; - __eval(loader.loaderObj.transpile(load), __global, load); - } - else if (typeof instantiateResult == 'object') { - load.depsList = instantiateResult.deps || []; - load.execute = instantiateResult.execute; - load.isDeclarative = false; - } - else - throw TypeError('Invalid instantiate return value'); + // 15.2.4.5.2 CallInstantiate + .then(function(source) { + load.source = source; + return loader.loaderObj.instantiate({ name: load.name, metadata: load.metadata, address: load.address, source: source }); + }) + // 15.2.4.5.3 InstantiateSucceeded + .then(function(instantiateResult) { + if (instantiateResult === undefined) { + load.address = load.address || ''; + + // instead of load.kind, use load.isDeclarative + load.isDeclarative = true; + return loader.loaderObj.transpile(load) + .then(function(transpiled) { + // Hijack System.register to set declare function + var curSystem = __global.System; + var curRegister = curSystem.register; + curSystem.register = function(name, deps, declare) { + if (typeof name != 'string') { + declare = deps; + deps = name; + } + // store the registered declaration as load.declare + // store the deps as load.deps + load.declare = declare; + load.depsList = deps; + } + __eval(transpiled, __global, load); + curSystem.register = curRegister; + }); + } + else if (typeof instantiateResult == 'object') { + load.depsList = instantiateResult.deps || []; + load.execute = instantiateResult.execute; + load.isDeclarative = false; + } + else + throw TypeError('Invalid instantiate return value'); + }) // 15.2.4.6 ProcessLoadDependencies - load.dependencies = []; - var depsList = load.depsList; - - var loadPromises = []; - for (var i = 0, l = depsList.length; i < l; i++) (function(request, index) { - loadPromises.push( - requestLoad(loader, request, load.name, load.address) - - // 15.2.4.6.1 AddDependencyLoad (load is parentLoad) - .then(function(depLoad) { - - // adjusted from spec to maintain dependency order - // this is due to the System.register internal implementation needs - load.dependencies[index] = { - key: request, - value: depLoad.name - }; - - if (depLoad.status != 'linked') { - var linkSets = load.linkSets.concat([]); - for (var i = 0, l = linkSets.length; i < l; i++) - addLoadToLinkSet(linkSets[i], depLoad); - } - - // console.log('AddDependencyLoad ' + depLoad.name + ' for ' + load.name); - // snapshot(loader); - }) - ); - })(depsList[i], i); - - return Promise.all(loadPromises); - }) + .then(function() { + load.dependencies = []; + var depsList = load.depsList; + + var loadPromises = []; + for (var i = 0, l = depsList.length; i < l; i++) (function(request, index) { + loadPromises.push( + requestLoad(loader, request, load.name, load.address) + + // 15.2.4.6.1 AddDependencyLoad (load is parentLoad) + .then(function(depLoad) { + + // adjusted from spec to maintain dependency order + // this is due to the System.register internal implementation needs + load.dependencies[index] = { + key: request, + value: depLoad.name + }; + + if (depLoad.status != 'linked') { + var linkSets = load.linkSets.concat([]); + for (var i = 0, l = linkSets.length; i < l; i++) + addLoadToLinkSet(linkSets[i], depLoad); + } + + // console.log('AddDependencyLoad ' + depLoad.name + ' for ' + load.name); + // snapshot(loader); + }) + ); + })(depsList[i], i); + + return Promise.all(loadPromises); + }) - // 15.2.4.6.2 LoadSucceeded - .then(function() { - // console.log('LoadSucceeded ' + load.name); - // snapshot(loader); + // 15.2.4.6.2 LoadSucceeded + .then(function() { + // console.log('LoadSucceeded ' + load.name); + // snapshot(loader); - console.assert(load.status == 'loading', 'is loading'); + console.assert(load.status == 'loading', 'is loading'); - load.status = 'loaded'; + load.status = 'loaded'; - var linkSets = load.linkSets.concat([]); - for (var i = 0, l = linkSets.length; i < l; i++) - updateLinkSetOnLoad(linkSets[i], load); + var linkSets = load.linkSets.concat([]); + for (var i = 0, l = linkSets.length; i < l; i++) + updateLinkSetOnLoad(linkSets[i], load); + }); }) - // 15.2.4.5.4 LoadFailed ['catch'](function(exc) { - console.assert(load.status == 'loading', 'is loading on fail'); load.status = 'failed'; load.exception = exc; diff --git a/src/polyfill-wrapper-end.js b/src/polyfill-wrapper-end.js index 199268c..82ccbf1 100644 --- a/src/polyfill-wrapper-end.js +++ b/src/polyfill-wrapper-end.js @@ -1,29 +1,15 @@ // Define our eval outside of the scope of any other reference defined in this // file to avoid adding those references to the evaluation scope. -function __eval(__source, __global, load) { - // Hijack System.register to set declare function - var __curRegister = System.register; - System.register = function(name, deps, declare) { - if (typeof name != 'string') { - declare = deps; - deps = name; - } - // store the registered declaration as load.declare - // store the deps as load.deps - load.declare = declare; - load.depsList = deps; - } +function __eval(__source, __global, __load) { try { - eval('(function() { var __moduleName = "' + (load.name || '').replace('"', '\"') + '"; ' + __source + ' \n }).call(__global);'); + eval('(function() { var __moduleName = "' + (__load.name || '').replace('"', '\"') + '"; ' + __source + ' \n }).call(__global);'); } catch(e) { if (e.name == 'SyntaxError' || e.name == 'TypeError') - e.message = 'Evaluating ' + (load.name || load.address) + '\n\t' + e.message; + e.message = 'Evaluating ' + (__load.name || load.address) + '\n\t' + e.message; throw e; } - - System.register = __curRegister; } })(typeof window != 'undefined' ? window : (typeof WorkerGlobalScope != 'undefined' ? diff --git a/src/transpiler.js b/src/transpiler.js index 090d5e7..b32701b 100644 --- a/src/transpiler.js +++ b/src/transpiler.js @@ -2,41 +2,36 @@ * Traceur and Babel transpile hook for Loader */ (function(Loader) { - // Returns an array of ModuleSpecifiers - var transpiler, transpilerModule; - // use Traceur by default Loader.prototype.transpiler = 'traceur'; Loader.prototype.transpile = function(load) { - if (!transpiler) { - transpilerModule = this.get(this.transpiler); - - if (transpilerModule) { - transpilerModule = transpilerModule['default']; - } - else { - transpilerModule = __global[this.transpiler]; - if (!transpilerModule && typeof require != 'undefined') { - var curSystem = __global.System; - transpilerModule = require(this.transpiler == 'babel' ? 'babel-core' : 'traceur'); - __global.System = curSystem; - } - if (!transpilerModule) - throw new TypeError('Include Traceur or Babel for module syntax support.'); - this.set(this.transpiler, this.newModule({ 'default': transpilerModule, __useDefault: true })); - } + return this['import'](this.transpiler).then(function(transpiler) { + if (transpiler.__useDefault) + transpiler = transpiler['default']; + return 'var __moduleAddress = "' + load.address + '";' + (transpiler.Compiler ? traceurTranspile : babelTranspile).call(this, load, transpiler); + }); + } - if (this.transpiler == 'babel') - transpiler = babelTranspile; - else if (this.transpiler == 'traceur') - transpiler = traceurTranspile; - } + var g = __global; - return 'var __moduleAddress = "' + load.address + '";' + transpiler.call(this, load); + Loader.prototype.instantiate = function(load) { + // load transpiler as a global (avoiding System clobbering) + if (load.name === this.transpiler) + return { + deps: [], + execute: function() { + var curSystem = g.System; + var curLoader = g.Reflect.Loader; + __eval('(function(require,exports,module){' + load.source + '})();', g, load); + g.System = curSystem; + g.Reflect.Loader = curLoader; + return System.newModule({ 'default': g[load.name], __useDefault: true }); + } + }; } - function traceurTranspile(load) { + function traceurTranspile(load, traceur) { var options = this.traceurOptions || {}; options.modules = 'instantiate'; options.script = false; @@ -44,7 +39,7 @@ options.filename = load.address; options.inputSourceMap = load.metadata.sourceMap; - var compiler = new transpilerModule.Compiler(options); + var compiler = new traceur.Compiler(options); var source = doTraceurCompile(load.source, compiler, options.filename); // add "!eval" to end of Traceur sourceURL @@ -63,7 +58,7 @@ } } - function babelTranspile(load) { + function babelTranspile(load, babel) { var options = this.babelOptions || {}; options.modules = 'system'; options.sourceMap = 'inline'; @@ -73,7 +68,7 @@ options.blacklist = options.blacklist || []; options.blacklist.push('react'); - var source = transpilerModule.transform(load.source, options).code; + var source = babel.transform(load.source, options).code; // add "!eval" to end of Babel sourceURL // I believe this does something? diff --git a/test/_browser.js b/test/_browser.js index 7c2b49f..ef5b957 100644 --- a/test/_browser.js +++ b/test/_browser.js @@ -1,3 +1,8 @@ // Change base url to the karma "base" System.baseURL += 'base/'; + +System.paths.traceur = 'node_modules/traceur/bin/traceur.js'; +System.paths.babel = 'node_modules/babel-core/browser.js'; + +System.transpiler = __karma__.config.system.transpiler; diff --git a/test/custom-loader.js b/test/custom-loader.js index 5a11447..6e0ed92 100644 --- a/test/custom-loader.js +++ b/test/custom-loader.js @@ -62,6 +62,18 @@ return System.translate.apply(this, arguments); }, instantiate: function (load) { + if (load.name == this.transpiler) { + var transpiler = this.transpiler; + return System.import(transpiler).then(function() { + return { + deps: [], + execute: function() { + return System.get(transpiler); + } + }; + }); + } + if (load.name == 'error5') { return new Promise(function (resolve, reject) { setTimeout(function () { reject('error5'); }, 100); @@ -111,9 +123,7 @@ } }); - customLoader.parse = function (load) { - return System.parse(load); - }; + customLoader.transpiler = System.transpiler; if (typeof exports === 'object') diff --git a/test/test-babel.html b/test/test-babel.html index 14c2ad9..4ead6d8 100644 --- a/test/test-babel.html +++ b/test/test-babel.html @@ -6,7 +6,6 @@ - - - - diff --git a/test/test.js b/test/test.js index cbcbe59..0618206 100644 --- a/test/test.js +++ b/test/test.js @@ -307,6 +307,7 @@ function runTests() { ); }) }); + test('Load order test: _f', function(assert) { System['import']('loads/_f').then(function(m) { assert( @@ -354,8 +355,8 @@ function runTests() { }); }); - // test not enabled for 6to5 - if (typeof traceur == 'undefined') + // test not enabled for Babel + if (System.transpiler != 'babel') test('Export Star 2', function(assert) { System['import']('syntax/export-star2').then(function(m) { assert( @@ -538,6 +539,18 @@ function runTests() { return System.translate.apply(this, arguments); }, instantiate: function(load) { + if (load.name == this.transpiler) { + var transpiler = this.transpiler; + return System.import(transpiler).then(function() { + return { + deps: [], + execute: function() { + return System.get(transpiler); + } + }; + }); + } + if (load.name == 'error5') return new Promise(function(resolve, reject) { setTimeout(function(){ reject('error5'); }, 100); @@ -551,6 +564,7 @@ function runTests() { deps = _deps; factory = _factory; } + //console.log(load.source); eval(load.source); customFactories[load.name] = factory; @@ -581,10 +595,7 @@ function runTests() { }); } }); - - customLoader.parse = function(load) { - return System.parse(load); - } + customLoader.transpiler = System.transpiler; test('Custom loader standard load', function(assert) { var p = customLoader['import']('loader/test').then(function(m) { @@ -657,7 +668,7 @@ function runTests() { if (typeof Worker != 'undefined') test('Loading inside of a Web Worker', function(assert) { - var worker = new Worker('worker/worker-' + (typeof traceur != 'undefined' ? 'traceur' : 'babel') + '.js'); + var worker = new Worker('worker/worker-' + System.transpiler + '.js'); worker.onmessage = function(e) { assert(e.data, 'p'); diff --git a/test/worker/worker-babel.js b/test/worker/worker-babel.js index b3d17ff..9a7fbea 100644 --- a/test/worker/worker-babel.js +++ b/test/worker/worker-babel.js @@ -1,9 +1,9 @@ -importScripts("../../node_modules/babel-core/browser.js", - "../../node_modules/when/es6-shim/Promise.js", +importScripts("../../node_modules/when/es6-shim/Promise.js", "../../dist/es6-module-loader.src.js" ); System.transpiler = 'babel'; +System.paths['babel'] = '../../node_modules/babel-core/browser.js'; System['import']('es6').then(function(m) { postMessage(m.p); diff --git a/test/worker/worker-traceur.js b/test/worker/worker-traceur.js index 9491c4f..c275a77 100644 --- a/test/worker/worker-traceur.js +++ b/test/worker/worker-traceur.js @@ -1,7 +1,6 @@ -importScripts("../../node_modules/traceur/bin/traceur.js", - "../../node_modules/when/es6-shim/Promise.js", +importScripts("../../node_modules/when/es6-shim/Promise.js", "../../dist/es6-module-loader.src.js"); - +System.paths['traceur'] = '../../node_modules/traceur/bin/traceur.js'; System['import']('es6').then(function(m) { postMessage(m.p); }, function(err) { From 4d0e42cbbf62274983f7764f3935060b6077048a Mon Sep 17 00:00:00 2001 From: guybedford Date: Sun, 8 Mar 2015 21:01:06 +0200 Subject: [PATCH 190/482] allow blacklist overrides --- src/transpiler.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/transpiler.js b/src/transpiler.js index b32701b..f018b23 100644 --- a/src/transpiler.js +++ b/src/transpiler.js @@ -65,8 +65,9 @@ options.filename = load.address; options.code = true; options.ast = false; - options.blacklist = options.blacklist || []; - options.blacklist.push('react'); + + if (!options.blacklist) + options.blacklist = ['react']; var source = babel.transform(load.source, options).code; From a628d6438fd55fb9191431d071fe4029c69b7026 Mon Sep 17 00:00:00 2001 From: guybedford Date: Tue, 17 Mar 2015 17:43:34 +0200 Subject: [PATCH 191/482] Traceur, Babel as devDependencies only --- lib/index-babel.js | 6 +++++- lib/index-traceur.js | 5 ++++- package.json | 6 +++--- src/transpiler.js | 9 +++++---- 4 files changed, 17 insertions(+), 9 deletions(-) diff --git a/lib/index-babel.js b/lib/index-babel.js index 1913336..b0c1a70 100644 --- a/lib/index-babel.js +++ b/lib/index-babel.js @@ -1,7 +1,11 @@ var System = require('../dist/es6-module-loader.src'); System.transpiler = 'babel'; -System.paths['babel'] = require.resolve('babel-core/browser.js'); + +try { + System.paths['babel'] = require.resolve('babel-core/browser.js'); +} +catch(e) {} module.exports = { Loader: global.LoaderPolyfill, diff --git a/lib/index-traceur.js b/lib/index-traceur.js index 69a483b..85757e4 100644 --- a/lib/index-traceur.js +++ b/lib/index-traceur.js @@ -1,7 +1,10 @@ var System = require('../dist/es6-module-loader.src'); System.transpiler = 'traceur'; -System.paths['traceur'] = require.resolve('traceur/bin/traceur.js'); +try { + System.paths['traceur'] = require.resolve('traceur/bin/traceur.js'); +} +catch(e) {} module.exports = { Loader: global.LoaderPolyfill, diff --git a/package.json b/package.json index f6914af..c2cd56f 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ } ], "devDependencies": { + "babel-core": "^4.7.12", "expect.js": "^0.3.1", "gesalakacula": "^1.0.0", "grunt": "~0.4.1", @@ -42,7 +43,8 @@ "karma-sauce-launcher": "^0.2.10", "minimist": "^1.1.0", "mocha": "^2.0.1", - "regenerator": "^0.8.9" + "regenerator": "^0.8.9", + "traceur": "0.0.87" }, "keywords": [ "script", @@ -63,8 +65,6 @@ "test:browser:perf": "karma start karma-benchmark.conf.js --single-run" }, "dependencies": { - "babel-core": "^4.6.6", - "traceur": "0.0.86", "when": "^3.7.2" } } diff --git a/src/transpiler.js b/src/transpiler.js index f018b23..037061e 100644 --- a/src/transpiler.js +++ b/src/transpiler.js @@ -6,12 +6,13 @@ Loader.prototype.transpiler = 'traceur'; Loader.prototype.transpile = function(load) { - return this['import'](this.transpiler).then(function(transpiler) { + var self = this; + return self['import'](self.transpiler).then(function(transpiler) { if (transpiler.__useDefault) transpiler = transpiler['default']; - return 'var __moduleAddress = "' + load.address + '";' + (transpiler.Compiler ? traceurTranspile : babelTranspile).call(this, load, transpiler); + return 'var __moduleAddress = "' + load.address + '";' + (transpiler.Compiler ? traceurTranspile : babelTranspile).call(self, load, transpiler); }); - } + }; var g = __global; @@ -29,7 +30,7 @@ return System.newModule({ 'default': g[load.name], __useDefault: true }); } }; - } + }; function traceurTranspile(load, traceur) { var options = this.traceurOptions || {}; From 2716186cbb81da8678e44ffd884f0abd03f9a9e6 Mon Sep 17 00:00:00 2001 From: guybedford Date: Fri, 20 Mar 2015 15:43:29 +0200 Subject: [PATCH 192/482] ensure Traceur doesnt output moduleName --- src/transpiler.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/transpiler.js b/src/transpiler.js index 037061e..ecc1984 100644 --- a/src/transpiler.js +++ b/src/transpiler.js @@ -39,6 +39,7 @@ options.sourceMaps = 'inline'; options.filename = load.address; options.inputSourceMap = load.metadata.sourceMap; + options.moduleName = false; var compiler = new traceur.Compiler(options); var source = doTraceurCompile(load.source, compiler, options.filename); From adba021f4b88ef2ef42c15d7069df0f558a067b2 Mon Sep 17 00:00:00 2001 From: guybedford Date: Fri, 20 Mar 2015 16:27:08 +0200 Subject: [PATCH 193/482] pick up transpilers from globals if necessary --- src/transpiler.js | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/transpiler.js b/src/transpiler.js index ecc1984..f62928a 100644 --- a/src/transpiler.js +++ b/src/transpiler.js @@ -2,10 +2,26 @@ * Traceur and Babel transpile hook for Loader */ (function(Loader) { + var g = __global; + + function getTranspilerModule(globalName) { + return System.newModule({ 'default': g[globalName], __useDefault: true }); + } + var firstRun = true; + // use Traceur by default Loader.prototype.transpiler = 'traceur'; Loader.prototype.transpile = function(load) { + // pick up Transpiler modules from existing globals on first run if set + if (firstRun) { + if (g.traceur && !this.has('traceur')) + this.set('traceur', getTranspilerModule('traceur')); + if (g.babel && !this.has('babel')) + this.set('babel', getTranspilerModule('babel')); + firstRun = false; + } + var self = this; return self['import'](self.transpiler).then(function(transpiler) { if (transpiler.__useDefault) @@ -14,8 +30,6 @@ }); }; - var g = __global; - Loader.prototype.instantiate = function(load) { // load transpiler as a global (avoiding System clobbering) if (load.name === this.transpiler) @@ -24,10 +38,10 @@ execute: function() { var curSystem = g.System; var curLoader = g.Reflect.Loader; - __eval('(function(require,exports,module){' + load.source + '})();', g, load); + __eval(load.source, g, load); g.System = curSystem; g.Reflect.Loader = curLoader; - return System.newModule({ 'default': g[load.name], __useDefault: true }); + return getTranspilerModule(load.name); } }; }; From 7ea47a8d2def398a446646f56be69212b4159730 Mon Sep 17 00:00:00 2001 From: guybedford Date: Fri, 20 Mar 2015 16:46:07 +0200 Subject: [PATCH 194/482] System protection --- src/transpiler.js | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/src/transpiler.js b/src/transpiler.js index f62928a..05f5fe8 100644 --- a/src/transpiler.js +++ b/src/transpiler.js @@ -4,8 +4,8 @@ (function(Loader) { var g = __global; - function getTranspilerModule(globalName) { - return System.newModule({ 'default': g[globalName], __useDefault: true }); + function getTranspilerModule(loader, globalName) { + return loader.newModule({ 'default': g[globalName], __useDefault: true }); } var firstRun = true; @@ -13,16 +13,17 @@ Loader.prototype.transpiler = 'traceur'; Loader.prototype.transpile = function(load) { + var self = this; + // pick up Transpiler modules from existing globals on first run if set if (firstRun) { - if (g.traceur && !this.has('traceur')) - this.set('traceur', getTranspilerModule('traceur')); - if (g.babel && !this.has('babel')) - this.set('babel', getTranspilerModule('babel')); + if (g.traceur && !self.has('traceur')) + self.set('traceur', getTranspilerModule(self, 'traceur')); + if (g.babel && !self.has('babel')) + self.set('babel', getTranspilerModule(self, 'babel')); firstRun = false; } - - var self = this; + return self['import'](self.transpiler).then(function(transpiler) { if (transpiler.__useDefault) transpiler = transpiler['default']; @@ -32,7 +33,8 @@ Loader.prototype.instantiate = function(load) { // load transpiler as a global (avoiding System clobbering) - if (load.name === this.transpiler) + if (load.name === this.transpiler) { + var self = this; return { deps: [], execute: function() { @@ -41,9 +43,10 @@ __eval(load.source, g, load); g.System = curSystem; g.Reflect.Loader = curLoader; - return getTranspilerModule(load.name); + return getTranspilerModule(self, load.name); } }; + } }; function traceurTranspile(load, traceur) { From d5cd66f2e22e84f6751cb4f51b242354861abf81 Mon Sep 17 00:00:00 2001 From: guybedford Date: Fri, 20 Mar 2015 17:18:53 +0200 Subject: [PATCH 195/482] fix tests --- src/transpiler.js | 4 ++-- test/_node-babel.js | 2 -- test/system.spec.js | 2 +- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/transpiler.js b/src/transpiler.js index 05f5fe8..5be7469 100644 --- a/src/transpiler.js +++ b/src/transpiler.js @@ -33,14 +33,14 @@ Loader.prototype.instantiate = function(load) { // load transpiler as a global (avoiding System clobbering) - if (load.name === this.transpiler) { + if (load.name === this.transpiler) { var self = this; return { deps: [], execute: function() { var curSystem = g.System; var curLoader = g.Reflect.Loader; - __eval(load.source, g, load); + __eval('(function(require,exports,module){' + load.source + '})();', g, load); g.System = curSystem; g.Reflect.Loader = curLoader; return getTranspilerModule(self, load.name); diff --git a/test/_node-babel.js b/test/_node-babel.js index dd736ce..1a1203c 100644 --- a/test/_node-babel.js +++ b/test/_node-babel.js @@ -8,8 +8,6 @@ require('regenerator/runtime'); global.System = require('../lib/index-babel').System; -System.parser = 'babel'; - require('./system.spec'); require('./custom-loader'); diff --git a/test/system.spec.js b/test/system.spec.js index 07ce78f..e4af4cc 100644 --- a/test/system.spec.js +++ b/test/system.spec.js @@ -402,7 +402,7 @@ describe('System', function () { describe('#System.define', function () { - it('should load System.define', function(done) { + it.skip('should load System.define', function(done) { var oldLocate = System.locate; var slaveLocatePromise = new Promise(function(resolve, reject) { From 9ba5b86576a211fa41dc58e24b343d6636c44086 Mon Sep 17 00:00:00 2001 From: guybedford Date: Tue, 24 Mar 2015 16:37:59 +0200 Subject: [PATCH 196/482] ensure windows URLs use / not \ --- src/system.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/system.js b/src/system.js index 726f07a..f5576c1 100644 --- a/src/system.js +++ b/src/system.js @@ -49,6 +49,9 @@ } function toAbsoluteURL(base, href) { + if (isWindows) + href = href.replace(/\\/g, '/'); + href = parseURI(href || ''); base = parseURI(base || ''); From 2695ef890c9a137517237ae7d1db5768ed237b51 Mon Sep 17 00:00:00 2001 From: guybedford Date: Tue, 17 Mar 2015 17:44:05 +0200 Subject: [PATCH 197/482] dist build --- dist/es6-module-loader-sans-promises.js | 2 +- dist/es6-module-loader-sans-promises.js.map | 2 +- dist/es6-module-loader-sans-promises.src.js | 251 +++++++++++--------- dist/es6-module-loader.js | 2 +- dist/es6-module-loader.js.map | 2 +- dist/es6-module-loader.src.js | 251 +++++++++++--------- 6 files changed, 276 insertions(+), 234 deletions(-) diff --git a/dist/es6-module-loader-sans-promises.js b/dist/es6-module-loader-sans-promises.js index 463a66c..2f87b30 100644 --- a/dist/es6-module-loader-sans-promises.js +++ b/dist/es6-module-loader-sans-promises.js @@ -4,5 +4,5 @@ * Copyright (c) 2015 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(__global){function __eval(__source,__global,load){var __curRegister=System.register;System.register=function(a,b,c){"string"!=typeof a&&(c=b,b=a),load.declare=c,load.depsList=b};try{eval('(function() { var __moduleName = "'+(load.name||"").replace('"','"')+'"; '+__source+" \n }).call(__global);")}catch(e){throw("SyntaxError"==e.name||"TypeError"==e.name)&&(e.message="Evaluating "+(load.name||load.address)+"\n "+e.message),e}System.register=__curRegister}$__Object$getPrototypeOf=Object.getPrototypeOf||function(a){return a.__proto__};var $__Object$defineProperty;!function(){try{Object.defineProperty({},"a",{})&&($__Object$defineProperty=Object.defineProperty)}catch(a){$__Object$defineProperty=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),$__Object$create=Object.create||function(a,b){function c(){}if(c.prototype=a,"object"==typeof b)for(prop in b)b.hasOwnProperty(prop)&&(c[prop]=b[prop]);return new c},function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new A(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:c&&c.metadata||{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new A(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return e=a(c),e.status="linked",e.module=b.modules[c],e;for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,__eval(a.loaderObj.transpile(b),__global,b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k,l=0,m=g.loads.length;m>l;l++)if(g.loads[l].name==i)return k=g.loads[l],"translate"!=j||k.source||(k.address=b.moduleAddress,f(g,k,A.resolve(b.moduleSource))),k.linkSets[0].done.then(function(){c(k)});var n=a(i);n.metadata=b.moduleMetadata;var o=h(g,n);g.loads.push(n),c(o.done),"locate"==j?d(g,n):"fetch"==j?e(g,n,A.resolve(b.moduleAddress)):(n.address=b.moduleAddress,f(g,n,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var d=0,e=b.length;e>d;d++)for(var f=b[d],g=0;g=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){var b=this._loader;return delete b.importPromises[a],delete b.moduleRecords[a],b.modules[a]?delete b.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var E=x.prototype.newModule;"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(a){function b(a){var b=this.traceurOptions||{};b.modules="instantiate",b.script=!1,b.sourceMaps="inline",b.filename=a.address,b.inputSourceMap=a.metadata.sourceMap;var d=new f.Compiler(b),e=c(a.source,d,b.filename);return e+="!eval"}function c(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}function d(a){var b=this.babelOptions||{};b.modules="system",b.sourceMap="inline",b.filename=a.address,b.code=!0,b.ast=!1,b.blacklist=b.blacklist||[],b.blacklist.push("react");var c=f.transform(a.source,b).code;return c+"\n//# sourceURL="+a.address+"!eval"}var e,f,g="undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope;a.prototype.transpiler="traceur",a.prototype.transpile=function(a){if(!e&&("babel"==this.transpiler?(e=d,f=g?require("babel-core"):__global.babel):(e=b,f=g?require("traceur"):__global.traceur),!f))throw new TypeError("Include Traceur or Babel for module syntax support.");return'var __moduleAddress = "'+a.address+'";'+e.call(this,a)}}(__global.LoaderPolyfill),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); +!function(__global){function __eval(__source,__global,__load){try{eval('(function() { var __moduleName = "'+(__load.name||"").replace('"','"')+'"; '+__source+" \n }).call(__global);")}catch(e){throw("SyntaxError"==e.name||"TypeError"==e.name)&&(e.message="Evaluating "+(__load.name||load.address)+"\n "+e.message),e}}$__Object$getPrototypeOf=Object.getPrototypeOf||function(a){return a.__proto__};var $__Object$defineProperty;!function(){try{Object.defineProperty({},"a",{})&&($__Object$defineProperty=Object.defineProperty)}catch(a){$__Object$defineProperty=function(a,b,c){try{a[b]=c.value||c.get.call(a)}catch(d){}}}}(),$__Object$create=Object.create||function(a,b){function c(){}if(c.prototype=a,"object"==typeof b)for(prop in b)b.hasOwnProperty(prop)&&(c[prop]=b[prop]);return new c},function(){function a(a){return{status:"loading",name:a,linkSets:[],dependencies:[],metadata:{}}}function b(a,b,c){return new A(g({step:c.address?"fetch":"locate",loader:a,moduleName:b,moduleMetadata:c&&c.metadata||{},moduleSource:c.source,moduleAddress:c.address}))}function c(b,c,e,f){return new A(function(a){a(b.loaderObj.normalize(c,e,f))}).then(function(c){var e;if(b.modules[c])return e=a(c),e.status="linked",e.module=b.modules[c],e;for(var f=0,g=b.loads.length;g>f;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(d){return"loading"==b.status?A.resolve(a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:d})).then(function(c){return b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})}).then(function(c){if(void 0===c)return b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.transpile(b).then(function(a){var c=__global.System,d=c.register;c.register=function(a,c,d){"string"!=typeof a&&(d=c,c=a),b.declare=d,b.depsList=c},__eval(a,__global,b),c.register=d});if("object"!=typeof c)throw TypeError("Invalid instantiate return value");b.depsList=c.deps||[],b.execute=c.execute,b.isDeclarative=!1}).then(function(){b.dependencies=[];for(var d=b.depsList,e=[],f=0,g=d.length;g>f;f++)(function(d,f){e.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[f]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),e=0,g=c.length;g>e;e++)i(c[e],a)}))})(d[f],f);return A.all(e)}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)}):void 0})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k,l=0,m=g.loads.length;m>l;l++)if(g.loads[l].name==i)return k=g.loads[l],"translate"!=j||k.source||(k.address=b.moduleAddress,f(g,k,A.resolve(b.moduleSource))),k.linkSets[0].done.then(function(){c(k)});var n=a(i);n.metadata=b.moduleMetadata;var o=h(g,n);g.loads.push(n),c(o.done),"locate"==j?d(g,n):"fetch"==j?e(g,n,A.resolve(b.moduleAddress)):(n.address=b.moduleAddress,f(g,n,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var d=0,e=b.length;e>d;d++)for(var f=b[d],g=0;g=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){var b=this._loader;return delete b.importPromises[a],delete b.moduleRecords[a],b.modules[a]?delete b.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var E=x.prototype.newModule;"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(a){function b(a,b){return a.newModule({"default":f[b],__useDefault:!0})}function c(a,b){var c=this.traceurOptions||{};c.modules="instantiate",c.script=!1,c.sourceMaps="inline",c.filename=a.address,c.inputSourceMap=a.metadata.sourceMap,c.moduleName=!1;var e=new b.Compiler(c),f=d(a.source,e,c.filename);return f+="!eval"}function d(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}function e(a,b){var c=this.babelOptions||{};c.modules="system",c.sourceMap="inline",c.filename=a.address,c.code=!0,c.ast=!1,c.blacklist||(c.blacklist=["react"]);var d=b.transform(a.source,c).code;return d+"\n//# sourceURL="+a.address+"!eval"}var f=__global,g=!0;a.prototype.transpiler="traceur",a.prototype.transpile=function(a){var d=this;return g&&(f.traceur&&!d.has("traceur")&&d.set("traceur",b(d,"traceur")),f.babel&&!d.has("babel")&&d.set("babel",b(d,"babel")),g=!1),d["import"](d.transpiler).then(function(b){return b.__useDefault&&(b=b["default"]),'var __moduleAddress = "'+a.address+'";'+(b.Compiler?c:e).call(d,a,b)})},a.prototype.instantiate=function(a){if(a.name===this.transpiler){var c=this;return{deps:[],execute:function(){var d=f.System,e=f.Reflect.Loader;return __eval("(function(require,exports,module){"+a.source+"})();",f,a),f.System=d,f.Reflect.Loader=e,b(c,a.name)}}}}}(__global.LoaderPolyfill),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return i&&(d=d.replace(/\\/g,"/")),d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); //# sourceMappingURL=es6-module-loader-sans-promises.js.map \ No newline at end of file diff --git a/dist/es6-module-loader-sans-promises.js.map b/dist/es6-module-loader-sans-promises.js.map index 3ab5528..c047ca6 100644 --- a/dist/es6-module-loader-sans-promises.js.map +++ b/dist/es6-module-loader-sans-promises.js.map @@ -1 +1 @@ -{"version":3,"file":"es6-module-loader-sans-promises.js","sources":["es6-module-loader-sans-promises.src.js"],"names":["__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","e","message","address","$__Object$getPrototypeOf","Object","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","value","get","call","$__Object$create","create","o","props","F","prototype","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","Promise","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","resolve","loaderObj","normalize","then","modules","module","i","l","loads","length","push","proceedToLocate","proceedToFetch","locate","p","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","transpile","TypeError","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","all","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","existingLoad","done","linkSet","createLinkSet","startingLoad","loadingCount","reject","j","d","doLink","error","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","indexOf","linkIndex","splice","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","Error","preventExtensions","msg","Loader","this","_loader","importPromises","createImportPromise","promise","m","require","console","assert","Array","item","thisLen","constructor","define","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","exports","Reflect","global","LoaderPolyfill","traceurTranspile","traceurOptions","script","sourceMaps","filename","inputSourceMap","sourceMap","compiler","transpilerModule","Compiler","doTraceurCompile","compile","babelTranspile","babelOptions","code","ast","blacklist","transform","transpiler","isNode","window","WorkerGlobalScope","babel","traceur","parseURI","url","String","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","join","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","document","removeEventListener","ready","scripts","getElementsByTagName","type","innerHTML","substr","setTimeout","fetchTextFromURL","isWorker","self","isBrowser","isWindows","process","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","data","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"es6-module-loader-sans-promises.js","sources":["es6-module-loader-sans-promises.src.js"],"names":["__global","__eval","__source","__load","eval","name","replace","e","message","load","address","$__Object$getPrototypeOf","Object","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","value","get","call","$__Object$create","create","o","props","F","prototype","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","Promise","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","resolve","loaderObj","normalize","then","modules","module","i","l","loads","length","push","proceedToLocate","proceedToFetch","locate","p","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","transpile","transpiled","curSystem","System","curRegister","register","deps","declare","depsList","TypeError","execute","loadPromises","index","depLoad","key","concat","addLoadToLinkSet","all","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","existingLoad","done","linkSet","createLinkSet","startingLoad","loadingCount","reject","j","d","doLink","error","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","indexOf","linkIndex","splice","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","Error","preventExtensions","msg","Loader","this","_loader","importPromises","createImportPromise","promise","m","require","console","assert","Array","item","thisLen","constructor","define","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","exports","Reflect","global","LoaderPolyfill","getTranspilerModule","globalName","default","g","__useDefault","traceurTranspile","traceur","traceurOptions","script","sourceMaps","filename","inputSourceMap","sourceMap","compiler","Compiler","doTraceurCompile","compile","babelTranspile","babel","babelOptions","code","ast","blacklist","transform","firstRun","transpiler","self","curLoader","parseURI","url","String","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","join","charAt","toAbsoluteURL","base","isWindows","slice","lastIndexOf","completed","document","removeEventListener","window","ready","scripts","getElementsByTagName","type","innerHTML","substr","setTimeout","fetchTextFromURL","isWorker","WorkerGlobalScope","isBrowser","process","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","data","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6-module-loader-sans-promises.src.js b/dist/es6-module-loader-sans-promises.src.js index 84470a8..3de96cc 100644 --- a/dist/es6-module-loader-sans-promises.src.js +++ b/dist/es6-module-loader-sans-promises.src.js @@ -266,92 +266,100 @@ function logloads(loads) { .then(function(source) { if (load.status != 'loading') return; - return loader.loaderObj.translate({ name: load.name, metadata: load.metadata, address: load.address, source: source }); - }) - // 15.2.4.5.2 CallInstantiate - .then(function(source) { - if (load.status != 'loading') - return; - load.source = source; - return loader.loaderObj.instantiate({ name: load.name, metadata: load.metadata, address: load.address, source: source }); - }) + return Promise.resolve(loader.loaderObj.translate({ name: load.name, metadata: load.metadata, address: load.address, source: source })) - // 15.2.4.5.3 InstantiateSucceeded - .then(function(instantiateResult) { - if (load.status != 'loading') - return; - - if (instantiateResult === undefined) { - load.address = load.address || ''; - - // instead of load.kind, use load.isDeclarative - load.isDeclarative = true; - __eval(loader.loaderObj.transpile(load), __global, load); - } - else if (typeof instantiateResult == 'object') { - load.depsList = instantiateResult.deps || []; - load.execute = instantiateResult.execute; - load.isDeclarative = false; - } - else - throw TypeError('Invalid instantiate return value'); + // 15.2.4.5.2 CallInstantiate + .then(function(source) { + load.source = source; + return loader.loaderObj.instantiate({ name: load.name, metadata: load.metadata, address: load.address, source: source }); + }) + // 15.2.4.5.3 InstantiateSucceeded + .then(function(instantiateResult) { + if (instantiateResult === undefined) { + load.address = load.address || ''; + + // instead of load.kind, use load.isDeclarative + load.isDeclarative = true; + return loader.loaderObj.transpile(load) + .then(function(transpiled) { + // Hijack System.register to set declare function + var curSystem = __global.System; + var curRegister = curSystem.register; + curSystem.register = function(name, deps, declare) { + if (typeof name != 'string') { + declare = deps; + deps = name; + } + // store the registered declaration as load.declare + // store the deps as load.deps + load.declare = declare; + load.depsList = deps; + } + __eval(transpiled, __global, load); + curSystem.register = curRegister; + }); + } + else if (typeof instantiateResult == 'object') { + load.depsList = instantiateResult.deps || []; + load.execute = instantiateResult.execute; + load.isDeclarative = false; + } + else + throw TypeError('Invalid instantiate return value'); + }) // 15.2.4.6 ProcessLoadDependencies - load.dependencies = []; - var depsList = load.depsList; - - var loadPromises = []; - for (var i = 0, l = depsList.length; i < l; i++) (function(request, index) { - loadPromises.push( - requestLoad(loader, request, load.name, load.address) - - // 15.2.4.6.1 AddDependencyLoad (load is parentLoad) - .then(function(depLoad) { - - console.assert(!load.dependencies.some(function(dep) { - return dep.key == request; - }), 'not already a dependency'); - - // adjusted from spec to maintain dependency order - // this is due to the System.register internal implementation needs - load.dependencies[index] = { - key: request, - value: depLoad.name - }; - - if (depLoad.status != 'linked') { - var linkSets = load.linkSets.concat([]); - for (var i = 0, l = linkSets.length; i < l; i++) - addLoadToLinkSet(linkSets[i], depLoad); - } - - // console.log('AddDependencyLoad ' + depLoad.name + ' for ' + load.name); - // snapshot(loader); - }) - ); - })(depsList[i], i); - - return Promise.all(loadPromises); - }) + .then(function() { + load.dependencies = []; + var depsList = load.depsList; + + var loadPromises = []; + for (var i = 0, l = depsList.length; i < l; i++) (function(request, index) { + loadPromises.push( + requestLoad(loader, request, load.name, load.address) + + // 15.2.4.6.1 AddDependencyLoad (load is parentLoad) + .then(function(depLoad) { + + // adjusted from spec to maintain dependency order + // this is due to the System.register internal implementation needs + load.dependencies[index] = { + key: request, + value: depLoad.name + }; + + if (depLoad.status != 'linked') { + var linkSets = load.linkSets.concat([]); + for (var i = 0, l = linkSets.length; i < l; i++) + addLoadToLinkSet(linkSets[i], depLoad); + } + + // console.log('AddDependencyLoad ' + depLoad.name + ' for ' + load.name); + // snapshot(loader); + }) + ); + })(depsList[i], i); + + return Promise.all(loadPromises); + }) - // 15.2.4.6.2 LoadSucceeded - .then(function() { - // console.log('LoadSucceeded ' + load.name); - // snapshot(loader); + // 15.2.4.6.2 LoadSucceeded + .then(function() { + // console.log('LoadSucceeded ' + load.name); + // snapshot(loader); - console.assert(load.status == 'loading', 'is loading'); + console.assert(load.status == 'loading', 'is loading'); - load.status = 'loaded'; + load.status = 'loaded'; - var linkSets = load.linkSets.concat([]); - for (var i = 0, l = linkSets.length; i < l; i++) - updateLinkSetOnLoad(linkSets[i], load); + var linkSets = load.linkSets.concat([]); + for (var i = 0, l = linkSets.length; i < l; i++) + updateLinkSetOnLoad(linkSets[i], load); + }); }) - // 15.2.4.5.4 LoadFailed ['catch'](function(exc) { - console.assert(load.status == 'loading', 'is loading on fail'); load.status = 'failed'; load.exception = exc; @@ -1112,40 +1120,63 @@ function logloads(loads) { * Traceur and Babel transpile hook for Loader */ (function(Loader) { - // Returns an array of ModuleSpecifiers - var transpiler, transpilerModule; - var isNode = typeof window == 'undefined' && typeof WorkerGlobalScope == 'undefined'; + var g = __global; + + function getTranspilerModule(loader, globalName) { + return loader.newModule({ 'default': g[globalName], __useDefault: true }); + } + var firstRun = true; // use Traceur by default Loader.prototype.transpiler = 'traceur'; Loader.prototype.transpile = function(load) { - if (!transpiler) { - if (this.transpiler == 'babel') { - transpiler = babelTranspile; - transpilerModule = isNode ? require('babel-core') : __global.babel; - } - else { - transpiler = traceurTranspile; - transpilerModule = isNode ? require('traceur') : __global.traceur; - } - - if (!transpilerModule) - throw new TypeError('Include Traceur or Babel for module syntax support.'); + var self = this; + + // pick up Transpiler modules from existing globals on first run if set + if (firstRun) { + if (g.traceur && !self.has('traceur')) + self.set('traceur', getTranspilerModule(self, 'traceur')); + if (g.babel && !self.has('babel')) + self.set('babel', getTranspilerModule(self, 'babel')); + firstRun = false; } + + return self['import'](self.transpiler).then(function(transpiler) { + if (transpiler.__useDefault) + transpiler = transpiler['default']; + return 'var __moduleAddress = "' + load.address + '";' + (transpiler.Compiler ? traceurTranspile : babelTranspile).call(self, load, transpiler); + }); + }; - return 'var __moduleAddress = "' + load.address + '";' + transpiler.call(this, load); - } + Loader.prototype.instantiate = function(load) { + // load transpiler as a global (avoiding System clobbering) + if (load.name === this.transpiler) { + var self = this; + return { + deps: [], + execute: function() { + var curSystem = g.System; + var curLoader = g.Reflect.Loader; + __eval('(function(require,exports,module){' + load.source + '})();', g, load); + g.System = curSystem; + g.Reflect.Loader = curLoader; + return getTranspilerModule(self, load.name); + } + }; + } + }; - function traceurTranspile(load) { + function traceurTranspile(load, traceur) { var options = this.traceurOptions || {}; options.modules = 'instantiate'; options.script = false; options.sourceMaps = 'inline'; options.filename = load.address; options.inputSourceMap = load.metadata.sourceMap; + options.moduleName = false; - var compiler = new transpilerModule.Compiler(options); + var compiler = new traceur.Compiler(options); var source = doTraceurCompile(load.source, compiler, options.filename); // add "!eval" to end of Traceur sourceURL @@ -1164,17 +1195,18 @@ function logloads(loads) { } } - function babelTranspile(load) { + function babelTranspile(load, babel) { var options = this.babelOptions || {}; options.modules = 'system'; options.sourceMap = 'inline'; options.filename = load.address; options.code = true; options.ast = false; - options.blacklist = options.blacklist || []; - options.blacklist.push('react'); + + if (!options.blacklist) + options.blacklist = ['react']; - var source = transpilerModule.transform(load.source, options).code; + var source = babel.transform(load.source, options).code; // add "!eval" to end of Babel sourceURL // I believe this does something? @@ -1236,6 +1268,9 @@ function logloads(loads) { function toAbsoluteURL(base, href) { + if (isWindows) + href = href.replace(/\\/g, '/'); + href = parseURI(href || ''); base = parseURI(base || ''); @@ -1534,29 +1569,15 @@ function logloads(loads) { // Define our eval outside of the scope of any other reference defined in this // file to avoid adding those references to the evaluation scope. -function __eval(__source, __global, load) { - // Hijack System.register to set declare function - var __curRegister = System.register; - System.register = function(name, deps, declare) { - if (typeof name != 'string') { - declare = deps; - deps = name; - } - // store the registered declaration as load.declare - // store the deps as load.deps - load.declare = declare; - load.depsList = deps; - } +function __eval(__source, __global, __load) { try { - eval('(function() { var __moduleName = "' + (load.name || '').replace('"', '\"') + '"; ' + __source + ' \n }).call(__global);'); + eval('(function() { var __moduleName = "' + (__load.name || '').replace('"', '\"') + '"; ' + __source + ' \n }).call(__global);'); } catch(e) { if (e.name == 'SyntaxError' || e.name == 'TypeError') - e.message = 'Evaluating ' + (load.name || load.address) + '\n\t' + e.message; + e.message = 'Evaluating ' + (__load.name || load.address) + '\n\t' + e.message; throw e; } - - System.register = __curRegister; } })(typeof window != 'undefined' ? window : (typeof WorkerGlobalScope != 'undefined' ? diff --git a/dist/es6-module-loader.js b/dist/es6-module-loader.js index ad714b4..c009673 100644 --- a/dist/es6-module-loader.js +++ b/dist/es6-module-loader.js @@ -4,5 +4,5 @@ * Copyright (c) 2015 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=0&&(n.splice(b,1),l("Handled previous rejection ["+a.id+"] "+e.formatObject(a.value)))}function h(a,b){m.push(a,b),null===o&&(o=d(i,0))}function i(){for(o=null;m.length>0;)m.shift()(m.shift())}var j,k=c,l=c;"undefined"!=typeof console&&(j=console,k="undefined"!=typeof j.error?function(a){j.error(a)}:function(a){j.log(a)},l="undefined"!=typeof j.info?function(a){j.info(a)}:function(a){j.log(a)}),a.onPotentiallyUnhandledRejection=function(a){h(f,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){h(g,a)},a.onFatalRejection=function(a){h(b,a.value)};var m=[],n=[],o=null;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../env":5,"../format":6}],5:[function(b,c){!function(a){"use strict";a(function(a){function b(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick}function c(){return"function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver}function d(a){function b(){var a=c;c=void 0,a()}var c,d=document.createTextNode(""),e=new a(b);e.observe(d,{characterData:!0});var f=0;return function(a){c=a,d.data=f^=1}}var e,f="undefined"!=typeof setTimeout&&setTimeout,g=function(a,b){return setTimeout(a,b)},h=function(a){return clearTimeout(a)},i=function(a){return f(a,0)};if(b())i=function(a){return process.nextTick(a)};else if(e=c())i=d(e);else if(!f){var j=a,k=j("vertx");g=function(a,b){return k.setTimer(b,a)},h=k.cancelTimer,i=k.runOnLoop||k.runOnContext}return{setTimer:g,clearTimer:h,asap:i}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c){!function(a){"use strict";a(function(){function a(a){var c="object"==typeof a&&null!==a&&a.stack?a.stack:b(a);return a instanceof Error?c:c+" (WARNING: non-Error used)"}function b(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=c(a,b)),b}function c(a,b){try{return JSON.stringify(a)}catch(c){return b}}return{formatError:a,formatObject:b,tryStringify:c}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],7:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===t?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new v;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return I(a)?a:new b(t,new w(q(a)))}function e(a){return new b(t,new w(new z(a)))}function f(){return _}function g(){return new b(t,new v)}function h(a,b){var c=new v(a.receiver,a.join().context);return new b(t,c)}function i(a){return k(S,null,a)}function j(a,b){return k(N,a,b)}function k(a,c,d){function e(b,e,g){g.resolved||l(d,f,b,a(c,e,b),g)}function f(a,b,c){k[a]=b,0===--j&&c.become(new y(k))}for(var g,h="function"==typeof c?e:f,i=new v,j=d.length>>>0,k=new Array(j),m=0;m0?b(c,f.value,e):(e.become(f),m(a,c+1,f))}else b(c,d,e)}function m(a,b,c){for(var d=b;dc&&a._unreport()}}function o(a){return"object"!=typeof a||null===a?e(new TypeError("non-iterable passed to race()")):0===a.length?f():1===a.length?d(a[0]):p(a)}function p(a){var c,d,e,f=new v;for(c=0;c0||"function"!=typeof b&&0>e)return new this.constructor(t,d);var f=this._beget(),g=f._handler;return d.chain(g,d.receiver,a,b,c),f},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){return h(this._handler,this.constructor)},b.all=i,b.race=o,b._traverse=j,b._visitRemaining=m,t.prototype.when=t.prototype.become=t.prototype.notify=t.prototype.fail=t.prototype._unreport=t.prototype._report=T,t.prototype._state=0,t.prototype.state=function(){return this._state},t.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},t.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},t.prototype.visit=function(a,b,c,d){this.chain(Y,a,b,c,d)},t.prototype.fold=function(a,b,c,d){this.when(new H(a,b,c,d))},R(t,u),u.prototype.become=function(a){a.fail()};var Y=new u;R(t,v),v.prototype._state=0,v.prototype.resolve=function(a){this.become(q(a))},v.prototype.reject=function(a){this.resolved||this.become(new z(a))},v.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=C();return a},v.prototype.run=function(){var a=this.consumers,b=this.handler;this.handler=this.handler.join(),this.consumers=void 0;for(var c=0;cf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(c){return"loading"==b.status?a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:c}):void 0}).then(function(c){return"loading"==b.status?(b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})):void 0}).then(function(d){if("loading"==b.status){if(void 0===d)b.address=b.address||"",b.isDeclarative=!0,__eval(a.loaderObj.transpile(b),__global,b);else{if("object"!=typeof d)throw TypeError("Invalid instantiate return value");b.depsList=d.deps||[],b.execute=d.execute,b.isDeclarative=!1}b.dependencies=[];for(var e=b.depsList,f=[],g=0,h=e.length;h>g;g++)(function(d,e){f.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[e]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),f=0,g=c.length;g>f;f++)i(c[f],a)}))})(e[g],g);return A.all(f)}}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k,l=0,m=g.loads.length;m>l;l++)if(g.loads[l].name==i)return k=g.loads[l],"translate"!=j||k.source||(k.address=b.moduleAddress,f(g,k,A.resolve(b.moduleSource))),k.linkSets[0].done.then(function(){c(k)});var n=a(i);n.metadata=b.moduleMetadata;var o=h(g,n);g.loads.push(n),c(o.done),"locate"==j?d(g,n):"fetch"==j?e(g,n,A.resolve(b.moduleAddress)):(n.address=b.moduleAddress,f(g,n,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var d=0,e=b.length;e>d;d++)for(var f=b[d],g=0;g=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){var b=this._loader;return delete b.importPromises[a],delete b.moduleRecords[a],b.modules[a]?delete b.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var E=x.prototype.newModule;"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(a){function b(a){var b=this.traceurOptions||{};b.modules="instantiate",b.script=!1,b.sourceMaps="inline",b.filename=a.address,b.inputSourceMap=a.metadata.sourceMap;var d=new f.Compiler(b),e=c(a.source,d,b.filename);return e+="!eval"}function c(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}function d(a){var b=this.babelOptions||{};b.modules="system",b.sourceMap="inline",b.filename=a.address,b.code=!0,b.ast=!1,b.blacklist=b.blacklist||[],b.blacklist.push("react");var c=f.transform(a.source,b).code;return c+"\n//# sourceURL="+a.address+"!eval"}var e,f,g="undefined"==typeof window&&"undefined"==typeof WorkerGlobalScope;a.prototype.transpiler="traceur",a.prototype.transpile=function(a){if(!e&&("babel"==this.transpiler?(e=d,f=g?require("babel-core"):__global.babel):(e=b,f=g?require("traceur"):__global.traceur),!f))throw new TypeError("Include Traceur or Babel for module syntax support.");return'var __moduleAddress = "'+a.address+'";'+e.call(this,a)}}(__global.LoaderPolyfill),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); +!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=0&&(n.splice(b,1),l("Handled previous rejection ["+a.id+"] "+e.formatObject(a.value)))}function h(a,b){m.push(a,b),null===o&&(o=d(i,0))}function i(){for(o=null;m.length>0;)m.shift()(m.shift())}var j,k=c,l=c;"undefined"!=typeof console&&(j=console,k="undefined"!=typeof j.error?function(a){j.error(a)}:function(a){j.log(a)},l="undefined"!=typeof j.info?function(a){j.info(a)}:function(a){j.log(a)}),a.onPotentiallyUnhandledRejection=function(a){h(f,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){h(g,a)},a.onFatalRejection=function(a){h(b,a.value)};var m=[],n=[],o=null;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../env":5,"../format":6}],5:[function(b,c){!function(a){"use strict";a(function(a){function b(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick}function c(){return"function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver}function d(a){function b(){var a=c;c=void 0,a()}var c,d=document.createTextNode(""),e=new a(b);e.observe(d,{characterData:!0});var f=0;return function(a){c=a,d.data=f^=1}}var e,f="undefined"!=typeof setTimeout&&setTimeout,g=function(a,b){return setTimeout(a,b)},h=function(a){return clearTimeout(a)},i=function(a){return f(a,0)};if(b())i=function(a){return process.nextTick(a)};else if(e=c())i=d(e);else if(!f){var j=a,k=j("vertx");g=function(a,b){return k.setTimer(b,a)},h=k.cancelTimer,i=k.runOnLoop||k.runOnContext}return{setTimer:g,clearTimer:h,asap:i}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c){!function(a){"use strict";a(function(){function a(a){var c="object"==typeof a&&null!==a&&a.stack?a.stack:b(a);return a instanceof Error?c:c+" (WARNING: non-Error used)"}function b(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=c(a,b)),b}function c(a,b){try{return JSON.stringify(a)}catch(c){return b}}return{formatError:a,formatObject:b,tryStringify:c}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],7:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===t?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new v;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return I(a)?a:new b(t,new w(q(a)))}function e(a){return new b(t,new w(new z(a)))}function f(){return _}function g(){return new b(t,new v)}function h(a,b){var c=new v(a.receiver,a.join().context);return new b(t,c)}function i(a){return k(S,null,a)}function j(a,b){return k(N,a,b)}function k(a,c,d){function e(b,e,g){g.resolved||l(d,f,b,a(c,e,b),g)}function f(a,b,c){k[a]=b,0===--j&&c.become(new y(k))}for(var g,h="function"==typeof c?e:f,i=new v,j=d.length>>>0,k=new Array(j),m=0;m0?b(c,f.value,e):(e.become(f),m(a,c+1,f))}else b(c,d,e)}function m(a,b,c){for(var d=b;dc&&a._unreport()}}function o(a){return"object"!=typeof a||null===a?e(new TypeError("non-iterable passed to race()")):0===a.length?f():1===a.length?d(a[0]):p(a)}function p(a){var c,d,e,f=new v;for(c=0;c0||"function"!=typeof b&&0>e)return new this.constructor(t,d);var f=this._beget(),g=f._handler;return d.chain(g,d.receiver,a,b,c),f},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){return h(this._handler,this.constructor)},b.all=i,b.race=o,b._traverse=j,b._visitRemaining=m,t.prototype.when=t.prototype.become=t.prototype.notify=t.prototype.fail=t.prototype._unreport=t.prototype._report=T,t.prototype._state=0,t.prototype.state=function(){return this._state},t.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},t.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},t.prototype.visit=function(a,b,c,d){this.chain(Y,a,b,c,d)},t.prototype.fold=function(a,b,c,d){this.when(new H(a,b,c,d))},R(t,u),u.prototype.become=function(a){a.fail()};var Y=new u;R(t,v),v.prototype._state=0,v.prototype.resolve=function(a){this.become(q(a))},v.prototype.reject=function(a){this.resolved||this.become(new z(a))},v.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=C();return a},v.prototype.run=function(){var a=this.consumers,b=this.handler;this.handler=this.handler.join(),this.consumers=void 0;for(var c=0;cf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(d){return"loading"==b.status?A.resolve(a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:d})).then(function(c){return b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})}).then(function(c){if(void 0===c)return b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.transpile(b).then(function(a){var c=__global.System,d=c.register;c.register=function(a,c,d){"string"!=typeof a&&(d=c,c=a),b.declare=d,b.depsList=c},__eval(a,__global,b),c.register=d});if("object"!=typeof c)throw TypeError("Invalid instantiate return value");b.depsList=c.deps||[],b.execute=c.execute,b.isDeclarative=!1}).then(function(){b.dependencies=[];for(var d=b.depsList,e=[],f=0,g=d.length;g>f;f++)(function(d,f){e.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[f]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),e=0,g=c.length;g>e;e++)i(c[e],a)}))})(d[f],f);return A.all(e)}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)}):void 0})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k,l=0,m=g.loads.length;m>l;l++)if(g.loads[l].name==i)return k=g.loads[l],"translate"!=j||k.source||(k.address=b.moduleAddress,f(g,k,A.resolve(b.moduleSource))),k.linkSets[0].done.then(function(){c(k)});var n=a(i);n.metadata=b.moduleMetadata;var o=h(g,n);g.loads.push(n),c(o.done),"locate"==j?d(g,n):"fetch"==j?e(g,n,A.resolve(b.moduleAddress)):(n.address=b.moduleAddress,f(g,n,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var d=0,e=b.length;e>d;d++)for(var f=b[d],g=0;g=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){var b=this._loader;return delete b.importPromises[a],delete b.moduleRecords[a],b.modules[a]?delete b.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var E=x.prototype.newModule;"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(a){function b(a,b){return a.newModule({"default":f[b],__useDefault:!0})}function c(a,b){var c=this.traceurOptions||{};c.modules="instantiate",c.script=!1,c.sourceMaps="inline",c.filename=a.address,c.inputSourceMap=a.metadata.sourceMap,c.moduleName=!1;var e=new b.Compiler(c),f=d(a.source,e,c.filename);return f+="!eval"}function d(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}function e(a,b){var c=this.babelOptions||{};c.modules="system",c.sourceMap="inline",c.filename=a.address,c.code=!0,c.ast=!1,c.blacklist||(c.blacklist=["react"]);var d=b.transform(a.source,c).code;return d+"\n//# sourceURL="+a.address+"!eval"}var f=__global,g=!0;a.prototype.transpiler="traceur",a.prototype.transpile=function(a){var d=this;return g&&(f.traceur&&!d.has("traceur")&&d.set("traceur",b(d,"traceur")),f.babel&&!d.has("babel")&&d.set("babel",b(d,"babel")),g=!1),d["import"](d.transpiler).then(function(b){return b.__useDefault&&(b=b["default"]),'var __moduleAddress = "'+a.address+'";'+(b.Compiler?c:e).call(d,a,b)})},a.prototype.instantiate=function(a){if(a.name===this.transpiler){var c=this;return{deps:[],execute:function(){var d=f.System,e=f.Reflect.Loader;return __eval("(function(require,exports,module){"+a.source+"})();",f,a),f.System=d,f.Reflect.Loader=e,b(c,a.name)}}}}}(__global.LoaderPolyfill),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return i&&(d=d.replace(/\\/g,"/")),d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); //# sourceMappingURL=es6-module-loader.js.map \ No newline at end of file diff --git a/dist/es6-module-loader.js.map b/dist/es6-module-loader.js.map index a1ddf5a..a4643ec 100644 --- a/dist/es6-module-loader.js.map +++ b/dist/es6-module-loader.js.map @@ -1 +1 @@ -{"version":3,"file":"es6-module-loader.js","sources":["es6-module-loader.src.js"],"names":["e","exports","module","define","amd","window","Promise","global","self","t","n","r","s","o","u","a","require","i","Error","f","call","length",1,"unhandledRejections","PromiseConstructor","../lib/Promise","../lib/decorators/unhandledRejection",2,"makePromise","Scheduler","async","asap","scheduler","factory","./Scheduler","./env","./makePromise",3,"this","_async","_running","_queue","_queueLen","_afterQueue","_afterQueueLen","drain","_drain","prototype","enqueue","task","run","afterQueue",4,"throwit","noop","setTimer","format","report","handled","reported","push","logError","id","formatError","value","unreport","indexOf","splice","logInfo","formatObject","x","tasks","running","flush","shift","localConsole","console","error","log","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","../env","../format",5,"isNode","process","nextTick","hasMutationObserver","MutationObserver","WebKitMutationObserver","initMutationObserver","scheduled","node","document","createTextNode","observe","characterData","data","MutationObs","capturedSetTimeout","setTimeout","ms","clearTimer","clearTimeout","vertxRequire","vertx","cancelTimer","runOnLoop","runOnContext",6,"stack","String","JSON","tryStringify","defaultValue","stringify",7,"environment","resolver","handler","_handler","Handler","init","promiseResolve","resolve","promiseReject","reason","reject","promiseNotify","notify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","begetFrom","parent","child","receiver","join","context","all","promises","traverseWith","snd","traverse","tryCatch2","tryMap","mapAt","resolved","traverseAt","settleAt","results","pending","become","Fulfilled","Array","maybeThenable","h","getHandlerMaybeThenable","state","fold","visitRemaining","start","markAsHandled","visit","_unreport","race","TypeError","runRace","getHandlerUntrusted","untrustedThen","then","Thenable","FailIfRejected","inheritedContext","createContext","consumers","thenable","AssimilateTask","errorId","_report","ReportTask","UnreportTask","cycle","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","Fold","z","c","to","failIfRejected","runContinuation1","next","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","b","thisArg","y","inherit","Parent","Child","objectCreate","constructor","initEmitRejection","emit","type","CustomEvent","hasCustomEvent","ev","detail","key","bubbles","cancelable","dispatchEvent","emitRejection","Object","create","proto","_defer","onFulfilled","onRejected","onProgress","p","_beget","chain","_traverse","_visitRemaining","when","fail","_state","fulfilled","rejected","progress","q","cont","foreverPendingHandler","_resolve","_reject","_notify","__global","__eval","__source","load","__curRegister","System","register","name","deps","declare","depsList","eval","replace","message","address","$__Object$getPrototypeOf","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","get","$__Object$create","props","F","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","loaderObj","normalize","modules","l","loads","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","transpile","execute","loadPromises","index","depLoad","concat","addLoadToLinkSet","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","existingLoad","done","linkSet","createLinkSet","startingLoad","loadingCount","j","d","doLink","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","linkIndex","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","preventExtensions","msg","Loader","_loader","importPromises","createImportPromise","promise","m","assert","item","thisLen","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","Reflect","LoaderPolyfill","traceurTranspile","traceurOptions","script","sourceMaps","filename","inputSourceMap","sourceMap","compiler","transpilerModule","Compiler","doTraceurCompile","compile","babelTranspile","babelOptions","code","ast","blacklist","transform","transpiler","WorkerGlobalScope","babel","traceur","parseURI","url","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","charAt","toAbsoluteURL","base","slice","lastIndexOf","completed","removeEventListener","ready","scripts","getElementsByTagName","innerHTML","substr","fetchTextFromURL","isWorker","isBrowser","isWindows","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"es6-module-loader.js","sources":["es6-module-loader.src.js"],"names":["e","exports","module","define","amd","window","Promise","global","self","t","n","r","s","o","u","a","require","i","Error","f","call","length",1,"unhandledRejections","PromiseConstructor","../lib/Promise","../lib/decorators/unhandledRejection",2,"makePromise","Scheduler","async","asap","scheduler","factory","./Scheduler","./env","./makePromise",3,"this","_async","_running","_queue","_queueLen","_afterQueue","_afterQueueLen","drain","_drain","prototype","enqueue","task","run","afterQueue",4,"throwit","noop","setTimer","format","report","handled","reported","push","logError","id","formatError","value","unreport","indexOf","splice","logInfo","formatObject","x","tasks","running","flush","shift","localConsole","console","error","log","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","../env","../format",5,"isNode","process","nextTick","hasMutationObserver","MutationObserver","WebKitMutationObserver","initMutationObserver","scheduled","node","document","createTextNode","observe","characterData","data","MutationObs","capturedSetTimeout","setTimeout","ms","clearTimer","clearTimeout","vertxRequire","vertx","cancelTimer","runOnLoop","runOnContext",6,"stack","String","JSON","tryStringify","defaultValue","stringify",7,"environment","resolver","handler","_handler","Handler","init","promiseResolve","resolve","promiseReject","reason","reject","promiseNotify","notify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","begetFrom","parent","child","receiver","join","context","all","promises","traverseWith","snd","traverse","tryCatch2","tryMap","mapAt","resolved","traverseAt","settleAt","results","pending","become","Fulfilled","Array","maybeThenable","h","getHandlerMaybeThenable","state","fold","visitRemaining","start","markAsHandled","visit","_unreport","race","TypeError","runRace","getHandlerUntrusted","untrustedThen","then","Thenable","FailIfRejected","inheritedContext","createContext","consumers","thenable","AssimilateTask","errorId","_report","ReportTask","UnreportTask","cycle","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","Fold","z","c","to","failIfRejected","runContinuation1","next","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","b","thisArg","y","inherit","Parent","Child","objectCreate","constructor","initEmitRejection","emit","type","CustomEvent","hasCustomEvent","ev","detail","key","bubbles","cancelable","dispatchEvent","emitRejection","Object","create","proto","_defer","onFulfilled","onRejected","onProgress","p","_beget","chain","_traverse","_visitRemaining","when","fail","_state","fulfilled","rejected","progress","q","cont","foreverPendingHandler","_resolve","_reject","_notify","__global","__eval","__source","__load","eval","name","replace","message","load","address","$__Object$getPrototypeOf","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","get","$__Object$create","props","F","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","loaderObj","normalize","modules","l","loads","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","transpile","transpiled","curSystem","System","curRegister","register","deps","declare","depsList","execute","loadPromises","index","depLoad","concat","addLoadToLinkSet","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","existingLoad","done","linkSet","createLinkSet","startingLoad","loadingCount","j","d","doLink","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","linkIndex","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","preventExtensions","msg","Loader","_loader","importPromises","createImportPromise","promise","m","assert","item","thisLen","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","Reflect","LoaderPolyfill","getTranspilerModule","globalName","default","g","__useDefault","traceurTranspile","traceur","traceurOptions","script","sourceMaps","filename","inputSourceMap","sourceMap","compiler","Compiler","doTraceurCompile","compile","babelTranspile","babel","babelOptions","code","ast","blacklist","transform","firstRun","transpiler","curLoader","parseURI","url","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","charAt","toAbsoluteURL","base","isWindows","slice","lastIndexOf","completed","removeEventListener","ready","scripts","getElementsByTagName","innerHTML","substr","fetchTextFromURL","isWorker","WorkerGlobalScope","isBrowser","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6-module-loader.src.js b/dist/es6-module-loader.src.js index 816af58..2b41d59 100644 --- a/dist/es6-module-loader.src.js +++ b/dist/es6-module-loader.src.js @@ -1536,92 +1536,100 @@ function logloads(loads) { .then(function(source) { if (load.status != 'loading') return; - return loader.loaderObj.translate({ name: load.name, metadata: load.metadata, address: load.address, source: source }); - }) - // 15.2.4.5.2 CallInstantiate - .then(function(source) { - if (load.status != 'loading') - return; - load.source = source; - return loader.loaderObj.instantiate({ name: load.name, metadata: load.metadata, address: load.address, source: source }); - }) + return Promise.resolve(loader.loaderObj.translate({ name: load.name, metadata: load.metadata, address: load.address, source: source })) - // 15.2.4.5.3 InstantiateSucceeded - .then(function(instantiateResult) { - if (load.status != 'loading') - return; - - if (instantiateResult === undefined) { - load.address = load.address || ''; - - // instead of load.kind, use load.isDeclarative - load.isDeclarative = true; - __eval(loader.loaderObj.transpile(load), __global, load); - } - else if (typeof instantiateResult == 'object') { - load.depsList = instantiateResult.deps || []; - load.execute = instantiateResult.execute; - load.isDeclarative = false; - } - else - throw TypeError('Invalid instantiate return value'); + // 15.2.4.5.2 CallInstantiate + .then(function(source) { + load.source = source; + return loader.loaderObj.instantiate({ name: load.name, metadata: load.metadata, address: load.address, source: source }); + }) + // 15.2.4.5.3 InstantiateSucceeded + .then(function(instantiateResult) { + if (instantiateResult === undefined) { + load.address = load.address || ''; + + // instead of load.kind, use load.isDeclarative + load.isDeclarative = true; + return loader.loaderObj.transpile(load) + .then(function(transpiled) { + // Hijack System.register to set declare function + var curSystem = __global.System; + var curRegister = curSystem.register; + curSystem.register = function(name, deps, declare) { + if (typeof name != 'string') { + declare = deps; + deps = name; + } + // store the registered declaration as load.declare + // store the deps as load.deps + load.declare = declare; + load.depsList = deps; + } + __eval(transpiled, __global, load); + curSystem.register = curRegister; + }); + } + else if (typeof instantiateResult == 'object') { + load.depsList = instantiateResult.deps || []; + load.execute = instantiateResult.execute; + load.isDeclarative = false; + } + else + throw TypeError('Invalid instantiate return value'); + }) // 15.2.4.6 ProcessLoadDependencies - load.dependencies = []; - var depsList = load.depsList; - - var loadPromises = []; - for (var i = 0, l = depsList.length; i < l; i++) (function(request, index) { - loadPromises.push( - requestLoad(loader, request, load.name, load.address) - - // 15.2.4.6.1 AddDependencyLoad (load is parentLoad) - .then(function(depLoad) { - - console.assert(!load.dependencies.some(function(dep) { - return dep.key == request; - }), 'not already a dependency'); - - // adjusted from spec to maintain dependency order - // this is due to the System.register internal implementation needs - load.dependencies[index] = { - key: request, - value: depLoad.name - }; - - if (depLoad.status != 'linked') { - var linkSets = load.linkSets.concat([]); - for (var i = 0, l = linkSets.length; i < l; i++) - addLoadToLinkSet(linkSets[i], depLoad); - } - - // console.log('AddDependencyLoad ' + depLoad.name + ' for ' + load.name); - // snapshot(loader); - }) - ); - })(depsList[i], i); - - return Promise.all(loadPromises); - }) + .then(function() { + load.dependencies = []; + var depsList = load.depsList; + + var loadPromises = []; + for (var i = 0, l = depsList.length; i < l; i++) (function(request, index) { + loadPromises.push( + requestLoad(loader, request, load.name, load.address) + + // 15.2.4.6.1 AddDependencyLoad (load is parentLoad) + .then(function(depLoad) { + + // adjusted from spec to maintain dependency order + // this is due to the System.register internal implementation needs + load.dependencies[index] = { + key: request, + value: depLoad.name + }; + + if (depLoad.status != 'linked') { + var linkSets = load.linkSets.concat([]); + for (var i = 0, l = linkSets.length; i < l; i++) + addLoadToLinkSet(linkSets[i], depLoad); + } + + // console.log('AddDependencyLoad ' + depLoad.name + ' for ' + load.name); + // snapshot(loader); + }) + ); + })(depsList[i], i); + + return Promise.all(loadPromises); + }) - // 15.2.4.6.2 LoadSucceeded - .then(function() { - // console.log('LoadSucceeded ' + load.name); - // snapshot(loader); + // 15.2.4.6.2 LoadSucceeded + .then(function() { + // console.log('LoadSucceeded ' + load.name); + // snapshot(loader); - console.assert(load.status == 'loading', 'is loading'); + console.assert(load.status == 'loading', 'is loading'); - load.status = 'loaded'; + load.status = 'loaded'; - var linkSets = load.linkSets.concat([]); - for (var i = 0, l = linkSets.length; i < l; i++) - updateLinkSetOnLoad(linkSets[i], load); + var linkSets = load.linkSets.concat([]); + for (var i = 0, l = linkSets.length; i < l; i++) + updateLinkSetOnLoad(linkSets[i], load); + }); }) - // 15.2.4.5.4 LoadFailed ['catch'](function(exc) { - console.assert(load.status == 'loading', 'is loading on fail'); load.status = 'failed'; load.exception = exc; @@ -2382,40 +2390,63 @@ function logloads(loads) { * Traceur and Babel transpile hook for Loader */ (function(Loader) { - // Returns an array of ModuleSpecifiers - var transpiler, transpilerModule; - var isNode = typeof window == 'undefined' && typeof WorkerGlobalScope == 'undefined'; + var g = __global; + + function getTranspilerModule(loader, globalName) { + return loader.newModule({ 'default': g[globalName], __useDefault: true }); + } + var firstRun = true; // use Traceur by default Loader.prototype.transpiler = 'traceur'; Loader.prototype.transpile = function(load) { - if (!transpiler) { - if (this.transpiler == 'babel') { - transpiler = babelTranspile; - transpilerModule = isNode ? require('babel-core') : __global.babel; - } - else { - transpiler = traceurTranspile; - transpilerModule = isNode ? require('traceur') : __global.traceur; - } - - if (!transpilerModule) - throw new TypeError('Include Traceur or Babel for module syntax support.'); + var self = this; + + // pick up Transpiler modules from existing globals on first run if set + if (firstRun) { + if (g.traceur && !self.has('traceur')) + self.set('traceur', getTranspilerModule(self, 'traceur')); + if (g.babel && !self.has('babel')) + self.set('babel', getTranspilerModule(self, 'babel')); + firstRun = false; } + + return self['import'](self.transpiler).then(function(transpiler) { + if (transpiler.__useDefault) + transpiler = transpiler['default']; + return 'var __moduleAddress = "' + load.address + '";' + (transpiler.Compiler ? traceurTranspile : babelTranspile).call(self, load, transpiler); + }); + }; - return 'var __moduleAddress = "' + load.address + '";' + transpiler.call(this, load); - } + Loader.prototype.instantiate = function(load) { + // load transpiler as a global (avoiding System clobbering) + if (load.name === this.transpiler) { + var self = this; + return { + deps: [], + execute: function() { + var curSystem = g.System; + var curLoader = g.Reflect.Loader; + __eval('(function(require,exports,module){' + load.source + '})();', g, load); + g.System = curSystem; + g.Reflect.Loader = curLoader; + return getTranspilerModule(self, load.name); + } + }; + } + }; - function traceurTranspile(load) { + function traceurTranspile(load, traceur) { var options = this.traceurOptions || {}; options.modules = 'instantiate'; options.script = false; options.sourceMaps = 'inline'; options.filename = load.address; options.inputSourceMap = load.metadata.sourceMap; + options.moduleName = false; - var compiler = new transpilerModule.Compiler(options); + var compiler = new traceur.Compiler(options); var source = doTraceurCompile(load.source, compiler, options.filename); // add "!eval" to end of Traceur sourceURL @@ -2434,17 +2465,18 @@ function logloads(loads) { } } - function babelTranspile(load) { + function babelTranspile(load, babel) { var options = this.babelOptions || {}; options.modules = 'system'; options.sourceMap = 'inline'; options.filename = load.address; options.code = true; options.ast = false; - options.blacklist = options.blacklist || []; - options.blacklist.push('react'); + + if (!options.blacklist) + options.blacklist = ['react']; - var source = transpilerModule.transform(load.source, options).code; + var source = babel.transform(load.source, options).code; // add "!eval" to end of Babel sourceURL // I believe this does something? @@ -2506,6 +2538,9 @@ function logloads(loads) { function toAbsoluteURL(base, href) { + if (isWindows) + href = href.replace(/\\/g, '/'); + href = parseURI(href || ''); base = parseURI(base || ''); @@ -2804,29 +2839,15 @@ function logloads(loads) { // Define our eval outside of the scope of any other reference defined in this // file to avoid adding those references to the evaluation scope. -function __eval(__source, __global, load) { - // Hijack System.register to set declare function - var __curRegister = System.register; - System.register = function(name, deps, declare) { - if (typeof name != 'string') { - declare = deps; - deps = name; - } - // store the registered declaration as load.declare - // store the deps as load.deps - load.declare = declare; - load.depsList = deps; - } +function __eval(__source, __global, __load) { try { - eval('(function() { var __moduleName = "' + (load.name || '').replace('"', '\"') + '"; ' + __source + ' \n }).call(__global);'); + eval('(function() { var __moduleName = "' + (__load.name || '').replace('"', '\"') + '"; ' + __source + ' \n }).call(__global);'); } catch(e) { if (e.name == 'SyntaxError' || e.name == 'TypeError') - e.message = 'Evaluating ' + (load.name || load.address) + '\n\t' + e.message; + e.message = 'Evaluating ' + (__load.name || load.address) + '\n\t' + e.message; throw e; } - - System.register = __curRegister; } })(typeof window != 'undefined' ? window : (typeof WorkerGlobalScope != 'undefined' ? From c96ed92dd25400f701adbbfe5424729a3e964884 Mon Sep 17 00:00:00 2001 From: guybedford Date: Tue, 24 Mar 2015 20:20:44 +0200 Subject: [PATCH 198/482] 0.16.0 --- dist/es6-module-loader-sans-promises.js | 2 +- dist/es6-module-loader.js | 2 +- package.json | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/dist/es6-module-loader-sans-promises.js b/dist/es6-module-loader-sans-promises.js index 2f87b30..f6c26b1 100644 --- a/dist/es6-module-loader-sans-promises.js +++ b/dist/es6-module-loader-sans-promises.js @@ -1,5 +1,5 @@ /* - * es6-module-loader v0.15.0 + * es6-module-loader v0.16.0 * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2015 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ diff --git a/dist/es6-module-loader.js b/dist/es6-module-loader.js index c009673..670808d 100644 --- a/dist/es6-module-loader.js +++ b/dist/es6-module-loader.js @@ -1,5 +1,5 @@ /* - * es6-module-loader v0.15.0 + * es6-module-loader v0.16.0 * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2015 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ diff --git a/package.json b/package.json index c2cd56f..624c284 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "es6-module-loader", "description": "An ES6 Module Loader shim", - "version": "0.15.0", + "version": "0.16.0", "homepage": "https://github.com/ModuleLoader/es6-module-loader", "author": { "name": "Guy Bedford, Luke Hoban, Addy Osmani", @@ -22,7 +22,7 @@ } ], "devDependencies": { - "babel-core": "^4.7.12", + "babel-core": "^4.7.16", "expect.js": "^0.3.1", "gesalakacula": "^1.0.0", "grunt": "~0.4.1", From d302bcebe84e0aefd26989c4eaa183960a7a6fb2 Mon Sep 17 00:00:00 2001 From: Guy Bedford Date: Tue, 24 Mar 2015 20:34:10 +0200 Subject: [PATCH 199/482] Update README.md --- README.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 6431dca..fb569c9 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Dynamically loads ES6 modules in browsers and [NodeJS](#nodejs-use) with support for loading existing and custom module formats through loader hooks. -This project implements dynamic module loading through `System` exactly to the previous ES6-specified loader API at [2014-08-24 ES6 Specification Draft Rev 27, Section 15](http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#august_24_2014_draft_rev_27) and will continue to track this API as it is re-drafted as a browser specification (currently most likely to be at https://github.com/whatwg/loader). +This project implements dynamic module loading through `System` exactly to the previous ES6-specified loader API at [2014-08-24 ES6 Specification Draft Rev 27, Section 15](http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#august_24_2014_draft_rev_27) and is being converted to track the newly redrafted specification at https://github.com/whatwg/loader (work in progress at https://github.com/ModuleLoader/es6-module-loader/pull/317). * Provides an asynchronous loader (`System.import`) to [dynamically load ES6 modules](#getting-started). * Supports both [Traceur](https://github.com/google/traceur-compiler) and [Babel](http://babeljs.io/) for compiling ES6 modules and syntax into ES5 in the browser with source map support. @@ -35,7 +35,7 @@ If using ES6 syntax (optional), include `traceur.js` or `babel.js` in the page f ``` -To use Babel, set the transpiler to `babel` with the loader configuration: +To use Babel, load Babel's `browser.js` instead and set the transpiler to `babel` with the loader configuration: ```html + Loader.prototype.load = function(key, stage, metadata) { + var loader = this._loader; + + if (stage == 'fetch') + return requestFetch(loader, key, metadata); + + else if (stage == 'translate') + return requestTranslate(loader, key, metadata); + + else if (stage == 'instantiate') + return requestInstantiate(loader, key, metadata) + .then(function(entry) { + if (!(entry.module instanceof Module)) + return entry.module; + }); + + else if (stage == 'link') + return requestLink(loader, key, metadata).then(function() {}) + + else if (!stage || stage == 'ready') + return requestReady(loader, key, metadata) + .then(function(entry) { + // this is ok because we use plain modules throughout + return entry.module; + }); - if (module.evaluated) - return; + else + throw new TypeError('Invalid stage ' + stage); + } - module.evaluated = true; - err = doExecute(module); - if (err) { - module.failed = true; + // 6.4.1 + // For eg fetch, + Loader.prototype.provide = function(key, stage, value, metadata) { + var loader = this._loader; + + var entry = ensureRegistered(loader, key, metadata); + + if (stage == 'fetch') { + if (entry.state > FETCH) + throw new TypeError(key + ' has already been fetched.'); + resolveFetch(loader, entry, value); } - else if (Object.preventExtensions) { - // spec variation - // we don't create a new module here because it was created and ammended - // we just disable further extensions instead - Object.preventExtensions(module.module); + else if (stage == 'translate') { + if (entry.state > TRANSLATE) + throw new TypeError(key + ' has already been translated.'); + resolveTranslate(loader, entry, value); } - - module.execute = undefined; - return err; + else if (stage == 'instantiate') { + if (entry.state > INSTANTIATE) + throw new TypeError(key + ' has already been instantiated.'); + resolveFetch(loader, entry, undefined); + resolveTranslate(loader, entry, undefined); + // NB error propogation + entry.translate.then(function(source) { + resolveInstantiate(loader, entry, value, source); + }); + } + else + throw new TypeError('Invalid stage ' + stage); } - function addToError(err, msg) { - if (err instanceof Error) - err.message = msg + err.message; - else - err = msg + err; - return err; + // 6.4.2 + // SPEC TODO + Loader.prototype.error = function(key, stage, value) {} + + // 6.5.1 + Loader.prototype.lookup = function(key) { + var loader = this._loader; + + var entry = loader.registry[key]; + if (!entry) + return null; + + var state; + if (entry.state == FETCH) + state = 'fetch'; + else if (entry.state == TRANSLATE) + state = 'translate'; + else if (entry.state == INSTANTIATE) + state = 'instantiate'; + else if (entry.state == LINK) + state = 'link'; + else if (entry.state == READY) + state = 'ready'; + + return { + state: state, + metadata: entry.metadata, + fetch: entry.fetch && Promise.resolve(entry.fetch), + translate: entry.translate && Promise.resolve(entry.translate), + instantiate: entry.instantiate && Promise.resolve(entry.instantiate), + module: entry.state == READY && (entry.module instanceof Module ? entry.module : entry.module.module), + error: entry.error + }; } - // 26.3 Loader + // 6.5.2 + Loader.prototype.install = function(key, module) { + var loader = this._loader; - // 26.3.1.1 - function Loader(options) { - if (typeof options != 'object') - throw new TypeError('Options must be an object'); + if (loader.registry[key]) + throw new TypeError(key + ' is already defined in the Loader registry.'); - if (options.normalize) - this.normalize = options.normalize; - if (options.locate) - this.locate = options.locate; - if (options.fetch) - this.fetch = options.fetch; - if (options.translate) - this.translate = options.translate; - if (options.instantiate) - this.instantiate = options.instantiate; + loader.registry[key] = { + key: key, + state: READY, + metadata: metadata, - this._loader = { - loaderObj: this, - loads: [], - modules: {}, - importPromises: {}, - moduleRecords: {} + fetch: undefined, + translate: undefined, + instantiate: undefined, + + dependencies: undefined, + module: module, + declare: undefined, + error: null }; + } - // 26.3.3.6 - defineProperty(this, 'global', { - get: function() { - return __global; - } - }); + // 6.5.3 + Loader.prototype.uninstall = function(key) { + var loader = this._loader; - // 26.3.3.13 realm not implemented - } + var entry = loader.registry[key]; + if (!entry) + throw new TypeError(key + ' is not defined in the Loader registry.'); - function Module() {} + if (entry.state < LINK) + throw new TypeError(key + ' is still loading.'); - // importPromises adds ability to import a module twice without error - https://bugs.ecmascript.org/show_bug.cgi?id=2601 - function createImportPromise(loader, name, promise) { - var importPromises = loader._loader.importPromises; - return importPromises[name] = promise.then(function(m) { - importPromises[name] = undefined; - return m; - }, function(e) { - importPromises[name] = undefined; - throw e; - }); + delete loader.registry[key]; } - Loader.prototype = { - // 26.3.3.1 - constructor: Loader, - // 26.3.3.2 - define: function(name, source, options) { - // check if already defined - if (this._loader.importPromises[name]) - throw new TypeError('Module is already loading.'); - return createImportPromise(this, name, new Promise(asyncStartLoadPartwayThrough({ - step: 'translate', - loader: this._loader, - moduleName: name, - moduleMetadata: options && options.metadata || {}, - moduleSource: source, - moduleAddress: options && options.address - }))); - }, - // 26.3.3.3 - 'delete': function(name) { - var loader = this._loader; - delete loader.importPromises[name]; - delete loader.moduleRecords[name]; - return loader.modules[name] ? delete loader.modules[name] : false; - }, - // 26.3.3.4 entries not implemented - // 26.3.3.5 - get: function(key) { - if (!this._loader.modules[key]) - return; - doEnsureEvaluated(this._loader.modules[key], [], this); - return this._loader.modules[key].module; - }, - // 26.3.3.7 - has: function(name) { - return !!this._loader.modules[name]; - }, - // 26.3.3.8 - 'import': function(name, options) { - // run normalize first - var loaderObj = this; - - // added, see https://bugs.ecmascript.org/show_bug.cgi?id=2659 - return Promise.resolve(loaderObj.normalize(name, options && options.name, options && options.address)) - .then(function(name) { - var loader = loaderObj._loader; - - if (loader.modules[name]) { - doEnsureEvaluated(loader.modules[name], [], loader._loader); - return loader.modules[name].module; - } + // 6.5.4 + Loader.prototype.cancel = function(key) { + var loader = this._loader; - return loader.importPromises[name] || createImportPromise(loaderObj, name, - loadModule(loader, name, options || {}) - .then(function(load) { - delete loader.importPromises[name]; - return evaluateLoadedModule(loader, load); - })); - }); - }, - // 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); - } - return this._loader.importPromises[name] || createImportPromise(this, name, loadModule(this._loader, name, {})); - }, - // 26.3.3.11 - module: function(source, options) { - var load = createLoad(); - load.address = options && options.address; - var linkSet = createLinkSet(this._loader, load); - var sourcePromise = Promise.resolve(source); - var loader = this._loader; - var p = linkSet.done.then(function() { - return evaluateLoadedModule(loader, load); - }); - proceedToTranslate(loader, load, sourcePromise); - return p; - }, - // 26.3.3.12 - newModule: function (obj) { - if (typeof obj != 'object') - throw new TypeError('Expected object'); - - // we do this to be able to tell if a module is a module privately in ES5 - // by doing m instanceof Module - var m = new Module(); - - for (var key in obj) { - (function (key) { - defineProperty(m, key, { - configurable: false, - enumerable: true, - get: function () { - return obj[key]; - } - }); - })(key); - } + var entry = loader.registry[key]; + if (!entry) + throw new TypeError(key + ' does not exist.'); - if (Object.preventExtensions) - Object.preventExtensions(m); - - return m; - }, - // 26.3.3.14 - set: function(name, module) { - if (!(module instanceof Module)) - throw new TypeError('Loader.set(' + name + ', module) must be a module'); - this._loader.modules[name] = { - module: module - }; - }, - // 26.3.3.15 values not implemented - // 26.3.3.16 @@iterator not implemented - // 26.3.3.17 @@toStringTag not implemented - - // 26.3.3.18.1 - normalize: function(name, referrerName, referrerAddress) { - return name; - }, - // 26.3.3.18.2 - locate: function(load) { - return load.name; - }, - // 26.3.3.18.3 - fetch: function(load) { - throw new TypeError('Fetch not implemented'); - }, - // 26.3.3.18.4 - translate: function(load) { - return load.source; - }, - // 26.3.3.18.5 - instantiate: function(load) { - } - }; + if (entry.state >= LINK) + throw new TypeError(key + ' is already past linking.'); - var _newModule = Loader.prototype.newModule; + delete loader.registry[key]; + } - if (typeof exports === 'object') - module.exports = Loader; + // 6.6.1 + // loader.hook('resolve') -> returns resolve hook + // loader.hook('resolve', fn) -> sets resolve hook + var hooks = ['resolve', 'fetch', 'translate', 'instantiate']; + Loader.prototype.hook = function(name, value) { + var loader = this._loader; + if (indexOf.call(hooks, name) == -1) + throw new TypeError(name + ' is not a valid hook.'); + if (value) + loader[name] = value; + else + return loader[name]; + } - __global.Reflect = __global.Reflect || {}; - __global.Reflect.Loader = __global.Reflect.Loader || Loader; - __global.Reflect.global = __global.Reflect.global || __global; - __global.LoaderPolyfill = Loader; + // 6.7 Module Reflection -})(); + // module record used for binding and evaluation management + var moduleRecords = {}; + function ensureModuleRecord(key) { + return moduleRecords[key] || (moduleRecords[key] = { + key: key, + dependencies: [], + module: new Module({}), + importers: [], + locked: false, + // these are specifically for runtime binding / execution errors + error: null + }); + } + + // plain user-facing module object + function Module(descriptors, executor, evaluate) { + // should define as unconfigurable and preventExtensions + // going for max perf first iteration though + for (var p in descriptors) + this[p] = descriptors[p]; + } diff --git a/src/module-tag.js b/src/module-tag.js new file mode 100644 index 0000000..d64bc73 --- /dev/null +++ b/src/module-tag.js @@ -0,0 +1,47 @@ + // + if (url) { + System.load(url, 'ready'); + } + + // + else { + System.provide('anon' + ++anonCnt, 'fetch', script.innerHTML.substr(1)); + System.load('anon' + anonCnt, 'ready'); + } + } + } + } + + // DOM ready, taken from https://github.com/jquery/jquery/blob/master/src/core/ready.js#L63 + if (document.readyState === 'complete') { + setTimeout(ready); + } + else if (document.addEventListener) { + document.addEventListener('DOMContentLoaded', completed, false); + window.addEventListener('load', completed, false); + } + + // run the data-init function on the script tag + if (curScript && curScript.getAttribute('data-init')) + window[curScript.getAttribute('data-init')](); + } \ No newline at end of file diff --git a/src/parser.js b/src/parser.js new file mode 100644 index 0000000..2f534fa --- /dev/null +++ b/src/parser.js @@ -0,0 +1,110 @@ + // ---------- Transpiler Hooks ---------- + + // Returns an array of ModuleSpecifiers + var transpiler, transpilerModule; + + // use Traceur by default + Loader.prototype.transpiler = 'traceur'; + + Loader.prototype.parse = function(key, source, metadata) { + if (!transpiler) { + if (this.transpiler == 'babel') { + transpilerModule = cjsMode ? require('babel-core') : __global.babel; + if (!transpilerModule) + throw new TypeError('Unable to find the Babel transpiler.'); + transpiler = babelTranspile; + } + else { + transpilerModule = cjsMode ? require('traceur') : __global.traceur; + if (!transpilerModule) + throw new TypeError('Unable to find the Traceur transpiler.'); + transpiler = traceurTranspile; + } + } + + // transpile to System register and evaluate out the { deps, declare } form + return evaluateSystemRegister(key, transpiler.call(this, key, source, metadata)); + } + + function traceurTranspile(key, source, metadata) { + var options = this.traceurOptions || {}; + options.modules = 'instantiate'; + options.script = false; + options.sourceMaps = 'inline'; + options.inputSourceMap = metadata.sourceMap; + options.filename = key; + + var compiler = new transpilerModule.Compiler(options); + var source = doTraceurCompile(source, compiler, options.filename); + + // add "!eval" to end of Traceur sourceURL + source += '!eval'; + + return source; + } + function doTraceurCompile(source, compiler, filename) { + try { + return compiler.compile(source, filename); + } + catch(e) { + // traceur throws an error array + throw e[0] || e; + } + } + + function babelTranspile(key, source, metadata) { + var options = this.babelOptions || {}; + options.modules = 'system'; + options.sourceMap = 'inline'; + options.filename = key; + options.code = true; + options.ast = false; + + // We blacklist JSX because transpiling needs to take us only as far as + // the baseline ES features that exist when loaders are widely natively + // supported. This allows experimental features, but features certainly + // not in ES* won't make sense here so we try to encourage good habits. + options.blacklist = options.blacklist || []; + options.blacklist.push('react'); + + var source = transpilerModule.transform(source, options).code; + + // add "!eval" to end of Babel sourceURL + return source + '\n//# sourceURL=' + key + '!eval'; + } + + function evaluateSystemRegister(key, source) { + var curSystem = __global.System = __global.System || System; + + var registration; + + // Hijack System .register to set declare function + var curRegister = curSystem .register; + curSystem .register = function(deps, declare) { + registration = { + deps: deps, + declare: declare + }; + } + + // closest we can get to undefined 'this' + // we use eval over new Function because of source maps support + // NB retry Function again here + doEval(source); + + curSystem .register = curRegister; + // console.assert(registration); + return registration; + } + + function doEval(source) { + try { + eval.call({}, source); + } + catch(e) { + if (e.name == 'SyntaxError' || e.name == 'TypeError') + e.message = 'Evaluating ' + key + '\n\t' + e.message; + throw e; + } + } + diff --git a/src/polyfill-wrapper-end.js b/src/polyfill-wrapper-end.js index 82ccbf1..74f6777 100644 --- a/src/polyfill-wrapper-end.js +++ b/src/polyfill-wrapper-end.js @@ -1,16 +1,23 @@ -// Define our eval outside of the scope of any other reference defined in this -// file to avoid adding those references to the evaluation scope. -function __eval(__source, __global, __load) { - try { - eval('(function() { var __moduleName = "' + (__load.name || '').replace('"', '\"') + '"; ' + __source + ' \n }).call(__global);'); - } - catch(e) { - if (e.name == 'SyntaxError' || e.name == 'TypeError') - e.message = 'Evaluating ' + (__load.name || load.address) + '\n\t' + e.message; - throw e; - } -} - -})(typeof window != 'undefined' ? window : (typeof WorkerGlobalScope != 'undefined' ? - self : global)); + // ---------- Export Definitions ---------- + + var Reflect; + + (function(exports) { + + Reflect = exports.Reflect || {}; + + Reflect.Loader = Reflect.Loader || Loader; + Reflect.Module = Reflect.Module || Module; + Reflect.global = Reflect.global || __global; + + exports.LoaderPolyfill = Loader; + exports.ModulePolyfill = Module; + exports.Reflect = Reflect; + exports.System = System; + + })(cjsMode ? exports : __global); + + //module.exports = exports; + +})(typeof window != 'undefined' ? window : (typeof WorkerGlobalScope != 'undefined' ? self : global)); diff --git a/src/polyfill-wrapper-start.js b/src/polyfill-wrapper-start.js index ed084bf..8159ebc 100644 --- a/src/polyfill-wrapper-start.js +++ b/src/polyfill-wrapper-start.js @@ -1,35 +1,27 @@ +/* + * Dynamic ES6 Module Loader Polyfill + * + * Implemented to the in-progress WhatWG loader standard at + * https://github.com/whatwg/loader/tree/819035fd5c59c53130a025694162fcaa2315fc36 + * + * Up to date as of 23 Feb 2015. + * + */ + (function(__global) { - -$__Object$getPrototypeOf = Object.getPrototypeOf || function(obj) { - return obj.__proto__; -}; -var $__Object$defineProperty; -(function () { - try { - if (!!Object.defineProperty({}, 'a', {})) { - $__Object$defineProperty = Object.defineProperty; - } - } catch (e) { - $__Object$defineProperty = function (obj, prop, opt) { - try { - obj[prop] = opt.value || opt.get.call(obj); - } - catch(e) {} - } - } -}()); + var Promise = __global.Promise || require('when/es6-shim/Promise'); -$__Object$create = Object.create || function(o, props) { - function F() {} - F.prototype = o; + // IE8 support + // Note: console.assert is not supported or polyfillable in IE8 + // so it is better to debug in IE8 against the source with + // assertions removed. + var indexOf = Array.prototype.indexOf || function(item) { + for (var i = 0, thisLen = this.length; i < thisLen; i++) + if (this[i] === item) + return i; + return -1; + }; - if (typeof(props) === "object") { - for (prop in props) { - if (props.hasOwnProperty((prop))) { - F[prop] = props[prop]; - } - } - } - return new F(); -}; + // if we have require and exports, then define as CommonJS + var cjsMode = typeof exports == 'object' && typeof require == 'function'; \ No newline at end of file diff --git a/src/system.js b/src/system.js index f5576c1..8327922 100644 --- a/src/system.js +++ b/src/system.js @@ -1,70 +1,16 @@ -/* -********************************************************************************************* + // ---------- System Loader Definition ---------- - System Loader Implementation + /* + * Corrsponds to section 8 of the specification + */ - - Implemented to https://github.com/jorendorff/js-loaders/blob/master/browser-loader.js - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/test/test-traceur.html b/test/test-traceur.html deleted file mode 100644 index ba51137..0000000 --- a/test/test-traceur.html +++ /dev/null @@ -1,45 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/test/test.js b/test/test.js deleted file mode 100644 index 0618206..0000000 --- a/test/test.js +++ /dev/null @@ -1,677 +0,0 @@ - -var System, Loader, Module, tests, test; - -var testCnt = 0, passed = 0, failed = 0; -var test = function(name, initialize) { - if (typeof initialize != 'function') { - var val = initialize; - var exp = arguments[2]; - initialize = function(assert) { - assert(val, exp); - } - } - var testId = testCnt++; - tests.addTest(testId, name); - function assert(value, expected) { - if (value != expected) - return 'Got "' + value + '" instead of "' + expected + '"'; - } - initialize(function(value, expected) { - var failure; - if (value instanceof Array) { - for (var i = 0; i < arguments.length; i++) - failure = failure || assert(arguments[i][0], arguments[i][1]); - } - else - failure = assert(value, expected); - if (failure) - failed++; - else - passed++; - tests.completeTest(testId, name, failure, { passed: passed, failed: failed, total: testCnt }); - }, function(err) { - setTimeout(function() { - throw err; - }); - }); -} - -if (typeof window != 'undefined') { - // browser - document.body.innerHTML = "
Summary
"; - tests = { - addTest: function(id, name) { - var p = document.createElement('tr'); - var td = document.createElement('td'); - td.innerHTML = name; - p.appendChild(td); - td = document.createElement('td'); - td.className = 'result-' + id; - p.appendChild(td); - document.querySelector('.test tbody').appendChild(p); - }, - completeTest: function(id, name, failure, summary) { - document.querySelector('.test .result-' + id).innerHTML = !failure ? 'Passed' : 'Failed: ' + failure; - document.querySelector('.summary').innerHTML = summary.passed + '/' + summary.total + ' tests passed'; - } - } - window.test = test; - window.runTests = runTests; -} -else { - // nodejs - var ml = require('../lib/index-' + process.env.es6compiler); - - if (process.env.es6compiler == '6to5') - require('regenerator/runtime'); - - process.on('uncaughtException', function(err) { - console.log('Caught: ' + err); - }); - - System = ml.System; - Loader = ml.Loader; - Module = ml.Module; - - tests = { - addTest: function(id, name) {}, - completeTest: function(id, name, failure, summary) { - console.log(name + ': ' + (!failure ? 'Passed' : 'Failed: ' + failure)); - console.log(summary.passed + '/' + summary.total + ' passed. '); - if (failure) - process.exit(1); - }, - }; - - runTests(); -} - -function runTests() { - - // Normalize tests - identical to https://github.com/google/traceur-compiler/blob/master/test/unit/runtime/System.js - - var oldBaseURL = System.baseURL; - System.baseURL = 'http://example.org/a/b.html'; - - test('Normalize - No Referer', System.normalize('d/e/f'), 'd/e/f'); - // test('Normalize - Below baseURL', System.normalize('../e/f'), '../e/f'); - - var refererName = 'dir/file'; - test('Normalize - Relative paths', System.normalize('./d/e/f', refererName), 'dir/d/e/f'); - test('Normalize - Relative paths', System.normalize('../e/f', refererName), 'e/f'); - - test('Normalize - name undefined', function(assert) { - try { - System.normalize(undefined, refererName); - } - catch(e) { - assert(e.message, 'Module name must be a string'); - } - }); - - test('Normalize - embedded ..', function(assert) { - try { - System.normalize('a/b/../c'); - } - catch(e) { - assert(e.message, 'Illegal module name "a/b/../c"'); - } - }); - test('Normalize - embedded ..', function(assert) { - try { - System.normalize('a/../b', refererName); - } - catch(e) { - assert(e.message, 'Illegal module name "a/../b"'); - } - }); - test('Normalize - embedded ..', function(assert) { - try { - System.normalize('a/b/../c', refererName); - } - catch(e) { - assert(e.message, 'Illegal module name "a/b/../c"'); - } - }); - - // test('Normalize - below referer', System.normalize('../../e/f', refererName), '../e/f'); - - test('Normalize - backwards compat', System.normalize('./a.js'), 'a.js'); - - test('Normalize - URL', function(assert) { - try { - System.normalize('http://example.org/a/b.html'); - } - catch(e) { - assert(); - } - }); - - System.baseURL = 'http://example.org/a/'; - - test('Locate', System.locate({ name: '@abc/def' }), 'http://example.org/a/@abc/def.js'); - test('Locate', System.locate({ name: 'abc/def' }), 'http://example.org/a/abc/def.js'); - - // paths - System.paths['path/*'] = '/test/*.js'; - test('Locate paths', System.locate({ name: 'path/test' }), 'http://example.org/test/test.js'); - - - System.baseURL = oldBaseURL; - - - - // More Normalize tests - - test('Normalize test 1', function(assert) { - assert(System.normalize('./a/b', 'c'), 'a/b'); - }); - test('Normalize test 2', function(assert) { - assert(System.normalize('./a/b', 'c/d'), 'c/a/b'); - }); - test('Normalize test 3', function(assert) { - assert(System.normalize('./a/b', '../c/d'), '../c/a/b'); - }); - test('Normalize test 4', function(assert) { - assert(System.normalize('./a/b', '../c/d'), '../c/a/b'); - }); - test('Normalize test 5', function(assert) { - assert(System.normalize('../a/b', '../../c/d'), '../../a/b'); - }); - - test('Setting & deleting modules', function(assert, err) { - System['import']('loader/module').then(function(m1) { - System['delete']('loader/module'); - System['import']('loader/module').then(function(m2) { - System['delete']('loader/module'); - System.set('loader/module', System.newModule({custom: 'module'})); - System['import']('loader/module').then(function(m3) { - assert( - [m1.run, 'first'], - [m2.run, 'second'], - [m3.custom, 'module'] - ); - }, err); - }, err); - }, err); - }); - - test('Import a script', function(assert, err) { - System['import']('syntax/script').then(function(m) { - assert(!!m, true); - }, err); - }); - - test('Import a script once loaded', function(assert, err) { - System['import']('syntax/script').then(function(m) { - System['import']('syntax/script').then(function(m) { - assert(!!m, true); - }, err); - }); - }); - - test('Import ES6', function(assert, err) { - System['import']('syntax/es6').then(function(m) { - assert(m.p, 'p'); - }, err); - }); - - test('Import ES6 with dep', function(assert, err) { - System['import']('syntax/es6-withdep').then(function(m) { - assert(m.p, 'p'); - }, err); - }); - - test('Import ES6 Generator', function(assert, err) { - System['import']('syntax/es6-generator').then(function(m) { - assert(!!m.generator, true); - }, err); - }); - - test('Direct import without bindings', function(assert, err) { - System['import']('syntax/direct').then(function(m) { - assert(!!m, true); - }, err); - }); - - test('Circular Dependencies', function(assert, err) { - System['import']('syntax/circular1').then(function(m1) { - System['import']('syntax/circular2').then(function(m2) { - assert( - [m2.output, 'test circular 1'], - [m1.output, 'test circular 2'], - [m2.output1, 'test circular 2'], - [m1.output2, 'test circular 1'] - ); - }, err); - }, err); - }); - - test('Circular Test', function(assert, err) { - System['import']('syntax/even').then(function(m) { - assert( - [m.even(10), true], - [m.counter, 7], - [m.even(15), false], - [m.counter, 15] - ); - }, err); - }); - - test('Load order test: A', function(assert, err) { - System['import']('loads/a').then(function(m) { - assert( - [m.a, 'a'], - [m.b, 'b'] - ); - }, err); - }); - - test('Load order test: C', function(assert, err) { - System['import']('loads/c').then(function(m) { - assert( - [m.c, 'c'], - [m.a, 'a'], - [m.b, 'b'] - ); - }, err); - }); - - test('Load order test: S', function(assert, err) { - System['import']('loads/s').then(function(m) { - assert( - [m.s, 's'], - [m.c, 'c'], - [m.a, 'a'], - [m.b, 'b'] - ); - }, err); - }); - - test('Load order test: _a', function(assert) { - System['import']('loads/_a').then(function(m) { - assert( - [m.b, 'b'], - [m.d, 'd'], - [m.g, 'g'], - [m.a, 'a'] - ); - }) - }); - - test('Load order test: _e', function(assert) { - System['import']('loads/_e').then(function(m) { - assert( - [m.c, 'c'], - [m.e, 'e'] - ); - }) - }); - - test('Load order test: _f', function(assert) { - System['import']('loads/_f').then(function(m) { - assert( - [m.g, 'g'], - [m.f, 'f'] - ); - }) - }); - test('Load order test: _h', function(assert) { - System['import']('loads/_h').then(function(m) { - assert( - [m.i, 'i'], - [m.a, 'a'], - [m.h, 'h'] - ); - }) - }); - - test('Error check 1', function(assert) { - System['import']('loads/main').then(function(m) { - assert(false, true); - }, function(e) { - assert(e, 'Error evaluating loads/deperror\ndep error'); - }); - // System['import']('loads/deperror'); - }); - - test('Unhandled rejection test', function(assert) { - System['import']('loads/load-non-existent') - assert(); - }); - - - test('Export Syntax', function(assert) { - System['import']('syntax/export').then(function(m) { - assert( - [m.p, 5], - [typeof m.foo, 'function'], - [typeof m.q, 'object'], - [typeof m['default'], 'function'], - [m.s, 4], - [m.t, 4], - [typeof m.m, 'object'] - ); - }); - }); - - // test not enabled for Babel - if (System.transpiler != 'babel') - test('Export Star 2', function(assert) { - System['import']('syntax/export-star2').then(function(m) { - assert( - [typeof m.foo, 'function'], - [m.bar, 'bar'] - ); - }); - }); - - test('Export Star', function(assert) { - System['import']('syntax/export-star').then(function(m) { - assert( - [m.foo, 'foo'], - [m.bar, 'bar'] - ); - }); - }); - - test('Export default 1', function(assert, err) { - System['import']('syntax/export-default').then(function(m) { - assert(m['default'](), 'test'); - }, err); - }); - - test('Re-export', function(assert, err) { - System['import']('syntax/reexport1').then(function(m) { - assert(m.p, 5); - }, err); - }); - - test('Re-export with new name', function(assert, err) { - System['import']('syntax/reexport2').then(function(m) { - assert( - [m.q, 4], - [m.z, 5] - ); - }, err); - }); - - test('Re-export binding', function(assert, err) { - System['import']('syntax/reexport-binding').then(function(m) { - System['import']('syntax/rebinding').then(function(m) { - assert(m.p, 4); - }); - }, err); - }); - - test('Import Syntax', function(assert, err) { - System['import']('syntax/import').then(function(m) { - assert( - [typeof m.a, 'function'], - [m.b, 4], - [m.c, 5], - [m.d, 4], - [typeof m.q.foo, 'function'] - ); - }, err); - }); - - test('ES6 Syntax', function(assert, err) { - System['import']('syntax/es6-file').then(function(m) { - setTimeout(function() { - (new m.q()).foo(); - }); - assert( - [typeof m.q, 'function'] - ); - }, err); - }); - - test('Module Name meta', function(assert) { - System['import']('loader/moduleName').then(function(m) { - assert( - [m.name, 'loader/moduleName'], - [m.address, System.baseURL + 'loader/moduleName.js'] - ); - }); - }); - - test('Custom path', function(assert) { - System.paths['bar'] = 'loader/custom-path.js'; - System['import']('bar').then(function(m) { - assert(m.bar, 'bar'); - }) - }); - - test('Custom path wildcard', function(assert) { - System.paths['bar/*'] = 'loader/custom-folder/*.js'; - System['import']('bar/path').then(function(m) { - assert(m.bar, 'baa'); - }); - }); - - test('Custom path most specific', function(assert) { - delete System.paths['bar/*']; - System.paths['bar/bar'] = 'loader/specific-path.js'; - System.paths['bar/*'] = 'loader/custom-folder/*.js'; - System['import']('bar/bar').then(function(m) { - assert(m.path, true); - }); - }); - - test('should load System.define', function(assert) { - var oldLocate = System.locate; - var slaveLocatePromise = new Promise(function(resolve, reject) { - - System.locate = function(load) { - if(load.name === 'slave') { - setTimeout(function() { - System.define('slave', 'var double = [1,2,3].map(i => i * 2);'); - resolve('slave.js'); - }, 1); - return slaveLocatePromise; - } - return oldLocate.apply(this, arguments); - }; - - }); - - System.import('loader/master').then(function() { - assert(true, true, 'Able to load'); - }, function(err) { - assert('Did not resolve'); - }).then(reset, reset); - - function reset() { - System.locate = oldLocate; - } - }); - - var customModules = {}; - var customFactories = {}; - - var executeModule = function(name) { - if (!customFactories[name]) - return; - var module = customFactories[name].apply(null, []); - customModules[name] = module; - return module; - } - - var customLoader = new Reflect.Loader({ - normalize: function(name, parentName, parentAddress) { - return new Promise(function(resolve, reject) { - if (name == 'asdfasdf') { - return setTimeout(function() { - resolve('loader/async-norm'); - }, 500); - } - - if (name == 'error1') - return setTimeout(function(){ reject('error1'); }, 100); - - var normalized = System.normalize(name, parentName, parentAddress); - resolve(normalized); - }); - }, - locate: function(load) { - if (load.name == 'error2') - return new Promise(function(resolve, reject) { - setTimeout(function(){ reject('error2'); }, 100); - }); - - if (load.name.substr(0, 5) == 'path/') - load.name = 'loader/' + load.name.substr(5); - return System.locate(load); - }, - fetch: function(load) { - if (load.name == 'error3') - throw 'error3'; - if (load.name == 'error4' || load.name == 'error5') - return 'asdf'; - return System.fetch.apply(this, arguments); - }, - translate: function(load) { - if (load.name == 'error4') - return new Promise(function(resolve, reject) { - setTimeout(function(){ reject('error4'); }, 100); - }); - return System.translate.apply(this, arguments); - }, - instantiate: function(load) { - if (load.name == this.transpiler) { - var transpiler = this.transpiler; - return System.import(transpiler).then(function() { - return { - deps: [], - execute: function() { - return System.get(transpiler); - } - }; - }); - } - - if (load.name == 'error5') - return new Promise(function(resolve, reject) { - setTimeout(function(){ reject('error5'); }, 100); - }); - // very bad AMD support - if (load.source.indexOf('define') == -1) - return System.instantiate(load); - - var factory, deps; - var define = function(_deps, _factory) { - deps = _deps; - factory = _factory; - } - //console.log(load.source); - eval(load.source); - - customFactories[load.name] = factory; - - // normalize all dependencies now - var normalizePromises = []; - for (var i = 0; i < deps.length; i++) - normalizePromises.push(Promise.resolve(System.normalize(deps[i], load.name))); - - return Promise.all(normalizePromises).then(function(resolvedDeps) { - - return { - deps: deps, - execute: function() { - if (customModules[load.name]) - return System.newModule(customModules[load.name]); - - // first ensure all dependencies have been executed - for (var i = 0; i < resolvedDeps.length; i++) - resolvedDeps[i] = executeModule(resolvedDeps[i]); - - var module = factory.apply(null, resolvedDeps); - - customModules[load.name] = module; - return System.newModule(module); - } - }; - }); - } - }); - customLoader.transpiler = System.transpiler; - - test('Custom loader standard load', function(assert) { - var p = customLoader['import']('loader/test').then(function(m) { - assert(m.loader, 'custom'); - }); - if (p['catch']) - p['catch'](function(e) { - assert(!e, 'standard load failed: ' + e); - }); - }); - - test('Custom loader special rules', function(assert) { - var p = customLoader['import']('path/custom').then(function(m) { - assert(m.path, true); - }); - if (p['catch']) - p['catch'](function(e) { - assert(!e, 'special rules failed: ' + e); - }); - }); - - test('Custom loader AMD support', function(assert) { - customLoader['import']('loader/amd').then(function(m) { - assert(m.format, 'amd'); - })['catch'](function(e) { - setTimeout(function() { - throw e; - }, 1); - }); - }); - - test('Custom loader hook - normalize error', function(assert) { - customLoader['import']('loader/error1-parent').then(function(m) { - })['catch'](function(e) { - assert(e.toString(), 'Error loading "loader/error1-parent" at ' + System.baseURL + 'loader/error1-parent.js\nerror1'); - }); - }); - test('Custom loader hook - locate error', function(assert) { - customLoader['import']('error2').then(function(m) {}, function(e) { - assert(e.toString(), 'Error loading "error2" at \nerror2'); - }); - }); - test('Custom loader hook - fetch error', function(assert) { - customLoader['import']('error3').then(function(m) {}, function(e) { - assert(e.toString(), 'Error loading "error3" at ' + System.baseURL + 'error3.js\nerror3'); - }); - }); - test('Custom loader hook - translate error', function(assert) { - customLoader['import']('error4').then(function(m) {}, function(e) { - assert(e.toString(), 'Error loading "error4" at ' + System.baseURL + 'error4.js\nerror4'); - }); - }); - test('Custom loader hook - instantiate error', function(assert) { - customLoader['import']('error5').then(function(m) {}, function(e) { - assert(e.toString(), 'Error loading "error5" at ' + System.baseURL + 'error5.js\nerror5'); - }); - }); - - test('Async Normalize', function(assert) { - customLoader.normalize('asdfasdf').then(function(normalized) { - return customLoader['import'](normalized); - }).then(function(m) { - assert(m.n, 'n'); - }); - }); - - test('System instanceof Loader', function(assert) { - assert(System instanceof Reflect.Loader, true); - }); - - if (typeof Worker != 'undefined') - test('Loading inside of a Web Worker', function(assert) { - var worker = new Worker('worker/worker-' + System.transpiler + '.js'); - - worker.onmessage = function(e) { - assert(e.data, 'p'); - }; - }); -} diff --git a/test/worker/worker-babel.js b/test/worker/worker-babel.js index 9a7fbea..d1d53b4 100644 --- a/test/worker/worker-babel.js +++ b/test/worker/worker-babel.js @@ -5,7 +5,7 @@ importScripts("../../node_modules/when/es6-shim/Promise.js", System.transpiler = 'babel'; System.paths['babel'] = '../../node_modules/babel-core/browser.js'; -System['import']('es6').then(function(m) { +System['import']('es6.js').then(function(m) { postMessage(m.p); }, function(err) { console.error(err, err.stack); diff --git a/test/worker/worker-traceur.js b/test/worker/worker-traceur.js index c275a77..69a27d2 100644 --- a/test/worker/worker-traceur.js +++ b/test/worker/worker-traceur.js @@ -1,7 +1,8 @@ -importScripts("../../node_modules/when/es6-shim/Promise.js", +importScripts("../../node_modules/traceur/bin/traceur.js", + "../../node_modules/when/es6-shim/Promise.js", "../../dist/es6-module-loader.src.js"); -System.paths['traceur'] = '../../node_modules/traceur/bin/traceur.js'; -System['import']('es6').then(function(m) { + +System['import']('es6.js').then(function(m) { postMessage(m.p); }, function(err) { console.error(err, err.stack); From 4a343ddfa401baf9a23e60f4b76adfcada58f1a8 Mon Sep 17 00:00:00 2001 From: Ian MacLeod Date: Tue, 3 Mar 2015 15:48:13 -0800 Subject: [PATCH 205/482] Adjust the demo to 1.0 spec --- demo/index.html | 4 ++-- test/worker/worker-babel.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/demo/index.html b/demo/index.html index cdedc47..a4a1bcd 100644 --- a/demo/index.html +++ b/demo/index.html @@ -48,7 +48,7 @@

Module Loader Polyfill

@@ -422,10 +442,10 @@ else throw new TypeError('Invalid stage ' + stage); - } + }; // 6.4.1 - // For eg fetch, + // For eg fetch, , key = anon Loader.prototype.provide = function(key, stage, value, metadata) { var loader = this._loader; @@ -448,16 +468,16 @@ fulfillTranslate(loader, entry, undefined); // NB error propogation entry.translate.then(function(source) { - fulfillInstantiate(loader, entry, value, source); + loadTranspilerThenFulfillInstantiate(loader, entry, value, source); }); } else throw new TypeError('Invalid stage ' + stage); - } + }; // 6.4.2 // SPEC TODO - Loader.prototype.error = function(key, stage, value) {} + Loader.prototype.error = function(key, stage, value) {}; // 6.5.1 Loader.prototype.lookup = function(key) { @@ -488,7 +508,7 @@ module: entry.state == READY && (entry.module instanceof Module ? entry.module : entry.module.module), error: entry.error }; - } + }; // 6.5.2 Loader.prototype.install = function(key, module) { @@ -497,6 +517,9 @@ if (loader.registry[key]) throw new TypeError(key + ' is already defined in the Loader registry.'); + if (!(module instanceof Module)) + throw new TypeError('Install must provide a valid Module object.'); + loader.registry[key] = { key: key, state: READY, @@ -511,7 +534,7 @@ declare: undefined, error: null }; - } + }; // 6.5.3 Loader.prototype.uninstall = function(key) { @@ -525,7 +548,7 @@ throw new TypeError(key + ' is still loading.'); delete loader.registry[key]; - } + }; // 6.5.4 Loader.prototype.cancel = function(key) { @@ -539,7 +562,7 @@ throw new TypeError(key + ' is already past linking.'); delete loader.registry[key]; - } + }; // 6.6.1 // loader.hook('resolve') -> returns resolve hook @@ -553,7 +576,7 @@ loader[name] = value; else return loader[name]; - } + }; // 6.7 Module Reflection diff --git a/src/system.js b/src/system.js index 8327922..c01dc89 100644 --- a/src/system.js +++ b/src/system.js @@ -137,8 +137,9 @@ return source; }); - this.hook('instantiate', function(url, source, metadata) {}); - } + // defined in transpiler.js or dynamic-only.js + this.hook('instantiate', systemInstantiate); + }; // inline Object.create-style class extension function LoaderProto() {} diff --git a/src/transpiler.js b/src/transpiler.js index 099b72e..99acaae 100644 --- a/src/transpiler.js +++ b/src/transpiler.js @@ -1,46 +1,85 @@ // ---------- Transpiler Hooks ---------- - // Returns an array of ModuleSpecifiers - var transpiler, transpilerModule; - // use Traceur by default Loader.prototype.transpiler = 'traceur'; - function transpile(key, source, metadata) { - if (!transpiler) { - if (this.transpiler == 'babel') { - transpilerModule = cjsMode ? require('babel-core') : __global.babel; - if (!transpilerModule) - throw new TypeError('Unable to find the Babel transpiler.'); - transpiler = babelTranspile; - } - else { - transpilerModule = cjsMode ? require('traceur') : __global.traceur; - if (!transpilerModule) - throw new TypeError('Unable to find the Traceur transpiler.'); - transpiler = traceurTranspile; - } + var transpilerName, transpilerModule, transpilerResolved; + + var firstTranspile = true; + function checkTranspilerGlobals(loader) { + try { + if (__global.traceur) + loader.install('traceur', new Module({ 'default': __global.traceur })); + else if (__global.babel) + loader.install('babel', new Module({ 'default': __global.babel })); + } + catch(e) {} + } + + function loadTranspiler(loader) { + if (firstTranspile) { + checkTranspilerGlobals(loader); + firstTranspile = false; } + var transpiler = loader.transpiler; + + if (transpiler === transpilerName && transpilerModule) + return; + + transpilerName = transpiler; + transpilerModule = transpilerResolved = null; + + return loader['import'](transpiler).then(function(transpiler) { + transpilerModule = transpiler['default']; + }); + } + + function transpile(loader, key, source, metadata) { // transpile to System register and evaluate out the { deps, declare } form - return evaluateSystemRegister(key, transpiler.call(this, key, source, metadata)); + // set the __moduleURL temporary meta for contextual imports + return evaluateSystemRegister(key, + (transpilerModule.Compiler ? traceurTranspile : babelTranspile)(transpilerModule, key, source, metadata)); } - function traceurTranspile(key, source, metadata) { + // transpiler instantiate to ensure transpiler is loaded as a global + function systemInstantiate(key, source, metadata) { + var loader = this; + + return Promise.resolve(transpilerName === loader.transpiler && transpilerResolved + || loader.resolve(transpilerName = loader.transpiler)) + .then(function(resolved) { + transpilerResolved = resolved; + if (transpilerResolved === key) + return function() { + // avoid Traceur System clobbering + var curSystem = __global.System; + var curLoader = __global.Reflect.Loader; + // load transpiler as a global, not detected as CommonJS + doEval(key, '~function(require,exports,module){' + source + '}()'); + __global.System = curSystem; + __global.Reflect.Loader = curLoader; + return new Module({ 'default': __global[loader.transpiler] }); + }; + }); + }; + + function traceurTranspile(traceur, key, source, metadata) { var options = this.traceurOptions || {}; options.modules = 'instantiate'; options.script = false; options.sourceMaps = 'inline'; options.inputSourceMap = metadata.sourceMap; options.filename = key; + options.inputSourceMap = metadata.sourceMap; + options.moduleName = false; - var compiler = new transpilerModule.Compiler(options); + var compiler = new traceur.Compiler(options); var source = doTraceurCompile(source, compiler, options.filename); // add "!eval" to end of Traceur sourceURL - source += '!eval'; - - return source; + // this way the source map can use the original name + return source + '!eval'; } function doTraceurCompile(source, compiler, filename) { try { @@ -52,7 +91,7 @@ } } - function babelTranspile(key, source, metadata) { + function babelTranspile(babel, key, source, metadata) { var options = this.babelOptions || {}; options.modules = 'system'; options.sourceMap = 'inline'; @@ -60,14 +99,11 @@ options.code = true; options.ast = false; - // We blacklist JSX because transpiling needs to take us only as far as - // the baseline ES features that exist when loaders are widely natively - // supported. This allows experimental features, but features certainly - // not in ES* won't make sense here so we try to encourage good habits. - options.blacklist = options.blacklist || []; - options.blacklist.push('react'); + // encourage a sensible baseline + if (!options.blacklist) + options.blacklist = ['react']; - var source = transpilerModule.transform(source, options).code; + var source = babel.transform(source, options).code; // add "!eval" to end of Babel sourceURL return source + '\n//# sourceURL=' + key + '!eval'; @@ -87,19 +123,17 @@ }; } - doEval(source); + doEval(key, 'var __moduleURL = "' + key + '";' + source, {}); curSystem .register = curRegister; // console.assert(registration); return registration; } - function doEval(source) { + function doEval(key, source, self) { try { - // closest we can get to undefined 'this' - // we use eval over new Function because of source maps support - // NB retry Function again here - eval.call(null, source); + // self = {} closest we get to undefined this + new Function(source).call(self); } catch(e) { if (e.name == 'SyntaxError' || e.name == 'TypeError') diff --git a/test/_browser.js b/test/_browser.js new file mode 100644 index 0000000..409eed6 --- /dev/null +++ b/test/_browser.js @@ -0,0 +1,4 @@ +System.site.set('traceur', 'base/node_modules/traceur/bin/traceur.js'); +System.site.set('babel', 'base/node_modules/babel-core/browser.js'); + +System.transpiler = __karma__.config.system.transpiler; \ No newline at end of file diff --git a/test/_helper.js b/test/_helper.js index d3742b8..c0bd5bf 100644 --- a/test/_helper.js +++ b/test/_helper.js @@ -20,12 +20,11 @@ __global.describeIf = describeIf; - if (typeof babel != 'undefined') - System.transpiler = 'babel'; - __global.ie = typeof window != 'undefined' && window.navigator.userAgent.match(/Trident/); - __global.base = typeof window != 'undefined' && (window.location.href.substr(0, window.location.href.lastIndexOf('/') + 1) + 'base/') || ('file://' + process.cwd() + require('path').sep); + __global.base = typeof window != 'undefined' + && (window.location.href.substr(0, window.location.href.lastIndexOf('/') + 1) + 'base/') + || ('file://' + process.cwd() + require('path').sep); }(typeof window != 'undefined' ? window : global)); diff --git a/test/_node-traceur.js b/test/_node-traceur.js index b061708..dd2545b 100644 --- a/test/_node-traceur.js +++ b/test/_node-traceur.js @@ -4,8 +4,6 @@ global.expect = require('expect.js'); require('./_helper'); -require('traceur'); - global.System = require('../lib/index-traceur').System; global.Reflect = require('../lib/index-traceur').Reflect; diff --git a/test/worker/worker-babel.js b/test/worker/worker-babel.js index e28bb8d..9705f0b 100644 --- a/test/worker/worker-babel.js +++ b/test/worker/worker-babel.js @@ -1,9 +1,9 @@ -importScripts("../../node_modules/babel-core/browser.js", - "../../node_modules/when/es6-shim/Promise.js", +importScripts("../../node_modules/when/es6-shim/Promise.js", "../../dist/es6-module-loader-dev.src.js" ); System.transpiler = 'babel'; +System.site.set('babel', '../../node_modules/babel-core/browser.js'); System['import']('es6.js').then(function(m) { postMessage(m.p); diff --git a/test/worker/worker-traceur.js b/test/worker/worker-traceur.js index 5d73a60..aa0926b 100644 --- a/test/worker/worker-traceur.js +++ b/test/worker/worker-traceur.js @@ -1,7 +1,8 @@ -importScripts("../../node_modules/traceur/bin/traceur.js", - "../../node_modules/when/es6-shim/Promise.js", +importScripts("../../node_modules/when/es6-shim/Promise.js", "../../dist/es6-module-loader-dev.src.js"); +System.site.set('traceur', '../../node_modules/traceur/bin/traceur.js'); + System['import']('es6.js').then(function(m) { postMessage(m.p); }, function(err) { From daaa1e242d533b0e04d23537b943b674be8e3c02 Mon Sep 17 00:00:00 2001 From: guybedford Date: Fri, 3 Apr 2015 00:29:11 +0200 Subject: [PATCH 210/482] port windows URL fix --- src/url.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/url.js b/src/url.js index 81c71d4..730a2f6 100644 --- a/src/url.js +++ b/src/url.js @@ -59,5 +59,9 @@ this.pathname = pathname; this.search = search; this.hash = hash; + + // convert windows file URLs to use / + if (this.protocol == 'file') + this.pathname = this.pathname.replace(/\\/g, '/'); } \ No newline at end of file From c09b5a28797f309c933eebfec5ba3c4c93be19b3 Mon Sep 17 00:00:00 2001 From: guybedford Date: Fri, 3 Apr 2015 13:32:52 +0200 Subject: [PATCH 211/482] fixes #342 --- lib/index-babel.js | 4 ++-- lib/index-traceur.js | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/index-babel.js b/lib/index-babel.js index a6f96c0..a49e770 100644 --- a/lib/index-babel.js +++ b/lib/index-babel.js @@ -7,11 +7,11 @@ var System = module.exports.System; System.transpiler = 'babel'; try { - System.site.set('babel', require.resolve('babel-core/browser.js')); + System.site.set('babel', 'file:' + require.resolve('babel-core/browser.js')); } catch(e) {} try { System.site.set('babel', require.resolve('babel/browser.js')); } -catch(e) {} \ No newline at end of file +catch(e) {} diff --git a/lib/index-traceur.js b/lib/index-traceur.js index 0ed9d6c..b4992f4 100644 --- a/lib/index-traceur.js +++ b/lib/index-traceur.js @@ -5,6 +5,6 @@ module.exports = require('../dist/es6-module-loader-dev.src'); var System = module.exports.System; try { - System.site.set('traceur', require.resolve('traceur/bin/traceur.js')); + System.site.set('traceur', 'file:' + require.resolve('traceur/bin/traceur.js')); } -catch(e) {} \ No newline at end of file +catch(e) {} From d3e3d9d245d8aeea3e588f74724b13debfa49181 Mon Sep 17 00:00:00 2001 From: guybedford Date: Fri, 3 Apr 2015 16:01:41 +0200 Subject: [PATCH 212/482] minor url corrections, normalize tests in Node --- src/url.js | 8 ++++---- test/_helper.js | 2 +- test/_node-babel.js | 1 + test/_node-traceur.js | 1 + test/system.normalize.spec.js | 21 +++++++++++++++------ 5 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/url.js b/src/url.js index 730a2f6..91fdc85 100644 --- a/src/url.js +++ b/src/url.js @@ -48,6 +48,10 @@ protocol = base.protocol; } } + // convert windows file URLs to use / + if (protocol == 'file:') + pathname = pathname.replace(/\\/g, '/'); + this.origin = protocol + (protocol !== "" || host !== "" ? "//" : "") + host; this.href = protocol + (protocol !== "" || host !== "" ? "//" : "") + (username !== "" ? username + (password !== "" ? ":" + password : "") + "@" : "") + host + pathname + search + hash; this.protocol = protocol; @@ -59,9 +63,5 @@ this.pathname = pathname; this.search = search; this.hash = hash; - - // convert windows file URLs to use / - if (this.protocol == 'file') - this.pathname = this.pathname.replace(/\\/g, '/'); } \ No newline at end of file diff --git a/test/_helper.js b/test/_helper.js index c0bd5bf..97712e2 100644 --- a/test/_helper.js +++ b/test/_helper.js @@ -24,7 +24,7 @@ __global.base = typeof window != 'undefined' && (window.location.href.substr(0, window.location.href.lastIndexOf('/') + 1) + 'base/') - || ('file://' + process.cwd() + require('path').sep); + || ('file://' + (process.platform.match(/^win/) ? '/' : '') + process.cwd() + '/'); }(typeof window != 'undefined' ? window : global)); diff --git a/test/_node-babel.js b/test/_node-babel.js index 04ef56c..08634a6 100644 --- a/test/_node-babel.js +++ b/test/_node-babel.js @@ -9,6 +9,7 @@ require('regenerator/runtime'); global.System = require('../lib/index-babel').System; global.Reflect = require('../lib/index-babel').Reflect; +require('./system.normalize.spec'); require('./system.spec'); require('./custom-loader'); diff --git a/test/_node-traceur.js b/test/_node-traceur.js index dd2545b..1bab53b 100644 --- a/test/_node-traceur.js +++ b/test/_node-traceur.js @@ -7,6 +7,7 @@ require('./_helper'); global.System = require('../lib/index-traceur').System; global.Reflect = require('../lib/index-traceur').Reflect; +require('./system.normalize.spec'); require('./system.spec'); require('./custom-loader'); diff --git a/test/system.normalize.spec.js b/test/system.normalize.spec.js index 6327a0f..5039bd8 100644 --- a/test/system.normalize.spec.js +++ b/test/system.normalize.spec.js @@ -1,8 +1,16 @@ // +(function() { +var base, origin; +if (typeof window != 'undefined') { + base = window.location.href.substr(0, window.location.href.lastIndexOf('/') + 1); + origin = window.location.origin + '/'; +} +else { + base = 'file://' + (process.platform.match(/^win/) ? '/' : '') + process.cwd() + '/'; + origin = 'file:///'; +} describe('System', function () { - - var base = window.location.href.substr(0, window.location.href.lastIndexOf('/') + 1); describe('#resolve', function () { @@ -24,7 +32,7 @@ describe('System', function () { expect(System.resolve('d/e/f')).to.equal(base + 'd/e/f'); }); - it('should "below baseURL"', function () { + it.skip('should "below baseURL"', function () { expect(System.resolve('../../../../e/f')).to.equal(base + 'e/f'); }); @@ -67,7 +75,7 @@ describe('System', function () { jquery: '/jquery.js' }); - expect(System.resolve('jquery')).to.equal(base + 'jquery.js'); + expect(System.resolve('jquery')).to.equal(origin + 'jquery.js'); expect(System.resolve('jquery/nomatch')).to.equal(base + 'jquery/nomatch'); }); @@ -97,10 +105,11 @@ describe('System', function () { }); expect(System.resolve('jquery')).to.equal(base + 'jquery'); - expect(System.resolve('jquery/sub')).to.equal(base + 'path/to/jquery/sub.js'); - expect(System.resolve('jquery/sub/path')).to.equal(base + 'path/to/jquery/sub/path.js'); + expect(System.resolve('jquery/sub')).to.equal(origin + 'path/to/jquery/sub.js'); + expect(System.resolve('jquery/sub/path')).to.equal(origin + 'path/to/jquery/sub/path.js'); }); }); }); +})(); From 51cd76afb5a4f08740033bf20129dc197c4b5cf0 Mon Sep 17 00:00:00 2001 From: guybedford Date: Sat, 4 Apr 2015 22:25:29 +0200 Subject: [PATCH 213/482] port 0.17 updates --- Gruntfile.js | 14 +++---- index.js | 25 +++++++++++ lib/index-babel.js | 17 -------- lib/index-traceur.js | 10 ----- package.json | 1 - src/declarative.js | 2 +- src/loader.js | 36 +++++----------- src/module-tag.js | 8 +--- src/system.js | 22 +++++----- src/transpiler.js | 42 +++++-------------- src/{url.js => url-polyfill.js} | 4 +- ...polyfill-wrapper-end.js => wrapper-end.js} | 5 ++- ...fill-wrapper-start.js => wrapper-start.js} | 29 +++++++++++-- test/_node-babel.js | 6 ++- test/_node-traceur.js | 4 +- test/custom-loader.spec.js | 8 ++-- test/system.spec.js | 6 +-- test/worker/worker-babel.js | 3 +- 18 files changed, 112 insertions(+), 130 deletions(-) create mode 100644 index.js delete mode 100644 lib/index-babel.js delete mode 100644 lib/index-traceur.js rename src/{url.js => url-polyfill.js} (95%) rename src/{polyfill-wrapper-end.js => wrapper-end.js} (88%) rename src/{polyfill-wrapper-start.js => wrapper-start.js} (54%) diff --git a/Gruntfile.js b/Gruntfile.js index ea4d22f..816d64d 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -21,24 +21,22 @@ module.exports = function (grunt) { dist: { files: { 'dist/<%= pkg.name %>.src.js': [ - 'src/polyfill-wrapper-start.js', + 'src/wrapper-start.js', 'src/loader.js', 'src/dynamic-only.js', - 'src/transpiler.js', - 'src/url.js', + 'src/url-polyfill.js', 'src/system.js', - 'src/module-tag.js', - 'src/polyfill-wrapper-end.js' + 'src/wrapper-end.js' ], 'dist/<%= pkg.name %>-dev.src.js': [ - 'src/polyfill-wrapper-start.js', + 'src/wrapper-start.js', 'src/loader.js', 'src/declarative.js', 'src/transpiler.js', - 'src/url.js', + 'src/url-polyfill.js', 'src/system.js', 'src/module-tag.js', - 'src/polyfill-wrapper-end.js' + 'src/wrapper-end.js' ] } } diff --git a/index.js b/index.js new file mode 100644 index 0000000..a059a6b --- /dev/null +++ b/index.js @@ -0,0 +1,25 @@ +if (typeof Promise === 'undefined') + require('when/es6-shim/Promise'); + +module.exports = require('./dist/es6-module-loader-dev.src'); + +var System = module.exports.System; + +var filePrefix = 'file:' + (process.platform.match(/^win/) ? '///' : '//'); +try { + var traceurPath = filePrefix + require.resolve('traceur/bin/traceur.js'); + System.site.set('traceur', traceurPath); +} +catch(e) {} + +try { + var babelPath = filePrefix + require.resolve('babel/browser.js'); + System.site.set('babel', babelPath); +} +catch(e) {} + +try { + var babelCorePath = filePrefix + require.resolve('babel-core/browser.js'); + System.site.set('babel', babelCorePath); +} +catch(e) {} diff --git a/lib/index-babel.js b/lib/index-babel.js deleted file mode 100644 index a49e770..0000000 --- a/lib/index-babel.js +++ /dev/null @@ -1,17 +0,0 @@ -require('when'); - -module.exports = require('../dist/es6-module-loader-dev.src'); - -var System = module.exports.System; - -System.transpiler = 'babel'; - -try { - System.site.set('babel', 'file:' + require.resolve('babel-core/browser.js')); -} -catch(e) {} - -try { - System.site.set('babel', require.resolve('babel/browser.js')); -} -catch(e) {} diff --git a/lib/index-traceur.js b/lib/index-traceur.js deleted file mode 100644 index b4992f4..0000000 --- a/lib/index-traceur.js +++ /dev/null @@ -1,10 +0,0 @@ -require('when'); - -module.exports = require('../dist/es6-module-loader-dev.src'); - -var System = module.exports.System; - -try { - System.site.set('traceur', 'file:' + require.resolve('traceur/bin/traceur.js')); -} -catch(e) {} diff --git a/package.json b/package.json index e03f51c..7497b6b 100644 --- a/package.json +++ b/package.json @@ -53,7 +53,6 @@ "engines": { "node": ">=0.8.0" }, - "main": "lib/index-traceur", "scripts": { "test": "npm run test:node && npm run test:browser", "test:node": "mocha test/_node-traceur.js && mocha test/_node-babel.js", diff --git a/src/declarative.js b/src/declarative.js index ccfeea4..e6d4da1 100644 --- a/src/declarative.js +++ b/src/declarative.js @@ -113,4 +113,4 @@ // these are specifically for runtime binding / execution errors error: null }); - } \ No newline at end of file + } diff --git a/src/loader.js b/src/loader.js index 0f1c3d6..cfdcf76 100644 --- a/src/loader.js +++ b/src/loader.js @@ -1,5 +1,4 @@ - // ---------- Loader ---------- - +// ---------- Loader ---------- /* * Spec Differences * - Added ensureRegistered entry cache argument to avoid repeated lookups @@ -9,15 +8,6 @@ // 3. Loader Objects - // 3.1 Module Registry - // States - var FETCH = 0; - var TRANSLATE = 1; - var INSTANTIATE = 2; - var INSTANTIATE_ALL = 3; - var LINK = 4; - var READY = 5; - // Loader class function Loader() { this._loader = { @@ -33,6 +23,15 @@ }; } + // 3.1 Module Registry + // States + var FETCH = 0; + var TRANSLATE = 1; + var INSTANTIATE = 2; + var INSTANTIATE_ALL = 3; + var LINK = 4; + var READY = 5; + // 4. Loading // 4.1.1 @@ -374,20 +373,6 @@ } } - function addToError(err, msg) { - var newErr; - if (err instanceof Error) { - var newErr = new err.constructor(err.message, err.fileName, err.lineNumber); - newErr.message = err.message + '\n ' + msg - newErr.stack = err.stack; - } - else { - newErr = err + '\n ' + msg; - } - - return newErr; - } - // 6. API // 6.1.1 @@ -587,4 +572,3 @@ for (var p in descriptors) this[p] = descriptors[p]; } - diff --git a/src/module-tag.js b/src/module-tag.js index d64bc73..8f81634 100644 --- a/src/module-tag.js +++ b/src/module-tag.js @@ -1,5 +1,5 @@ - // + Loader.prototype.load = function(key, stage, metadata) { + var loader = this._loader; + + if (stage == 'fetch') + return requestFetch(loader, key, metadata); + + else if (stage == 'translate') + return requestTranslate(loader, key, metadata); + + else if (stage == 'instantiate') + return requestInstantiateAll(loader, key, metadata) + .then(function(entry) { + if (!(entry.module instanceof Module)) + return entry.module; + }); + + else if (stage == 'link') + return requestLink(loader, key, metadata).then(function() {}) + + else if (!stage || stage == 'ready') + return requestReady(loader, key, metadata) + .then(function(entry) { + // this is ok because we use plain modules throughout + return entry.module; + }); + + else + throw new TypeError('Invalid stage ' + stage); + }; + + // 6.4.1 + // For eg fetch, , key = anon + Loader.prototype.provide = function(key, stage, value, metadata) { + var loader = this._loader; + + var entry = ensureRegistered(loader, key, metadata); + + if (stage == 'fetch') { + if (entry.state > FETCH) + throw new TypeError(key + ' has already been fetched.'); + fulfillFetch(loader, entry, value); + } + else if (stage == 'translate') { + if (entry.state > TRANSLATE) + throw new TypeError(key + ' has already been translated.'); + fulfillTranslate(loader, entry, value); + } + else if (stage == 'instantiate') { + if (entry.state > INSTANTIATE) + throw new TypeError(key + ' has already been instantiated.'); + fulfillFetch(loader, entry, undefined); + fulfillTranslate(loader, entry, undefined); + // NB error propogation + entry.translate.then(function(source) { + loadTranspilerThenFulfillInstantiate(loader, entry, value, source); + }); + } + else + throw new TypeError('Invalid stage ' + stage); + }; + + // 6.4.2 + // SPEC TODO + Loader.prototype.error = function(key, stage, value) {}; + + // 6.5.1 + Loader.prototype.lookup = function(key) { + var loader = this._loader; + + var entry = loader.registry[key]; + if (!entry) + return null; + + var state; + if (entry.state == FETCH) + state = 'fetch'; + else if (entry.state == TRANSLATE) + state = 'translate'; + else if (entry.state == INSTANTIATE) + state = 'instantiate'; + else if (entry.state == LINK) + state = 'link'; + else if (entry.state == READY) + state = 'ready'; + + return { + state: state, + metadata: entry.metadata, + fetch: entry.fetch && Promise.resolve(entry.fetch), + translate: entry.translate && Promise.resolve(entry.translate), + instantiate: entry.instantiate && Promise.resolve(entry.instantiate), + module: entry.state == READY && (entry.module instanceof Module ? entry.module : entry.module.module), + error: entry.error + }; + }; + + // 6.5.2 + Loader.prototype.install = function(key, module) { + var loader = this._loader; + + if (loader.registry[key]) + throw new TypeError(key + ' is already defined in the Loader registry.'); + + if (!(module instanceof Module)) + throw new TypeError('Install must provide a valid Module object.'); + + loader.registry[key] = { + key: key, + state: READY, + metadata: metadata, + + fetch: undefined, + translate: undefined, + instantiate: undefined, + + dependencies: undefined, + module: module, + declare: undefined, + error: null + }; + }; + + // 6.5.3 + Loader.prototype.uninstall = function(key) { + var loader = this._loader; + + var entry = loader.registry[key]; + if (!entry) + throw new TypeError(key + ' is not defined in the Loader registry.'); + + if (entry.state < LINK) + throw new TypeError(key + ' is still loading.'); + + delete loader.registry[key]; + }; + + // 6.5.4 + Loader.prototype.cancel = function(key) { + var loader = this._loader; + + var entry = loader.registry[key]; + if (!entry) + throw new TypeError(key + ' does not exist.'); + + if (entry.state >= LINK) + throw new TypeError(key + ' is already past linking.'); + + delete loader.registry[key]; + }; + + // 6.6.1 + // loader.hook('resolve') -> returns resolve hook + // loader.hook('resolve', fn) -> sets resolve hook + var hooks = ['resolve', 'fetch', 'translate', 'instantiate']; + Loader.prototype.hook = function(name, value) { + var loader = this._loader; + if (indexOf.call(hooks, name) == -1) + throw new TypeError(name + ' is not a valid hook.'); + if (value) + loader[name] = value; + else + return loader[name]; + }; + + // 6.7 Module Reflection + + // plain user-facing module object + function Module(descriptors, executor, evaluate) { + // should define as unconfigurable and preventExtensions + // going for max perf first iteration though + for (var p in descriptors) + this[p] = descriptors[p]; + } + + // ---------- Declarative Linking Code ---------- + + // ES6-style module binding and execution code + function declareModule(entry) { + // could consider a try catch around setters here that saves errors to module.error + var module = entry.module = ensureModuleRecord(entry.key); + var moduleObj = module.module; + + // run the System register declare function + // providing the binding export function argument + // NB module meta should be an additional argument in future here + var registryEntry = entry.declare.call(__global, function(name, value) { + // export setter propogation with locking to avoid cycles + module.locked = true; + moduleObj[name] = value; + + for (var i = 0; i < module.importers.length; i++) { + var importerModule = module.importers[i]; + if (!importerModule.locked) { + var importerIndex = indexOf.call(importerModule.dependencies, module); + importerModule.setters[importerIndex](moduleObj); + } + } + + module.locked = false; + return value; + }); + + module.setters = registryEntry.setters; + module.execute = registryEntry.execute; + + // now go through dependencies and declare them in turn, building up the binding graph as we go + for (var i = 0; i < entry.dependencies.length; i++) { + var depEntry = entry.dependencies[i].value; + + // if dependency not already declared, declare it now + // we check module existence over state to stop at circular and dynamic + if (!depEntry.module) + declareModule(depEntry); + + var depModule = depEntry.module; + + // dynamic -> no setter propogation, but need dependencies and setters to line up + if (depModule instanceof Module) { + module.dependencies.push(null); + } + else { + module.dependencies.push(depModule); + depModule.importers.push(module); + } + + // finally run this setter + if (module.setters[i]) + module.setters[i](depModule.module); + } + + entry.state = READY; + } + + // execute a module record and all the modules that need it + function ensureModuleExecution(module, seen) { + if (indexOf.call(seen, module) != -1) + return; + + if (module.error) + return module.error; + + seen.push(module); + + var deps = module.dependencies; + var err; + + for (var i = 0; i < deps.length; i++) { + var dep = deps[i]; + + // dynamic modules are null in the ModuleRecord graph + if (!dep) + continue; + + err = ensureModuleExecution(deps[i], seen); + if (err) { + module.error = addToError(err, 'Error evaluating ' + dep.key); + return module.error; + } + } + + err = doExecute(module); + + if (err) + module.error = err; + + return err; + } + + function doExecute(module) { + try { + module.execute.call({}); + } + catch(e) { + return e; + } + } + + // module record used for binding and evaluation management + var moduleRecords = {}; + function ensureModuleRecord(key) { + return moduleRecords[key] || (moduleRecords[key] = { + key: key, + dependencies: [], + module: new Module({}), + importers: [], + locked: false, + // these are specifically for runtime binding / execution errors + error: null + }); + } + +// ---------- Transpiler Hooks ---------- + + // use Traceur by default + Loader.prototype.transpiler = 'traceur'; + + var transpilerName, transpilerModule, transpilerResolved; + + // pick up transpilers from globals on constructor + function setupTranspilers(loader) { + try { + if (__global.traceur) + loader.install('traceur', new Module({ 'default': __global.traceur })); + else if (__global.babel) + loader.install('babel', new Module({ 'default': __global.babel })); + } + catch(e) {} + } + + function loadTranspiler(loader) { + var transpiler = loader.transpiler; + + if (transpiler === transpilerName && transpilerModule) + return; + + transpilerName = transpiler; + transpilerModule = transpilerResolved = null; + + return loader['import'](transpiler).then(function(transpiler) { + transpilerModule = transpiler['default']; + }); + } + + function transpile(loader, key, source, metadata) { + // transpile to System register and evaluate out the { deps, declare } form + // set the __moduleURL temporary meta for contextual imports + return evaluateSystemRegister(key, + (transpilerModule.Compiler ? traceurTranspile : babelTranspile)(transpilerModule, key, source, metadata)); + } + + // transpiler instantiate to ensure transpiler is loaded as a global + function systemInstantiate(key, source, metadata) { + var loader = this; + + return Promise.resolve(transpilerName === loader.transpiler && transpilerResolved + || loader.resolve(transpilerName = loader.transpiler)) + .then(function(resolved) { + transpilerResolved = resolved; + if (transpilerResolved === key) + return function() { + // avoid Traceur System clobbering + var curSystem = __global.System; + var curLoader = __global.Reflect.Loader; + // load transpiler as a global, not detected as CommonJS + __eval('~function(require,exports,module){' + source + '}()', key, __global); + __global.System = curSystem; + __global.Reflect.Loader = curLoader; + return new Module({ 'default': __global[loader.transpiler] }); + }; + }); + }; + + function traceurTranspile(traceur, key, source, metadata) { + var options = this.traceurOptions || {}; + options.modules = 'instantiate'; + options.script = false; + options.sourceMaps = 'inline'; + options.inputSourceMap = metadata.sourceMap; + options.filename = key; + options.inputSourceMap = metadata.sourceMap; + options.moduleName = false; + + var compiler = new traceur.Compiler(options); + + return doTraceurCompile(source, compiler, options.filename); + } + function doTraceurCompile(source, compiler, filename) { + try { + return compiler.compile(source, filename); + } + catch(e) { + // traceur throws an error array + throw e[0] || e; + } + } + + function babelTranspile(babel, key, source, metadata) { + var options = this.babelOptions || {}; + options.modules = 'system'; + options.sourceMap = 'inline'; + options.filename = key; + options.code = true; + options.ast = false; + + // encourage a sensible baseline + if (!options.blacklist) + options.blacklist = ['react']; + + return babel.transform(source, options).code; + } + + function evaluateSystemRegister(key, source) { + var curSystem = __global.System = __global.System || System; + + var registration; + + // Hijack System .register to set declare function + var curRegister = curSystem .register; + curSystem .register = function(deps, declare) { + registration = { + deps: deps, + declare: declare + }; + } + + // use {} as this, closes to empty we can get + // add "!eval" to end of sourceURL so the source map + // can use the original name without conflict + __eval('var __moduleURL = "' + key + '";' + source + + '\n//# sourceURL=' + key + '!eval', key, {}); + + curSystem .register = curRegister; + // console.assert(registration); + return registration; + } + + // from https://gist.github.com/Yaffle/1088850 + function URL(url, baseURL) { + if (typeof url != 'string') + throw new TypeError('URL must be a string'); + var m = String(url).replace(/^\s+|\s+$/g, "").match(/^([^:\/?#]+:)?(?:\/\/(?:([^:@\/?#]*)(?::([^:@\/?#]*))?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/); + if (!m) { + throw new RangeError(); + } + var protocol = m[1] || ""; + var username = m[2] || ""; + var password = m[3] || ""; + var host = m[4] || ""; + var hostname = m[5] || ""; + var port = m[6] || ""; + var pathname = m[7] || ""; + var search = m[8] || ""; + var hash = m[9] || ""; + if (baseURL !== undefined) { + var base = baseURL instanceof URL ? baseURL : new URL(baseURL); + var flag = protocol === "" && host === "" && username === ""; + if (flag && pathname === "" && search === "") { + search = base.search; + } + if (flag && pathname.charAt(0) !== "/") { + pathname = (pathname !== "" ? (((base.host !== "" || base.username !== "") && base.pathname === "" ? "/" : "") + base.pathname.slice(0, base.pathname.lastIndexOf("/") + 1) + pathname) : base.pathname); + } + // dot segments removal + var output = []; + pathname.replace(/^(\.\.?(\/|$))+/, "") + .replace(/\/(\.(\/|$))+/g, "/") + .replace(/\/\.\.$/, "/../") + .replace(/\/?[^\/]*/g, function (p) { + if (p === "/..") { + output.pop(); + } else { + output.push(p); + } + }); + pathname = output.join("").replace(/^\//, pathname.charAt(0) === "/" ? "/" : ""); + if (flag) { + port = base.port; + hostname = base.hostname; + host = base.host; + password = base.password; + username = base.username; + } + if (protocol === "") { + protocol = base.protocol; + } + } + // convert windows file URLs to use / + if (protocol == 'file:') + pathname = pathname.replace(/\\/g, '/'); + + this.origin = protocol + (protocol !== "" || host !== "" ? "//" : "") + host; + this.href = protocol + (protocol !== "" || host !== "" ? "//" : "") + (username !== "" ? username + (password !== "" ? ":" + password : "") + "@" : "") + host + pathname + search + hash; + this.protocol = protocol; + this.username = username; + this.password = password; + this.host = host; + this.hostname = hostname; + this.port = port; + this.pathname = pathname; + this.search = search; + this.hash = hash; + } + +// ---------- System Loader Definition ---------- + + var System; + + /* + * Corrsponds to section 8 of the specification + */ + + // Fetch Implementation + var fetchURI; + + if (typeof XMLHttpRequest != 'undefined') { + fetchURI = function(url, fulfill, reject) { + var xhr = new XMLHttpRequest(); + var sameDomain = true; + var doTimeout = false; + if (!('withCredentials' in xhr)) { + // check if same domain + var domainCheck = /^(\w+:)?\/\/([^\/]+)/.exec(url); + if (domainCheck) { + sameDomain = domainCheck[2] === window.location.host; + if (domainCheck[1]) + sameDomain &= domainCheck[1] === window.location.protocol; + } + } + if (!sameDomain && typeof XDomainRequest != 'undefined') { + xhr = new XDomainRequest(); + xhr.onload = load; + xhr.onerror = error; + xhr.ontimeout = error; + xhr.onprogress = function() {}; + xhr.timeout = 0; + doTimeout = true; + } + function load() { + fulfill(xhr.responseText); + } + function error() { + reject(new Error('GET ' + url + ' ' + xhr.status + ' (' + xhr.statusText + ')')); + } + + xhr.onreadystatechange = function () { + if (xhr.readyState === 4) { + if (xhr.status === 200 || (xhr.status == 0 && xhr.responseText)) { + load(); + } else { + error(); + } + } + }; + xhr.open("GET", url, true); + + if (doTimeout) + setTimeout(function() { + xhr.send(); + }, 0); + + xhr.send(null); + } + } + else if (cjsMode) { + var fs; + fetchURI = function(url, fulfill, reject) { + if (url.substr(0, 8) != 'file:///') + throw '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); + fs.readFile(url, function(err, data) { + if (err) + reject(err); + else + fulfill(data + ''); + }); + } + } + else { + throw new TypeError('No environment fetch API available.'); + } + + var SystemLoader = function() { + Loader.call(this, arguments); + + var siteTable = {}; + this.site = function(mappings) { + for (var m in mappings) + siteTable[m] = mappings[m]; + } + this.site.get = function(name) { + return siteTable[name]; + } + this.site.set = function(name, url) { + siteTable[name] = url; + } + this.site.has = function(name) { + return !!siteTable[name]; + } + this.site['delete'] = function(name) { + delete siteTable[name]; + } + + function siteLookup(target) { + if (siteTable[target]) + return siteTable[target]; + + // most specific wildcard wins, with specificity metric as "/" count in pattern + var curMatch, curMatchLen = 0; + for (var p in siteTable) { + var wildcardParts = p.split('*'); + if (wildcardParts.length > 2) + throw new TypeError('Sites entry ' + p + ' contains multiple wildcards.'); + + if (wildcardParts.length == 1) + continue; + + if (p.split('/').length >= curMatchLen + && p.substr(0, wildcardParts[0].length) === target.substr(0, wildcardParts[0].length) + && p.substr(p.length - wildcardParts[1].length) === wildcardParts[1]) { + curMatch = siteTable[p].replace('*', target.substr(wildcardParts[0].length, target.length - p.length + 1)); + curMatchLen = p.split('/').length; + } + } + + return curMatch; + } + + this.hook('resolve', function(url, parentUrl, metadata) { + // first check site table + var sitesUrl = siteLookup(url); + + if (sitesUrl || !parentUrl) + parentUrl = base; + + // then do url normalization + // NB for performance, test out a normalization cache here + return new URL(sitesUrl || url, parentUrl).href; + }); + + this.hook('fetch', function(url, metadata) { + return new Promise(function(resolve, reject) { + fetchURI(url, resolve, reject); + }); + }); + + this.hook('translate', function(url, source, metadata) { + return source; + }); + + // defined in transpiler.js or dynamic-only.js + this.hook('instantiate', systemInstantiate); + + if (this.transpiler) + setupTranspilers(this); + }; + + // inline Object.create-style class extension + function LoaderProto() {} + LoaderProto.prototype = Loader.prototype; + SystemLoader.prototype = new LoaderProto(); + + // set the base URL + var base; + if (typeof document != 'undefined' && document.baseURI) { + base = document.baseURI; + } + else if (typeof document != 'undefined' && document.getElementsByTagName) { + base = document.getElementsByTagName('base')[0]; + base = base && base.href; + } + else if (typeof location != 'undefined' && location.href) { + base = location.href; + } + if (base) { + base = base.split('#')[0].split('?')[0]; + base = base.substr(0, base.lastIndexOf('/') + 1); + } + else if (typeof process != 'undefined' && process.cwd) { + base = 'file://' + (isWindows ? '/' : '') + process.cwd() + '/'; + if (isWindows) + base = base.replace(/\\/g, '/'); + } + base = new URL(base); + +// + if (url) { + System.load(url, 'ready'); + } + + // + else { + System.provide('anon' + ++anonCnt, 'fetch', script.innerHTML.substr(1)); + System.load('anon' + anonCnt, 'ready'); + } + } + } + } + + // DOM ready, taken from https://github.com/jquery/jquery/blob/master/src/core/ready.js#L63 + if (document.readyState === 'complete') { + setTimeout(ready); + } + else if (document.addEventListener) { + document.addEventListener('DOMContentLoaded', completed, false); + window.addEventListener('load', completed, false); + } + } + + // ---------- Export Definitions ---------- + + var Reflect; + + System = new SystemLoader(); + System.constructor = SystemLoader; + + (function(exports) { + + Reflect = exports.Reflect || {}; + + Reflect.Loader = Reflect.Loader || Loader; + Reflect.Module = Reflect.Module || Module; + Reflect.global = Reflect.global || __global; + + exports.LoaderPolyfill = Loader; + exports.ModulePolyfill = Module; + exports.Reflect = Reflect; + exports.System = System; + + })(cjsMode ? exports : __global); + + //module.exports = exports; + +})(typeof window != 'undefined' ? window : (typeof WorkerGlobalScope != 'undefined' ? self : global)); diff --git a/dist/es6-module-loader.js b/dist/es6-module-loader.js index 29ae7d8..1826625 100644 --- a/dist/es6-module-loader.js +++ b/dist/es6-module-loader.js @@ -1,8 +1,8 @@ /* - * es6-module-loader v0.16.1 + * es6-module-loader v1.0.0-alpha * https://github.com/ModuleLoader/es6-module-loader * Copyright (c) 2015 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT */ -!function(a){"object"==typeof exports?module.exports=a():"function"==typeof define&&define.amd?define(a):"undefined"!=typeof window?window.Promise=a():"undefined"!=typeof global?global.Promise=a():"undefined"!=typeof self&&(self.Promise=a())}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);throw new Error("Cannot find module '"+g+"'")}var j=c[g]={exports:{}};a[g][0].call(j.exports,function(b){var c=a[g][1][b];return e(c?c:b)},j,j.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g=0&&(n.splice(b,1),l("Handled previous rejection ["+a.id+"] "+e.formatObject(a.value)))}function h(a,b){m.push(a,b),null===o&&(o=d(i,0))}function i(){for(o=null;m.length>0;)m.shift()(m.shift())}var j,k=c,l=c;"undefined"!=typeof console&&(j=console,k="undefined"!=typeof j.error?function(a){j.error(a)}:function(a){j.log(a)},l="undefined"!=typeof j.info?function(a){j.info(a)}:function(a){j.log(a)}),a.onPotentiallyUnhandledRejection=function(a){h(f,a)},a.onPotentiallyUnhandledRejectionHandled=function(a){h(g,a)},a.onFatalRejection=function(a){h(b,a.value)};var m=[],n=[],o=null;return a}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{"../env":5,"../format":6}],5:[function(b,c){!function(a){"use strict";a(function(a){function b(){return"undefined"!=typeof process&&null!==process&&"function"==typeof process.nextTick}function c(){return"function"==typeof MutationObserver&&MutationObserver||"function"==typeof WebKitMutationObserver&&WebKitMutationObserver}function d(a){function b(){var a=c;c=void 0,a()}var c,d=document.createTextNode(""),e=new a(b);e.observe(d,{characterData:!0});var f=0;return function(a){c=a,d.data=f^=1}}var e,f="undefined"!=typeof setTimeout&&setTimeout,g=function(a,b){return setTimeout(a,b)},h=function(a){return clearTimeout(a)},i=function(a){return f(a,0)};if(b())i=function(a){return process.nextTick(a)};else if(e=c())i=d(e);else if(!f){var j=a,k=j("vertx");g=function(a,b){return k.setTimer(b,a)},h=k.cancelTimer,i=k.runOnLoop||k.runOnContext}return{setTimer:g,clearTimer:h,asap:i}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a(b)})},{}],6:[function(b,c){!function(a){"use strict";a(function(){function a(a){var c="object"==typeof a&&null!==a&&a.stack?a.stack:b(a);return a instanceof Error?c:c+" (WARNING: non-Error used)"}function b(a){var b=String(a);return"[object Object]"===b&&"undefined"!=typeof JSON&&(b=c(a,b)),b}function c(a,b){try{return JSON.stringify(a)}catch(c){return b}}return{formatError:a,formatObject:b,tryStringify:c}})}("function"==typeof a&&a.amd?a:function(a){c.exports=a()})},{}],7:[function(b,c){!function(a){"use strict";a(function(){return function(a){function b(a,b){this._handler=a===t?b:c(a)}function c(a){function b(a){e.resolve(a)}function c(a){e.reject(a)}function d(a){e.notify(a)}var e=new v;try{a(b,c,d)}catch(f){c(f)}return e}function d(a){return I(a)?a:new b(t,new w(q(a)))}function e(a){return new b(t,new w(new z(a)))}function f(){return _}function g(){return new b(t,new v)}function h(a,b){var c=new v(a.receiver,a.join().context);return new b(t,c)}function i(a){return k(S,null,a)}function j(a,b){return k(N,a,b)}function k(a,c,d){function e(b,e,g){g.resolved||l(d,f,b,a(c,e,b),g)}function f(a,b,c){k[a]=b,0===--j&&c.become(new y(k))}for(var g,h="function"==typeof c?e:f,i=new v,j=d.length>>>0,k=new Array(j),m=0;m0?b(c,f.value,e):(e.become(f),m(a,c+1,f))}else b(c,d,e)}function m(a,b,c){for(var d=b;dc&&a._unreport()}}function o(a){return"object"!=typeof a||null===a?e(new TypeError("non-iterable passed to race()")):0===a.length?f():1===a.length?d(a[0]):p(a)}function p(a){var c,d,e,f=new v;for(c=0;c0||"function"!=typeof b&&0>e)return new this.constructor(t,d);var f=this._beget(),g=f._handler;return d.chain(g,d.receiver,a,b,c),f},b.prototype["catch"]=function(a){return this.then(void 0,a)},b.prototype._beget=function(){return h(this._handler,this.constructor)},b.all=i,b.race=o,b._traverse=j,b._visitRemaining=m,t.prototype.when=t.prototype.become=t.prototype.notify=t.prototype.fail=t.prototype._unreport=t.prototype._report=T,t.prototype._state=0,t.prototype.state=function(){return this._state},t.prototype.join=function(){for(var a=this;void 0!==a.handler;)a=a.handler;return a},t.prototype.chain=function(a,b,c,d,e){this.when({resolver:a,receiver:b,fulfilled:c,rejected:d,progress:e})},t.prototype.visit=function(a,b,c,d){this.chain(Y,a,b,c,d)},t.prototype.fold=function(a,b,c,d){this.when(new H(a,b,c,d))},R(t,u),u.prototype.become=function(a){a.fail()};var Y=new u;R(t,v),v.prototype._state=0,v.prototype.resolve=function(a){this.become(q(a))},v.prototype.reject=function(a){this.resolved||this.become(new z(a))},v.prototype.join=function(){if(!this.resolved)return this;for(var a=this;void 0!==a.handler;)if(a=a.handler,a===this)return this.handler=C();return a},v.prototype.run=function(){var a=this.consumers,b=this.handler;this.handler=this.handler.join(),this.consumers=void 0;for(var c=0;cf;f++)if(e=b.loads[f],e.name==c)return e;return e=a(c),b.loads.push(e),d(b,e),e})}function d(a,b){e(a,b,A.resolve().then(function(){return a.loaderObj.locate({name:b.name,metadata:b.metadata})}))}function e(a,b,c){f(a,b,c.then(function(c){return"loading"==b.status?(b.address=c,a.loaderObj.fetch({name:b.name,metadata:b.metadata,address:c})):void 0}))}function f(a,b,d){d.then(function(d){return"loading"==b.status?A.resolve(a.loaderObj.translate({name:b.name,metadata:b.metadata,address:b.address,source:d})).then(function(c){return b.source=c,a.loaderObj.instantiate({name:b.name,metadata:b.metadata,address:b.address,source:c})}).then(function(c){if(void 0===c)return b.address=b.address||"",b.isDeclarative=!0,a.loaderObj.transpile(b).then(function(a){var c=__global.System,d=c.register;c.register=function(a,c,d){"string"!=typeof a&&(d=c,c=a),b.declare=d,b.depsList=c},__eval(a,__global,b),c.register=d});if("object"!=typeof c)throw TypeError("Invalid instantiate return value");b.depsList=c.deps||[],b.execute=c.execute,b.isDeclarative=!1}).then(function(){b.dependencies=[];for(var d=b.depsList,e=[],f=0,g=d.length;g>f;f++)(function(d,f){e.push(c(a,d,b.name,b.address).then(function(a){if(b.dependencies[f]={key:d,value:a.name},"linked"!=a.status)for(var c=b.linkSets.concat([]),e=0,g=c.length;g>e;e++)i(c[e],a)}))})(d[f],f);return A.all(e)}).then(function(){b.status="loaded";for(var a=b.linkSets.concat([]),c=0,d=a.length;d>c;c++)k(a[c],b)}):void 0})["catch"](function(a){b.status="failed",b.exception=a;for(var c=b.linkSets.concat([]),d=0,e=c.length;e>d;d++)l(c[d],b,a)})}function g(b){return function(c){var g=b.loader,i=b.moduleName,j=b.step;if(g.modules[i])throw new TypeError('"'+i+'" already exists in the module table');for(var k,l=0,m=g.loads.length;m>l;l++)if(g.loads[l].name==i)return k=g.loads[l],"translate"!=j||k.source||(k.address=b.moduleAddress,f(g,k,A.resolve(b.moduleSource))),k.linkSets[0].done.then(function(){c(k)});var n=a(i);n.metadata=b.moduleMetadata;var o=h(g,n);g.loads.push(n),c(o.done),"locate"==j?d(g,n):"fetch"==j?e(g,n,A.resolve(b.moduleAddress)):(n.address=b.moduleAddress,f(g,n,A.resolve(b.moduleSource)))}}function h(a,b){var c={loader:a,loads:[],startingLoad:b,loadingCount:0};return c.done=new A(function(a,b){c.resolve=a,c.reject=b}),i(c,b),c}function i(a,b){for(var c=0,d=a.loads.length;d>c;c++)if(a.loads[c]==b)return;a.loads.push(b),b.linkSets.push(a),"loaded"!=b.status&&a.loadingCount++;for(var e=a.loader,c=0,d=b.dependencies.length;d>c;c++){var f=b.dependencies[c].value;if(!e.modules[f])for(var g=0,h=e.loads.length;h>g;g++)if(e.loads[g].name==f){i(a,e.loads[g]);break}}}function j(a){var b=!1;try{p(a,function(c,d){l(a,c,d),b=!0})}catch(c){l(a,null,c),b=!0}return b}function k(a,b){if(a.loadingCount--,!(a.loadingCount>0)){var c=a.startingLoad;if(a.loader.loaderObj.execute===!1){for(var d=[].concat(a.loads),e=0,f=d.length;f>e;e++){var b=d[e];b.module=b.isDeclarative?{name:b.name,module:E({}),evaluated:!0}:{module:E({})},b.status="linked",m(a.loader,b)}return a.resolve(c)}var g=j(a);g||a.resolve(c)}}function l(a,b,c){var d=a.loader;a.loads[0].name!=b.name&&(c=w(c,'Error loading "'+b.name+'" from "'+a.loads[0].name+'" at '+(a.loads[0].address||"")+"\n")),c=w(c,'Error loading "'+b.name+'" at '+(b.address||"")+"\n");for(var e=a.loads.concat([]),f=0,g=e.length;g>f;f++){var b=e[f];d.loaderObj.failed=d.loaderObj.failed||[],-1==B.call(d.loaderObj.failed,b)&&d.loaderObj.failed.push(b);var h=B.call(b.linkSets,a);if(b.linkSets.splice(h,1),0==b.linkSets.length){var i=B.call(a.loader.loads,b);-1!=i&&a.loader.loads.splice(i,1)}}a.reject(c)}function m(a,b){if(a.loaderObj.trace){a.loaderObj.loads||(a.loaderObj.loads={});var c={};b.dependencies.forEach(function(a){c[a.key]=a.value}),a.loaderObj.loads[b.name]={name:b.name,deps:b.dependencies.map(function(a){return a.key}),depMap:c,address:b.address,metadata:b.metadata,source:b.source,kind:b.isDeclarative?"declarative":"dynamic"}}b.name&&(a.modules[b.name]=b.module);var d=B.call(a.loads,b);-1!=d&&a.loads.splice(d,1);for(var e=0,f=b.linkSets.length;f>e;e++)d=B.call(b.linkSets[e].loads,b),-1!=d&&b.linkSets[e].loads.splice(d,1);b.linkSets.splice(0,b.linkSets.length)}function n(a,b,c){if(c[a.groupIndex]=c[a.groupIndex]||[],-1==B.call(c[a.groupIndex],a)){c[a.groupIndex].push(a);for(var d=0,e=b.length;e>d;d++)for(var f=b[d],g=0;g=0;g--){for(var h=d[g],i=0;ic;c++){var g=d.importers[c];if(!g.locked){var h=B.call(g.dependencies,d);g.setters[h](e)}}return d.locked=!1,b});d.setters=f.setters,d.execute=f.execute;for(var g=0,h=a.dependencies.length;h>g;g++){var i=a.dependencies[g].value,j=c.modules[i];if(!j)for(var k=0;kf;f++){var h=e[f];if(h&&-1==B.call(b,h)&&(d=v(h,b,c)))return d=w(d,"Error evaluating "+h.name+"\n")}if(a.failed)return new Error("Module failed execution.");if(!a.evaluated)return a.evaluated=!0,d=t(a),d?a.failed=!0:Object.preventExtensions&&Object.preventExtensions(a.module),a.execute=void 0,d}}function w(a,b){return a instanceof Error?a.message=b+a.message:a=b+a,a}function x(a){if("object"!=typeof a)throw new TypeError("Options must be an object");a.normalize&&(this.normalize=a.normalize),a.locate&&(this.locate=a.locate),a.fetch&&(this.fetch=a.fetch),a.translate&&(this.translate=a.translate),a.instantiate&&(this.instantiate=a.instantiate),this._loader={loaderObj:this,loads:[],modules:{},importPromises:{},moduleRecords:{}},C(this,"global",{get:function(){return __global}})}function y(){}function z(a,b,c){var d=a._loader.importPromises;return d[b]=c.then(function(a){return d[b]=void 0,a},function(a){throw d[b]=void 0,a})}var A=__global.Promise||require("when/es6-shim/Promise");__global.console&&(console.assert=console.assert||function(){});var B=Array.prototype.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},C=$__Object$defineProperty,D=0;x.prototype={constructor:x,define:function(a,b,c){if(this._loader.importPromises[a])throw new TypeError("Module is already loading.");return z(this,a,new A(g({step:"translate",loader:this._loader,moduleName:a,moduleMetadata:c&&c.metadata||{},moduleSource:b,moduleAddress:c&&c.address})))},"delete":function(a){var b=this._loader;return delete b.importPromises[a],delete b.moduleRecords[a],b.modules[a]?delete b.modules[a]:!1},get:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this),this._loader.modules[a].module):void 0},has:function(a){return!!this._loader.modules[a]},"import":function(a,c){var d=this;return A.resolve(d.normalize(a,c&&c.name,c&&c.address)).then(function(a){var e=d._loader;return e.modules[a]?(u(e.modules[a],[],e._loader),e.modules[a].module):e.importPromises[a]||z(d,a,b(e,a,c||{}).then(function(b){return delete e.importPromises[a],s(e,b)}))})},load:function(a){return this._loader.modules[a]?(u(this._loader.modules[a],[],this._loader),A.resolve(this._loader.modules[a].module)):this._loader.importPromises[a]||z(this,a,b(this._loader,a,{}))},module:function(b,c){var d=a();d.address=c&&c.address;var e=h(this._loader,d),g=A.resolve(b),i=this._loader,j=e.done.then(function(){return s(i,d)});return f(i,d,g),j},newModule:function(a){if("object"!=typeof a)throw new TypeError("Expected object");var b=new y;for(var c in a)!function(c){C(b,c,{configurable:!1,enumerable:!0,get:function(){return a[c]}})}(c);return Object.preventExtensions&&Object.preventExtensions(b),b},set:function(a,b){if(!(b instanceof y))throw new TypeError("Loader.set("+a+", module) must be a module");this._loader.modules[a]={module:b}},normalize:function(a){return a},locate:function(a){return a.name},fetch:function(){throw new TypeError("Fetch not implemented")},translate:function(a){return a.source},instantiate:function(){}};var E=x.prototype.newModule;"object"==typeof exports&&(module.exports=x),__global.Reflect=__global.Reflect||{},__global.Reflect.Loader=__global.Reflect.Loader||x,__global.Reflect.global=__global.Reflect.global||__global,__global.LoaderPolyfill=x}(),function(a){function b(a,b){return a.newModule({"default":f[b],__useDefault:!0})}function c(a,b){var c=this.traceurOptions||{};c.modules="instantiate",c.script=!1,c.sourceMaps="inline",c.filename=a.address,c.inputSourceMap=a.metadata.sourceMap,c.moduleName=!1;var e=new b.Compiler(c),f=d(a.source,e,c.filename);return f+="!eval"}function d(a,b,c){try{return b.compile(a,c)}catch(d){throw d[0]}}function e(a,b){var c=this.babelOptions||{};c.modules="system",c.sourceMap="inline",c.filename=a.address,c.code=!0,c.ast=!1,c.blacklist||(c.blacklist=["react"]);var d=b.transform(a.source,c).code;return d+"\n//# sourceURL="+a.address+"!eval"}var f=__global,g=!0;a.prototype.transpiler="traceur",a.prototype.transpile=function(a){var d=this;return g&&(f.traceur&&!d.has("traceur")&&d.set("traceur",b(d,"traceur")),f.babel&&!d.has("babel")&&d.set("babel",b(d,"babel")),g=!1),d["import"](d.transpiler).then(function(b){return b.__useDefault&&(b=b["default"]),'var __moduleAddress = "'+a.address+'";'+(b.Compiler?c:e).call(d,a,b)})},a.prototype.instantiate=function(a){var c=this;return Promise.resolve(c.normalize(c.transpiler)).then(function(d){return a.name===d?{deps:[],execute:function(){var d=f.System,e=f.Reflect.Loader;return __eval("(function(require,exports,module){"+a.source+"})();",f,a),f.System=d,f.Reflect.Loader=e,b(c,a.name)}}:void 0})}}(__global.LoaderPolyfill),function(){function a(a){var b=String(a).replace(/^\s+|\s+$/g,"").match(/^([^:\/?#]+:)?(\/\/(?:[^:@\/?#]*(?::[^:@\/?#]*)?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/);return b?{href:b[0]||"",protocol:b[1]||"",authority:b[2]||"",host:b[3]||"",hostname:b[4]||"",port:b[5]||"",pathname:b[6]||"",search:b[7]||"",hash:b[8]||""}:null}function b(a){var b=[];return a.replace(/^(\.\.?(\/|$))+/,"").replace(/\/(\.(\/|$))+/g,"/").replace(/\/\.\.$/,"/../").replace(/\/?[^\/]*/g,function(a){"/.."===a?b.pop():b.push(a)}),b.join("").replace(/^\//,"/"===a.charAt(0)?"/":"")}function c(c,d){return i&&(d=d.replace(/\\/g,"/")),d=a(d||""),c=a(c||""),d&&c?(d.protocol||c.protocol)+(d.protocol||d.authority?d.authority:c.authority)+b(d.protocol||d.authority||"/"===d.pathname.charAt(0)?d.pathname:d.pathname?(c.authority&&!c.pathname?"/":"")+c.pathname.slice(0,c.pathname.lastIndexOf("/")+1)+d.pathname:c.pathname)+(d.protocol||d.authority||d.pathname?d.search:d.search||c.search)+d.hash:null}function d(){document.removeEventListener("DOMContentLoaded",d,!1),window.removeEventListener("load",d,!1),e()}function e(){for(var a=document.getElementsByTagName("script"),b=0;b2)throw new TypeError("Only one wildcard in a path is permitted");if(1==g.length){if(d==f&&f.length>e.length){e=f;break}}else d.substr(0,g[0].length)==g[0]&&d.substr(d.length-g[1].length)==g[1]&&(e=f,b=d.substr(g[0].length,d.length-g[1].length-g[0].length))}var i=this.paths[e];return b&&(i=i.replace("*",b)),h&&(i=i.replace(/#/g,"%23")),c(this.baseURL,i)},enumerable:!1,writable:!0}),$__Object$defineProperty(b.prototype,"fetch",{value:function(a){var b=this;return new j(function(d,e){f(c(b.baseURL,a.address),function(a){d(a)},e)})},enumerable:!1,writable:!0}),b}(__global.LoaderPolyfill),m=new l;if("object"==typeof exports&&(module.exports=m),__global.System=m,h&&"undefined"!=typeof document.getElementsByTagName){var n=document.getElementsByTagName("script");n=n[n.length-1],"complete"===document.readyState?setTimeout(e):document.addEventListener&&(document.addEventListener("DOMContentLoaded",d,!1),window.addEventListener("load",d,!1)),n.getAttribute("data-init")&&window[n.getAttribute("data-init")]()}}()}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); +!function(a){function b(a,b){var c;if(a instanceof Error){var c=new a.constructor(a.message,a.fileName,a.lineNumber);c.message=a.message+"\n "+b,c.stack=a.stack}else c=a+"\n "+b;return c}function c(){this._loader={loaderObj:this,resolve:void 0,fetch:void 0,translate:void 0,instantiate:void 0,registry:{}}}function d(a,b,c){return a.registry[b]||(a.registry[b]={key:b,state:y,metadata:c||{},fetch:void 0,translate:void 0,instantiate:void 0,fetchResolve:void 0,translateResolve:void 0,instantiateResolve:void 0,dependencies:void 0,module:void 0,declare:void 0,error:null})}function e(a,b,c){b.fetchResolve?b.fetchResolve(c):b.fetch=Promise.resolve(c),b.fetchResolve=void 0,b.state=Math.max(b.state,z)}function f(a,b,c){b.translateResolve?b.translateResolve(c):b.translate=Promise.resolve(c),b.translateResolve=void 0,b.state=Math.max(b.state,A)}function g(a,b,c,d){if(void 0===c)var e=r(a.loaderObj,b.key,d,b.metadata);else if("function"!=typeof c)throw new TypeError("Instantiate must return an execution function.");b.instantiateResolve?b.instantiateResolve(c):b.instantiate=Promise.resolve(c),b.instantiateResolve=void 0;var f=[];if(void 0===c){b.declare=e.declare;for(var g=0;gB?f:k(a,c,null,f).then(function(){f.state=Math.max(f.state,C);for(var e=[],g=0;gb;b++)if(this[b]===a)return b;return-1},w="object"==typeof exports&&"function"==typeof require,x="undefined"!=typeof process&&!!process.platform.match(/^win/),y=0,z=1,A=2,B=3,C=4,D=5;c.prototype["import"]=function(a,c){var d=this._loader,e={};return Promise.resolve().then(function(){return d.resolve.call(d.loaderObj,a,c,e)})["catch"](function(d){throw b(d,"Resolving "+a+(c?", "+c:""))}).then(function(a){return n(d,a,e)})},c.prototype.resolve=function(a,b,c){var d=this._loader;return d.resolve.call(d.loaderObj,a,b,c||{})},c.prototype.load=function(a,b,c){var d=this._loader;if("fetch"==b)return i(d,a,c);if("translate"==b)return j(d,a,c);if("instantiate"==b)return l(d,a,c).then(function(a){return a.module instanceof q?void 0:a.module});if("link"==b)return m(d,a,c).then(function(){});if(b&&"ready"!=b)throw new TypeError("Invalid stage "+b);return n(d,a,c).then(function(a){return a.module})},c.prototype.provide=function(a,b,c,g){var i=this._loader,j=d(i,a,g);if("fetch"==b){if(j.state>y)throw new TypeError(a+" has already been fetched.");e(i,j,c)}else if("translate"==b){if(j.state>z)throw new TypeError(a+" has already been translated.");f(i,j,c)}else{if("instantiate"!=b)throw new TypeError("Invalid stage "+b);if(j.state>A)throw new TypeError(a+" has already been instantiated.");e(i,j,void 0),f(i,j,void 0),j.translate.then(function(a){h(i,j,c,a)})}},c.prototype.error=function(){},c.prototype.lookup=function(a){var b=this._loader,c=b.registry[a];if(!c)return null;var d;return c.state==y?d="fetch":c.state==z?d="translate":c.state==A?d="instantiate":c.state==C?d="link":c.state==D&&(d="ready"),{state:d,metadata:c.metadata,fetch:c.fetch&&Promise.resolve(c.fetch),translate:c.translate&&Promise.resolve(c.translate),instantiate:c.instantiate&&Promise.resolve(c.instantiate),module:c.state==D&&(c.module instanceof q?c.module:c.module.module),error:c.error}},c.prototype.install=function(a,b){var c=this._loader;if(c.registry[a])throw new TypeError(a+" is already defined in the Loader registry.");if(!(b instanceof q))throw new TypeError("Install must provide a valid Module object.");c.registry[a]={key:a,state:D,metadata:metadata,fetch:void 0,translate:void 0,instantiate:void 0,dependencies:void 0,module:b,declare:void 0,error:null}},c.prototype.uninstall=function(a){var b=this._loader,c=b.registry[a];if(!c)throw new TypeError(a+" is not defined in the Loader registry.");if(c.state=C)throw new TypeError(a+" is already past linking.");delete b.registry[a]};var E=["resolve","fetch","translate","instantiate"];c.prototype.hook=function(a,b){var c=this._loader;if(-1==v.call(E,a))throw new TypeError(a+" is not a valid hook.");return b?void(c[a]=b):c[a]};var F,G;if("undefined"!=typeof XMLHttpRequest)G=function(a,b,c){function d(){b(f.responseText)}function e(){c(new Error("GET "+a+" "+f.status+" ("+f.statusText+")"))}var f=new XMLHttpRequest,g=!0,h=!1;if(!("withCredentials"in f)){var i=/^(\w+:)?\/\/([^\/]+)/.exec(a);i&&(g=i[2]===window.location.host,i[1]&&(g&=i[1]===window.location.protocol))}g||"undefined"==typeof XDomainRequest||(f=new XDomainRequest,f.onload=d,f.onerror=e,f.ontimeout=e,f.onprogress=function(){},f.timeout=0,h=!0),f.onreadystatechange=function(){4===f.readyState&&(200===f.status||0==f.status&&f.responseText?d():e())},f.open("GET",a,!0),h&&setTimeout(function(){f.send()},0),f.send(null)};else{if(!w)throw new TypeError("No environment fetch API available.");var H;G=function(a,b,c){if("file:///"!=a.substr(0,8))throw"Only file URLs of the form file: allowed running in Node.";H=H||require("fs"),a=x?a.replace(/\//g,"\\").substr(8):a.substr(7),H.readFile(a,function(a,d){a?c(a):b(d+"")})}}var I=function(){function a(a){if(b[a])return b[a];var c,d=0;for(var e in b){var f=e.split("*");if(f.length>2)throw new TypeError("Sites entry "+e+" contains multiple wildcards.");1!=f.length&&e.split("/").length>=d&&e.substr(0,f[0].length)===a.substr(0,f[0].length)&&e.substr(e.length-f[1].length)===f[1]&&(c=b[e].replace("*",a.substr(f[0].length,a.length-e.length+1)),d=e.split("/").length)}return c}c.call(this,arguments);var b={};this.site=function(a){for(var c in a)b[c]=a[c]},this.site.get=function(a){return b[a]},this.site.set=function(a,c){b[a]=c},this.site.has=function(a){return!!b[a]},this.site["delete"]=function(a){delete b[a]},this.hook("resolve",function(b,c){var d=a(b);return(d||!c)&&(c=J),new t(d||b,c).href}),this.hook("fetch",function(a){return new Promise(function(b,c){G(a,b,c)})}),this.hook("translate",function(a,b){return b}),this.hook("instantiate",s),this.transpiler&&setupTranspilers(this)};u.prototype=c.prototype,I.prototype=new u;var J;"undefined"!=typeof document&&document.baseURI?J=document.baseURI:"undefined"!=typeof document&&document.getElementsByTagName?(J=document.getElementsByTagName("base")[0],J=J&&J.href):"undefined"!=typeof location&&location.href&&(J=location.href),J?(J=J.split("#")[0].split("?")[0],J=J.substr(0,J.lastIndexOf("/")+1)):"undefined"!=typeof process&&process.cwd&&(J="file://"+(x?"/":"")+process.cwd()+"/",x&&(J=J.replace(/\\/g,"/"))),J=new t(J);var K;F=new I,F.constructor=I,function(b){K=b.Reflect||{},K.Loader=K.Loader||c,K.Module=K.Module||q,K.global=K.global||a,b.LoaderPolyfill=c,b.ModulePolyfill=q,b.Reflect=K,b.System=F}(w?exports:a)}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); //# sourceMappingURL=es6-module-loader.js.map \ No newline at end of file diff --git a/dist/es6-module-loader.js.map b/dist/es6-module-loader.js.map index 71451c8..819ded9 100644 --- a/dist/es6-module-loader.js.map +++ b/dist/es6-module-loader.js.map @@ -1 +1 @@ -{"version":3,"file":"es6-module-loader.js","sources":["es6-module-loader.src.js"],"names":["e","exports","module","define","amd","window","Promise","global","self","t","n","r","s","o","u","a","require","i","Error","f","call","length",1,"unhandledRejections","PromiseConstructor","../lib/Promise","../lib/decorators/unhandledRejection",2,"makePromise","Scheduler","async","asap","scheduler","factory","./Scheduler","./env","./makePromise",3,"this","_async","_running","_queue","_queueLen","_afterQueue","_afterQueueLen","drain","_drain","prototype","enqueue","task","run","afterQueue",4,"throwit","noop","setTimer","format","report","handled","reported","push","logError","id","formatError","value","unreport","indexOf","splice","logInfo","formatObject","x","tasks","running","flush","shift","localConsole","console","error","log","info","onPotentiallyUnhandledRejection","rejection","onPotentiallyUnhandledRejectionHandled","onFatalRejection","../env","../format",5,"isNode","process","nextTick","hasMutationObserver","MutationObserver","WebKitMutationObserver","initMutationObserver","scheduled","node","document","createTextNode","observe","characterData","data","MutationObs","capturedSetTimeout","setTimeout","ms","clearTimer","clearTimeout","vertxRequire","vertx","cancelTimer","runOnLoop","runOnContext",6,"stack","String","JSON","tryStringify","defaultValue","stringify",7,"environment","resolver","handler","_handler","Handler","init","promiseResolve","resolve","promiseReject","reason","reject","promiseNotify","notify","Pending","isPromise","Async","getHandler","Rejected","never","foreverPendingPromise","defer","begetFrom","parent","child","receiver","join","context","all","promises","traverseWith","snd","traverse","tryCatch2","tryMap","mapAt","resolved","traverseAt","settleAt","results","pending","become","Fulfilled","Array","maybeThenable","h","getHandlerMaybeThenable","state","fold","visitRemaining","start","markAsHandled","visit","_unreport","race","TypeError","runRace","getHandlerUntrusted","untrustedThen","then","Thenable","FailIfRejected","inheritedContext","createContext","consumers","thenable","AssimilateTask","errorId","_report","ReportTask","UnreportTask","cycle","ContinuationTask","continuation","ProgressTask","_then","tryAssimilate","Fold","z","c","to","failIfRejected","runContinuation1","next","enterContext","tryCatchReject","exitContext","runContinuation3","tryCatchReject3","runNotify","tryCatchReturn","b","thisArg","y","inherit","Parent","Child","objectCreate","constructor","initEmitRejection","emit","type","CustomEvent","hasCustomEvent","ev","detail","key","bubbles","cancelable","dispatchEvent","emitRejection","Object","create","proto","_defer","onFulfilled","onRejected","onProgress","p","_beget","chain","_traverse","_visitRemaining","when","fail","_state","fulfilled","rejected","progress","q","cont","foreverPendingHandler","_resolve","_reject","_notify","__global","__eval","__source","__load","eval","name","replace","message","load","address","$__Object$getPrototypeOf","getPrototypeOf","obj","__proto__","$__Object$defineProperty","defineProperty","prop","opt","get","$__Object$create","props","F","hasOwnProperty","createLoad","status","linkSets","dependencies","metadata","loadModule","loader","options","asyncStartLoadPartwayThrough","step","moduleName","moduleMetadata","moduleSource","source","moduleAddress","requestLoad","request","refererName","refererAddress","loaderObj","normalize","modules","l","loads","proceedToLocate","proceedToFetch","locate","proceedToTranslate","fetch","translate","instantiate","instantiateResult","undefined","anonCnt","isDeclarative","transpile","transpiled","curSystem","System","curRegister","register","deps","declare","depsList","execute","loadPromises","index","depLoad","concat","addLoadToLinkSet","updateLinkSetOnLoad","exc","exception","linkSetFailed","stepState","existingLoad","done","linkSet","createLinkSet","startingLoad","loadingCount","j","d","doLink","link","_newModule","evaluated","finishLoad","abrupt","addToError","failed","linkIndex","globalLoadsIndex","trace","depMap","forEach","dep","map","kind","loadIndex","buildLinkageGroups","groups","groupIndex","loadDep","loadDepGroupIndex","doDynamicExecute","linkError","Module","curGroupDeclarative","group","linkDeclarativeModule","getOrCreateModuleRecord","moduleRecords","importers","moduleObj","registryEntry","locked","importerModule","importerIndex","setters","depName","depModule","evaluateLoadedModule","doEnsureEvaluated","doExecute","seen","err","ensureEvaluated","preventExtensions","msg","Loader","_loader","importPromises","createImportPromise","promise","m","assert","item","thisLen","delete","has","import","sourcePromise","newModule","configurable","enumerable","set","Reflect","LoaderPolyfill","getTranspilerModule","globalName","default","g","__useDefault","traceurTranspile","traceur","traceurOptions","script","sourceMaps","filename","inputSourceMap","sourceMap","compiler","Compiler","doTraceurCompile","compile","babelTranspile","babel","babelOptions","code","ast","blacklist","transform","firstRun","transpiler","transpilerNormalized","curLoader","parseURI","url","match","href","protocol","authority","host","hostname","port","pathname","search","hash","removeDotSegments","input","output","pop","charAt","toAbsoluteURL","base","isWindows","slice","lastIndexOf","completed","removeEventListener","ready","scripts","getElementsByTagName","innerHTML","substr","fetchTextFromURL","isWorker","WorkerGlobalScope","isBrowser","platform","XMLHttpRequest","fulfill","xhr","responseText","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","send","fs","readFile","SystemLoader","$__super","split","baseURL","substring","cwd","paths","*","Function","parentName","segments","rel","dotdots","segment","normalizedParts","parentParts","writable","wildcard","pathMatch","pathParts","outPath","curScript","addEventListener","getAttribute"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"es6-module-loader.js","sources":["es6-module-loader.src.js"],"names":["__global","addToError","err","msg","newErr","Error","constructor","message","fileName","lineNumber","stack","Loader","this","_loader","loaderObj","resolve","undefined","fetch","translate","instantiate","registry","ensureRegistered","loader","key","metadata","state","FETCH","fetchResolve","translateResolve","instantiateResolve","dependencies","module","declare","error","fulfillFetch","entry","payload","Promise","Math","max","TRANSLATE","fulfillTranslate","source","INSTANTIATE","fulfillInstantiate","instance","registration","transpile","TypeError","deps","i","length","push","value","INSTANTIATE_ALL","loadTranspilerThenFulfillInstantiate","loadTranspiler","then","requestFetch","reject","READY","call","requestTranslate","requestInstantiate","requestInstantiateAll","LINK","depLoads","pair","depMeta","depKey","depEntry","all","requestLink","computeDependencyGraph","dep","doDynamicLink","declareModule","requestReady","Module","ensureModuleExecution","result","indexOf","e","descriptors","p","systemInstantiate","URL","url","baseURL","m","String","replace","match","RangeError","protocol","username","password","host","hostname","port","pathname","search","hash","base","flag","charAt","slice","lastIndexOf","output","pop","join","origin","href","LoaderProto","Array","prototype","item","thisLen","cjsMode","exports","require","isWindows","process","platform","name","referrer","load","stage","provide","lookup","install","uninstall","cancel","hooks","hook","System","fetchURI","XMLHttpRequest","fulfill","xhr","responseText","status","statusText","sameDomain","doTimeout","domainCheck","exec","window","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","setTimeout","send","fs","substr","readFile","data","SystemLoader","siteLookup","target","siteTable","curMatch","curMatchLen","wildcardParts","split","arguments","site","mappings","get","set","has","parentUrl","sitesUrl","transpiler","setupTranspilers","document","baseURI","getElementsByTagName","cwd","Reflect","global","LoaderPolyfill","ModulePolyfill","WorkerGlobalScope","self"],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6-module-loader.src.js b/dist/es6-module-loader.src.js index 1107211..c308549 100644 --- a/dist/es6-module-loader.src.js +++ b/dist/es6-module-loader.src.js @@ -1,2564 +1,715 @@ -!function(e){"object"==typeof exports?module.exports=e():"function"==typeof define&&define.amd?define(e):"undefined"!=typeof window?window.Promise=e():"undefined"!=typeof global?global.Promise=e():"undefined"!=typeof self&&(self.Promise=e())}(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o= 0) { - reported.splice(i, 1); - logInfo('Handled previous rejection [' + r.id + '] ' + format.formatObject(r.value)); - } - } - - function enqueue(f, x) { - tasks.push(f, x); - if(running === null) { - running = setTimer(flush, 0); - } - } - - function flush() { - running = null; - while(tasks.length > 0) { - tasks.shift()(tasks.shift()); - } - } - - return Promise; - }; - - function throwit(e) { - throw e; - } - - function noop() {} - -}); -}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); })); - -},{"../env":5,"../format":6}],5:[function(require,module,exports){ -/** @license MIT License (c) copyright 2010-2014 original author or authors */ -/** @author Brian Cavalier */ -/** @author John Hann */ - -/*global process,document,setTimeout,clearTimeout,MutationObserver,WebKitMutationObserver*/ -(function(define) { 'use strict'; -define(function(require) { - /*jshint maxcomplexity:6*/ - - // Sniff "best" async scheduling option - // Prefer process.nextTick or MutationObserver, then check for - // setTimeout, and finally vertx, since its the only env that doesn't - // have setTimeout - - var MutationObs; - var capturedSetTimeout = typeof setTimeout !== 'undefined' && setTimeout; - - // Default env - var setTimer = function(f, ms) { return setTimeout(f, ms); }; - var clearTimer = function(t) { return clearTimeout(t); }; - var asap = function (f) { return capturedSetTimeout(f, 0); }; - - // Detect specific env - if (isNode()) { // Node - asap = function (f) { return process.nextTick(f); }; - - } else if (MutationObs = hasMutationObserver()) { // Modern browser - asap = initMutationObserver(MutationObs); - - } else if (!capturedSetTimeout) { // vert.x - var vertxRequire = require; - var vertx = vertxRequire('vertx'); - setTimer = function (f, ms) { return vertx.setTimer(ms, f); }; - clearTimer = vertx.cancelTimer; - asap = vertx.runOnLoop || vertx.runOnContext; - } - - return { - setTimer: setTimer, - clearTimer: clearTimer, - asap: asap - }; - - function isNode () { - return typeof process !== 'undefined' && process !== null && - typeof process.nextTick === 'function'; - } - - function hasMutationObserver () { - return (typeof MutationObserver === 'function' && MutationObserver) || - (typeof WebKitMutationObserver === 'function' && WebKitMutationObserver); - } - - function initMutationObserver(MutationObserver) { - var scheduled; - var node = document.createTextNode(''); - var o = new MutationObserver(run); - o.observe(node, { characterData: true }); - - function run() { - var f = scheduled; - scheduled = void 0; - f(); - } - - var i = 0; - return function (f) { - scheduled = f; - node.data = (i ^= 1); - }; - } -}); -}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(require); })); - -},{}],6:[function(require,module,exports){ -/** @license MIT License (c) copyright 2010-2014 original author or authors */ -/** @author Brian Cavalier */ -/** @author John Hann */ - -(function(define) { 'use strict'; -define(function() { - - return { - formatError: formatError, - formatObject: formatObject, - tryStringify: tryStringify - }; - - /** - * Format an error into a string. If e is an Error and has a stack property, - * it's returned. Otherwise, e is formatted using formatObject, with a - * warning added about e not being a proper Error. - * @param {*} e - * @returns {String} formatted string, suitable for output to developers - */ - function formatError(e) { - var s = typeof e === 'object' && e !== null && e.stack ? e.stack : formatObject(e); - return e instanceof Error ? s : s + ' (WARNING: non-Error used)'; - } - - /** - * Format an object, detecting "plain" objects and running them through - * JSON.stringify if possible. - * @param {Object} o - * @returns {string} - */ - function formatObject(o) { - var s = String(o); - if(s === '[object Object]' && typeof JSON !== 'undefined') { - s = tryStringify(o, s); - } - return s; - } - - /** - * Try to return the result of JSON.stringify(x). If that fails, return - * defaultValue - * @param {*} x - * @param {*} defaultValue - * @returns {String|*} JSON.stringify(x) or defaultValue - */ - function tryStringify(x, defaultValue) { - try { - return JSON.stringify(x); - } catch(e) { - return defaultValue; - } - } - -}); -}(typeof define === 'function' && define.amd ? define : function(factory) { module.exports = factory(); })); - -},{}],7:[function(require,module,exports){ -/** @license MIT License (c) copyright 2010-2014 original author or authors */ -/** @author Brian Cavalier */ -/** @author John Hann */ - -(function(define) { 'use strict'; -define(function() { - - return function makePromise(environment) { - - var tasks = environment.scheduler; - var emitRejection = initEmitRejection(); - - var objectCreate = Object.create || - function(proto) { - function Child() {} - Child.prototype = proto; - return new Child(); - }; - - /** - * Create a promise whose fate is determined by resolver - * @constructor - * @returns {Promise} promise - * @name Promise - */ - function Promise(resolver, handler) { - this._handler = resolver === Handler ? handler : init(resolver); - } - - /** - * Run the supplied resolver - * @param resolver - * @returns {Pending} - */ - function init(resolver) { - var handler = new Pending(); - - try { - resolver(promiseResolve, promiseReject, promiseNotify); - } catch (e) { - promiseReject(e); - } - - return handler; - - /** - * Transition from pre-resolution state to post-resolution state, notifying - * all listeners of the ultimate fulfillment or rejection - * @param {*} x resolution value - */ - function promiseResolve (x) { - handler.resolve(x); - } - /** - * Reject this promise with reason, which will be used verbatim - * @param {Error|*} reason rejection reason, strongly suggested - * to be an Error type - */ - function promiseReject (reason) { - handler.reject(reason); - } - - /** - * @deprecated - * Issue a progress event, notifying all progress listeners - * @param {*} x progress event payload to pass to all listeners - */ - function promiseNotify (x) { - handler.notify(x); - } - } - - // Creation - - Promise.resolve = resolve; - Promise.reject = reject; - Promise.never = never; - - Promise._defer = defer; - Promise._handler = getHandler; - - /** - * Returns a trusted promise. If x is already a trusted promise, it is - * returned, otherwise returns a new trusted Promise which follows x. - * @param {*} x - * @return {Promise} promise - */ - function resolve(x) { - return isPromise(x) ? x - : new Promise(Handler, new Async(getHandler(x))); - } - - /** - * Return a reject promise with x as its reason (x is used verbatim) - * @param {*} x - * @returns {Promise} rejected promise - */ - function reject(x) { - return new Promise(Handler, new Async(new Rejected(x))); - } - - /** - * Return a promise that remains pending forever - * @returns {Promise} forever-pending promise. - */ - function never() { - return foreverPendingPromise; // Should be frozen - } - - /** - * Creates an internal {promise, resolver} pair - * @private - * @returns {Promise} - */ - function defer() { - return new Promise(Handler, new Pending()); - } - - // Transformation and flow control - - /** - * Transform this promise's fulfillment value, returning a new Promise - * for the transformed result. If the promise cannot be fulfilled, onRejected - * is called with the reason. onProgress *may* be called with updates toward - * this promise's fulfillment. - * @param {function=} onFulfilled fulfillment handler - * @param {function=} onRejected rejection handler - * @param {function=} onProgress @deprecated progress handler - * @return {Promise} new promise - */ - Promise.prototype.then = function(onFulfilled, onRejected, onProgress) { - var parent = this._handler; - var state = parent.join().state(); - - if ((typeof onFulfilled !== 'function' && state > 0) || - (typeof onRejected !== 'function' && state < 0)) { - // Short circuit: value will not change, simply share handler - return new this.constructor(Handler, parent); - } - - var p = this._beget(); - var child = p._handler; - - parent.chain(child, parent.receiver, onFulfilled, onRejected, onProgress); - - return p; - }; - - /** - * If this promise cannot be fulfilled due to an error, call onRejected to - * handle the error. Shortcut for .then(undefined, onRejected) - * @param {function?} onRejected - * @return {Promise} - */ - Promise.prototype['catch'] = function(onRejected) { - return this.then(void 0, onRejected); - }; - - /** - * Creates a new, pending promise of the same type as this promise - * @private - * @returns {Promise} - */ - Promise.prototype._beget = function() { - return begetFrom(this._handler, this.constructor); - }; - - function begetFrom(parent, Promise) { - var child = new Pending(parent.receiver, parent.join().context); - return new Promise(Handler, child); - } - - // Array combinators - - Promise.all = all; - Promise.race = race; - Promise._traverse = traverse; - - /** - * Return a promise that will fulfill when all promises in the - * input array have fulfilled, or will reject when one of the - * promises rejects. - * @param {array} promises array of promises - * @returns {Promise} promise for array of fulfillment values - */ - function all(promises) { - return traverseWith(snd, null, promises); - } - - /** - * Array> -> Promise> - * @private - * @param {function} f function to apply to each promise's value - * @param {Array} promises array of promises - * @returns {Promise} promise for transformed values - */ - function traverse(f, promises) { - return traverseWith(tryCatch2, f, promises); - } - - function traverseWith(tryMap, f, promises) { - var handler = typeof f === 'function' ? mapAt : settleAt; - - var resolver = new Pending(); - var pending = promises.length >>> 0; - var results = new Array(pending); - - for (var i = 0, x; i < promises.length && !resolver.resolved; ++i) { - x = promises[i]; - - if (x === void 0 && !(i in promises)) { - --pending; - continue; - } - - traverseAt(promises, handler, i, x, resolver); - } - - if(pending === 0) { - resolver.become(new Fulfilled(results)); - } - - return new Promise(Handler, resolver); - - function mapAt(i, x, resolver) { - if(!resolver.resolved) { - traverseAt(promises, settleAt, i, tryMap(f, x, i), resolver); - } - } - - function settleAt(i, x, resolver) { - results[i] = x; - if(--pending === 0) { - resolver.become(new Fulfilled(results)); - } - } - } - - function traverseAt(promises, handler, i, x, resolver) { - if (maybeThenable(x)) { - var h = getHandlerMaybeThenable(x); - var s = h.state(); - - if (s === 0) { - h.fold(handler, i, void 0, resolver); - } else if (s > 0) { - handler(i, h.value, resolver); - } else { - resolver.become(h); - visitRemaining(promises, i+1, h); - } - } else { - handler(i, x, resolver); - } - } - - Promise._visitRemaining = visitRemaining; - function visitRemaining(promises, start, handler) { - for(var i=start; i load contains linkSet'); - - if (load.linkSets.indexOf(linkSet) != -1) - console.assert(linkSet.loads.indexOf(load) != -1, 'load contains linkSet -> linkSet contains load'); - } + error: null + }); } - for (var i = 0; i < linkSets.length; i++) { - var linkSet = linkSets[i]; - for (var j = 0; j < linkSet.loads.length; j++) { - var load = linkSet.loads[j]; - - for (var k = 0; k < load.dependencies.length; k++) { - var depName = load.dependencies[k].value; - var depLoad; - for (var l = 0; l < loads.length; l++) { - if (loads[l].name != depName) - continue; - depLoad = loads[l]; - break; - } - - // loading records are allowed not to have their dependencies yet - // if (load.status != 'loading') - // console.assert(depLoad, 'depLoad found'); + // 4.1.2 inlined - // console.assert(linkSet.loads.indexOf(depLoad) != -1, 'linkset contains all dependencies'); - } - } + // 4.1.3 + function fulfillFetch(loader, entry, payload) { + if (entry.fetchResolve) + entry.fetchResolve(payload); + else + entry.fetch = Promise.resolve(payload); + + entry.fetchResolve = undefined; + entry.state = Math.max(entry.state, TRANSLATE); } -} */ + // 4.1.4 + function fulfillTranslate(loader, entry, source) { + if (entry.translateResolve) + entry.translateResolve(source); + else + entry.translate = Promise.resolve(source); + + entry.translateResolve = undefined; + entry.state = Math.max(entry.state, INSTANTIATE); + } + + // 4.1.5 + function fulfillInstantiate(loader, entry, instance, source) { + // 4.1.6 CommitInstantiated inlined + + // 4.1.7 Instantiation inlined + if (instance === undefined) + // defined in transpiler.js + var registration = transpile(loader.loaderObj, entry.key, source, entry.metadata); + else if (typeof instance !== 'function') + throw new TypeError('Instantiate must return an execution function.'); + + // we should really resolve instantiate with a Source Text Module Record + // but we don't have that thing here + // it's not used through the instantiate promise though, so it's ok + if (entry.instantiateResolve) + entry.instantiateResolve(instance); + else + entry.instantiate = Promise.resolve(instance); + + entry.instantiateResolve = undefined; -(function() { - var Promise = __global.Promise || require('when/es6-shim/Promise'); - if (__global.console) - console.assert = console.assert || function() {}; + var deps = []; - // IE8 support - var indexOf = Array.prototype.indexOf || function(item) { - for (var i = 0, thisLen = this.length; i < thisLen; i++) { - if (this[i] === item) { - return i; - } + if (instance === undefined) { + // adjusted to use custom transpile hook + // with the system register declare function + entry.declare = registration.declare; + + for (var i = 0; i < registration.deps.length; i++) + deps.push({ key: registration.deps[i], value: undefined }); } - return -1; - }; - var defineProperty = $__Object$defineProperty; - - // 15.2.3 - Runtime Semantics: Loader State - - // 15.2.3.11 - function createLoaderLoad(object) { - return { - // modules is an object for ES5 implementation - modules: {}, - loads: [], - loaderObj: object - }; - } - - // 15.2.3.2 Load Records and LoadRequest Objects - // 15.2.3.2.1 - function createLoad(name) { - return { - status: 'loading', - name: name, - linkSets: [], - dependencies: [], - metadata: {} - }; + entry.dependencies = deps; + entry.module = instance; + entry.state = Math.max(entry.state, INSTANTIATE_ALL); } - // 15.2.3.2.2 createLoadRequestObject, absorbed into calling functions - - // 15.2.4 - - // 15.2.4.1 - function loadModule(loader, name, options) { - return new Promise(asyncStartLoadPartwayThrough({ - step: options.address ? 'fetch' : 'locate', - loader: loader, - moduleName: name, - // allow metadata for import https://bugs.ecmascript.org/show_bug.cgi?id=3091 - moduleMetadata: options && options.metadata || {}, - moduleSource: options.source, - moduleAddress: options.address - })); + // adjusted asynchronous declarative instantiate fulfillment + // to load transpiler + function loadTranspilerThenFulfillInstantiate(loader, entry, instance, source) { + return Promise.resolve(instance === undefined && loadTranspiler(loader.loaderObj)).then(function() { + fulfillInstantiate(loader, entry, instance, source); + }); } - // 15.2.4.2 - function requestLoad(loader, request, refererName, refererAddress) { - // 15.2.4.2.1 CallNormalize - return new Promise(function(resolve, reject) { - resolve(loader.loaderObj.normalize(request, refererName, refererAddress)); - }) - // 15.2.4.2.2 GetOrCreateLoad - .then(function(name) { - var load; - if (loader.modules[name]) { - load = createLoad(name); - load.status = 'linked'; - // https://bugs.ecmascript.org/show_bug.cgi?id=2795 - load.module = loader.modules[name]; - return load; - } + // 4.2.1 + function requestFetch(loader, key, metadata, entry) { + entry = entry || ensureRegistered(loader, key, metadata); - for (var i = 0, l = loader.loads.length; i < l; i++) { - load = loader.loads[i]; - if (load.name != name) - continue; - console.assert(load.status == 'loading' || load.status == 'loaded', 'loading or loaded'); - return load; - } + if (entry.error) + return Promise.reject(entry.error); - load = createLoad(name); - loader.loads.push(load); + if (entry.state === READY) + return Promise.reject(new Error(key + ' cannot be fetched as it is already linked.')); - proceedToLocate(loader, load); + if (entry.fetch) + return entry.fetch; - return load; + Promise.resolve() + .then(function() { + return loader.fetch.call(loader.loaderObj, key, entry.metadata); + }) + .then(function(payload) { + // in turn calls fetchResolve + fulfillFetch(loader, entry, payload); + }, function(err) { + throw addToError(err, 'Fetching ' + key); + }) + ['catch'](function(err) { + entry.error = entry.error || err; + }) + .then(function() { + if (entry.error && entry.fetchResolve) + entry.fetchResolve(Promise.reject(entry.error)); }); - } - - // 15.2.4.3 - function proceedToLocate(loader, load) { - proceedToFetch(loader, load, - Promise.resolve() - // 15.2.4.3.1 CallLocate - .then(function() { - return loader.loaderObj.locate({ name: load.name, metadata: load.metadata }); - }) - ); - } - // 15.2.4.4 - function proceedToFetch(loader, load, p) { - proceedToTranslate(loader, load, - p - // 15.2.4.4.1 CallFetch - .then(function(address) { - // adjusted, see https://bugs.ecmascript.org/show_bug.cgi?id=2602 - if (load.status != 'loading') - return; - load.address = address; - - return loader.loaderObj.fetch({ name: load.name, metadata: load.metadata, address: address }); - }) - ); + return entry.fetch = new Promise(function(resolve) { + entry.fetchResolve = resolve; + }); } - var anonCnt = 0; + // 4.2.2 + function requestTranslate(loader, key, metadata, entry) { + entry = entry || ensureRegistered(loader, key, metadata); - // 15.2.4.5 - function proceedToTranslate(loader, load, p) { - p - // 15.2.4.5.1 CallTranslate - .then(function(source) { - if (load.status != 'loading') - return; + if (entry.error) + return Promise.reject(entry.error); - return Promise.resolve(loader.loaderObj.translate({ name: load.name, metadata: load.metadata, address: load.address, source: source })) + if (entry.state === READY) + return Promise.reject(new Error(key + ' cannot initiate translate as it is already linked.')); - // 15.2.4.5.2 CallInstantiate - .then(function(source) { - load.source = source; - return loader.loaderObj.instantiate({ name: load.name, metadata: load.metadata, address: load.address, source: source }); - }) + if (entry.translate) + return entry.translate; - // 15.2.4.5.3 InstantiateSucceeded - .then(function(instantiateResult) { - if (instantiateResult === undefined) { - load.address = load.address || ''; - - // instead of load.kind, use load.isDeclarative - load.isDeclarative = true; - return loader.loaderObj.transpile(load) - .then(function(transpiled) { - // Hijack System.register to set declare function - var curSystem = __global.System; - var curRegister = curSystem.register; - curSystem.register = function(name, deps, declare) { - if (typeof name != 'string') { - declare = deps; - deps = name; - } - // store the registered declaration as load.declare - // store the deps as load.deps - load.declare = declare; - load.depsList = deps; - } - __eval(transpiled, __global, load); - curSystem.register = curRegister; - }); - } - else if (typeof instantiateResult == 'object') { - load.depsList = instantiateResult.deps || []; - load.execute = instantiateResult.execute; - load.isDeclarative = false; - } - else - throw TypeError('Invalid instantiate return value'); - }) - // 15.2.4.6 ProcessLoadDependencies + requestFetch(loader, key, null, entry) + .then(function(payload) { + return Promise.resolve() .then(function() { - load.dependencies = []; - var depsList = load.depsList; - - var loadPromises = []; - for (var i = 0, l = depsList.length; i < l; i++) (function(request, index) { - loadPromises.push( - requestLoad(loader, request, load.name, load.address) - - // 15.2.4.6.1 AddDependencyLoad (load is parentLoad) - .then(function(depLoad) { - - // adjusted from spec to maintain dependency order - // this is due to the System.register internal implementation needs - load.dependencies[index] = { - key: request, - value: depLoad.name - }; - - if (depLoad.status != 'linked') { - var linkSets = load.linkSets.concat([]); - for (var i = 0, l = linkSets.length; i < l; i++) - addLoadToLinkSet(linkSets[i], depLoad); - } - - // console.log('AddDependencyLoad ' + depLoad.name + ' for ' + load.name); - // snapshot(loader); - }) - ); - })(depsList[i], i); - - return Promise.all(loadPromises); + return loader.translate.call(loader.loaderObj, key, payload, entry.metadata); }) - - // 15.2.4.6.2 LoadSucceeded - .then(function() { - // console.log('LoadSucceeded ' + load.name); - // snapshot(loader); - - console.assert(load.status == 'loading', 'is loading'); - - load.status = 'loaded'; - - var linkSets = load.linkSets.concat([]); - for (var i = 0, l = linkSets.length; i < l; i++) - updateLinkSetOnLoad(linkSets[i], load); + .then(function(source) { + // in turn calls translateResolve + fulfillTranslate(loader, entry, source); + }, function(err) { + throw addToError(err, 'Translating ' + key); }); }) - // 15.2.4.5.4 LoadFailed - ['catch'](function(exc) { - load.status = 'failed'; - load.exception = exc; - - var linkSets = load.linkSets.concat([]); - for (var i = 0, l = linkSets.length; i < l; i++) { - linkSetFailed(linkSets[i], load, exc); - } - - console.assert(load.linkSets.length == 0, 'linkSets not removed'); + ['catch'](function(err) { + entry.error = entry.error || err; + }) + .then(function() { + if (entry.error && entry.translateResolve) + entry.translateResolve(Promise.reject(entry.error)); }); - } - - // 15.2.4.7 PromiseOfStartLoadPartwayThrough absorbed into calling functions - - // 15.2.4.7.1 - function asyncStartLoadPartwayThrough(stepState) { - return function(resolve, reject) { - var loader = stepState.loader; - var name = stepState.moduleName; - var step = stepState.step; - - if (loader.modules[name]) - throw new TypeError('"' + name + '" already exists in the module table'); - - // adjusted to pick up existing loads - var existingLoad; - for (var i = 0, l = loader.loads.length; i < l; i++) { - if (loader.loads[i].name == name) { - existingLoad = loader.loads[i]; - - if(step == 'translate' && !existingLoad.source) { - existingLoad.address = stepState.moduleAddress; - proceedToTranslate(loader, existingLoad, Promise.resolve(stepState.moduleSource)); - } - - return existingLoad.linkSets[0].done.then(function() { - resolve(existingLoad); - }); - } - } - - var load = createLoad(name); - - load.metadata = stepState.moduleMetadata; - var linkSet = createLinkSet(loader, load); - - loader.loads.push(load); - - resolve(linkSet.done); - - if (step == 'locate') - proceedToLocate(loader, load); - - else if (step == 'fetch') - proceedToFetch(loader, load, Promise.resolve(stepState.moduleAddress)); - - else { - console.assert(step == 'translate', 'translate step'); - load.address = stepState.moduleAddress; - proceedToTranslate(loader, load, Promise.resolve(stepState.moduleSource)); - } - } - } - - // Declarative linking functions run through alternative implementation: - // 15.2.5.1.1 CreateModuleLinkageRecord not implemented - // 15.2.5.1.2 LookupExport not implemented - // 15.2.5.1.3 LookupModuleDependency not implemented - - // 15.2.5.2.1 - function createLinkSet(loader, startingLoad) { - var linkSet = { - loader: loader, - loads: [], - startingLoad: startingLoad, // added see spec bug https://bugs.ecmascript.org/show_bug.cgi?id=2995 - loadingCount: 0 - }; - linkSet.done = new Promise(function(resolve, reject) { - linkSet.resolve = resolve; - linkSet.reject = reject; + return entry.translate = new Promise(function(resolve) { + entry.translateResolve = resolve; }); - addLoadToLinkSet(linkSet, startingLoad); - return linkSet; } - // 15.2.5.2.2 - function addLoadToLinkSet(linkSet, load) { - 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++) - if (linkSet.loads[i] == load) - return; - - linkSet.loads.push(load); - load.linkSets.push(linkSet); - // adjustment, see https://bugs.ecmascript.org/show_bug.cgi?id=2603 - if (load.status != 'loaded') { - linkSet.loadingCount++; - } - - var loader = linkSet.loader; - - for (var i = 0, l = load.dependencies.length; i < l; i++) { - var name = load.dependencies[i].value; - - if (loader.modules[name]) - continue; + // 4.2.3 + function requestInstantiate(loader, key, metadata, entry) { + entry = entry || ensureRegistered(loader, key, metadata); + + if (entry.error) + return Promise.reject(entry.error); - for (var j = 0, d = loader.loads.length; j < d; j++) { - if (loader.loads[j].name != name) - continue; + if (entry.state === READY) + return Promise.reject(new Error(key + ' cannot instantiate as it is already linked.')); - addLoadToLinkSet(linkSet, loader.loads[j]); - break; - } - } - // console.log('add to linkset ' + load.name); - // snapshot(linkSet.loader); - } + if (entry.instantiate) + return entry.instantiate; - // linking errors can be generic or load-specific - // this is necessary for debugging info - function doLink(linkSet) { - var error = false; - try { - link(linkSet, function(load, exc) { - linkSetFailed(linkSet, load, exc); - error = true; + requestTranslate(loader, key, null, entry) + .then(function(source) { + return Promise.resolve() + .then(function() { + return loader.instantiate.call(loader.loaderObj, key, source, entry.metadata); + }) + .then(function(instance) { + return loadTranspilerThenFulfillInstantiate(loader, entry, instance, source); + }, function(err) { + throw addToError(err, 'Instantiating ' + key); }); - } - catch(e) { - linkSetFailed(linkSet, null, e); - error = true; - } - return error; - } - - // 15.2.5.2.3 - function updateLinkSetOnLoad(linkSet, load) { - // console.log('update linkset on load ' + load.name); - // snapshot(linkSet.loader); - - console.assert(load.status == 'loaded' || load.status == 'linked', 'loaded or linked'); - - linkSet.loadingCount--; - - if (linkSet.loadingCount > 0) - return; - - // adjusted for spec bug https://bugs.ecmascript.org/show_bug.cgi?id=2995 - var startingLoad = linkSet.startingLoad; - - // non-executing link variation for loader tracing - // on the server. Not in spec. - /***/ - if (linkSet.loader.loaderObj.execute === false) { - var loads = [].concat(linkSet.loads); - for (var i = 0, l = loads.length; i < l; i++) { - var load = loads[i]; - load.module = !load.isDeclarative ? { - module: _newModule({}) - } : { - name: load.name, - module: _newModule({}), - evaluated: true - }; - load.status = 'linked'; - finishLoad(linkSet.loader, load); - } - return linkSet.resolve(startingLoad); - } - /***/ - - var abrupt = doLink(linkSet); - - if (abrupt) - return; - - console.assert(linkSet.loads.length == 0, 'loads cleared'); + }) + ['catch'](function(err) { + entry.error = entry.error || err; + }) + .then(function() { + if (entry.error && entry.instantiateResolve) + entry.instantiateResolve(Promise.reject(entry.error)); + }); - linkSet.resolve(startingLoad); + return entry.instantiate = new Promise(function(resolve) { + entry.instantiateResolve = resolve; + }); } - // 15.2.5.2.4 - function linkSetFailed(linkSet, load, exc) { - var loader = linkSet.loader; - - if (linkSet.loads[0].name != load.name) - exc = addToError(exc, 'Error loading "' + load.name + '" from "' + linkSet.loads[0].name + '" at ' + (linkSet.loads[0].address || '') + '\n'); + // 4.2.4 + function requestInstantiateAll(loader, key, metadata, entry) { + entry = entry || ensureRegistered(loader, key, metadata); - exc = addToError(exc, 'Error loading "' + load.name + '" at ' + (load.address || '') + '\n'); + if (entry.state > INSTANTIATE_ALL) + return entry; - var loads = linkSet.loads.concat([]); - for (var i = 0, l = loads.length; i < l; i++) { - var load = loads[i]; + return requestInstantiate(loader, key, null, entry) + .then(function() { + entry.state = Math.max(entry.state, LINK); - // store all failed load records - loader.loaderObj.failed = loader.loaderObj.failed || []; - if (indexOf.call(loader.loaderObj.failed, load) == -1) - loader.loaderObj.failed.push(load); + var depLoads = []; + for (var i = 0; i < entry.dependencies.length; i++) (function(pair) { + // create dep meta object now, passed through into ensureRegister shortly + var depMeta = {}; + depLoads.push(Promise.resolve(loader.resolve.call(loader.loaderObj, pair.key, key, depMeta)) + .then(function(depKey) { + var depEntry = ensureRegistered(loader, depKey, depMeta); - var linkIndex = indexOf.call(load.linkSets, linkSet); - console.assert(linkIndex != -1, 'link not present'); - load.linkSets.splice(linkIndex, 1); - if (load.linkSets.length == 0) { - var globalLoadsIndex = indexOf.call(linkSet.loader.loads, load); - if (globalLoadsIndex != -1) - linkSet.loader.loads.splice(globalLoadsIndex, 1); - } - } - linkSet.reject(exc); - } + pair.value = depEntry; - // 15.2.5.2.5 - function finishLoad(loader, load) { - // add to global trace if tracing - if (loader.loaderObj.trace) { - if (!loader.loaderObj.loads) - loader.loaderObj.loads = {}; - var depMap = {}; - load.dependencies.forEach(function(dep) { - depMap[dep.key] = dep.value; + return requestInstantiateAll(loader, depKey, null, depEntry); + })); + })(entry.dependencies[i]); + return Promise.all(depLoads) + ['catch'](function(err) { + err = addToError(err, 'Loading ' + key); + entry.error = entry.error || err; + throw err; }); - loader.loaderObj.loads[load.name] = { - name: load.name, - deps: load.dependencies.map(function(dep){ return dep.key }), - depMap: depMap, - address: load.address, - metadata: load.metadata, - source: load.source, - kind: load.isDeclarative ? 'declarative' : 'dynamic' - }; - } - // if not anonymous, add to the module table - if (load.name) { - console.assert(!loader.modules[load.name], 'load not in module table'); - loader.modules[load.name] = load.module; - } - var loadIndex = indexOf.call(loader.loads, load); - if (loadIndex != -1) - loader.loads.splice(loadIndex, 1); - for (var i = 0, l = load.linkSets.length; i < l; i++) { - loadIndex = indexOf.call(load.linkSets[i].loads, load); - if (loadIndex != -1) - load.linkSets[i].loads.splice(loadIndex, 1); - } - load.linkSets.splice(0, load.linkSets.length); + }); } - // 15.2.5.3 Module Linking Groups - - // 15.2.5.3.2 BuildLinkageGroups alternative implementation - // Adjustments (also see https://bugs.ecmascript.org/show_bug.cgi?id=2755) - // 1. groups is an already-interleaved array of group kinds - // 2. load.groupIndex is set when this function runs - // 3. load.groupIndex is the interleaved index ie 0 declarative, 1 dynamic, 2 declarative, ... (or starting with dynamic) - function buildLinkageGroups(load, loads, groups) { - groups[load.groupIndex] = groups[load.groupIndex] || []; - - // if the load already has a group index and its in its group, its already been done - // this logic naturally handles cycles - if (indexOf.call(groups[load.groupIndex], load) != -1) - return; - - // now add it to the group to indicate its been seen - groups[load.groupIndex].push(load); - - for (var i = 0, l = loads.length; i < l; i++) { - var loadDep = loads[i]; + // 4.2.5 + function requestLink(loader, key, metadata, entry) { + entry = entry || ensureRegistered(loader, key, metadata); - // dependencies not found are already linked - for (var j = 0; j < load.dependencies.length; j++) { - if (loadDep.name == load.dependencies[j].value) { - // by definition all loads in linkset are loaded, not linked - console.assert(loadDep.status == 'loaded', 'Load in linkSet not loaded!'); + if (entry.error) + return Promise.reject(entry.error); - // if it is a group transition, the index of the dependency has gone up - // otherwise it is the same as the parent - var loadDepGroupIndex = load.groupIndex + (loadDep.isDeclarative != load.isDeclarative); + if (entry.state === READY) + return Promise.resolve(entry); - // the group index of an entry is always the maximum - if (loadDep.groupIndex === undefined || loadDep.groupIndex < loadDepGroupIndex) { + return requestInstantiateAll(loader, key, metadata, entry) + .then(function() { + // 5.2.1 Link inlined to reduce stack size + + // 5.2.2 dependencyGraph inlined + var deps = []; + computeDependencyGraph(entry, deps); - // if already in a group, remove from the old group - if (loadDep.groupIndex !== undefined) { - groups[loadDep.groupIndex].splice(indexOf.call(groups[loadDep.groupIndex], loadDep), 1); - - // if the old group is empty, then we have a mixed depndency cycle - if (groups[loadDep.groupIndex].length == 0) - throw new TypeError("Mixed dependency cycle detected"); - } - - loadDep.groupIndex = loadDepGroupIndex; + // dynamic link + for (var i = 0; i < deps.length; i++) { + var dep = deps[i]; + if (dep.state == LINK && typeof dep.module == 'function') { + doDynamicLink(dep); + // console.assert(dep.module instanceof Module) + dep.state = READY; } - - buildLinkageGroups(loadDep, loads, groups); - } - } - } - } - - function doDynamicExecute(linkSet, load, linkError) { - try { - var module = load.execute(); - } - catch(e) { - linkError(load, e); - return; - } - if (!module || !(module instanceof Module)) - linkError(load, new TypeError('Execution must define a Module instance')); - else - return module; - } - - // 15.2.5.4 - function link(linkSet, linkError) { - - var loader = linkSet.loader; - - if (!linkSet.loads.length) - return; - - // console.log('linking {' + logloads(linkSet.loads) + '}'); - // snapshot(loader); - - // 15.2.5.3.1 LinkageGroups alternative implementation - - // build all the groups - // because the first load represents the top of the tree - // for a given linkset, we can work down from there - var groups = []; - var startingLoad = linkSet.loads[0]; - startingLoad.groupIndex = 0; - buildLinkageGroups(startingLoad, linkSet.loads, groups); - - // determine the kind of the bottom group - var curGroupDeclarative = startingLoad.isDeclarative == groups.length % 2; - - // run through the groups from bottom to top - for (var i = groups.length - 1; i >= 0; i--) { - var group = groups[i]; - for (var j = 0; j < group.length; j++) { - var load = group[j]; - - // 15.2.5.5 LinkDeclarativeModules adjusted - if (curGroupDeclarative) { - linkDeclarativeModule(load, linkSet.loads, loader); - } - // 15.2.5.6 LinkDynamicModules adjusted - else { - var module = doDynamicExecute(linkSet, load, linkError); - if (!module) - return; - load.module = { - name: load.name, - module: module - }; - load.status = 'linked'; } - finishLoad(loader, load); - } - - // alternative current kind for next loop - curGroupDeclarative = !curGroupDeclarative; - } - } + // declarative link + // adjusted linking implementation + // to handle setter graph logic + if (entry.state == LINK) + // defined in declare.js + declareModule(entry); - // custom module records for binding graph - // store linking module records in a separate table - function getOrCreateModuleRecord(name, loader) { - var moduleRecords = loader.moduleRecords; - return moduleRecords[name] || (moduleRecords[name] = { - name: name, - dependencies: [], - module: new Module(), // start from an empty module and extend - importers: [] + // [assert entry's whole graph is in ready state] + return entry; + }) + ['catch'](function(err) { + entry.error = err; + throw err; }); } - // custom declarative linking function - function linkDeclarativeModule(load, loads, loader) { - if (load.module) - return; - - var module = load.module = getOrCreateModuleRecord(load.name, loader); - var moduleObj = load.module.module; - - var registryEntry = load.declare.call(__global, function(name, value) { - // NB This should be an Object.defineProperty, but that is very slow. - // By disaling this module write-protection we gain performance. - // It could be useful to allow an option to enable or disable this. - module.locked = true; - moduleObj[name] = value; - - for (var i = 0, l = module.importers.length; i < l; i++) { - var importerModule = module.importers[i]; - if (!importerModule.locked) { - var importerIndex = indexOf.call(importerModule.dependencies, module); - importerModule.setters[importerIndex](moduleObj); - } + // 4.2.6 + function requestReady(loader, key, metadata, entry) { + entry = entry || ensureRegistered(loader, key, metadata); + + return requestLink(loader, key, metadata, entry) + .then(function(entry) { + var module = entry.module; + // dynamic already executed + if (module instanceof Module) + return module; + + // ModuleRecord needs System register execute + // defined in declarative.js + var err = ensureModuleExecution(module, []); + if (err) { + err = addToError(err, 'Error evaluating ' + key); + entry.error = err; + throw err; } - - module.locked = false; - return value; + return module.module; + }, function(err) { + entry.error = entry.error || err; + throw err; }); - - // setup our setters and execution function - module.setters = registryEntry.setters; - module.execute = registryEntry.execute; - - // now link all the module dependencies - // amending the depMap as we go - for (var i = 0, l = load.dependencies.length; i < l; i++) { - var depName = load.dependencies[i].value; - var depModule = loader.modules[depName]; - - // if dependency not already in the module registry - // then try and link it now - if (!depModule) { - // get the dependency load record - for (var j = 0; j < loads.length; j++) { - if (loads[j].name != depName) - continue; - - // only link if already not already started linking (stops at circular / dynamic) - if (!loads[j].module) { - linkDeclarativeModule(loads[j], loads, loader); - depModule = loads[j].module; - } - // if circular, create the module record - else { - depModule = getOrCreateModuleRecord(depName, loader); - } - } - } - - // only declarative modules have dynamic bindings - if (depModule.importers) { - module.dependencies.push(depModule); - depModule.importers.push(module); - } - else { - // track dynamic records as null module records as already linked - module.dependencies.push(null); - } - - // run the setter for this dependency - if (module.setters[i]) - module.setters[i](depModule.module); - } - - load.status = 'linked'; } + // 5. Linking + // 5.2.1 inlined in 4.2.5 + // 5.2.2 inlined in 4.2.5 - // 15.2.5.5.1 LinkImports not implemented - // 15.2.5.7 ResolveExportEntries not implemented - // 15.2.5.8 ResolveExports not implemented - // 15.2.5.9 ResolveExport not implemented - // 15.2.5.10 ResolveImportEntries not implemented - - // 15.2.6.1 - function evaluateLoadedModule(loader, load) { - console.assert(load.status == 'linked', 'is linked ' + load.name); + // 5.2.3 + function computeDependencyGraph(entry, result) { + if (indexOf.call(result, entry) != -1) + return; - doEnsureEvaluated(load.module, [], loader); - return load.module.module; + result.push(entry); + for (var i = 0; i < entry.dependencies.length; i++) + computeDependencyGraph(entry.dependencies[i].value, result); } - /* - * Module Object non-exotic for ES5: - * - * module.module bound module object - * module.execute execution function for module - * module.dependencies list of module objects for dependencies - * See getOrCreateModuleRecord for all properties - * - */ - function doExecute(module) { + function doDynamicLink(dep) { + // may have had a previous error + if (dep.error) + throw dep.error; + try { - module.execute.call(__global); + dep.module = dep.module(); } catch(e) { - return e; + dep.error = e; + throw e; } } - // propogate execution errors - // see https://bugs.ecmascript.org/show_bug.cgi?id=2993 - function doEnsureEvaluated(module, seen, loader) { - var err = ensureEvaluated(module, seen, loader); - if (err) - throw err; - } - // 15.2.6.2 EnsureEvaluated adjusted - function ensureEvaluated(module, seen, loader) { - if (module.evaluated || !module.dependencies) - return; - - seen.push(module); - - var deps = module.dependencies; - var err; - - for (var i = 0, l = deps.length; i < l; i++) { - var dep = deps[i]; - // dynamic dependencies are empty in module.dependencies - // as they are already linked - if (!dep) - continue; - if (indexOf.call(seen, dep) == -1) { - err = ensureEvaluated(dep, seen, loader); - // stop on error, see https://bugs.ecmascript.org/show_bug.cgi?id=2996 - if (err) { - err = addToError(err, 'Error evaluating ' + dep.name + '\n'); - return err; - } - } - } - - if (module.failed) - return new Error('Module failed execution.'); - - if (module.evaluated) - return; - - module.evaluated = true; - err = doExecute(module); - if (err) { - module.failed = true; - } - else if (Object.preventExtensions) { - // spec variation - // we don't create a new module here because it was created and ammended - // we just disable further extensions instead - Object.preventExtensions(module.module); - } - - module.execute = undefined; - return err; - } + // 6. API - function addToError(err, msg) { - if (err instanceof Error) - err.message = msg + err.message; - else - err = msg + err; - return err; - } - - // 26.3 Loader - - // 26.3.1.1 - function Loader(options) { - if (typeof options != 'object') - throw new TypeError('Options must be an object'); - - if (options.normalize) - this.normalize = options.normalize; - if (options.locate) - this.locate = options.locate; - if (options.fetch) - this.fetch = options.fetch; - if (options.translate) - this.translate = options.translate; - if (options.instantiate) - this.instantiate = options.instantiate; - - this._loader = { - loaderObj: this, - loads: [], - modules: {}, - importPromises: {}, - moduleRecords: {} - }; - - // 26.3.3.6 - defineProperty(this, 'global', { - get: function() { - return __global; - } - }); - - // 26.3.3.13 realm not implemented - } - - function Module() {} - - // importPromises adds ability to import a module twice without error - https://bugs.ecmascript.org/show_bug.cgi?id=2601 - function createImportPromise(loader, name, promise) { - var importPromises = loader._loader.importPromises; - return importPromises[name] = promise.then(function(m) { - importPromises[name] = undefined; - return m; - }, function(e) { - importPromises[name] = undefined; - throw e; + // 6.1.1 + Loader.prototype['import'] = function(name, referrer) { + var loader = this._loader; + var metadata = {}; + return Promise.resolve() + .then(function() { + return loader.resolve.call(loader.loaderObj, name, referrer, metadata); + }) + ['catch'](function(err) { + throw addToError(err, 'Resolving ' + name + (referrer ? ', ' + referrer : '')); + }) + .then(function(key) { + return requestReady(loader, key, metadata); }); - } + }; - Loader.prototype = { - // 26.3.3.1 - constructor: Loader, - // 26.3.3.2 - define: function(name, source, options) { - // check if already defined - if (this._loader.importPromises[name]) - throw new TypeError('Module is already loading.'); - return createImportPromise(this, name, new Promise(asyncStartLoadPartwayThrough({ - step: 'translate', - loader: this._loader, - moduleName: name, - moduleMetadata: options && options.metadata || {}, - moduleSource: source, - moduleAddress: options && options.address - }))); - }, - // 26.3.3.3 - 'delete': function(name) { - var loader = this._loader; - delete loader.importPromises[name]; - delete loader.moduleRecords[name]; - return loader.modules[name] ? delete loader.modules[name] : false; - }, - // 26.3.3.4 entries not implemented - // 26.3.3.5 - get: function(key) { - if (!this._loader.modules[key]) - return; - doEnsureEvaluated(this._loader.modules[key], [], this); - return this._loader.modules[key].module; - }, - // 26.3.3.7 - has: function(name) { - return !!this._loader.modules[name]; - }, - // 26.3.3.8 - 'import': function(name, options) { - // run normalize first - var loaderObj = this; - - // added, see https://bugs.ecmascript.org/show_bug.cgi?id=2659 - return Promise.resolve(loaderObj.normalize(name, options && options.name, options && options.address)) - .then(function(name) { - var loader = loaderObj._loader; - - if (loader.modules[name]) { - doEnsureEvaluated(loader.modules[name], [], loader._loader); - return loader.modules[name].module; - } + // 6.2.1 + Loader.prototype.resolve = function(name, referrer, metadata) { + var loader = this._loader; + return loader.resolve.call(loader.loaderObj, name, referrer, metadata || {}); + }; - return loader.importPromises[name] || createImportPromise(loaderObj, name, - loadModule(loader, name, options || {}) - .then(function(load) { - delete loader.importPromises[name]; - return evaluateLoadedModule(loader, load); - })); + // 6.3.1 + // For eg ready, + Loader.prototype.load = function(key, stage, metadata) { + var loader = this._loader; + + if (stage == 'fetch') + return requestFetch(loader, key, metadata); + + else if (stage == 'translate') + return requestTranslate(loader, key, metadata); + + else if (stage == 'instantiate') + return requestInstantiateAll(loader, key, metadata) + .then(function(entry) { + if (!(entry.module instanceof Module)) + return entry.module; }); - }, - // 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); - } - return this._loader.importPromises[name] || createImportPromise(this, name, loadModule(this._loader, name, {})); - }, - // 26.3.3.11 - module: function(source, options) { - var load = createLoad(); - load.address = options && options.address; - var linkSet = createLinkSet(this._loader, load); - var sourcePromise = Promise.resolve(source); - var loader = this._loader; - var p = linkSet.done.then(function() { - return evaluateLoadedModule(loader, load); + + else if (stage == 'link') + return requestLink(loader, key, metadata).then(function() {}) + + else if (!stage || stage == 'ready') + return requestReady(loader, key, metadata) + .then(function(entry) { + // this is ok because we use plain modules throughout + return entry.module; }); - proceedToTranslate(loader, load, sourcePromise); - return p; - }, - // 26.3.3.12 - newModule: function (obj) { - if (typeof obj != 'object') - throw new TypeError('Expected object'); - - // we do this to be able to tell if a module is a module privately in ES5 - // by doing m instanceof Module - var m = new Module(); - - for (var key in obj) { - (function (key) { - defineProperty(m, key, { - configurable: false, - enumerable: true, - get: function () { - return obj[key]; - } - }); - })(key); - } - if (Object.preventExtensions) - Object.preventExtensions(m); - - return m; - }, - // 26.3.3.14 - set: function(name, module) { - if (!(module instanceof Module)) - throw new TypeError('Loader.set(' + name + ', module) must be a module'); - this._loader.modules[name] = { - module: module - }; - }, - // 26.3.3.15 values not implemented - // 26.3.3.16 @@iterator not implemented - // 26.3.3.17 @@toStringTag not implemented - - // 26.3.3.18.1 - normalize: function(name, referrerName, referrerAddress) { - return name; - }, - // 26.3.3.18.2 - locate: function(load) { - return load.name; - }, - // 26.3.3.18.3 - fetch: function(load) { - throw new TypeError('Fetch not implemented'); - }, - // 26.3.3.18.4 - translate: function(load) { - return load.source; - }, - // 26.3.3.18.5 - instantiate: function(load) { - } + else + throw new TypeError('Invalid stage ' + stage); }; - var _newModule = Loader.prototype.newModule; - - if (typeof exports === 'object') - module.exports = Loader; - - __global.Reflect = __global.Reflect || {}; - __global.Reflect.Loader = __global.Reflect.Loader || Loader; - __global.Reflect.global = __global.Reflect.global || __global; - __global.LoaderPolyfill = Loader; - -})(); - -/* - * Traceur and Babel transpile hook for Loader - */ -(function(Loader) { - var g = __global; - - function getTranspilerModule(loader, globalName) { - return loader.newModule({ 'default': g[globalName], __useDefault: true }); - } - var firstRun = true; - - // use Traceur by default - Loader.prototype.transpiler = 'traceur'; - - Loader.prototype.transpile = function(load) { - var self = this; - - // pick up Transpiler modules from existing globals on first run if set - if (firstRun) { - if (g.traceur && !self.has('traceur')) - self.set('traceur', getTranspilerModule(self, 'traceur')); - if (g.babel && !self.has('babel')) - self.set('babel', getTranspilerModule(self, 'babel')); - firstRun = false; + // 6.4.1 + // For eg fetch, , key = anon + Loader.prototype.provide = function(key, stage, value, metadata) { + var loader = this._loader; + + var entry = ensureRegistered(loader, key, metadata); + + if (stage == 'fetch') { + if (entry.state > FETCH) + throw new TypeError(key + ' has already been fetched.'); + fulfillFetch(loader, entry, value); + } + else if (stage == 'translate') { + if (entry.state > TRANSLATE) + throw new TypeError(key + ' has already been translated.'); + fulfillTranslate(loader, entry, value); + } + else if (stage == 'instantiate') { + if (entry.state > INSTANTIATE) + throw new TypeError(key + ' has already been instantiated.'); + fulfillFetch(loader, entry, undefined); + fulfillTranslate(loader, entry, undefined); + // NB error propogation + entry.translate.then(function(source) { + loadTranspilerThenFulfillInstantiate(loader, entry, value, source); + }); } - - return self['import'](self.transpiler).then(function(transpiler) { - if (transpiler.__useDefault) - transpiler = transpiler['default']; - return 'var __moduleAddress = "' + load.address + '";' + (transpiler.Compiler ? traceurTranspile : babelTranspile).call(self, load, transpiler); - }); + else + throw new TypeError('Invalid stage ' + stage); }; - Loader.prototype.instantiate = function(load) { - var self = this; - return Promise.resolve(self.normalize(self.transpiler)) - .then(function(transpilerNormalized) { - // load transpiler as a global (avoiding System clobbering) - if (load.name === transpilerNormalized) { - return { - deps: [], - execute: function() { - var curSystem = g.System; - var curLoader = g.Reflect.Loader; - // ensure not detected as CommonJS - __eval('(function(require,exports,module){' + load.source + '})();', g, load); - g.System = curSystem; - g.Reflect.Loader = curLoader; - return getTranspilerModule(self, load.name); - } - }; - } - }); + // 6.4.2 + // SPEC TODO + Loader.prototype.error = function(key, stage, value) {}; + + // 6.5.1 + Loader.prototype.lookup = function(key) { + var loader = this._loader; + + var entry = loader.registry[key]; + if (!entry) + return null; + + var state; + if (entry.state == FETCH) + state = 'fetch'; + else if (entry.state == TRANSLATE) + state = 'translate'; + else if (entry.state == INSTANTIATE) + state = 'instantiate'; + else if (entry.state == LINK) + state = 'link'; + else if (entry.state == READY) + state = 'ready'; + + return { + state: state, + metadata: entry.metadata, + fetch: entry.fetch && Promise.resolve(entry.fetch), + translate: entry.translate && Promise.resolve(entry.translate), + instantiate: entry.instantiate && Promise.resolve(entry.instantiate), + module: entry.state == READY && (entry.module instanceof Module ? entry.module : entry.module.module), + error: entry.error + }; }; - function traceurTranspile(load, traceur) { - var options = this.traceurOptions || {}; - options.modules = 'instantiate'; - options.script = false; - options.sourceMaps = 'inline'; - options.filename = load.address; - options.inputSourceMap = load.metadata.sourceMap; - options.moduleName = false; + // 6.5.2 + Loader.prototype.install = function(key, module) { + var loader = this._loader; - var compiler = new traceur.Compiler(options); - var source = doTraceurCompile(load.source, compiler, options.filename); + if (loader.registry[key]) + throw new TypeError(key + ' is already defined in the Loader registry.'); - // add "!eval" to end of Traceur sourceURL - // I believe this does something? - source += '!eval'; + if (!(module instanceof Module)) + throw new TypeError('Install must provide a valid Module object.'); - return source; - } - function doTraceurCompile(source, compiler, filename) { - try { - return compiler.compile(source, filename); - } - catch(e) { - // traceur throws an error array - throw e[0]; - } - } + loader.registry[key] = { + key: key, + state: READY, + metadata: metadata, - function babelTranspile(load, babel) { - var options = this.babelOptions || {}; - options.modules = 'system'; - options.sourceMap = 'inline'; - options.filename = load.address; - options.code = true; - options.ast = false; - - if (!options.blacklist) - options.blacklist = ['react']; + fetch: undefined, + translate: undefined, + instantiate: undefined, - var source = babel.transform(load.source, options).code; + dependencies: undefined, + module: module, + declare: undefined, + error: null + }; + }; - // add "!eval" to end of Babel sourceURL - // I believe this does something? - return source + '\n//# sourceURL=' + load.address + '!eval'; - } + // 6.5.3 + Loader.prototype.uninstall = function(key) { + var loader = this._loader; + var entry = loader.registry[key]; + if (!entry) + throw new TypeError(key + ' is not defined in the Loader registry.'); -})(__global.LoaderPolyfill);/* -********************************************************************************************* + if (entry.state < LINK) + throw new TypeError(key + ' is still loading.'); - System Loader Implementation + delete loader.registry[key]; + }; - - Implemented to https://github.com/jorendorff/js-loaders/blob/master/browser-loader.js + // 6.5.4 + Loader.prototype.cancel = function(key) { + var loader = this._loader; - - + Loader.prototype.load = function(key, stage, metadata) { + var loader = this._loader; + + if (stage == 'fetch') + return requestFetch(loader, key, metadata); + + else if (stage == 'translate') + return requestTranslate(loader, key, metadata); + + else if (stage == 'instantiate') + return requestInstantiateAll(loader, key, metadata) + .then(function(entry) { + if (!(entry.module instanceof Module)) + return entry.module; + }); + + else if (stage == 'link') + return requestLink(loader, key, metadata).then(function() {}) + + else if (!stage || stage == 'ready') + return requestReady(loader, key, metadata) + .then(function(entry) { + // this is ok because we use plain modules throughout + return entry.module; + }); + + else + throw new TypeError('Invalid stage ' + stage); + }; + + // No longer in spec + // For eg fetch, , key = anon + Loader.prototype.provide = function(key, stage, value, metadata) { + var loader = this._loader; + + var entry = ensureRegistered(loader, key, metadata); + + if (stage == 'fetch') { + if (entry.state > FETCH) + throw new TypeError(key + ' has already been fetched.'); + fulfillFetch(loader, entry, value); + } + else if (stage == 'translate') { + if (entry.state > TRANSLATE) + throw new TypeError(key + ' has already been translated.'); + fulfillTranslate(loader, entry, value); + } + else if (stage == 'instantiate') { + if (entry.state > INSTANTIATE) + throw new TypeError(key + ' has already been instantiated.'); + fulfillFetch(loader, entry, undefined); + fulfillTranslate(loader, entry, undefined); + // NB error propogation + entry.translate.then(function(source) { + loadTranspilerThenFulfillInstantiate(loader, entry, value, source); + }); + } + else + throw new TypeError('Invalid stage ' + stage); + }; + + // TODO: This has been moved to Registry.prototype.lookup (4.4.3) + Loader.prototype.lookup = function(key) { + var loader = this._loader; + + var entry = loader.registry[key]; + if (!entry) + return null; + + var state; + if (entry.state == FETCH) + state = 'fetch'; + else if (entry.state == TRANSLATE) + state = 'translate'; + else if (entry.state == INSTANTIATE) + state = 'instantiate'; + else if (entry.state == LINK) + state = 'link'; + else if (entry.state == READY) + state = 'ready'; + + return { + state: state, + metadata: entry.metadata, + fetch: entry.fetch && Promise.resolve(entry.fetch), + translate: entry.translate && Promise.resolve(entry.translate), + instantiate: entry.instantiate && Promise.resolve(entry.instantiate), + module: entry.state == READY && (entry.module instanceof Module ? entry.module : entry.module.module), + error: entry.error + }; + }; + + // TODO: this has been moved to Registry.prototype.install (4.4.4) + Loader.prototype.install = function(key, module) { + var loader = this._loader; + + if (loader.registry[key]) + throw new TypeError(key + ' is already defined in the Loader registry.'); + + if (!(module instanceof Module)) + throw new TypeError('Install must provide a valid Module object.'); + + loader.registry[key] = { + key: key, + state: READY, + metadata: metadata, + + fetch: undefined, + translate: undefined, + instantiate: undefined, + + dependencies: undefined, + module: module, + declare: undefined, + error: null + }; + }; + + // TODO: this has been moved to Registry.prototype.uninstall (4.4.5) + Loader.prototype.uninstall = function(key) { + var loader = this._loader; + + var entry = loader.registry[key]; + if (!entry) + throw new TypeError(key + ' is not defined in the Loader registry.'); + + if (entry.state < LINK) + throw new TypeError(key + ' is still loading.'); + + delete loader.registry[key]; + }; + + // TODO: this has been moved to Registry.prototype.cancel (4.4.6) + Loader.prototype.cancel = function(key) { + var loader = this._loader; + + var entry = loader.registry[key]; + if (!entry) + throw new TypeError(key + ' does not exist.'); + + if (entry.state >= LINK) + throw new TypeError(key + ' is already past linking.'); + + delete loader.registry[key]; + }; + + // TODO: the Loader no longer has the hook property + // loader.hook('resolve') -> returns resolve hook + // loader.hook('resolve', fn) -> sets resolve hook + var hooks = ['resolve', 'fetch', 'translate', 'instantiate']; + Loader.prototype.hook = function(name, value) { + var loader = this._loader; + if (indexOf.call(hooks, name) == -1) + throw new TypeError(name + ' is not a valid hook.'); + if (value) + loader[name] = value; + else + return loader[name]; + }; + + // 4. Registry Objects + + // 5. Loading + + // 5.1.1 function ensureRegistered(loader, key, metadata) { return loader.registry[key] || (loader.registry[key] = { key: key, @@ -59,9 +244,9 @@ }); } - // 4.1.2 inlined + // 5.1.2 inlined - // 4.1.3 + // 5.1.3 function fulfillFetch(loader, entry, payload) { if (entry.fetchResolve) entry.fetchResolve(payload); @@ -72,7 +257,7 @@ entry.state = Math.max(entry.state, TRANSLATE); } - // 4.1.4 + // 5.1.4 function fulfillTranslate(loader, entry, source) { if (entry.translateResolve) entry.translateResolve(source); @@ -83,11 +268,11 @@ entry.state = Math.max(entry.state, INSTANTIATE); } - // 4.1.5 + // 5.1.5 function fulfillInstantiate(loader, entry, instance, source) { - // 4.1.6 CommitInstantiated inlined + // 5.1.6 CommitInstantiated inlined - // 4.1.7 Instantiation inlined + // 5.1.7 Instantiation inlined if (instance === undefined) // defined in transpiler.js var registration = transpile(loader.loaderObj, entry.key, source, entry.metadata); @@ -128,7 +313,7 @@ }); } - // 4.2.1 + // 5.2.1 function requestFetch(loader, key, metadata, entry) { entry = entry || ensureRegistered(loader, key, metadata); @@ -164,7 +349,7 @@ }); } - // 4.2.2 + // 5.2.2 function requestTranslate(loader, key, metadata, entry) { entry = entry || ensureRegistered(loader, key, metadata); @@ -203,7 +388,7 @@ }); } - // 4.2.3 + // 5.2.3 function requestInstantiate(loader, key, metadata, entry) { entry = entry || ensureRegistered(loader, key, metadata); @@ -241,7 +426,7 @@ }); } - // 4.2.4 + // 5.2.4 function requestInstantiateAll(loader, key, metadata, entry) { entry = entry || ensureRegistered(loader, key, metadata); @@ -274,7 +459,7 @@ }); } - // 4.2.5 + // 5.2.5 function requestLink(loader, key, metadata, entry) { entry = entry || ensureRegistered(loader, key, metadata); @@ -318,7 +503,7 @@ }); } - // 4.2.6 + // 5.2.6 function requestReady(loader, key, metadata, entry) { entry = entry || ensureRegistered(loader, key, metadata); @@ -344,12 +529,12 @@ }); } - // 5. Linking + // 6. Linking - // 5.2.1 inlined in 4.2.5 - // 5.2.2 inlined in 4.2.5 + // 6.2.1 inlined in 5.2.5 + // 6.2.2 inlined in 5.2.5 - // 5.2.3 + // 6.2.3 function computeDependencyGraph(entry, result) { if (indexOf.call(result, entry) != -1) return; @@ -373,197 +558,10 @@ } } - // 6. API - - // 6.1.1 - Loader.prototype['import'] = function(name, referrer) { - var loader = this._loader; - var metadata = {}; - return Promise.resolve() - .then(function() { - return loader.resolve.call(loader.loaderObj, name, referrer, metadata); - }) - ['catch'](function(err) { - throw addToError(err, 'Resolving ' + name + (referrer ? ', ' + referrer : '')); - }) - .then(function(key) { - return requestReady(loader, key, metadata); - }); - }; - - // 6.2.1 - Loader.prototype.resolve = function(name, referrer, metadata) { - var loader = this._loader; - return loader.resolve.call(loader.loaderObj, name, referrer, metadata || {}); - }; - - // 6.3.1 - // For eg ready, - Loader.prototype.load = function(key, stage, metadata) { - var loader = this._loader; - - if (stage == 'fetch') - return requestFetch(loader, key, metadata); - - else if (stage == 'translate') - return requestTranslate(loader, key, metadata); - - else if (stage == 'instantiate') - return requestInstantiateAll(loader, key, metadata) - .then(function(entry) { - if (!(entry.module instanceof Module)) - return entry.module; - }); - - else if (stage == 'link') - return requestLink(loader, key, metadata).then(function() {}) - - else if (!stage || stage == 'ready') - return requestReady(loader, key, metadata) - .then(function(entry) { - // this is ok because we use plain modules throughout - return entry.module; - }); - - else - throw new TypeError('Invalid stage ' + stage); - }; - - // 6.4.1 - // For eg fetch, , key = anon - Loader.prototype.provide = function(key, stage, value, metadata) { - var loader = this._loader; - - var entry = ensureRegistered(loader, key, metadata); - - if (stage == 'fetch') { - if (entry.state > FETCH) - throw new TypeError(key + ' has already been fetched.'); - fulfillFetch(loader, entry, value); - } - else if (stage == 'translate') { - if (entry.state > TRANSLATE) - throw new TypeError(key + ' has already been translated.'); - fulfillTranslate(loader, entry, value); - } - else if (stage == 'instantiate') { - if (entry.state > INSTANTIATE) - throw new TypeError(key + ' has already been instantiated.'); - fulfillFetch(loader, entry, undefined); - fulfillTranslate(loader, entry, undefined); - // NB error propogation - entry.translate.then(function(source) { - loadTranspilerThenFulfillInstantiate(loader, entry, value, source); - }); - } - else - throw new TypeError('Invalid stage ' + stage); - }; - - // 6.4.2 - // SPEC TODO - Loader.prototype.error = function(key, stage, value) {}; - - // 6.5.1 - Loader.prototype.lookup = function(key) { - var loader = this._loader; - - var entry = loader.registry[key]; - if (!entry) - return null; - - var state; - if (entry.state == FETCH) - state = 'fetch'; - else if (entry.state == TRANSLATE) - state = 'translate'; - else if (entry.state == INSTANTIATE) - state = 'instantiate'; - else if (entry.state == LINK) - state = 'link'; - else if (entry.state == READY) - state = 'ready'; - - return { - state: state, - metadata: entry.metadata, - fetch: entry.fetch && Promise.resolve(entry.fetch), - translate: entry.translate && Promise.resolve(entry.translate), - instantiate: entry.instantiate && Promise.resolve(entry.instantiate), - module: entry.state == READY && (entry.module instanceof Module ? entry.module : entry.module.module), - error: entry.error - }; - }; - - // 6.5.2 - Loader.prototype.install = function(key, module) { - var loader = this._loader; - - if (loader.registry[key]) - throw new TypeError(key + ' is already defined in the Loader registry.'); - - if (!(module instanceof Module)) - throw new TypeError('Install must provide a valid Module object.'); - - loader.registry[key] = { - key: key, - state: READY, - metadata: metadata, - - fetch: undefined, - translate: undefined, - instantiate: undefined, - - dependencies: undefined, - module: module, - declare: undefined, - error: null - }; - }; - - // 6.5.3 - Loader.prototype.uninstall = function(key) { - var loader = this._loader; - - var entry = loader.registry[key]; - if (!entry) - throw new TypeError(key + ' is not defined in the Loader registry.'); - - if (entry.state < LINK) - throw new TypeError(key + ' is still loading.'); - - delete loader.registry[key]; - }; - - // 6.5.4 - Loader.prototype.cancel = function(key) { - var loader = this._loader; - var entry = loader.registry[key]; - if (!entry) - throw new TypeError(key + ' does not exist.'); - - if (entry.state >= LINK) - throw new TypeError(key + ' is already past linking.'); - - delete loader.registry[key]; - }; - - // 6.6.1 - // loader.hook('resolve') -> returns resolve hook - // loader.hook('resolve', fn) -> sets resolve hook - var hooks = ['resolve', 'fetch', 'translate', 'instantiate']; - Loader.prototype.hook = function(name, value) { - var loader = this._loader; - if (indexOf.call(hooks, name) == -1) - throw new TypeError(name + ' is not a valid hook.'); - if (value) - loader[name] = value; - else - return loader[name]; - }; + // 7. Module Objects - // 6.7 Module Reflection + // 7.3 Module Reflection // plain user-facing module object function Module(descriptors, executor, evaluate) { From 676797c5aa8c8d781893305be02083736be14234 Mon Sep 17 00:00:00 2001 From: Joel Denning Date: Wed, 7 Oct 2015 22:27:18 -0600 Subject: [PATCH 219/482] Started work on Registry constructor, including making instances iterable --- src/loader.js | 32 ++++++++++++++++++++++++++++++++ src/wrapper-end.js | 1 + test/registry.spec.js | 38 ++++++++++++++++++++++++++++++++++++++ 3 files changed, 71 insertions(+) create mode 100644 test/registry.spec.js diff --git a/src/loader.js b/src/loader.js index a191eee..a0fb7e7 100644 --- a/src/loader.js +++ b/src/loader.js @@ -216,6 +216,38 @@ }; // 4. Registry Objects + + // 4.2.1 + // For now, registry objects are a work in progress that don't fully integrate into the rest of the code base + function Registry(loader) { + if (!this.constructor) + throw new TypeError('The Registry constructor must be called with "new"'); + if (typeof loader !== 'object') + throw new TypeError('The Registry constructor must be called with a loader object'); + this._registry = { + registryData: [], + loader: loader + } + //4.4.2 + if (__global.Symbol && __global.Symbol.iterator) { + var instance = this; + this[__global.Symbol.iterator] = function() { + var registryEntryIndex = 0; + return { + next: function() { + if (registryEntryIndex < instance._registry.registryData.length - 1) { + return { + value: instance._registry.registryData[registryEntryIndex++], + done: false + } + } else { + return { done: true }; + } + } + }; + } + } + } // 5. Loading diff --git a/src/wrapper-end.js b/src/wrapper-end.js index f1350b4..019ac77 100644 --- a/src/wrapper-end.js +++ b/src/wrapper-end.js @@ -18,6 +18,7 @@ exports.ModulePolyfill = Module; exports.Reflect = Reflect; exports.System = System; + exports.Registry = Registry; })(cjsMode ? exports : __global); diff --git a/test/registry.spec.js b/test/registry.spec.js new file mode 100644 index 0000000..2ef38d8 --- /dev/null +++ b/test/registry.spec.js @@ -0,0 +1,38 @@ +describe('Registry', function () { + + describe('constructor', function () { + + it('should fail if not called with new', function () { + expect(Registry).to.throwException(); + }); + + it('should fail if not called with a loader object', function() { + expect(function() { new Registry(undefined) }).to.throwException(); + expect(function() { new Registry('string') }).to.throwException(); + expect(function() { new Registry(0) }).to.throwException(); + expect(function() { new Registry(function(){}) }).to.throwException(); + + //doesn't throw + new Registry({}); + }); + + }); + + describe('instance iteration', function() { + + it('should be iterable', function () { + var registry = new Registry({}); + registry._registry.registryData.push({ key: 'module1', entry: {} }); + registry._registry.registryData.push({ key: 'module2', entry: {} }); + + var index = 0; + for (var registryEntry of registry) { + expect(registryEntry).to.be(registry._registry.registryData[index++]); + } + + expect(index).to.be(registry._registry.registryData.length - 1); + }); + + }); + +}); From d8cfa4a71039112baabc5a35a0f5b34812155b6a Mon Sep 17 00:00:00 2001 From: Joel Denning Date: Thu, 8 Oct 2015 19:33:32 -0600 Subject: [PATCH 220/482] Addressing Guy's feedback --- karma.conf.js | 2 ++ package.json | 1 + src/loader.js | 16 ++++++++++------ 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/karma.conf.js b/karma.conf.js index be17de7..f17978e 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -41,6 +41,8 @@ module.exports = function(config) { [options.polyfill ? 'node_modules/when/es6-shim/Promise.js' : ''], + 'node_modules/core-js/client/core.js', + 'dist/es6-module-loader-dev.src.js', 'test/_browser.js', diff --git a/package.json b/package.json index 7497b6b..80eacb8 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,7 @@ ], "devDependencies": { "babel-core": "^4.7.16", + "core-js": "^1.2.1", "expect.js": "^0.3.1", "gesalakacula": "^1.0.0", "grunt": "~0.4.1", diff --git a/src/loader.js b/src/loader.js index a0fb7e7..608d156 100644 --- a/src/loader.js +++ b/src/loader.js @@ -227,8 +227,8 @@ this._registry = { registryData: [], loader: loader - } - //4.4.2 + }; + // 4.4.2 if (__global.Symbol && __global.Symbol.iterator) { var instance = this; this[__global.Symbol.iterator] = function() { @@ -239,13 +239,17 @@ return { value: instance._registry.registryData[registryEntryIndex++], done: false - } - } else { - return { done: true }; + }; + } + else { + return { + value: undefined, + done: true + }; } } }; - } + }; } } From e20a5a920b0e9cd50a015dad3250b601389cc212 Mon Sep 17 00:00:00 2001 From: Joel Denning Date: Fri, 9 Oct 2015 11:08:20 -0600 Subject: [PATCH 221/482] Adding travis/sauce-labs/karma configuration for supporting tests that use the native iterator --- .gitignore | 1 + .travis.yml | 4 ++++ karma.conf.js | 17 ++++++++++++++--- test/registry.native-iterator-spec.js | 20 ++++++++++++++++++++ test/registry.spec.js | 10 ++++++---- 5 files changed, 45 insertions(+), 7 deletions(-) create mode 100644 test/registry.native-iterator-spec.js diff --git a/.gitignore b/.gitignore index 6954717..cadf828 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ tmp coverage .DS_Store npm-debug.log +.lvimrc diff --git a/.travis.yml b/.travis.yml index 85a71bf..2d85187 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,6 +19,10 @@ matrix: env: SAUCE_LABS=true PARSER="traceur" - node_js: "0.12" env: SAUCE_LABS=true PARSER="babel" +# - node_js: "0.12" +# env: SAUCE_LABS=true PARSER="traceur" OPTIONS="--native-iterator" +# - node_js: "0.12" +# env: SAUCE_LABS=true PARSER="babel" OPTIONS="--native-iterator" # - node_js: "0.10" # env: SAUCE_LABS=true PARSER="traceur" OPTIONS="--ie8" # - node_js: "0.10" diff --git a/karma.conf.js b/karma.conf.js index f17978e..1cae0ff 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -12,13 +12,13 @@ var geSaLaKaCuLa = require('gesalakacula'); var _argv = process.argv; var argv = require('minimist')(_argv.slice(_argv.indexOf('--') + 1)); - var options = extend({ travis: process.env.TRAVIS, polyfill: false, saucelabs: false, ie8: false, - coverage: false + coverage: false, + 'native-iterator': false }, argv); if (options.ie8) { @@ -41,7 +41,7 @@ module.exports = function(config) { [options.polyfill ? 'node_modules/when/es6-shim/Promise.js' : ''], - 'node_modules/core-js/client/core.js', + [options['native-iterator'] ? '': 'node_modules/core-js/client/core.js'], 'dist/es6-module-loader-dev.src.js', @@ -51,6 +51,8 @@ module.exports = function(config) { [!options.ie8 ? 'test/*.spec.js' : 'test/*.normalize.spec.js'], + [options['native-iterator'] ? 'test/*.native-iterator-spec.js' : ''], + {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}, @@ -125,6 +127,15 @@ module.exports = function(config) { }); } + if (options['native-iterator']) { + customLaunchers = geSaLaKaCuLa({ + Evergreen: { + firefox: 'dev', + chrome: 'dev' + } + }) + } + var now = new Date(); var buildData = options.travis ? { diff --git a/test/registry.native-iterator-spec.js b/test/registry.native-iterator-spec.js new file mode 100644 index 0000000..fc550f1 --- /dev/null +++ b/test/registry.native-iterator-spec.js @@ -0,0 +1,20 @@ +describe('native iterator tests', function() { + + describe('native iteration of Registry instances', function() { + + it('should be iterate over the registryData', function () { + var registry = new Registry({}); + registry._registry.registryData.push({ key: 'module1', entry: {} }); + registry._registry.registryData.push({ key: 'module2', entry: {} }); + + var index = 0; + for (var registryEntry of registry) { + expect(registryEntry).to.be(registry._registry.registryData[index++]); + } + + expect(index).to.be(registry._registry.registryData.length - 1); + }); + + }); + +}); diff --git a/test/registry.spec.js b/test/registry.spec.js index 2ef38d8..39a6859 100644 --- a/test/registry.spec.js +++ b/test/registry.spec.js @@ -18,16 +18,18 @@ describe('Registry', function () { }); - describe('instance iteration', function() { + describe('polyfilled iteration of instances', function() { - it('should be iterable', function () { + it('should iterate over the registryData', function () { var registry = new Registry({}); registry._registry.registryData.push({ key: 'module1', entry: {} }); registry._registry.registryData.push({ key: 'module2', entry: {} }); + var iter = registry[Symbol.iterator](); var index = 0; - for (var registryEntry of registry) { - expect(registryEntry).to.be(registry._registry.registryData[index++]); + var next; + while ( !(next = iter.next()).done ) { + expect(next.value).to.be(registry._registry.registryData[index++]); } expect(index).to.be(registry._registry.registryData.length - 1); From ec6d38bf4c76ab4501ca22779ccf1f291d18d74b Mon Sep 17 00:00:00 2001 From: guybedford Date: Sun, 1 Nov 2015 16:02:53 +0200 Subject: [PATCH 222/482] use valid platform for testing --- karma.conf.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/karma.conf.js b/karma.conf.js index 1cae0ff..a0ed1e6 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -129,7 +129,7 @@ module.exports = function(config) { if (options['native-iterator']) { customLaunchers = geSaLaKaCuLa({ - Evergreen: { + 'Windows 7': { firefox: 'dev', chrome: 'dev' } From 898b54b22bc76d1c28519f8f63d89292fb244d14 Mon Sep 17 00:00:00 2001 From: Joel Denning Date: Sun, 1 Nov 2015 09:28:45 -0700 Subject: [PATCH 223/482] Enabling native-iterator tests and fixing karma.conf --- .travis.yml | 8 ++++---- karma.conf.js | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.travis.yml b/.travis.yml index 2d85187..330e300 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,10 +19,10 @@ matrix: env: SAUCE_LABS=true PARSER="traceur" - node_js: "0.12" env: SAUCE_LABS=true PARSER="babel" -# - node_js: "0.12" -# env: SAUCE_LABS=true PARSER="traceur" OPTIONS="--native-iterator" -# - node_js: "0.12" -# env: SAUCE_LABS=true PARSER="babel" OPTIONS="--native-iterator" + - node_js: "0.12" + env: SAUCE_LABS=true PARSER="traceur" OPTIONS="--native-iterator" + - node_js: "0.12" + env: SAUCE_LABS=true PARSER="babel" OPTIONS="--native-iterator" # - node_js: "0.10" # env: SAUCE_LABS=true PARSER="traceur" OPTIONS="--ie8" # - node_js: "0.10" diff --git a/karma.conf.js b/karma.conf.js index 1cae0ff..a0ed1e6 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -129,7 +129,7 @@ module.exports = function(config) { if (options['native-iterator']) { customLaunchers = geSaLaKaCuLa({ - Evergreen: { + 'Windows 7': { firefox: 'dev', chrome: 'dev' } From fb88ecd7455cefab851d4470463b489f1665604c Mon Sep 17 00:00:00 2001 From: guybedford Date: Thu, 5 Nov 2015 18:36:01 +0200 Subject: [PATCH 224/482] test ie --- karma.conf.js | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/karma.conf.js b/karma.conf.js index a0ed1e6..29a0a3d 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -130,8 +130,7 @@ module.exports = function(config) { if (options['native-iterator']) { customLaunchers = geSaLaKaCuLa({ 'Windows 7': { - firefox: 'dev', - chrome: 'dev' + 'internet explorer': '11' } }) } From 7876ce7e2a0facc4415bc69f3c7af7a2f6143b42 Mon Sep 17 00:00:00 2001 From: guybedford Date: Thu, 5 Nov 2015 18:48:15 +0200 Subject: [PATCH 225/482] test firefox 42 --- karma.conf.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/karma.conf.js b/karma.conf.js index 29a0a3d..4c1405a 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -130,7 +130,7 @@ module.exports = function(config) { if (options['native-iterator']) { customLaunchers = geSaLaKaCuLa({ 'Windows 7': { - 'internet explorer': '11' + 'firefox': '41.0.2' } }) } From 69e99f30d4b93aba88705a2b3aa487cbe6308d76 Mon Sep 17 00:00:00 2001 From: guybedford Date: Thu, 5 Nov 2015 19:04:05 +0200 Subject: [PATCH 226/482] use exact firefox version --- karma.conf.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/karma.conf.js b/karma.conf.js index 4c1405a..e5ac08c 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -130,7 +130,7 @@ module.exports = function(config) { if (options['native-iterator']) { customLaunchers = geSaLaKaCuLa({ 'Windows 7': { - 'firefox': '41.0.2' + 'firefox': '41' } }) } From 143ca7510f5756e06fa899fedcac8551499896b0 Mon Sep 17 00:00:00 2001 From: Joel Denning Date: Fri, 6 Nov 2015 10:12:52 -0700 Subject: [PATCH 227/482] Removing Loader.prototype.install and Loader.prototype.lookup and putting them on the Registry.prototype --- src/loader.js | 117 +++++++++++++++++++++--------------------- test/registry.spec.js | 88 ++++++++++++++++++++++++++++++- 2 files changed, 146 insertions(+), 59 deletions(-) diff --git a/src/loader.js b/src/loader.js index 608d156..75439b2 100644 --- a/src/loader.js +++ b/src/loader.js @@ -116,63 +116,6 @@ throw new TypeError('Invalid stage ' + stage); }; - // TODO: This has been moved to Registry.prototype.lookup (4.4.3) - Loader.prototype.lookup = function(key) { - var loader = this._loader; - - var entry = loader.registry[key]; - if (!entry) - return null; - - var state; - if (entry.state == FETCH) - state = 'fetch'; - else if (entry.state == TRANSLATE) - state = 'translate'; - else if (entry.state == INSTANTIATE) - state = 'instantiate'; - else if (entry.state == LINK) - state = 'link'; - else if (entry.state == READY) - state = 'ready'; - - return { - state: state, - metadata: entry.metadata, - fetch: entry.fetch && Promise.resolve(entry.fetch), - translate: entry.translate && Promise.resolve(entry.translate), - instantiate: entry.instantiate && Promise.resolve(entry.instantiate), - module: entry.state == READY && (entry.module instanceof Module ? entry.module : entry.module.module), - error: entry.error - }; - }; - - // TODO: this has been moved to Registry.prototype.install (4.4.4) - Loader.prototype.install = function(key, module) { - var loader = this._loader; - - if (loader.registry[key]) - throw new TypeError(key + ' is already defined in the Loader registry.'); - - if (!(module instanceof Module)) - throw new TypeError('Install must provide a valid Module object.'); - - loader.registry[key] = { - key: key, - state: READY, - metadata: metadata, - - fetch: undefined, - translate: undefined, - instantiate: undefined, - - dependencies: undefined, - module: module, - declare: undefined, - error: null - }; - }; - // TODO: this has been moved to Registry.prototype.uninstall (4.4.5) Loader.prototype.uninstall = function(key) { var loader = this._loader; @@ -216,7 +159,36 @@ }; // 4. Registry Objects - + + // 4.1.1 + function getCurrentStage(entry) { + if (typeof entry !== 'object') + throw new TypeError('entry is not an object'); + return entry.pipeline[0]; + } + + // 4.1.4 + function getRegistryEntry(registry, key) { + if (typeof registry !== 'object') + throw new TypeError('registry is not an object'); + + var entry = registry._registry.registryData[key]; + if (!entry) + return null; + + var currentStage = getCurrentStage(entry); + var result = new Promise(function(resolve) { + resolve(currentStage.result); + }); + + return { + stage: currentStage.stage, + result: result, + module: currentStage.stage == 'ready' ? entry.module : undefined, + error: entry.error ? { value: entry.error } : null + }; + } + // 4.2.1 // For now, registry objects are a work in progress that don't fully integrate into the rest of the code base function Registry(loader) { @@ -253,6 +225,35 @@ } } + // 4.4.3 + Registry.prototype.lookup = function(key) { + return getRegistryEntry(this, key); + }; + + // 4.4.4 + Registry.prototype.install = function(key, module) { + if (typeof this !== 'object') + throw new TypeError('registry must be an object'); + if (this._registry.registryData[key]) + throw new TypeError('Module with key ' + key + ' already exists'); + if (!(module instanceof Module)) + throw new TypeError('module must be an instance of Module'); + + var result = new Promise(function(resolve) { + resolve(module); + }); + this._registry.registryData[key] = { + key: key, + pipeline: [{ + stage: 'ready', + result: result + }], + metadata: undefined, + dependencies: undefined, + module: module + }; + } + // 5. Loading // 5.1.1 diff --git a/test/registry.spec.js b/test/registry.spec.js index 39a6859..24b4d54 100644 --- a/test/registry.spec.js +++ b/test/registry.spec.js @@ -11,8 +11,9 @@ describe('Registry', function () { expect(function() { new Registry('string') }).to.throwException(); expect(function() { new Registry(0) }).to.throwException(); expect(function() { new Registry(function(){}) }).to.throwException(); + }); - //doesn't throw + it('should succeed if called with a loader object', function() { new Registry({}); }); @@ -33,6 +34,91 @@ describe('Registry', function () { } expect(index).to.be(registry._registry.registryData.length - 1); + + }); + + }); + + describe('install function', function() { + + var registry; + + beforeEach(function() { + registry = new Registry({}); + }); + + it('should fail if not called on a Registry object', function() { + expect(Registry.prototype.install).to.throwException(); + }); + + it('should fail if a module already exists with the given key', function() { + var key = 'existingKey'; + registry._registry.registryData[key] = new ModulePolyfill({}); + expect(function() { registry.install(key, new ModulePolyfill({})) }).to.throwException(); + }); + + it('should fail if the given module is not really a Module', function() { + expect(function() { registry.install('key', []) }).to.throwException(); + }); + + it('should add a new key value pair to registryData when it succeeds', function(done) { + var registeredModule = new ModulePolyfill({}); + registry.install('key', registeredModule); + expect(registry._registry.registryData['key'].key).to.equal('key'); + expect(registry._registry.registryData['key'].pipeline.length).to.equal(1); + expect(registry._registry.registryData['key'].metadata).to.be(undefined); + expect(registry._registry.registryData['key'].dependencies).to.be(undefined); + expect(registry._registry.registryData['key'].module).to.be(registeredModule); + expect(registry._registry.registryData['key'].pipeline[0].stage).to.equal('ready'); + registry._registry.registryData['key'].pipeline[0].result.then(function(module) { + expect(module).to.equal(registeredModule); + done(); + }); + }); + + }); + + describe('lookup function', function() { + + var registry; + + beforeEach(function() { + registry = new Registry({}); + }); + + it('throws if not called on a registry object', function() { + expect(Registry.prototype.lookup).to.throwException(); + }); + + it('returns null if there is no module for the given key', function() { + expect(registry.lookup('key')).to.be(null); + }); + + it('throws if the registry data is corrupted', function() { + registry._registry.registryData['key'] = "string that's not an entry"; + expect(function() { registry.lookup('key') }).to.throwException(); + }); + + it('returns the module if it is in a ready state', function() { + var module = new ModulePolyfill({}); + registry.install('key', module); + + var registryEntry = registry.lookup('key'); + expect(registryEntry.stage).to.equal('ready'); + expect(registryEntry.module).to.equal(module); + expect(registryEntry.error).to.be(null); + }); + + it('returns the entry\'s error if there is one', function() { + var module = new ModulePolyfill({}); + registry.install('key', module); + + registry._registry.registryData['key'].error = 'this is an error'; + registry._registry.registryData['key'].pipeline[0].stage = 'something went wrong'; + var registryEntry = registry.lookup('key'); + expect(registryEntry.stage).to.equal('something went wrong'); + expect(registryEntry.module).to.be(undefined); + expect(registryEntry.error.value).to.equal('this is an error'); }); }); From 92baae2257be44a7527e85bfa76ecc83e2e86474 Mon Sep 17 00:00:00 2001 From: Joel Denning Date: Fri, 6 Nov 2015 11:46:19 -0700 Subject: [PATCH 228/482] Remove unnecessary module instanceof Module check (not in spec) --- src/loader.js | 2 -- test/registry.spec.js | 4 ---- 2 files changed, 6 deletions(-) diff --git a/src/loader.js b/src/loader.js index 75439b2..2016199 100644 --- a/src/loader.js +++ b/src/loader.js @@ -236,8 +236,6 @@ throw new TypeError('registry must be an object'); if (this._registry.registryData[key]) throw new TypeError('Module with key ' + key + ' already exists'); - if (!(module instanceof Module)) - throw new TypeError('module must be an instance of Module'); var result = new Promise(function(resolve) { resolve(module); diff --git a/test/registry.spec.js b/test/registry.spec.js index 24b4d54..ae6f0db 100644 --- a/test/registry.spec.js +++ b/test/registry.spec.js @@ -57,10 +57,6 @@ describe('Registry', function () { expect(function() { registry.install(key, new ModulePolyfill({})) }).to.throwException(); }); - it('should fail if the given module is not really a Module', function() { - expect(function() { registry.install('key', []) }).to.throwException(); - }); - it('should add a new key value pair to registryData when it succeeds', function(done) { var registeredModule = new ModulePolyfill({}); registry.install('key', registeredModule); From 0a73505e0543b613400bf912eff6ac13f3707a8a Mon Sep 17 00:00:00 2001 From: Joel Denning Date: Sat, 14 Nov 2015 18:20:08 -0700 Subject: [PATCH 229/482] Moving uninstall and cancel functions to Registry prototype --- src/loader.js | 54 ++++++++++++++++++-------------------- test/registry.spec.js | 61 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+), 28 deletions(-) diff --git a/src/loader.js b/src/loader.js index 2016199..f43da8b 100644 --- a/src/loader.js +++ b/src/loader.js @@ -116,34 +116,6 @@ throw new TypeError('Invalid stage ' + stage); }; - // TODO: this has been moved to Registry.prototype.uninstall (4.4.5) - Loader.prototype.uninstall = function(key) { - var loader = this._loader; - - var entry = loader.registry[key]; - if (!entry) - throw new TypeError(key + ' is not defined in the Loader registry.'); - - if (entry.state < LINK) - throw new TypeError(key + ' is still loading.'); - - delete loader.registry[key]; - }; - - // TODO: this has been moved to Registry.prototype.cancel (4.4.6) - Loader.prototype.cancel = function(key) { - var loader = this._loader; - - var entry = loader.registry[key]; - if (!entry) - throw new TypeError(key + ' does not exist.'); - - if (entry.state >= LINK) - throw new TypeError(key + ' is already past linking.'); - - delete loader.registry[key]; - }; - // TODO: the Loader no longer has the hook property // loader.hook('resolve') -> returns resolve hook // loader.hook('resolve', fn) -> sets resolve hook @@ -252,6 +224,32 @@ }; } + // 4.4.5 + Registry.prototype.uninstall = function(key) { + if (typeof this !== 'object') + throw new TypeError('registry must be an object'); + var entry = this._registry.registryData[key]; + if (!entry) + throw new TypeError('Module with key ' + key + 'does not exist'); + var stageEntry = getCurrentStage(entry); + if (stageEntry.stage !== 'link' && stageEntry.stage !== 'ready') + throw new TypeError('Module is still loading'); + delete this._registry.registryData[key]; + } + + // 4.4.6 + Registry.prototype.cancel = function(key) { + if (typeof this !== 'object') + throw new TypeError('registry must be an object'); + var entry = this._registry.registryData[key]; + if (!entry) + throw new TypeError('Module with key ' + key + ' does not exist'); + var stageEntry = getCurrentStage(entry); + if (stageEntry.stage === 'link' || stageEntry.stage === 'ready') + throw new TypeError('Module with key ' + key + ' is already done linking'); + delete this._registry.registryData[key]; + } + // 5. Loading // 5.1.1 diff --git a/test/registry.spec.js b/test/registry.spec.js index ae6f0db..0e1df87 100644 --- a/test/registry.spec.js +++ b/test/registry.spec.js @@ -119,4 +119,65 @@ describe('Registry', function () { }); + describe('uninstall function', function() { + + var registry; + + beforeEach(function() { + registry = new Registry({}); + }); + + it('throws if called on a context that\'s not an object', function() { + expect(function() { Registry.prototype.uninstall('not an object') }).to.throwException(); + }); + + it('throws if there is no such module', function() { + expect(function() { registry.uninstall('non-existent') }).to.throwException(); + }); + + it('throws if the module is still loading', function() { + var registeredModule = new ModulePolyfill({}); + registry.install('still-loading', registeredModule); + registry._registry.registryData['still-loading'].pipeline[0].stage = 'fetch'; + expect(function() { registry.uninstall('still-loading') }).to.throwException(); + }); + + it('removes the module if the module exists and was loaded', function() { + registry.install('module-name', new ModulePolyfill({})); + registry.uninstall('module-name'); + expect(registry._registry.registryData['module-name']).to.be(undefined); + }); + + }); + + describe('cancel function', function() { + + var registry; + + beforeEach(function() { + registry = new Registry({}); + }); + + it('throws if called on a context that\'s not an object', function() { + expect(function() { Registry.prototype.cancel('not an object') }).to.throwException(); + }); + + it('throws if there is no such module', function() { + expect(function() { registry.cancel('non-existent') }).to.throwException(); + }); + + it('throws if the module isn\'t still loading', function() { + registry.install('already-loaded', new ModulePolyfill({})); + expect(function() { registry.cancel('already-loaded') }).to.throwException(); + }); + + it('removes the module if the module exists and is being loaded', function() { + registry.install('module-name', new ModulePolyfill({})); + registry._registry.registryData['module-name'].pipeline[0].stage = 'fetch'; + registry.cancel('module-name'); + expect(registry._registry.registryData['module-name']).to.be(undefined); + }); + + }); + }); From 7ab6841789360454bddb76619f4c01b50ab17bb0 Mon Sep 17 00:00:00 2001 From: Joel Denning Date: Sun, 15 Nov 2015 11:31:56 -0700 Subject: [PATCH 230/482] Fixing TypeError messages to be consistent and brief --- src/loader.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/loader.js b/src/loader.js index f43da8b..b535ebe 100644 --- a/src/loader.js +++ b/src/loader.js @@ -227,10 +227,10 @@ // 4.4.5 Registry.prototype.uninstall = function(key) { if (typeof this !== 'object') - throw new TypeError('registry must be an object'); + throw new TypeError('Registry must be an object'); var entry = this._registry.registryData[key]; if (!entry) - throw new TypeError('Module with key ' + key + 'does not exist'); + throw new TypeError('Module ' + key + ' does not exist'); var stageEntry = getCurrentStage(entry); if (stageEntry.stage !== 'link' && stageEntry.stage !== 'ready') throw new TypeError('Module is still loading'); @@ -240,13 +240,13 @@ // 4.4.6 Registry.prototype.cancel = function(key) { if (typeof this !== 'object') - throw new TypeError('registry must be an object'); + throw new TypeError('Registry must be an object'); var entry = this._registry.registryData[key]; if (!entry) - throw new TypeError('Module with key ' + key + ' does not exist'); + throw new TypeError('Module ' + key + ' does not exist'); var stageEntry = getCurrentStage(entry); if (stageEntry.stage === 'link' || stageEntry.stage === 'ready') - throw new TypeError('Module with key ' + key + ' is already done linking'); + throw new TypeError('Module ' + key + ' is already done linking'); delete this._registry.registryData[key]; } From 6f3f6d53185bb6a3287107407352cb90c70bc28f Mon Sep 17 00:00:00 2001 From: Joel Denning Date: Sun, 15 Nov 2015 12:21:46 -0700 Subject: [PATCH 231/482] Adding module name to TypeError message --- src/loader.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/loader.js b/src/loader.js index b535ebe..1fef656 100644 --- a/src/loader.js +++ b/src/loader.js @@ -233,7 +233,7 @@ throw new TypeError('Module ' + key + ' does not exist'); var stageEntry = getCurrentStage(entry); if (stageEntry.stage !== 'link' && stageEntry.stage !== 'ready') - throw new TypeError('Module is still loading'); + throw new TypeError('Module ' + key + ' is still loading'); delete this._registry.registryData[key]; } From 3e2bf6e5e45eb01d421b0aa0343bdc37907fdb8b Mon Sep 17 00:00:00 2001 From: Joel Denning Date: Fri, 1 Jan 2016 13:12:55 -0700 Subject: [PATCH 232/482] Implemented 3.3.5 - the getter for a loader's registry. --- src/loader.js | 15 +++++++++++++++ test/system.spec.js | 15 +++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/src/loader.js b/src/loader.js index 1fef656..1a56bcf 100644 --- a/src/loader.js +++ b/src/loader.js @@ -85,6 +85,21 @@ throw new TypeError('Invalid stage ' + stage); }; + // 3.3.5 + Object.defineProperty(Loader.prototype, 'registry', { + get: function() { + if (typeof this !== 'object') + throw new TypeError('this must be a Loader'); + // uncomment when Realm is implemented + // if (!this._loader.realm) + // throw new TypeError('A Loader must have a realm'); + + if (typeof this._loader.registry !== 'object') + throw new TypeError('registry must be an object'); + return this._loader.registry; + } + }); + // No longer in spec // For eg fetch, , key = anon Loader.prototype.provide = function(key, stage, value, metadata) { diff --git a/test/system.spec.js b/test/system.spec.js index cca8b97..82753fa 100644 --- a/test/system.spec.js +++ b/test/system.spec.js @@ -362,6 +362,21 @@ describe('System', function () { }); + describe('get Loader.prototype.registry', function () { + it('returns the registry object', function () { + expect(System.registry).to.be.an('object'); + var oldRegistry = System.registry; + System._loader.registry = 'invalid registry'; + expect(function() { + return System.registry; + }).to.throwException(function(ex) { + expect(ex).to.be.a(TypeError); + }); + + System._loader.registry = oldRegistry; + }); + }); + describeIf( typeof window != 'undefined' && window.Worker && !ie, 'with Web Worker', function () { From c071f92f746e9bb2d17d342c9b64bd9ab136e833 Mon Sep 17 00:00:00 2001 From: Joel Denning Date: Sat, 2 Jan 2016 21:11:28 -0700 Subject: [PATCH 233/482] Implementing the new functions on the Registry object --- index.js | 2 + package.json | 6 +- src/loader.js | 168 +++++++----- test/registry.native-iterator-spec.js | 59 +++- test/registry.spec.js | 373 +++++++++++++++++--------- test/system.spec.js | 4 +- 6 files changed, 404 insertions(+), 208 deletions(-) diff --git a/index.js b/index.js index a059a6b..68281e3 100644 --- a/index.js +++ b/index.js @@ -1,5 +1,7 @@ if (typeof Promise === 'undefined') require('when/es6-shim/Promise'); +if (typeof Map === 'undefined') + require('es6-map/implement'); module.exports = require('./dist/es6-module-loader-dev.src'); diff --git a/package.json b/package.json index 80eacb8..36d8276 100644 --- a/package.json +++ b/package.json @@ -57,12 +57,14 @@ "scripts": { "test": "npm run test:node && npm run test:browser", "test:node": "mocha test/_node-traceur.js && mocha test/_node-babel.js", - "test:browser": "npm run test:browser-traceur && npm run test:browser-babel", + "test:browser": "npm run test:browser-traceur && npm run test:browser-babel && npm run test:browser:native-iterator", "test:browser-traceur": "karma start --single-run", "test:browser-babel": "karma start --single-run --babel", - "test:browser:perf": "karma start karma-benchmark.conf.js --single-run" + "test:browser:perf": "karma start karma-benchmark.conf.js --single-run", + "test:browser:native-iterator": "karma start --single-run --native-iterator && karma start --single-run --babel --native-iterator" }, "dependencies": { + "es6-map": "0.1.3", "when": "^3.7.2" } } diff --git a/src/loader.js b/src/loader.js index 1a56bcf..febf29b 100644 --- a/src/loader.js +++ b/src/loader.js @@ -18,7 +18,8 @@ translate: undefined, instantiate: undefined, - registry: {} + registry: {}, + newRegistry: createRegistry(), //this is temporary until Registry is ready to be used // Realm not implemented }; } @@ -94,9 +95,9 @@ // if (!this._loader.realm) // throw new TypeError('A Loader must have a realm'); - if (typeof this._loader.registry !== 'object') - throw new TypeError('registry must be an object'); - return this._loader.registry; + if (!(this._loader.newRegistry instanceof RegistryPrototype)) + throw new TypeError('invalid registry -- must be created during Loader constructor'); + return this._loader.newRegistry; } }); @@ -148,13 +149,90 @@ // 4. Registry Objects // 4.1.1 + function createRegistry() { + var registry = new RegistryPrototype(); + registry._registry = {}; + registry._registry.registryMap = new Map(); + // 4.4.2 + if (__global.Symbol && __global.Symbol.iterator) + registry[__global.Symbol.iterator] = RegistryPrototype.prototype.entries; + return registry; + } + + // 4.2 + // For now, registry objects are a work in progress that don't fully integrate into the rest of the code base + function Registry() { + throw new Error('A registry may only be created when creating a loader'); + } + + // 4.3.1 + Registry.prototype = RegistryPrototype; + + // 4.4 (reason for a separate constructor explained at 4.3.1) + function RegistryPrototype() {} + + // 4.4.1 + Registry.prototype.constructor = Registry; + + // 4.4.2 is inlined in 4.1.1 + + // 4.4.3 + RegistryPrototype.prototype.entries = function() { + if (typeof this !== 'object' || !(this._registry.registryMap instanceof Map)) + throw new TypeError('cannot get entries of a non-registry'); + return this._registry.registryMap.entries(); + } + + // 4.4.4 + RegistryPrototype.prototype.keys = function() { + if (typeof this !== 'object' || !(this._registry.registryMap instanceof Map)) + throw new TypeError('invalid registry'); + return this._registry.registryMap.keys(); + } + + // 4.4.5 + RegistryPrototype.prototype.values = function() { + if (typeof this !== 'object' || !(this._registry.registryMap instanceof Map)) + throw new TypeError('invalid registry'); + return this._registry.registryMap.values(); + } + + // 4.4.6 + RegistryPrototype.prototype.get = function(key) { + if (typeof this !== 'object' || !(this._registry.registryMap instanceof Map)) + throw new TypeError('invalid registry'); + return this._registry.registryMap.get(key); + } + + // 4.4.7 + RegistryPrototype.prototype.set = function(key, value) { + if (typeof this !== 'object' || !(this._registry.registryMap instanceof Map)) + throw new TypeError('invalid registry'); + return this._registry.registryMap.set(key, value); + } + + // 4.4.8 + RegistryPrototype.prototype.has = function(key) { + if (typeof this !== 'object' || !(this._registry.registryMap instanceof Map)) + throw new TypeError('invalid registry'); + return this._registry.registryMap.has(key); + } + + // 4.4.9 + RegistryPrototype.prototype.delete = function(key) { + if (typeof this !== 'object' || !(this._registry.registryMap instanceof Map)) + throw new TypeError('invalid registry'); + return this._registry.registryMap.delete(key); + } + + // 4.1.1 - TODO out of date function getCurrentStage(entry) { if (typeof entry !== 'object') throw new TypeError('entry is not an object'); return entry.pipeline[0]; } - // 4.1.4 + // 4.1.4 - TODO out of date function getRegistryEntry(registry, key) { if (typeof registry !== 'object') throw new TypeError('registry is not an object'); @@ -176,48 +254,12 @@ }; } - // 4.2.1 - // For now, registry objects are a work in progress that don't fully integrate into the rest of the code base - function Registry(loader) { - if (!this.constructor) - throw new TypeError('The Registry constructor must be called with "new"'); - if (typeof loader !== 'object') - throw new TypeError('The Registry constructor must be called with a loader object'); - this._registry = { - registryData: [], - loader: loader - }; - // 4.4.2 - if (__global.Symbol && __global.Symbol.iterator) { - var instance = this; - this[__global.Symbol.iterator] = function() { - var registryEntryIndex = 0; - return { - next: function() { - if (registryEntryIndex < instance._registry.registryData.length - 1) { - return { - value: instance._registry.registryData[registryEntryIndex++], - done: false - }; - } - else { - return { - value: undefined, - done: true - }; - } - } - }; - }; - } - } - - // 4.4.3 + // 4.4.3 - TODO out of date Registry.prototype.lookup = function(key) { return getRegistryEntry(this, key); }; - // 4.4.4 + // 4.4.4 - TODO out of date Registry.prototype.install = function(key, module) { if (typeof this !== 'object') throw new TypeError('registry must be an object'); @@ -239,7 +281,7 @@ }; } - // 4.4.5 + // 4.4.5 - TODO out of date Registry.prototype.uninstall = function(key) { if (typeof this !== 'object') throw new TypeError('Registry must be an object'); @@ -252,7 +294,7 @@ delete this._registry.registryData[key]; } - // 4.4.6 + // 4.4.6 - TODO out of date Registry.prototype.cancel = function(key) { if (typeof this !== 'object') throw new TypeError('Registry must be an object'); @@ -265,9 +307,9 @@ delete this._registry.registryData[key]; } - // 5. Loading + // 5. Loading - TODO out of date - // 5.1.1 + // 5.1.1 - TODO out of date function ensureRegistered(loader, key, metadata) { return loader.registry[key] || (loader.registry[key] = { key: key, @@ -292,9 +334,9 @@ }); } - // 5.1.2 inlined + // 5.1.2 inlined - TODO out of date - // 5.1.3 + // 5.1.3 - TODO out of date function fulfillFetch(loader, entry, payload) { if (entry.fetchResolve) entry.fetchResolve(payload); @@ -305,7 +347,7 @@ entry.state = Math.max(entry.state, TRANSLATE); } - // 5.1.4 + // 5.1.4 - TODO out of date function fulfillTranslate(loader, entry, source) { if (entry.translateResolve) entry.translateResolve(source); @@ -316,7 +358,7 @@ entry.state = Math.max(entry.state, INSTANTIATE); } - // 5.1.5 + // 5.1.5 - TODO out of date function fulfillInstantiate(loader, entry, instance, source) { // 5.1.6 CommitInstantiated inlined @@ -361,7 +403,7 @@ }); } - // 5.2.1 + // 5.2.1 - TODO out of date function requestFetch(loader, key, metadata, entry) { entry = entry || ensureRegistered(loader, key, metadata); @@ -397,7 +439,7 @@ }); } - // 5.2.2 + // 5.2.2 - TODO out of date function requestTranslate(loader, key, metadata, entry) { entry = entry || ensureRegistered(loader, key, metadata); @@ -436,7 +478,7 @@ }); } - // 5.2.3 + // 5.2.3 - TODO out of date function requestInstantiate(loader, key, metadata, entry) { entry = entry || ensureRegistered(loader, key, metadata); @@ -474,7 +516,7 @@ }); } - // 5.2.4 + // 5.2.4 - TODO out of date function requestInstantiateAll(loader, key, metadata, entry) { entry = entry || ensureRegistered(loader, key, metadata); @@ -507,7 +549,7 @@ }); } - // 5.2.5 + // 5.2.5 - TODO out of date function requestLink(loader, key, metadata, entry) { entry = entry || ensureRegistered(loader, key, metadata); @@ -551,7 +593,7 @@ }); } - // 5.2.6 + // 5.2.6 - TODO out of date function requestReady(loader, key, metadata, entry) { entry = entry || ensureRegistered(loader, key, metadata); @@ -577,12 +619,12 @@ }); } - // 6. Linking + // 6. Linking - TODO out of date - // 6.2.1 inlined in 5.2.5 - // 6.2.2 inlined in 5.2.5 + // 6.2.1 inlined in 5.2.5 - TODO out of date + // 6.2.2 inlined in 5.2.5 - TODO out of date - // 6.2.3 + // 6.2.3 - TODO out of date function computeDependencyGraph(entry, result) { if (indexOf.call(result, entry) != -1) return; @@ -607,9 +649,9 @@ } - // 7. Module Objects + // 7. Module Objects - TODO out of date - // 7.3 Module Reflection + // 7.3 Module Reflection - TODO out of date // plain user-facing module object function Module(descriptors, executor, evaluate) { diff --git a/test/registry.native-iterator-spec.js b/test/registry.native-iterator-spec.js index fc550f1..23ba601 100644 --- a/test/registry.native-iterator-spec.js +++ b/test/registry.native-iterator-spec.js @@ -1,20 +1,57 @@ describe('native iterator tests', function() { + var modules = [ + { + name: 'h1', + value: 'bb8' + }, + { + name: 'h2', + value: 'er3' + } + ] - describe('native iteration of Registry instances', function() { + beforeEach(function() { + for (var i=0; i Date: Sat, 9 Jan 2016 14:54:03 -0700 Subject: [PATCH 234/482] Removing es6-map dependency in favor of a lightweight implementation of some of the functions on Map.prototype --- index.js | 2 - package.json | 1 - src/loader.js | 120 ++++++++++++++++++++++++++++++++++++------ test/registry.spec.js | 6 +++ 4 files changed, 110 insertions(+), 19 deletions(-) diff --git a/index.js b/index.js index 68281e3..a059a6b 100644 --- a/index.js +++ b/index.js @@ -1,7 +1,5 @@ if (typeof Promise === 'undefined') require('when/es6-shim/Promise'); -if (typeof Map === 'undefined') - require('es6-map/implement'); module.exports = require('./dist/es6-module-loader-dev.src'); diff --git a/package.json b/package.json index 36d8276..4e32dca 100644 --- a/package.json +++ b/package.json @@ -64,7 +64,6 @@ "test:browser:native-iterator": "karma start --single-run --native-iterator && karma start --single-run --babel --native-iterator" }, "dependencies": { - "es6-map": "0.1.3", "when": "^3.7.2" } } diff --git a/src/loader.js b/src/loader.js index febf29b..d1480b3 100644 --- a/src/loader.js +++ b/src/loader.js @@ -147,12 +147,16 @@ }; // 4. Registry Objects + // For now, registry objects are a work in progress that don't fully integrate into the rest of the code base // 4.1.1 function createRegistry() { var registry = new RegistryPrototype(); registry._registry = {}; - registry._registry.registryMap = new Map(); + if (Map) + registry._registry.registryMap = new Map(); + else + registry._registry.registryMap = {}; // 4.4.2 if (__global.Symbol && __global.Symbol.iterator) registry[__global.Symbol.iterator] = RegistryPrototype.prototype.entries; @@ -160,7 +164,6 @@ } // 4.2 - // For now, registry objects are a work in progress that don't fully integrate into the rest of the code base function Registry() { throw new Error('A registry may only be created when creating a loader'); } @@ -178,51 +181,136 @@ // 4.4.3 RegistryPrototype.prototype.entries = function() { - if (typeof this !== 'object' || !(this._registry.registryMap instanceof Map)) + if (typeof this !== 'object') throw new TypeError('cannot get entries of a non-registry'); - return this._registry.registryMap.entries(); + if (Map) { + // native iterator + return this._registry.registryMap.entries(); + } else { + // polyfilled iterator + var keys = Object.keys(this._registry.registryMap); + var keyIndex = 0; + var instance = this; + return { + next: function() { + if (keyIndex < keys.length - 1) { + return { + value: [keys[keyIndex], instance._registry.registryMap[keys[keyIndex++]]], + done: false + }; + } else { + return { + value: undefined, + done: true + }; + } + } + }; + } } // 4.4.4 RegistryPrototype.prototype.keys = function() { - if (typeof this !== 'object' || !(this._registry.registryMap instanceof Map)) + if (typeof this !== 'object') throw new TypeError('invalid registry'); - return this._registry.registryMap.keys(); + if (Map) { + // native iterator + return this._registry.registryMap.keys(); + } else { + // polyfilled iterator + var keys = Object.keys(this._registry.registryMap); + var keyIndex = 0; + return { + next: function() { + if (keyIndex < keys.length - 1) { + return { + value: keys[keyIndex++], + done: false + }; + } else { + return { + value: undefined, + done: true + }; + } + } + }; + } } // 4.4.5 RegistryPrototype.prototype.values = function() { - if (typeof this !== 'object' || !(this._registry.registryMap instanceof Map)) + if (typeof this !== 'object') throw new TypeError('invalid registry'); - return this._registry.registryMap.values(); + if (Map) { + // native iterator + return this._registry.registryMap.values(); + } else { + // polyfilled iterator + var keys = Object.keys(this._registry.registryMap); + var keyIndex = 0; + var instance = this; + return { + next: function() { + if (keyIndex < keys.length - 1) { + return { + value: instance._registry.registryMap[keys[keyIndex++]], + done: false + }; + } else { + return { + value: undefined, + done: true + }; + } + } + }; + } } // 4.4.6 RegistryPrototype.prototype.get = function(key) { - if (typeof this !== 'object' || !(this._registry.registryMap instanceof Map)) + if (typeof this !== 'object') throw new TypeError('invalid registry'); - return this._registry.registryMap.get(key); + if (Map) + return this._registry.registryMap.get(key); + else + return this._registry.registryMap[key]; } // 4.4.7 RegistryPrototype.prototype.set = function(key, value) { - if (typeof this !== 'object' || !(this._registry.registryMap instanceof Map)) + if (typeof this !== 'object') throw new TypeError('invalid registry'); - return this._registry.registryMap.set(key, value); + if (Map) + this._registry.registryMap.set(key, value); + else + this._registry.registryMap[key] = value; + + return this; } // 4.4.8 RegistryPrototype.prototype.has = function(key) { - if (typeof this !== 'object' || !(this._registry.registryMap instanceof Map)) + if (typeof this !== 'object') throw new TypeError('invalid registry'); - return this._registry.registryMap.has(key); + if (Map) + return this._registry.registryMap.has(key); + else + return this._registry.registryMap.hasOwnProperty(key); } // 4.4.9 RegistryPrototype.prototype.delete = function(key) { - if (typeof this !== 'object' || !(this._registry.registryMap instanceof Map)) + if (typeof this !== 'object') throw new TypeError('invalid registry'); - return this._registry.registryMap.delete(key); + if (Map) + return this._registry.registryMap.delete(key); + else { + var hadProperty = this._registry.registryMap.hasOwnProperty(key); + delete this._registry.registryMap[key]; + return hadProperty; + } } // 4.1.1 - TODO out of date diff --git a/test/registry.spec.js b/test/registry.spec.js index b5cf4e3..4e53b49 100644 --- a/test/registry.spec.js +++ b/test/registry.spec.js @@ -87,6 +87,10 @@ describe('Registry', function() { expect(System.registry.get(moduleName)).to.eql(moduleValue); }); + it('returns the registry when you call set', function() { + expect(System.registry.set(moduleName, 'newValue')).to.eql(System.registry); + }); + it('throws if the registry is invalid', function() { expect(function() {Registry.prototype.set.call('not a real registry', 'm2', 'value m2')}) .to.throwException(function(e) { @@ -119,7 +123,9 @@ describe('Registry', function() { describe('delete function', function() { it('removes a module and returns true', function() { + expect(System.registry.has(moduleName)).to.be(true); expect(System.registry.delete(moduleName)).to.be(true); + expect(System.registry.has(moduleName)).to.be(false); }); it('returns false if it didn\'t remove the module', function() { From 28ae33dabf4710ad173f86929c5abd2bffba5cbc Mon Sep 17 00:00:00 2001 From: Joel Denning Date: Sat, 9 Jan 2016 15:11:08 -0700 Subject: [PATCH 235/482] Fixing reference to Map so that it doesn't throw exceptions in old browsers --- src/loader.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/loader.js b/src/loader.js index d1480b3..a4a0120 100644 --- a/src/loader.js +++ b/src/loader.js @@ -153,8 +153,8 @@ function createRegistry() { var registry = new RegistryPrototype(); registry._registry = {}; - if (Map) - registry._registry.registryMap = new Map(); + if (__global.Map) + registry._registry.registryMap = new __global.Map(); else registry._registry.registryMap = {}; // 4.4.2 @@ -183,7 +183,7 @@ RegistryPrototype.prototype.entries = function() { if (typeof this !== 'object') throw new TypeError('cannot get entries of a non-registry'); - if (Map) { + if (__global.Map) { // native iterator return this._registry.registryMap.entries(); } else { @@ -213,7 +213,7 @@ RegistryPrototype.prototype.keys = function() { if (typeof this !== 'object') throw new TypeError('invalid registry'); - if (Map) { + if (__global.Map) { // native iterator return this._registry.registryMap.keys(); } else { @@ -242,7 +242,7 @@ RegistryPrototype.prototype.values = function() { if (typeof this !== 'object') throw new TypeError('invalid registry'); - if (Map) { + if (__global.Map) { // native iterator return this._registry.registryMap.values(); } else { @@ -272,7 +272,7 @@ RegistryPrototype.prototype.get = function(key) { if (typeof this !== 'object') throw new TypeError('invalid registry'); - if (Map) + if (__global.Map) return this._registry.registryMap.get(key); else return this._registry.registryMap[key]; @@ -282,7 +282,7 @@ RegistryPrototype.prototype.set = function(key, value) { if (typeof this !== 'object') throw new TypeError('invalid registry'); - if (Map) + if (__global.Map) this._registry.registryMap.set(key, value); else this._registry.registryMap[key] = value; @@ -294,7 +294,7 @@ RegistryPrototype.prototype.has = function(key) { if (typeof this !== 'object') throw new TypeError('invalid registry'); - if (Map) + if (__global.Map) return this._registry.registryMap.has(key); else return this._registry.registryMap.hasOwnProperty(key); @@ -304,7 +304,7 @@ RegistryPrototype.prototype.delete = function(key) { if (typeof this !== 'object') throw new TypeError('invalid registry'); - if (Map) + if (__global.Map) return this._registry.registryMap.delete(key); else { var hadProperty = this._registry.registryMap.hasOwnProperty(key); From f0c0135f36515e7af9aa9ef6176237c9098a4ebe Mon Sep 17 00:00:00 2001 From: Joel Denning Date: Sat, 9 Jan 2016 19:01:11 -0700 Subject: [PATCH 236/482] Fixing a bug in the iterator polyfill, and now throwing errors if trying to iterate but Symbol.iterator is not implemented. --- package.json | 2 +- src/loader.js | 18 ++++++++++++------ test/registry.spec.js | 23 ++++++++++++----------- 3 files changed, 25 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index 4e32dca..1bf77cf 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,7 @@ "minimist": "^1.1.0", "mocha": "^2.0.1", "regenerator": "^0.8.9", - "traceur": "0.0.87" + "traceur": "0.0.90" }, "keywords": [ "script", diff --git a/src/loader.js b/src/loader.js index a4a0120..884a2d1 100644 --- a/src/loader.js +++ b/src/loader.js @@ -186,14 +186,14 @@ if (__global.Map) { // native iterator return this._registry.registryMap.entries(); - } else { + } else if (__global.Symbol && __global.Symbol.iterator) { // polyfilled iterator var keys = Object.keys(this._registry.registryMap); var keyIndex = 0; var instance = this; return { next: function() { - if (keyIndex < keys.length - 1) { + if (keyIndex < keys.length) { return { value: [keys[keyIndex], instance._registry.registryMap[keys[keyIndex++]]], done: false @@ -206,6 +206,8 @@ } } }; + } else { + throw new Error('Symbol.iterator must be polyfilled to iterate over registry entries'); } } @@ -216,13 +218,13 @@ if (__global.Map) { // native iterator return this._registry.registryMap.keys(); - } else { + } else if (__global.Symbol && __global.Symbol.iterator) { // polyfilled iterator var keys = Object.keys(this._registry.registryMap); var keyIndex = 0; return { next: function() { - if (keyIndex < keys.length - 1) { + if (keyIndex < keys.length) { return { value: keys[keyIndex++], done: false @@ -235,6 +237,8 @@ } } }; + } else { + throw new Error("Symbol.iterator must be polyfilled in order to iterate over registry keys") } } @@ -245,14 +249,14 @@ if (__global.Map) { // native iterator return this._registry.registryMap.values(); - } else { + } else if (__global.Symbol && __global.Symbol.iterator) { // polyfilled iterator var keys = Object.keys(this._registry.registryMap); var keyIndex = 0; var instance = this; return { next: function() { - if (keyIndex < keys.length - 1) { + if (keyIndex < keys.length) { return { value: instance._registry.registryMap[keys[keyIndex++]], done: false @@ -265,6 +269,8 @@ } } }; + } else { + throw new Error("Symbol.iterator must be polyfilled in order to iterate over registry values"); } } diff --git a/test/registry.spec.js b/test/registry.spec.js index 4e53b49..d0840a6 100644 --- a/test/registry.spec.js +++ b/test/registry.spec.js @@ -25,14 +25,14 @@ describe('Registry', function() { }); - describe('entries function', function() { + describeIf(System.transpiler !== 'traceur', 'entries function', function() { it('returns all the entries in the registry in a MapIterator', function() { // iterate and get it out - var entries = System.registry.entries(); - var entry1 = entries.next(); + var iter = System.registry.entries(); + var entry1 = iter.next(); expect(entry1.value).to.eql([moduleName, moduleValue]); - var entry2 = entries.next(); //move past the last value + var entry2 = iter.next(); //move past the last value expect(entry2.done).to.be(true); }); @@ -45,11 +45,11 @@ describe('Registry', function() { }); - describe('keys function', function() { + describeIf(System.transpiler !== 'traceur', 'keys function', function() { it('returns an iterator of all of the moduleNames', function() { - var keys = System.registry.keys(); - var entry1 = keys.next(); + var iter = System.registry.keys(); + var entry1 = iter.next(); expect(entry1.value).to.equal(moduleName); }); @@ -62,13 +62,14 @@ describe('Registry', function() { }); - describe('values function', function() { + describeIf(System.transpiler !== 'traceur', 'values function', function() { it('returns an iterator of all of the moduleValues', function() { - var values = System.registry.values(); - var entry1 = values.next(); + var iter = System.registry.values(); + var entry1 = iter.next(); expect(entry1.value).to.eql(moduleValue); - var entry2 = values.next(); + expect(entry1.done).to.be(false); + var entry2 = iter.next(); expect(entry2.done).to.be(true); }); From 1b441f83166820d9534e85e1a7750dddf667e2d9 Mon Sep 17 00:00:00 2001 From: Joel Denning Date: Sat, 16 Jan 2016 13:24:33 -0700 Subject: [PATCH 237/482] Updating based on the pr's feedback. Also fixing some bugs and adding more tests for using the InternalMapPolyfill --- .travis.yml | 10 +- karma.conf.js | 2 + package.json | 5 +- src/loader.js | 226 +++++++++++++++++++++---------------- test/force-map-polyfill.js | 1 + test/registry.spec.js | 6 +- 6 files changed, 141 insertions(+), 109 deletions(-) create mode 100644 test/force-map-polyfill.js diff --git a/.travis.yml b/.travis.yml index 330e300..1a408b5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -19,14 +19,16 @@ matrix: env: SAUCE_LABS=true PARSER="traceur" - node_js: "0.12" env: SAUCE_LABS=true PARSER="babel" + # Native iterator tests - node_js: "0.12" env: SAUCE_LABS=true PARSER="traceur" OPTIONS="--native-iterator" - node_js: "0.12" env: SAUCE_LABS=true PARSER="babel" OPTIONS="--native-iterator" -# - node_js: "0.10" -# env: SAUCE_LABS=true PARSER="traceur" OPTIONS="--ie8" -# - node_js: "0.10" -# env: SAUCE_LABS=true PARSER="babel" OPTIONS="--ie8" + # Map polyfill tests + - node_js: "0.12" + env: SAUCE_LABS=true PARSER="babel" OPTIONS="--force-map-polyfill" + - node_js: "0.12" + env: SAUCE_LABS=true PARSER="babel" OPTIONS="--native-iterator --force-map-polyfill" before_install: - export CHROME_BIN=chromium-browser - export DISPLAY=:99.0 diff --git a/karma.conf.js b/karma.conf.js index e5ac08c..798fd48 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -43,6 +43,8 @@ module.exports = function(config) { [options['native-iterator'] ? '': 'node_modules/core-js/client/core.js'], + [options['force-map-polyfill'] ? 'test/force-map-polyfill.js' : ''], + 'dist/es6-module-loader-dev.src.js', 'test/_browser.js', diff --git a/package.json b/package.json index 1bf77cf..8debb49 100644 --- a/package.json +++ b/package.json @@ -57,11 +57,12 @@ "scripts": { "test": "npm run test:node && npm run test:browser", "test:node": "mocha test/_node-traceur.js && mocha test/_node-babel.js", - "test:browser": "npm run test:browser-traceur && npm run test:browser-babel && npm run test:browser:native-iterator", + "test:browser": "npm run test:browser-traceur && npm run test:browser-babel && npm run test:browser:native-iterator && npm run test:browser:map-polyfill", "test:browser-traceur": "karma start --single-run", "test:browser-babel": "karma start --single-run --babel", "test:browser:perf": "karma start karma-benchmark.conf.js --single-run", - "test:browser:native-iterator": "karma start --single-run --native-iterator && karma start --single-run --babel --native-iterator" + "test:browser:native-iterator": "karma start --single-run --native-iterator && karma start --single-run --babel --native-iterator", + "test:browser:map-polyfill": "karma start --single-run --babel --native-iterator --force-map-polyfill && karma start --single-run --babel --force-map-polyfill" }, "dependencies": { "when": "^3.7.2" diff --git a/src/loader.js b/src/loader.js index 884a2d1..511b883 100644 --- a/src/loader.js +++ b/src/loader.js @@ -153,13 +153,16 @@ function createRegistry() { var registry = new RegistryPrototype(); registry._registry = {}; - if (__global.Map) + var iterator; + if (__global.Map && __global.Map.prototype && __global.Map.prototype.entries && __global.Map.prototype.keys + && __global.Map.prototype.values && __global.Map.prototype.get && __global.Map.prototype.set + && __global.Map.prototype.has && __global.Map.prototype.delete) registry._registry.registryMap = new __global.Map(); else - registry._registry.registryMap = {}; + registry._registry.registryMap = new InternalMapPolyfill(); // 4.4.2 if (__global.Symbol && __global.Symbol.iterator) - registry[__global.Symbol.iterator] = RegistryPrototype.prototype.entries; + registry[__global.Symbol.iterator] = mapPolyfillEntriesIterator.bind(registry._registry.registryMap); return registry; } @@ -183,116 +186,35 @@ RegistryPrototype.prototype.entries = function() { if (typeof this !== 'object') throw new TypeError('cannot get entries of a non-registry'); - if (__global.Map) { - // native iterator - return this._registry.registryMap.entries(); - } else if (__global.Symbol && __global.Symbol.iterator) { - // polyfilled iterator - var keys = Object.keys(this._registry.registryMap); - var keyIndex = 0; - var instance = this; - return { - next: function() { - if (keyIndex < keys.length) { - return { - value: [keys[keyIndex], instance._registry.registryMap[keys[keyIndex++]]], - done: false - }; - } else { - return { - value: undefined, - done: true - }; - } - } - }; - } else { - throw new Error('Symbol.iterator must be polyfilled to iterate over registry entries'); - } + return this._registry.registryMap.entries(); } // 4.4.4 RegistryPrototype.prototype.keys = function() { if (typeof this !== 'object') throw new TypeError('invalid registry'); - if (__global.Map) { - // native iterator - return this._registry.registryMap.keys(); - } else if (__global.Symbol && __global.Symbol.iterator) { - // polyfilled iterator - var keys = Object.keys(this._registry.registryMap); - var keyIndex = 0; - return { - next: function() { - if (keyIndex < keys.length) { - return { - value: keys[keyIndex++], - done: false - }; - } else { - return { - value: undefined, - done: true - }; - } - } - }; - } else { - throw new Error("Symbol.iterator must be polyfilled in order to iterate over registry keys") - } + return this._registry.registryMap.keys(); } // 4.4.5 RegistryPrototype.prototype.values = function() { if (typeof this !== 'object') throw new TypeError('invalid registry'); - if (__global.Map) { - // native iterator - return this._registry.registryMap.values(); - } else if (__global.Symbol && __global.Symbol.iterator) { - // polyfilled iterator - var keys = Object.keys(this._registry.registryMap); - var keyIndex = 0; - var instance = this; - return { - next: function() { - if (keyIndex < keys.length) { - return { - value: instance._registry.registryMap[keys[keyIndex++]], - done: false - }; - } else { - return { - value: undefined, - done: true - }; - } - } - }; - } else { - throw new Error("Symbol.iterator must be polyfilled in order to iterate over registry values"); - } + return this._registry.registryMap.values(); } // 4.4.6 RegistryPrototype.prototype.get = function(key) { if (typeof this !== 'object') throw new TypeError('invalid registry'); - if (__global.Map) - return this._registry.registryMap.get(key); - else - return this._registry.registryMap[key]; + return this._registry.registryMap.get(key); } // 4.4.7 RegistryPrototype.prototype.set = function(key, value) { if (typeof this !== 'object') throw new TypeError('invalid registry'); - if (__global.Map) - this._registry.registryMap.set(key, value); - else - this._registry.registryMap[key] = value; - + this._registry.registryMap.set(key, value); return this; } @@ -300,23 +222,14 @@ RegistryPrototype.prototype.has = function(key) { if (typeof this !== 'object') throw new TypeError('invalid registry'); - if (__global.Map) - return this._registry.registryMap.has(key); - else - return this._registry.registryMap.hasOwnProperty(key); + return this._registry.registryMap.has(key); } // 4.4.9 RegistryPrototype.prototype.delete = function(key) { if (typeof this !== 'object') throw new TypeError('invalid registry'); - if (__global.Map) - return this._registry.registryMap.delete(key); - else { - var hadProperty = this._registry.registryMap.hasOwnProperty(key); - delete this._registry.registryMap[key]; - return hadProperty; - } + return this._registry.registryMap.delete(key); } // 4.1.1 - TODO out of date @@ -754,3 +667,116 @@ for (var p in descriptors) this[p] = descriptors[p]; } + + function InternalMapPolyfill() {} + + function mapPolyfillEntriesIterator() { + var map = this; + var keys = Object.keys(map); + var keyIndex = 0; + return { + next: function() { + if (keyIndex < keys.length) { + return { + value: [keys[keyIndex], map[keys[keyIndex++]]], + done: false + }; + } else { + return { + value: undefined, + done: true + }; + } + } + }; + } + + InternalMapPolyfill.prototype.entries = function() { + if (__global.Symbol && __global.Symbol.iterator) { + var iterable = {}; + var map = this; + iterable[__global.Symbol.iterator] = function() { + return mapPolyfillEntriesIterator.call(map); + }; + return iterable; + } else { + throw new Error('Cannot return entries iterator unless Symbol.iterator is defined'); + } + }; + + InternalMapPolyfill.prototype.keys = function() { + if (__global.Symbol && __global.Symbol.iterator) { + var map = this; + var iterable = {}; + iterable[__global.Symbol.iterator] = function() { + var keys = Object.keys(map); + var keyIndex = 0; + return { + next: function() { + if (keyIndex < keys.length) { + return { + value: keys[keyIndex++], + done: false + }; + } else { + return { + value: undefined, + done: true + }; + } + } + }; + }; + return iterable; + } else { + throw new Error('Cannot return keys iterator unless Symbol.iterator is defined'); + } + }; + + InternalMapPolyfill.prototype.values = function() { + if (__global.Symbol && __global.Symbol.iterator) { + var map = this; + var iterable = {}; + iterable[__global.Symbol.iterator] = function() { + var keys = Object.keys(map); + var keyIndex = 0; + return { + next: function() { + if (keyIndex < keys.length) { + return { + value: map[keys[keyIndex++]], + done: false + }; + } else { + return { + value: undefined, + done: true + }; + } + } + }; + }; + return iterable; + } else { + throw new Error('Cannot return values iterator unless Symbol.iterator is defined'); + } + }; + + InternalMapPolyfill.prototype.get = function(key) { + return this[key]; + }; + + InternalMapPolyfill.prototype.set = function(key, value) { + this[key] = value; + return this; + }; + + InternalMapPolyfill.prototype.has = function(key) { + return this.hasOwnProperty(key); + }; + + InternalMapPolyfill.prototype.delete = function(key) { + var hadProperty = this.hasOwnProperty(key); + delete this[key]; + return hadProperty; + }; diff --git a/test/force-map-polyfill.js b/test/force-map-polyfill.js new file mode 100644 index 0000000..fecf7fd --- /dev/null +++ b/test/force-map-polyfill.js @@ -0,0 +1 @@ +delete Map; diff --git a/test/registry.spec.js b/test/registry.spec.js index d0840a6..ef48aa0 100644 --- a/test/registry.spec.js +++ b/test/registry.spec.js @@ -29,7 +29,7 @@ describe('Registry', function() { it('returns all the entries in the registry in a MapIterator', function() { // iterate and get it out - var iter = System.registry.entries(); + var iter = System.registry.entries()[Symbol.iterator](); var entry1 = iter.next(); expect(entry1.value).to.eql([moduleName, moduleValue]); var entry2 = iter.next(); //move past the last value @@ -48,7 +48,7 @@ describe('Registry', function() { describeIf(System.transpiler !== 'traceur', 'keys function', function() { it('returns an iterator of all of the moduleNames', function() { - var iter = System.registry.keys(); + var iter = System.registry.keys()[Symbol.iterator](); var entry1 = iter.next(); expect(entry1.value).to.equal(moduleName); }); @@ -65,7 +65,7 @@ describe('Registry', function() { describeIf(System.transpiler !== 'traceur', 'values function', function() { it('returns an iterator of all of the moduleValues', function() { - var iter = System.registry.values(); + var iter = System.registry.values()[Symbol.iterator](); var entry1 = iter.next(); expect(entry1.value).to.eql(moduleValue); expect(entry1.done).to.be(false); From dc16d402761ed5b50abd891237011dba67fac568 Mon Sep 17 00:00:00 2001 From: Joel Denning Date: Sun, 24 Jan 2016 13:15:31 -0700 Subject: [PATCH 238/482] Pulling out feature checking for native map, and also removing dead code as suggested by @guybedford --- src/loader.js | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/loader.js b/src/loader.js index 511b883..8d14791 100644 --- a/src/loader.js +++ b/src/loader.js @@ -32,6 +32,11 @@ var LINK = 4; var READY = 5; + // feature detection + var hasNativeMap = __global.Map && __global.Map.prototype && __global.Map.prototype.entries && __global.Map.prototype.keys + && __global.Map.prototype.values && __global.Map.prototype.get && __global.Map.prototype.set + && __global.Map.prototype.has && __global.Map.prototype.delete; + // 3.3.2 Loader.prototype['import'] = function(name, referrer) { var loader = this._loader; @@ -153,10 +158,7 @@ function createRegistry() { var registry = new RegistryPrototype(); registry._registry = {}; - var iterator; - if (__global.Map && __global.Map.prototype && __global.Map.prototype.entries && __global.Map.prototype.keys - && __global.Map.prototype.values && __global.Map.prototype.get && __global.Map.prototype.set - && __global.Map.prototype.has && __global.Map.prototype.delete) + if (hasNativeMap) registry._registry.registryMap = new __global.Map(); else registry._registry.registryMap = new InternalMapPolyfill(); From 1f1ea4ca4f67e56ed25e92215f3469849e9e45ba Mon Sep 17 00:00:00 2001 From: Joel Denning Date: Sun, 24 Jan 2016 13:35:14 -0700 Subject: [PATCH 239/482] Switching to a simpler implementation of Registry objects --- src/loader.js | 50 +++++++++++++++++++------------------------ test/registry.spec.js | 14 ------------ 2 files changed, 22 insertions(+), 42 deletions(-) diff --git a/src/loader.js b/src/loader.js index 8d14791..9187ab3 100644 --- a/src/loader.js +++ b/src/loader.js @@ -19,7 +19,7 @@ instantiate: undefined, registry: {}, - newRegistry: createRegistry(), //this is temporary until Registry is ready to be used + newRegistry: new Registry(), //this is temporary until Registry is ready to be used // Realm not implemented }; } @@ -36,6 +36,7 @@ var hasNativeMap = __global.Map && __global.Map.prototype && __global.Map.prototype.entries && __global.Map.prototype.keys && __global.Map.prototype.values && __global.Map.prototype.get && __global.Map.prototype.set && __global.Map.prototype.has && __global.Map.prototype.delete; + var hasNativeIterator = __global.Symbol && __global.Symbol.iterator; // 3.3.2 Loader.prototype['import'] = function(name, referrer) { @@ -100,7 +101,7 @@ // if (!this._loader.realm) // throw new TypeError('A Loader must have a realm'); - if (!(this._loader.newRegistry instanceof RegistryPrototype)) + if (!(this._loader.newRegistry instanceof Registry)) throw new TypeError('invalid registry -- must be created during Loader constructor'); return this._loader.newRegistry; } @@ -154,66 +155,59 @@ // 4. Registry Objects // For now, registry objects are a work in progress that don't fully integrate into the rest of the code base - // 4.1.1 - function createRegistry() { - var registry = new RegistryPrototype(); - registry._registry = {}; + // 4.1.1 inlined in 4.2 + + // 4.2 - see https://github.com/ModuleLoader/es6-module-loader/pull/462#discussion-diff-50639828 for why it deviates from spec + function Registry() { + this._registry = {}; if (hasNativeMap) - registry._registry.registryMap = new __global.Map(); + this._registry.registryMap = new __global.Map(); else - registry._registry.registryMap = new InternalMapPolyfill(); + this._registry.registryMap = new InternalMapPolyfill(); // 4.4.2 - if (__global.Symbol && __global.Symbol.iterator) - registry[__global.Symbol.iterator] = mapPolyfillEntriesIterator.bind(registry._registry.registryMap); - return registry; - } - - // 4.2 - function Registry() { - throw new Error('A registry may only be created when creating a loader'); + if (hasNativeIterator) + this[__global.Symbol.iterator] = mapPolyfillEntriesIterator.bind(this._registry.registryMap); } - // 4.3.1 - Registry.prototype = RegistryPrototype; + // 4.3.1 -- not necessary because of https://github.com/ModuleLoader/es6-module-loader/pull/462#discussion-diff-50639828 - // 4.4 (reason for a separate constructor explained at 4.3.1) - function RegistryPrototype() {} + // 4.4 - not necessary because of https://github.com/ModuleLoader/es6-module-loader/pull/462#discussion-diff-50639828 // 4.4.1 Registry.prototype.constructor = Registry; - // 4.4.2 is inlined in 4.1.1 + // 4.4.2 is inlined in 4.2 // 4.4.3 - RegistryPrototype.prototype.entries = function() { + Registry.prototype.entries = function() { if (typeof this !== 'object') throw new TypeError('cannot get entries of a non-registry'); return this._registry.registryMap.entries(); } // 4.4.4 - RegistryPrototype.prototype.keys = function() { + Registry.prototype.keys = function() { if (typeof this !== 'object') throw new TypeError('invalid registry'); return this._registry.registryMap.keys(); } // 4.4.5 - RegistryPrototype.prototype.values = function() { + Registry.prototype.values = function() { if (typeof this !== 'object') throw new TypeError('invalid registry'); return this._registry.registryMap.values(); } // 4.4.6 - RegistryPrototype.prototype.get = function(key) { + Registry.prototype.get = function(key) { if (typeof this !== 'object') throw new TypeError('invalid registry'); return this._registry.registryMap.get(key); } // 4.4.7 - RegistryPrototype.prototype.set = function(key, value) { + Registry.prototype.set = function(key, value) { if (typeof this !== 'object') throw new TypeError('invalid registry'); this._registry.registryMap.set(key, value); @@ -221,14 +215,14 @@ } // 4.4.8 - RegistryPrototype.prototype.has = function(key) { + Registry.prototype.has = function(key) { if (typeof this !== 'object') throw new TypeError('invalid registry'); return this._registry.registryMap.has(key); } // 4.4.9 - RegistryPrototype.prototype.delete = function(key) { + Registry.prototype.delete = function(key) { if (typeof this !== 'object') throw new TypeError('invalid registry'); return this._registry.registryMap.delete(key); diff --git a/test/registry.spec.js b/test/registry.spec.js index ef48aa0..1dc85d5 100644 --- a/test/registry.spec.js +++ b/test/registry.spec.js @@ -11,20 +11,6 @@ describe('Registry', function() { System.registry.delete(moduleName, moduleValue); }); - describe('constructor', function() { - - //The constructor always throws because registries cannot be created in user-land - - it('should fail if not called with new', function() { - expect(Registry).to.throwException(); - }); - - it('should fail if called with new', function() { - expect(function() { new Registry() }).to.throwException(); - }); - - }); - describeIf(System.transpiler !== 'traceur', 'entries function', function() { it('returns all the entries in the registry in a MapIterator', function() { From f59aabdb03fce6d144310c14e88c573349078d3e Mon Sep 17 00:00:00 2001 From: Joel Denning Date: Sun, 24 Jan 2016 14:15:11 -0700 Subject: [PATCH 240/482] Switching from this._registry.registryMap to just this.registryMap --- src/loader.js | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/src/loader.js b/src/loader.js index 9187ab3..59c42ef 100644 --- a/src/loader.js +++ b/src/loader.js @@ -159,14 +159,13 @@ // 4.2 - see https://github.com/ModuleLoader/es6-module-loader/pull/462#discussion-diff-50639828 for why it deviates from spec function Registry() { - this._registry = {}; if (hasNativeMap) - this._registry.registryMap = new __global.Map(); + this.registryMap = new __global.Map(); else - this._registry.registryMap = new InternalMapPolyfill(); + this.registryMap = new InternalMapPolyfill(); // 4.4.2 if (hasNativeIterator) - this[__global.Symbol.iterator] = mapPolyfillEntriesIterator.bind(this._registry.registryMap); + this[__global.Symbol.iterator] = mapPolyfillEntriesIterator.bind(this.registryMap); } // 4.3.1 -- not necessary because of https://github.com/ModuleLoader/es6-module-loader/pull/462#discussion-diff-50639828 @@ -182,35 +181,35 @@ Registry.prototype.entries = function() { if (typeof this !== 'object') throw new TypeError('cannot get entries of a non-registry'); - return this._registry.registryMap.entries(); + return this.registryMap.entries(); } // 4.4.4 Registry.prototype.keys = function() { if (typeof this !== 'object') throw new TypeError('invalid registry'); - return this._registry.registryMap.keys(); + return this.registryMap.keys(); } // 4.4.5 Registry.prototype.values = function() { if (typeof this !== 'object') throw new TypeError('invalid registry'); - return this._registry.registryMap.values(); + return this.registryMap.values(); } // 4.4.6 Registry.prototype.get = function(key) { if (typeof this !== 'object') throw new TypeError('invalid registry'); - return this._registry.registryMap.get(key); + return this.registryMap.get(key); } // 4.4.7 Registry.prototype.set = function(key, value) { if (typeof this !== 'object') throw new TypeError('invalid registry'); - this._registry.registryMap.set(key, value); + this.registryMap.set(key, value); return this; } @@ -218,14 +217,14 @@ Registry.prototype.has = function(key) { if (typeof this !== 'object') throw new TypeError('invalid registry'); - return this._registry.registryMap.has(key); + return this.registryMap.has(key); } // 4.4.9 Registry.prototype.delete = function(key) { if (typeof this !== 'object') throw new TypeError('invalid registry'); - return this._registry.registryMap.delete(key); + return this.registryMap.delete(key); } // 4.1.1 - TODO out of date From a6a95c4cefaacea2b4ae6e35d6d9830c959e77c2 Mon Sep 17 00:00:00 2001 From: Joel Denning Date: Sun, 24 Jan 2016 17:43:34 -0700 Subject: [PATCH 241/482] Removing support for IE8 --- README.md | 6 ++++-- karma.conf.js | 17 ++--------------- src/declarative.js | 4 ++-- src/loader.js | 4 ++-- src/wrapper-start.js | 13 +------------ 5 files changed, 11 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index d12271f..80a7e0c 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ The rest of this Readme describes the previous implementation and will be update * Includes [`baseURL` and `paths` implementations](https://github.com/ModuleLoader/es6-module-loader/wiki/Configuring-the-Loader). * Can be used as a [tracing tool](https://github.com/ModuleLoader/es6-module-loader/wiki/Tracing-API) for static analysis of modules. * Polyfills ES6 Promises in the browser with an optionally bundled ES6 promise implementation. -* Supports IE8+, with IE9+ support for ES6 development without pre-compilation. +* Supports IE9+. * The complete combined polyfill, including ES6 promises, comes to 9KB minified and gzipped, making it suitable for production use, provided that modules are [built into ES5 making them independent of Traceur](https://github.com/ModuleLoader/es6-module-loader/wiki/Production-Workflows). For an overview of build workflows, [see the production guide](https://github.com/ModuleLoader/es6-module-loader/wiki/Production-Workflows). @@ -153,7 +153,9 @@ _Also, please don't edit files in the "dist" subdirectory as they are generated - You can use the `--coverage` option to test and extract coverage info. -- You can use the `--ie8` option to test the code in the ie8 scope only. +- You can use the `--native-iterator` option to run extra tests that check that `for ... of` and other iterator syntaxes work with es6-module-loader + +- You can use the `--force-map-polyfill` option to simulate an environment where `Map` is not defined - You can use the `--saucelabs` option to use karma and saucelabs to run the tests in various browsers. Note: you will need to export your username and key to launch it. diff --git a/karma.conf.js b/karma.conf.js index 798fd48..60a1816 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -16,15 +16,10 @@ var options = extend({ travis: process.env.TRAVIS, polyfill: false, saucelabs: false, - ie8: false, coverage: false, 'native-iterator': false }, argv); -if (options.ie8) { - console.log('IE8 Mode !\n - polyfill required\n'); - options.polyfill = true; -} if (options.saucelabs) { options.polyfill = true; } @@ -37,7 +32,7 @@ module.exports = function(config) { 'test/_helper.js', [options.babel ? 'node_modules/regenerator/runtime.js' : ''], - [!options.ie8 ? (!options['babel'] ? 'node_modules/traceur/bin/traceur.js' : 'node_modules/babel-core/browser.js') : ''], + [!options['babel'] ? 'node_modules/traceur/bin/traceur.js' : 'node_modules/babel-core/browser.js'] [options.polyfill ? 'node_modules/when/es6-shim/Promise.js' : ''], @@ -51,7 +46,7 @@ module.exports = function(config) { 'test/browser-script-type-module.js', 'test/custom-loader.js', - [!options.ie8 ? 'test/*.spec.js' : 'test/*.normalize.spec.js'], + ['test/*.spec.js'], [options['native-iterator'] ? 'test/*.native-iterator-spec.js' : ''], @@ -121,14 +116,6 @@ module.exports = function(config) { // IE tests disabled for now (https://github.com/ModuleLoader/es6-module-loader/issues/295) customLaunchers = undefined; - if (options.ie8) { - customLaunchers = geSaLaKaCuLa({ - 'Windows 7': { - 'internet explorer': '8' - } - }); - } - if (options['native-iterator']) { customLaunchers = geSaLaKaCuLa({ 'Windows 7': { diff --git a/src/declarative.js b/src/declarative.js index e6d4da1..3386b6e 100644 --- a/src/declarative.js +++ b/src/declarative.js @@ -17,7 +17,7 @@ for (var i = 0; i < module.importers.length; i++) { var importerModule = module.importers[i]; if (!importerModule.locked) { - var importerIndex = indexOf.call(importerModule.dependencies, module); + var importerIndex = importerModule.dependencies.indexOf(module); importerModule.setters[importerIndex](moduleObj); } } @@ -59,7 +59,7 @@ // execute a module record and all the modules that need it function ensureModuleExecution(module, seen) { - if (indexOf.call(seen, module) != -1) + if (seen.indexOf(module) != -1) return; if (module.error) diff --git a/src/loader.js b/src/loader.js index 59c42ef..0000bae 100644 --- a/src/loader.js +++ b/src/loader.js @@ -144,7 +144,7 @@ var hooks = ['resolve', 'fetch', 'translate', 'instantiate']; Loader.prototype.hook = function(name, value) { var loader = this._loader; - if (indexOf.call(hooks, name) == -1) + if (hooks.indexOf(name) == -1) throw new TypeError(name + ' is not a valid hook.'); if (value) loader[name] = value; @@ -628,7 +628,7 @@ // 6.2.3 - TODO out of date function computeDependencyGraph(entry, result) { - if (indexOf.call(result, entry) != -1) + if (result.indexOf(entry) != -1) return; result.push(entry); diff --git a/src/wrapper-start.js b/src/wrapper-start.js index 78d3bf9..8cba2d9 100644 --- a/src/wrapper-start.js +++ b/src/wrapper-start.js @@ -10,17 +10,6 @@ (function(__global) { - // IE8 support - // Note: console.assert is not supported or polyfillable in IE8 - // so it is better to debug in IE8 against the source with - // assertions removed. - var indexOf = Array.prototype.indexOf || function(item) { - for (var i = 0, thisLen = this.length; i < thisLen; i++) - if (this[i] === item) - return i; - return -1; - }; - // if we have require and exports, then define as CommonJS var cjsMode = typeof exports == 'object' && typeof require == 'function'; @@ -47,4 +36,4 @@ catch(e) { throw addToError(e, 'Evaluating ' + debugName); } - } \ No newline at end of file + } From 40b5d4bac0b04c933141b1412161237feb2210cf Mon Sep 17 00:00:00 2001 From: Joel Denning Date: Sun, 24 Jan 2016 17:45:19 -0700 Subject: [PATCH 242/482] Adding missing comma --- karma.conf.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/karma.conf.js b/karma.conf.js index 60a1816..cb8d983 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -32,7 +32,7 @@ module.exports = function(config) { 'test/_helper.js', [options.babel ? 'node_modules/regenerator/runtime.js' : ''], - [!options['babel'] ? 'node_modules/traceur/bin/traceur.js' : 'node_modules/babel-core/browser.js'] + [!options['babel'] ? 'node_modules/traceur/bin/traceur.js' : 'node_modules/babel-core/browser.js'], [options.polyfill ? 'node_modules/when/es6-shim/Promise.js' : ''], From 5c2e53128a4ce2edb4a7e4a1bf6abaac77295e16 Mon Sep 17 00:00:00 2001 From: Joel Denning Date: Sun, 24 Jan 2016 21:33:53 -0700 Subject: [PATCH 243/482] Adding preprocessor step to remove out strict correctness in production environments. Fixes #467 --- .travis.yml | 5 +++++ Gruntfile.js | 26 ++++++++++++++++++++--- karma.conf.js | 2 +- package.json | 8 +++++-- src/loader.js | 52 +++++++++++++++++++++++++++++++++++++-------- test/set-strict.js | 1 + test/system.spec.js | 5 +++++ 7 files changed, 84 insertions(+), 15 deletions(-) create mode 100644 test/set-strict.js diff --git a/.travis.yml b/.travis.yml index 1a408b5..0e8e8f6 100644 --- a/.travis.yml +++ b/.travis.yml @@ -29,6 +29,11 @@ matrix: env: SAUCE_LABS=true PARSER="babel" OPTIONS="--force-map-polyfill" - node_js: "0.12" env: SAUCE_LABS=true PARSER="babel" OPTIONS="--native-iterator --force-map-polyfill" + # Strict correctness tests + - node_js: "0.12" + env: SAUCE_LABS=true PARSER="traceur" OPTIONS="--native-iterator --force-map-polyfill --strict" + - node_js: "0.12" + env: SAUCE_LABS=true PARSER="babel" OPTIONS="--force-map-polyfill --strict" before_install: - export CHROME_BIN=chromium-browser - export DISPLAY=:99.0 diff --git a/Gruntfile.js b/Gruntfile.js index 816d64d..c4a9698 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -20,7 +20,7 @@ module.exports = function (grunt) { concat: { dist: { files: { - 'dist/<%= pkg.name %>.src.js': [ + 'dist/<%= pkg.name %>-strict.src.js': [ 'src/wrapper-start.js', 'src/loader.js', 'src/dynamic-only.js', @@ -28,7 +28,7 @@ module.exports = function (grunt) { 'src/system.js', 'src/wrapper-end.js' ], - 'dist/<%= pkg.name %>-dev.src.js': [ + 'dist/<%= pkg.name %>-dev-strict.src.js': [ 'src/wrapper-start.js', 'src/loader.js', 'src/declarative.js', @@ -41,6 +41,17 @@ module.exports = function (grunt) { } } }, + preprocess: { + multifile: { + files: { + 'dist/es6-module-loader-dev.src.js': 'dist/es6-module-loader-dev-strict.src.js', + 'dist/es6-module-loader.src.js': 'dist/es6-module-loader-strict.src.js' + }, + context: { + STRICT: true + } + } + }, uglify: { options: { banner: '<%= meta.banner %>\n', @@ -53,9 +64,17 @@ module.exports = function (grunt) { src: 'dist/<%= pkg.name %>.src.js', dest: 'dist/<%= pkg.name %>.js' }, + distStrict: { + src: 'dist/<%= pkg.name %>-strict.src.js', + dest: 'dist/<%= pkg.name %>-strict.js' + }, distDev: { src: 'dist/<%= pkg.name %>-dev.src.js', dest: 'dist/<%= pkg.name %>-dev.js' + }, + distDevStrict: { + src: 'dist/<%= pkg.name %>-dev-strict.src.js', + dest: 'dist/<%= pkg.name %>-dev-strict.js' } } }); @@ -63,8 +82,9 @@ module.exports = function (grunt) { grunt.loadNpmTasks('grunt-contrib-jshint'); grunt.loadNpmTasks('grunt-contrib-concat'); grunt.loadNpmTasks('grunt-contrib-uglify'); + grunt.loadNpmTasks('grunt-preprocess'); grunt.registerTask('lint', ['jshint']); grunt.registerTask('compile', ['concat']); - grunt.registerTask('default', [/*'jshint', */'concat', 'uglify']); + grunt.registerTask('default', [/*'jshint', */'concat', 'preprocess', 'uglify']); }; diff --git a/karma.conf.js b/karma.conf.js index 798fd48..1aee7de 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -45,7 +45,7 @@ module.exports = function(config) { [options['force-map-polyfill'] ? 'test/force-map-polyfill.js' : ''], - 'dist/es6-module-loader-dev.src.js', + (options['strict'] ? ['dist/es6-module-loader-dev-strict.js', 'test/set-strict.js'] : 'dist/es6-module-loader-dev.src.js'), 'test/_browser.js', 'test/browser-script-type-module.js', diff --git a/package.json b/package.json index 8debb49..b6e2ce2 100644 --- a/package.json +++ b/package.json @@ -30,6 +30,7 @@ "grunt-contrib-concat": "^0.5.0", "grunt-contrib-jshint": "~0.6.0", "grunt-contrib-uglify": "~0.6.0", + "grunt-preprocess": "^5.0.1", "karma": "^0.12.28", "karma-benchmark": "^0.4.0", "karma-benchmark-reporter": "^0.1.1", @@ -57,12 +58,15 @@ "scripts": { "test": "npm run test:node && npm run test:browser", "test:node": "mocha test/_node-traceur.js && mocha test/_node-babel.js", - "test:browser": "npm run test:browser-traceur && npm run test:browser-babel && npm run test:browser:native-iterator && npm run test:browser:map-polyfill", + "test:browser": "npm run test:browser-traceur && npm run test:browser-babel && npm run test:browser:native-iterator && npm run test:browser:map-polyfill && npm run test:browser:strict", "test:browser-traceur": "karma start --single-run", "test:browser-babel": "karma start --single-run --babel", "test:browser:perf": "karma start karma-benchmark.conf.js --single-run", "test:browser:native-iterator": "karma start --single-run --native-iterator && karma start --single-run --babel --native-iterator", - "test:browser:map-polyfill": "karma start --single-run --babel --native-iterator --force-map-polyfill && karma start --single-run --babel --force-map-polyfill" + "test:browser:map-polyfill": "karma start --single-run --babel --native-iterator --force-map-polyfill && karma start --single-run --babel --force-map-polyfill", + "test:browser:strict": "npm run test:browser-babel:strict && npm run test:browser-traceur:strict", + "test:browser-babel:strict": "karma start --single-run --babel --native-iterator --force-map-polyfill --strict", + "test:browser-traceur:strict": "karma start --single-run --native-iterator --strict" }, "dependencies": { "when": "^3.7.2" diff --git a/src/loader.js b/src/loader.js index 59c42ef..37e757f 100644 --- a/src/loader.js +++ b/src/loader.js @@ -88,22 +88,26 @@ return entry.module; }); + // @ifdef STRICT else throw new TypeError('Invalid stage ' + stage); + // @endif }; // 3.3.5 Object.defineProperty(Loader.prototype, 'registry', { get: function() { - if (typeof this !== 'object') - throw new TypeError('this must be a Loader'); - // uncomment when Realm is implemented - // if (!this._loader.realm) - // throw new TypeError('A Loader must have a realm'); - - if (!(this._loader.newRegistry instanceof Registry)) - throw new TypeError('invalid registry -- must be created during Loader constructor'); - return this._loader.newRegistry; + // @ifdef STRICT + if (typeof this !== 'object') + throw new TypeError('this must be a Loader'); + // uncomment when Realm is implemented + // if (!this._loader.realm) + // throw new TypeError('A Loader must have a realm'); + + if (!(this._loader.newRegistry instanceof Registry)) + throw new TypeError('invalid registry -- must be created during Loader constructor'); + // @endif + return this._loader.newRegistry; } }); @@ -115,18 +119,24 @@ var entry = ensureRegistered(loader, key, metadata); if (stage == 'fetch') { + // @ifdef STRICT if (entry.state > FETCH) throw new TypeError(key + ' has already been fetched.'); + // @endif fulfillFetch(loader, entry, value); } else if (stage == 'translate') { + // @ifdef STRICT if (entry.state > TRANSLATE) throw new TypeError(key + ' has already been translated.'); + // @endif fulfillTranslate(loader, entry, value); } else if (stage == 'instantiate') { + // @ifdef STRICT if (entry.state > INSTANTIATE) throw new TypeError(key + ' has already been instantiated.'); + // @endif fulfillFetch(loader, entry, undefined); fulfillTranslate(loader, entry, undefined); // NB error propogation @@ -134,8 +144,10 @@ loadTranspilerThenFulfillInstantiate(loader, entry, value, source); }); } + // @ifdef STRICT else throw new TypeError('Invalid stage ' + stage); + // @endif }; // TODO: the Loader no longer has the hook property @@ -144,8 +156,10 @@ var hooks = ['resolve', 'fetch', 'translate', 'instantiate']; Loader.prototype.hook = function(name, value) { var loader = this._loader; + // @ifdef STRICT if (indexOf.call(hooks, name) == -1) throw new TypeError(name + ' is not a valid hook.'); + // @endif if (value) loader[name] = value; else @@ -179,65 +193,83 @@ // 4.4.3 Registry.prototype.entries = function() { + // @ifdef STRICT if (typeof this !== 'object') throw new TypeError('cannot get entries of a non-registry'); + // @endif return this.registryMap.entries(); } // 4.4.4 Registry.prototype.keys = function() { + // @ifdef STRICT if (typeof this !== 'object') throw new TypeError('invalid registry'); + // @endif return this.registryMap.keys(); } // 4.4.5 Registry.prototype.values = function() { + // @ifdef STRICT if (typeof this !== 'object') throw new TypeError('invalid registry'); + // @endif return this.registryMap.values(); } // 4.4.6 Registry.prototype.get = function(key) { + // @ifdef STRICT if (typeof this !== 'object') throw new TypeError('invalid registry'); + // @endif return this.registryMap.get(key); } // 4.4.7 Registry.prototype.set = function(key, value) { + // @ifdef STRICT if (typeof this !== 'object') throw new TypeError('invalid registry'); + // @endif this.registryMap.set(key, value); return this; } // 4.4.8 Registry.prototype.has = function(key) { + // @ifdef STRICT if (typeof this !== 'object') throw new TypeError('invalid registry'); + // @endif return this.registryMap.has(key); } // 4.4.9 Registry.prototype.delete = function(key) { + // @ifdef STRICT if (typeof this !== 'object') throw new TypeError('invalid registry'); + // @endif return this.registryMap.delete(key); } // 4.1.1 - TODO out of date function getCurrentStage(entry) { + // @ifdef STRICT if (typeof entry !== 'object') throw new TypeError('entry is not an object'); + // @endif return entry.pipeline[0]; } // 4.1.4 - TODO out of date function getRegistryEntry(registry, key) { + // @ifdef STRICT if (typeof registry !== 'object') throw new TypeError('registry is not an object'); + // @endif var entry = registry._registry.registryData[key]; if (!entry) @@ -263,10 +295,12 @@ // 4.4.4 - TODO out of date Registry.prototype.install = function(key, module) { + // @ifdef STRICT if (typeof this !== 'object') throw new TypeError('registry must be an object'); if (this._registry.registryData[key]) throw new TypeError('Module with key ' + key + ' already exists'); + // @endif var result = new Promise(function(resolve) { resolve(module); diff --git a/test/set-strict.js b/test/set-strict.js new file mode 100644 index 0000000..10f1b88 --- /dev/null +++ b/test/set-strict.js @@ -0,0 +1 @@ +window.strictCorrectness = true; diff --git a/test/system.spec.js b/test/system.spec.js index 980a101..c09a9aa 100644 --- a/test/system.spec.js +++ b/test/system.spec.js @@ -365,6 +365,10 @@ describe('System', function () { describe('get Loader.prototype.registry', function () { it('returns the registry object', function () { expect(System.registry).to.be.an('object'); + }); + + describeIf(typeof window != 'undefined' && !!window.strictCorrectness, 'strict correctness', function () { + it('throws with an invalid registry', function () { var oldRegistry = System.registry; System._loader.newRegistry = 'invalid registry'; expect(function() { @@ -374,6 +378,7 @@ describe('System', function () { }); System._loader.newRegistry = oldRegistry; + }); }); }); From 0c954cdd40eb5d82cf01e2a9e03a2ed32714bb55 Mon Sep 17 00:00:00 2001 From: Joel Denning Date: Sun, 14 Feb 2016 19:20:06 -0700 Subject: [PATCH 244/482] Switching to two builds: declarative and production --- Gruntfile.js | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/Gruntfile.js b/Gruntfile.js index c4a9698..44ee56d 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -20,7 +20,7 @@ module.exports = function (grunt) { concat: { dist: { files: { - 'dist/<%= pkg.name %>-strict.src.js': [ + 'dist/<%= pkg.name %>.src.js': [ 'src/wrapper-start.js', 'src/loader.js', 'src/dynamic-only.js', @@ -28,7 +28,7 @@ module.exports = function (grunt) { 'src/system.js', 'src/wrapper-end.js' ], - 'dist/<%= pkg.name %>-dev-strict.src.js': [ + 'dist/<%= pkg.name %>-declarative.src.js': [ 'src/wrapper-start.js', 'src/loader.js', 'src/declarative.js', @@ -42,13 +42,22 @@ module.exports = function (grunt) { } }, preprocess: { - multifile: { - files: { - 'dist/es6-module-loader-dev.src.js': 'dist/es6-module-loader-dev-strict.src.js', - 'dist/es6-module-loader.src.js': 'dist/es6-module-loader-strict.src.js' - }, - context: { - STRICT: true + declarative: { + src: 'dist/es6-module-loader-declarative.src.js', + options: { + inline: true, + context: { + STRICT: true + } + } + }, + production: { + src: 'dist/es6-module-loader.src.js', + options: { + inline: true, + contextr: { + STRICT: false + } } } }, @@ -64,18 +73,10 @@ module.exports = function (grunt) { src: 'dist/<%= pkg.name %>.src.js', dest: 'dist/<%= pkg.name %>.js' }, - distStrict: { - src: 'dist/<%= pkg.name %>-strict.src.js', - dest: 'dist/<%= pkg.name %>-strict.js' - }, - distDev: { - src: 'dist/<%= pkg.name %>-dev.src.js', - dest: 'dist/<%= pkg.name %>-dev.js' + distDeclarative: { + src: 'dist/<%= pkg.name %>-declarative.src.js', + dest: 'dist/<%= pkg.name %>-declarative.js' }, - distDevStrict: { - src: 'dist/<%= pkg.name %>-dev-strict.src.js', - dest: 'dist/<%= pkg.name %>-dev-strict.js' - } } }); From 201e3d66e9e33ebc8b4beb6a220ee2b3a307a02a Mon Sep 17 00:00:00 2001 From: Joel Denning Date: Sun, 14 Feb 2016 19:24:26 -0700 Subject: [PATCH 245/482] Only testing on node versions 0.12 and 4.1. Fixes #470 --- .travis.yml | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1a408b5..5b50aef 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,10 +3,8 @@ git: depth: 1 language: node_js node_js: - - '0.10' - - '0.11' - '0.12' - - 'iojs' + - '4.1' env: global: - SAUCE_LABS=false PARSER=false OPTIONS="" @@ -15,19 +13,19 @@ env: - PARSER="babel" matrix: include: - - node_js: "0.12" + - node_js: "4.1" env: SAUCE_LABS=true PARSER="traceur" - - node_js: "0.12" + - node_js: "4.1" env: SAUCE_LABS=true PARSER="babel" # Native iterator tests - - node_js: "0.12" + - node_js: "4.1" env: SAUCE_LABS=true PARSER="traceur" OPTIONS="--native-iterator" - - node_js: "0.12" + - node_js: "4.1" env: SAUCE_LABS=true PARSER="babel" OPTIONS="--native-iterator" # Map polyfill tests - - node_js: "0.12" + - node_js: "4.1" env: SAUCE_LABS=true PARSER="babel" OPTIONS="--force-map-polyfill" - - node_js: "0.12" + - node_js: "4.1" env: SAUCE_LABS=true PARSER="babel" OPTIONS="--native-iterator --force-map-polyfill" before_install: - export CHROME_BIN=chromium-browser From f939a014763c9816b60293826b83cc7bca236871 Mon Sep 17 00:00:00 2001 From: Joel Denning Date: Sun, 14 Feb 2016 19:44:25 -0700 Subject: [PATCH 246/482] Fixing tests to use the declarative instead of dev builds --- .travis.yml | 5 ----- index.js | 2 +- karma.conf.js | 2 +- package.json | 7 ++----- test/set-strict.js | 1 - test/system.spec.js | 2 +- test/worker/worker-babel.js | 4 ++-- test/worker/worker-traceur.js | 2 +- 8 files changed, 8 insertions(+), 17 deletions(-) delete mode 100644 test/set-strict.js diff --git a/.travis.yml b/.travis.yml index 0e8e8f6..1a408b5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -29,11 +29,6 @@ matrix: env: SAUCE_LABS=true PARSER="babel" OPTIONS="--force-map-polyfill" - node_js: "0.12" env: SAUCE_LABS=true PARSER="babel" OPTIONS="--native-iterator --force-map-polyfill" - # Strict correctness tests - - node_js: "0.12" - env: SAUCE_LABS=true PARSER="traceur" OPTIONS="--native-iterator --force-map-polyfill --strict" - - node_js: "0.12" - env: SAUCE_LABS=true PARSER="babel" OPTIONS="--force-map-polyfill --strict" before_install: - export CHROME_BIN=chromium-browser - export DISPLAY=:99.0 diff --git a/index.js b/index.js index a059a6b..3f02afd 100644 --- a/index.js +++ b/index.js @@ -1,7 +1,7 @@ if (typeof Promise === 'undefined') require('when/es6-shim/Promise'); -module.exports = require('./dist/es6-module-loader-dev.src'); +module.exports = require('./dist/es6-module-loader-declarative.src'); var System = module.exports.System; diff --git a/karma.conf.js b/karma.conf.js index 1aee7de..495e4ee 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -45,7 +45,7 @@ module.exports = function(config) { [options['force-map-polyfill'] ? 'test/force-map-polyfill.js' : ''], - (options['strict'] ? ['dist/es6-module-loader-dev-strict.js', 'test/set-strict.js'] : 'dist/es6-module-loader-dev.src.js'), + ['dist/es6-module-loader-declarative.src.js'], 'test/_browser.js', 'test/browser-script-type-module.js', diff --git a/package.json b/package.json index b6e2ce2..955bb01 100644 --- a/package.json +++ b/package.json @@ -58,15 +58,12 @@ "scripts": { "test": "npm run test:node && npm run test:browser", "test:node": "mocha test/_node-traceur.js && mocha test/_node-babel.js", - "test:browser": "npm run test:browser-traceur && npm run test:browser-babel && npm run test:browser:native-iterator && npm run test:browser:map-polyfill && npm run test:browser:strict", + "test:browser": "npm run test:browser-traceur && npm run test:browser-babel && npm run test:browser:native-iterator && npm run test:browser:map-polyfill", "test:browser-traceur": "karma start --single-run", "test:browser-babel": "karma start --single-run --babel", "test:browser:perf": "karma start karma-benchmark.conf.js --single-run", "test:browser:native-iterator": "karma start --single-run --native-iterator && karma start --single-run --babel --native-iterator", - "test:browser:map-polyfill": "karma start --single-run --babel --native-iterator --force-map-polyfill && karma start --single-run --babel --force-map-polyfill", - "test:browser:strict": "npm run test:browser-babel:strict && npm run test:browser-traceur:strict", - "test:browser-babel:strict": "karma start --single-run --babel --native-iterator --force-map-polyfill --strict", - "test:browser-traceur:strict": "karma start --single-run --native-iterator --strict" + "test:browser:map-polyfill": "karma start --single-run --babel --native-iterator --force-map-polyfill && karma start --single-run --babel --force-map-polyfill" }, "dependencies": { "when": "^3.7.2" diff --git a/test/set-strict.js b/test/set-strict.js deleted file mode 100644 index 10f1b88..0000000 --- a/test/set-strict.js +++ /dev/null @@ -1 +0,0 @@ -window.strictCorrectness = true; diff --git a/test/system.spec.js b/test/system.spec.js index c09a9aa..a388ed3 100644 --- a/test/system.spec.js +++ b/test/system.spec.js @@ -367,7 +367,7 @@ describe('System', function () { expect(System.registry).to.be.an('object'); }); - describeIf(typeof window != 'undefined' && !!window.strictCorrectness, 'strict correctness', function () { + describe('strict correctness', function () { it('throws with an invalid registry', function () { var oldRegistry = System.registry; System._loader.newRegistry = 'invalid registry'; diff --git a/test/worker/worker-babel.js b/test/worker/worker-babel.js index 8e62055..2b1b6e9 100644 --- a/test/worker/worker-babel.js +++ b/test/worker/worker-babel.js @@ -1,5 +1,5 @@ importScripts("../../node_modules/when/es6-shim/Promise.js", - "../../dist/es6-module-loader-dev.src.js"); + "../../dist/es6-module-loader-declarative.src.js"); System.transpiler = 'babel'; System.site.set('babel', '../../node_modules/babel-core/browser.js'); @@ -8,4 +8,4 @@ System['import']('es6.js').then(function(m) { postMessage(m.p); }, function(err) { console.error(err, err.stack); -}); \ No newline at end of file +}); diff --git a/test/worker/worker-traceur.js b/test/worker/worker-traceur.js index aa0926b..c466349 100644 --- a/test/worker/worker-traceur.js +++ b/test/worker/worker-traceur.js @@ -1,5 +1,5 @@ importScripts("../../node_modules/when/es6-shim/Promise.js", - "../../dist/es6-module-loader-dev.src.js"); + "../../dist/es6-module-loader-declarative.src.js"); System.site.set('traceur', '../../node_modules/traceur/bin/traceur.js'); From fbd263672c7340c3612ea19fd42434c84ebeef27 Mon Sep 17 00:00:00 2001 From: guybedford Date: Tue, 9 Aug 2016 01:55:19 +0200 Subject: [PATCH 247/482] new loader build --- .gitignore | 1 + Gruntfile.js | 91 -- LICENSE-MIT | 2 +- core/common.js | 149 +++ core/fetch.js | 134 ++ core/loader-polyfill.js | 204 +++ core/module-scripts.js | 30 + core/register-loader.js | 465 +++++++ core/resolve.js | 79 ++ demo/index.html | 68 - demo/test1.js | 1 - demo/test2.js | 5 - dist/es6-module-loader-dev.js | 8 - dist/es6-module-loader-dev.js.map | 1 - dist/es6-module-loader-dev.src.js | 1188 ----------------- dist/es6-module-loader.js | 8 - dist/es6-module-loader.js.map | 1 - dist/es6-module-loader.src.js | 910 ------------- index.js | 25 - package.json | 46 +- rollup.config.js | 6 + src/declarative.js | 116 -- src/dynamic-only.js | 7 - src/loader.js | 811 ----------- src/module-tag.js | 43 - src/system.js | 184 --- src/transpiler.js | 124 -- src/url-polyfill.js | 67 - src/wrapper-end.js | 27 - src/wrapper-start.js | 39 - system-register-only.js | 48 + {test => test-old}/_browser.js | 0 {test => test-old}/_helper.js | 0 {test => test-old}/_node-babel.js | 0 {test => test-old}/_node-traceur.js | 0 .../browser-script-type-module.js | 0 {test => test-old}/custom-loader.js | 0 {test => test-old}/custom-loader.spec.js | 0 {test => test-old}/force-map-polyfill.js | 0 .../karma-benchmark.conf.js | 0 karma.conf.js => test-old/karma.conf.js | 0 {test => test-old}/loader/amd-dep.js | 0 {test => test-old}/loader/amd.js | 0 {test => test-old}/loader/anon.js | 0 {test => test-old}/loader/async-norm.js | 0 .../loader/custom-folder/path.js | 0 {test => test-old}/loader/custom-path.js | 0 {test => test-old}/loader/custom.js | 0 {test => test-old}/loader/error1-parent.js | 0 {test => test-old}/loader/master.js | 0 {test => test-old}/loader/module.js | 0 {test => test-old}/loader/moduleName.js | 0 {test => test-old}/loader/named.js | 0 {test => test-old}/loader/specific-path.js | 0 {test => test-old}/loads/_a.js | 0 {test => test-old}/loads/_b.js | 0 {test => test-old}/loads/_c.js | 0 {test => test-old}/loads/_d.js | 0 {test => test-old}/loads/_e.js | 0 {test => test-old}/loads/_f.js | 0 {test => test-old}/loads/_g.js | 0 {test => test-old}/loads/_h.js | 0 {test => test-old}/loads/_i.js | 0 {test => test-old}/loads/a.js | 0 {test => test-old}/loads/b.js | 0 {test => test-old}/loads/c.js | 0 {test => test-old}/loads/deperror.js | 0 {test => test-old}/loads/load-non-existent.js | 0 {test => test-old}/loads/main.js | 0 {test => test-old}/loads/s.js | 0 .../manual/source-maps/test.html | 0 {test => test-old}/manual/source-maps/test.js | 0 {test => test-old}/perf.html | 0 {test => test-old}/perf.js | 0 .../registry.native-iterator-spec.js | 0 {test => test-old}/registry.spec.js | 0 {test => test-old}/syntax/circular1.js | 0 {test => test-old}/syntax/circular2.js | 0 {test => test-old}/syntax/direct.js | 0 {test => test-old}/syntax/es6-dep.js | 0 {test => test-old}/syntax/es6-file.js | 0 {test => test-old}/syntax/es6-generator.js | 0 {test => test-old}/syntax/es6-withdep.js | 0 {test => test-old}/syntax/es6.js | 0 {test => test-old}/syntax/even.js | 0 {test => test-old}/syntax/export-default.js | 0 {test => test-old}/syntax/export-star.js | 0 {test => test-old}/syntax/export-star2.js | 0 {test => test-old}/syntax/export.js | 0 {test => test-old}/syntax/import.js | 0 {test => test-old}/syntax/odd.js | 0 {test => test-old}/syntax/rebinding.js | 0 {test => test-old}/syntax/reexport-binding.js | 0 {test => test-old}/syntax/reexport1.js | 0 {test => test-old}/syntax/reexport2.js | 0 {test => test-old}/syntax/script.js | 0 {test => test-old}/syntax/star-dep.js | 0 {test => test-old}/syntax/test-file.js | 0 {test => test-old}/system.normalize.spec.js | 0 {test => test-old}/system.spec.js | 0 {test => test-old}/worker/es6.js | 0 {test => test-old}/worker/worker-babel.js | 0 {test => test-old}/worker/worker-traceur.js | 0 test/register.js | 7 + test/test.js | 10 + 105 files changed, 1140 insertions(+), 3765 deletions(-) delete mode 100644 Gruntfile.js create mode 100644 core/common.js create mode 100644 core/fetch.js create mode 100644 core/loader-polyfill.js create mode 100644 core/module-scripts.js create mode 100644 core/register-loader.js create mode 100644 core/resolve.js delete mode 100644 demo/index.html delete mode 100644 demo/test1.js delete mode 100644 demo/test2.js delete mode 100644 dist/es6-module-loader-dev.js delete mode 100644 dist/es6-module-loader-dev.js.map delete mode 100644 dist/es6-module-loader-dev.src.js delete mode 100644 dist/es6-module-loader.js delete mode 100644 dist/es6-module-loader.js.map delete mode 100644 dist/es6-module-loader.src.js delete mode 100644 index.js create mode 100644 rollup.config.js delete mode 100644 src/declarative.js delete mode 100644 src/dynamic-only.js delete mode 100644 src/loader.js delete mode 100644 src/module-tag.js delete mode 100644 src/system.js delete mode 100644 src/transpiler.js delete mode 100644 src/url-polyfill.js delete mode 100644 src/wrapper-end.js delete mode 100644 src/wrapper-start.js create mode 100644 system-register-only.js rename {test => test-old}/_browser.js (100%) rename {test => test-old}/_helper.js (100%) rename {test => test-old}/_node-babel.js (100%) rename {test => test-old}/_node-traceur.js (100%) rename {test => test-old}/browser-script-type-module.js (100%) rename {test => test-old}/custom-loader.js (100%) rename {test => test-old}/custom-loader.spec.js (100%) rename {test => test-old}/force-map-polyfill.js (100%) rename karma-benchmark.conf.js => test-old/karma-benchmark.conf.js (100%) rename karma.conf.js => test-old/karma.conf.js (100%) rename {test => test-old}/loader/amd-dep.js (100%) rename {test => test-old}/loader/amd.js (100%) rename {test => test-old}/loader/anon.js (100%) rename {test => test-old}/loader/async-norm.js (100%) rename {test => test-old}/loader/custom-folder/path.js (100%) rename {test => test-old}/loader/custom-path.js (100%) rename {test => test-old}/loader/custom.js (100%) rename {test => test-old}/loader/error1-parent.js (100%) rename {test => test-old}/loader/master.js (100%) rename {test => test-old}/loader/module.js (100%) rename {test => test-old}/loader/moduleName.js (100%) rename {test => test-old}/loader/named.js (100%) rename {test => test-old}/loader/specific-path.js (100%) rename {test => test-old}/loads/_a.js (100%) rename {test => test-old}/loads/_b.js (100%) rename {test => test-old}/loads/_c.js (100%) rename {test => test-old}/loads/_d.js (100%) rename {test => test-old}/loads/_e.js (100%) rename {test => test-old}/loads/_f.js (100%) rename {test => test-old}/loads/_g.js (100%) rename {test => test-old}/loads/_h.js (100%) rename {test => test-old}/loads/_i.js (100%) rename {test => test-old}/loads/a.js (100%) rename {test => test-old}/loads/b.js (100%) rename {test => test-old}/loads/c.js (100%) rename {test => test-old}/loads/deperror.js (100%) rename {test => test-old}/loads/load-non-existent.js (100%) rename {test => test-old}/loads/main.js (100%) rename {test => test-old}/loads/s.js (100%) rename {test => test-old}/manual/source-maps/test.html (100%) rename {test => test-old}/manual/source-maps/test.js (100%) rename {test => test-old}/perf.html (100%) rename {test => test-old}/perf.js (100%) rename {test => test-old}/registry.native-iterator-spec.js (100%) rename {test => test-old}/registry.spec.js (100%) rename {test => test-old}/syntax/circular1.js (100%) rename {test => test-old}/syntax/circular2.js (100%) rename {test => test-old}/syntax/direct.js (100%) rename {test => test-old}/syntax/es6-dep.js (100%) rename {test => test-old}/syntax/es6-file.js (100%) rename {test => test-old}/syntax/es6-generator.js (100%) rename {test => test-old}/syntax/es6-withdep.js (100%) rename {test => test-old}/syntax/es6.js (100%) rename {test => test-old}/syntax/even.js (100%) rename {test => test-old}/syntax/export-default.js (100%) rename {test => test-old}/syntax/export-star.js (100%) rename {test => test-old}/syntax/export-star2.js (100%) rename {test => test-old}/syntax/export.js (100%) rename {test => test-old}/syntax/import.js (100%) rename {test => test-old}/syntax/odd.js (100%) rename {test => test-old}/syntax/rebinding.js (100%) rename {test => test-old}/syntax/reexport-binding.js (100%) rename {test => test-old}/syntax/reexport1.js (100%) rename {test => test-old}/syntax/reexport2.js (100%) rename {test => test-old}/syntax/script.js (100%) rename {test => test-old}/syntax/star-dep.js (100%) rename {test => test-old}/syntax/test-file.js (100%) rename {test => test-old}/system.normalize.spec.js (100%) rename {test => test-old}/system.spec.js (100%) rename {test => test-old}/worker/es6.js (100%) rename {test => test-old}/worker/worker-babel.js (100%) rename {test => test-old}/worker/worker-traceur.js (100%) create mode 100644 test/register.js create mode 100644 test/test.js diff --git a/.gitignore b/.gitignore index cadf828..b1ecd7e 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ coverage .DS_Store npm-debug.log .lvimrc +dist \ No newline at end of file diff --git a/Gruntfile.js b/Gruntfile.js deleted file mode 100644 index 44ee56d..0000000 --- a/Gruntfile.js +++ /dev/null @@ -1,91 +0,0 @@ -'use strict'; - -module.exports = function (grunt) { - grunt.initConfig({ - pkg: grunt.file.readJSON('package.json'), - meta: { - banner: '/*\n * <%= pkg.name %> v<%= pkg.version %>\n' + - '<%= pkg.homepage ? " * " + pkg.homepage + "\\n" : "" %>' + - ' * Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>;' + - ' Licensed <%= _.pluck(pkg.licenses, "type").join(", ") %>\n */' - }, - jshint: { - options: { - jshintrc: '.jshintrc' - }, - dist: [ - 'lib/index.js' - ] - }, - concat: { - dist: { - files: { - 'dist/<%= pkg.name %>.src.js': [ - 'src/wrapper-start.js', - 'src/loader.js', - 'src/dynamic-only.js', - 'src/url-polyfill.js', - 'src/system.js', - 'src/wrapper-end.js' - ], - 'dist/<%= pkg.name %>-declarative.src.js': [ - 'src/wrapper-start.js', - 'src/loader.js', - 'src/declarative.js', - 'src/transpiler.js', - 'src/url-polyfill.js', - 'src/system.js', - 'src/module-tag.js', - 'src/wrapper-end.js' - ] - } - } - }, - preprocess: { - declarative: { - src: 'dist/es6-module-loader-declarative.src.js', - options: { - inline: true, - context: { - STRICT: true - } - } - }, - production: { - src: 'dist/es6-module-loader.src.js', - options: { - inline: true, - contextr: { - STRICT: false - } - } - } - }, - uglify: { - options: { - banner: '<%= meta.banner %>\n', - compress: { - drop_console: true - }, - sourceMap: true - }, - dist: { - src: 'dist/<%= pkg.name %>.src.js', - dest: 'dist/<%= pkg.name %>.js' - }, - distDeclarative: { - src: 'dist/<%= pkg.name %>-declarative.src.js', - dest: 'dist/<%= pkg.name %>-declarative.js' - }, - } - }); - - grunt.loadNpmTasks('grunt-contrib-jshint'); - grunt.loadNpmTasks('grunt-contrib-concat'); - grunt.loadNpmTasks('grunt-contrib-uglify'); - grunt.loadNpmTasks('grunt-preprocess'); - - grunt.registerTask('lint', ['jshint']); - grunt.registerTask('compile', ['concat']); - grunt.registerTask('default', [/*'jshint', */'concat', 'preprocess', 'uglify']); -}; diff --git a/LICENSE-MIT b/LICENSE-MIT index 5dbb45c..4879853 100644 --- a/LICENSE-MIT +++ b/LICENSE-MIT @@ -1,4 +1,4 @@ -Copyright (c) 2013-2015 Guy Bedford, Luke Hoban, Addy Osmani +Copyright (c) 2013-2016 Guy Bedford, Peter Uithoven, Luke Hoban, Addy Osmani Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation diff --git a/core/common.js b/core/common.js new file mode 100644 index 0000000..a93c5ef --- /dev/null +++ b/core/common.js @@ -0,0 +1,149 @@ +/* + * Environment + */ +export var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined'; +export var isWorker = typeof window === 'undefined' && typeof self !== 'undefined' && typeof importScripts !== 'undefined'; +export var isWindows = typeof process !== 'undefined' && typeof process.platform === 'string' && process.platform.match(/^win/); +export var isNode = typeof require !== 'undefined' && typeof process !== 'undefined' && !process.browser; + +export var envGlobal = typeof self !== 'undefined' ? self : global; + +/* + * Path to loader itself + */ +export var scriptSrc; + +if (isBrowser) { + if (document.currentScript) + scriptSrc = document.currentScript.src; + + var scripts = document.getElementsByTagName('script'); + var curScript = scripts.length && scripts[scripts.length - 1]; + if (curScript && !curScript.defer && !curScript.async) + scriptSrc = curScript.src; +} +else if (isWorker) { + try { + throw new Error('_'); + } catch (e) { + e.stack.replace(/(?:at|@).*(http.+):[\d]+:[\d]+/, function(m, url) { + scriptSrc = url; + }); + } +} +else if (typeof __filename != 'undefined') { + scriptSrc = __filename; +} + +/* + * Environment baseURI + */ +export var baseURI; + +// environent baseURI detection +if (typeof document != 'undefined' && document.getElementsByTagName) { + baseURI = document.baseURI; + + if (!baseURI) { + var bases = document.getElementsByTagName('base'); + baseURI = bases[0] && bases[0].href || window.location.href; + } +} +else if (typeof location != 'undefined') { + baseURI = __global.location.href; +} + +// sanitize out the hash and querystring +if (baseURI) { + baseURI = baseURI.split('#')[0].split('?')[0]; + baseURI = baseURI.substr(0, baseURI.lastIndexOf('/') + 1); +} +else if (typeof process != 'undefined' && process.cwd) { + baseURI = 'file://' + (isWindows ? '/' : '') + process.cwd() + '/'; + if (isWindows) + baseURI = baseURI.replace(/\\/g, '/'); +} +else { + throw new TypeError('No environment baseURI'); +} + +/* + * Error chaining for loader stacks + */ +var errArgs = new Error(0, '_').fileName == '_'; + +scriptSrc ='asdf'; + +export function addToError(err, msg) { + // parse the stack removing loader code lines for simplification + if (!err.originalErr) { + var stack = (err.stack || err.message || err).toString().split('\n'); + var newStack; + + // if the error stack doesn't start in SystemJS, skip the SystemJS stack part + newStack = []; + for (var i = 0; i < stack.length; i++) + if (scriptSrc && stack[i].indexOf(scriptSrc) === -1) + newStack.push(stack[i]); + } + + var newMsg = '(SystemJS) ' + (newStack ? newStack.join('\n\t') : err.message.substr(11)) + '\n\t' + msg; + + // Convert file:/// URLs to paths in Node + if (!isBrowser) + newMsg = newMsg.replace(isWindows ? /file:\/\/\//g : /file:\/\//g, ''); + + var newErr = errArgs ? new Error(newMsg, err.fileName, err.lineNumber) : new Error(newMsg); + + // Node needs stack adjustment for throw to show message + if (!isBrowser) + newErr.stack = newMsg; + // Clearing the stack stops unnecessary loader lines showing + else + newErr.stack = null; + + // track the original error + newErr.originalErr = err.originalErr || err; + + return newErr; +} + +/* + * Simple Symbol() shim + */ +var hasSymbol = typeof Symbol !== 'undefined'; +export function createSymbol(name) { + return hasSymbol ? Symbol() : name; +} + +/* + * Simple Array values shim + */ +export function arrayValues(arr) { + if (arr.values) + return arr.values(); + + if (typeof Symbol === 'undefined' || !Symbol.iterator) + throw new Error('Cannot return values iterator unless Symbol.iterator is defined'); + + var iterable = {}; + iterable[Symbol.iterator] = function() { + var keys = Object.keys(arr); + var keyIndex = 0; + return { + next: function() { + if (keyIndex < keys.length) + return { + value: arr[keys[keyIndex++]], + done: false + }; + else + return { + value: undefined, + done: true + }; + } + }; + }; + return iterable; +} \ No newline at end of file diff --git a/core/fetch.js b/core/fetch.js new file mode 100644 index 0000000..e5858e1 --- /dev/null +++ b/core/fetch.js @@ -0,0 +1,134 @@ +/* + * Script loading + */ +// script load can rely on a sync onload callback function +// hence the use of a callback +export function scriptLoad(loader, src, resolve, reject) { + var script = document.createElement('script'); + script.type = 'text/javascript'; + script.charset = 'utf-8'; + script.async = true; + + script.addEventListener('load', load, false); + script.addEventListener('error', error, false); + + script.src = src; + document.head.appendChild(script); + + function load() { + cleanup(); + resolve(); + } + + function error(err) { + cleanup(); + reject(new Error('Fetching ' + src)); + } + + function cleanup() { + script.removeEventListener('load', load, false); + script.removeEventListener('error', error, false); + document.head.removeChild(script); + } +} + +/* + * Source loading + */ +var fetchTextFromURL; +export default fetchTextFromURL; + +if (typeof XMLHttpRequest != 'undefined') { + fetchTextFromURL = function(url, authorization, fulfill, reject) { + var xhr = new XMLHttpRequest(); + function load() { + fulfill(xhr.responseText); + } + function error() { + reject(new Error('XHR error' + (xhr.status ? ' (' + xhr.status + (xhr.statusText ? ' ' + xhr.statusText : '') + ')' : '') + ' loading ' + url)); + } + + xhr.onreadystatechange = function () { + if (xhr.readyState === 4) { + // in Chrome on file:/// URLs, status is 0 + if (xhr.status == 0) { + if (xhr.responseText) { + load(); + } + else { + // when responseText is empty, wait for load or error event + // to inform if it is a 404 or empty file + xhr.addEventListener('error', error); + xhr.addEventListener('load', load); + } + } + else if (xhr.status === 200) { + load(); + } + else { + error(); + } + } + }; + xhr.open("GET", url, true); + + if (xhr.setRequestHeader) { + xhr.setRequestHeader('Accept', 'application/x-es-module, */*'); + // can set "authorization: true" to enable withCredentials only + if (authorization) { + if (typeof authorization == 'string') + xhr.setRequestHeader('Authorization', authorization); + xhr.withCredentials = true; + } + } + + xhr.send(null); + }; +} +else if (typeof require != 'undefined' && typeof process != 'undefined') { + var fs; + fetchTextFromURL = function(url, authorization, fulfill, reject) { + if (url.substr(0, 8) != 'file:///') + 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) { + return reject(err); + } + else { + // Strip Byte Order Mark out if it's the leading char + var dataString = data + ''; + if (dataString[0] === '\ufeff') + dataString = dataString.substr(1); + + fulfill(dataString); + } + }); + }; +} +else if (typeof self != 'undefined' && typeof self.fetch != 'undefined') { + fetchTextFromURL = function(url, authorization, fulfill, reject) { + var opts = { + headers: {'Accept': 'application/x-es-module, */*'} + }; + + if (authorization) { + if (typeof authorization == 'string') + opts.headers['Authorization'] = authorization; + opts.credentials = 'include'; + } + + fetch(url, opts) + .then(function(res) { + if (res.ok) + return r.text(); + else + throw new Error('Fetch error: ' + r.status + ' ' + r.statusText); + }) + .then(fulfill, reject); + } +} \ No newline at end of file diff --git a/core/loader-polyfill.js b/core/loader-polyfill.js new file mode 100644 index 0000000..f7a570d --- /dev/null +++ b/core/loader-polyfill.js @@ -0,0 +1,204 @@ +import { arrayValues, createSymbol, addToError } from './common.js'; +export { Loader, Module, ModuleNamespace as PrivateInternalModuleNamespace } + +/* + * 3. Reflect.Loader + * + * We skip the entire native internal pipeline, just providing the bare API + */ +// 3.1.1 +function Loader(baseKey) { + this.key = baseKey; + this.registry = new Registry(); + + // evaluation flag to allow for tracing loaders + this.execute = true; +} +// 3.3.1 +Loader.prototype.constructor = Loader; +// 3.3.2 +Loader.prototype.import = function(key, parent) { + var execute = this.execute; + return this.load(key, parent) + .then(function(module) { + // ensure evaluated + if (execute) + Module.evaluate(module); + + return module; + }); +}; +// 3.3.3 +var RESOLVE = Loader.resolve = createSymbol('@@resolve'); + +// instantiate sets the namespace into the registry +// it is up to implementations to ensure instantiate is debounced properly +var INSTANTIATE = Loader.instantiate = createSymbol('@@instantiate'); + +Loader.prototype.resolve = function(key, parent) { + return this[RESOLVE](key, parent) + .catch(function(err) { + addToError(err, 'Resolving ' + key + (parent ? ' to ' + parent : '')); + }); +}; + +// 3.3.4 +Loader.prototype.load = function(key, parent) { + var loader = this; + + var resolvedKey; + + // there is the potential for an internal perf optimization to allow resolve to return { resolved, namespace } + // but this needs to be done based on performance measurement + return Promise.resolve(this[RESOLVE](key, parent || this.key)) + .then(function(resolved) { + var existingNamespace = loader.registry.get(resolved); + + if (existingNamespace) + return Promise.resolve(existingNamespace); + + return loader[INSTANTIATE](resolved) + .then(function(namespace) { + + // returning the namespace from instantiate can be considered a sort of perf optimization + if (!namespace) + namespace = loader.registry.get(resolvedKey); + else if (!(namespace instanceof ModuleNamespace)) + throw new TypeError('Instantiate did not resolve a Module Namespace'); + + return namespace; + }); + }) + .catch(function(err) { + addToError(err, 'Loading ' + key + (resolvedKey ? ' as ' + resolvedKey : '') + (parent ? ' from ' + parent : '')); + throw err; + }); +}; + +/* + * 4. Registry + * + * Instead of structuring through a Map, just use a dictionary object + * We throw for construction attempts so this doesn't affect the public API + * + * Registry has been adjusted to use Namespace objects over ModuleStatus objects + * as part of simplifying loader API implementation + */ +function Registry() { + this._registry = {}; +} +// 4.4.1 +Registry.prototype.constructor = function() { + throw new TypeError('Custom registries cannot be created.'); +}; + +if (typeof Symbol !== 'undefined' && Symbol.iterator) { + // 4.4.2 + Registry.prototype[Symbol.iterator] = function() { + var self = this; + return arrayValues(Object.keys(this).map(function(key) { + return [key, self[key]] + })); + }; + // 4.4.3 + Registry.prototype.entries = Registry.prototype[Symbol.iterator]; +} +// 4.4.4 +Registry.prototype.keys = function() { + return arrayValues(Object.keys(this)); +}; +// 4.4.5 +Registry.prototype.values = function() { + var self = this; + return arrayValues(Object.keys(this).map(function(key) { + return self[key]; + })); +}; +// 4.4.6 +Registry.prototype.get = function(key) { + return this._registry[key] || undefined; +}; +// 4.4.7 +Registry.prototype.set = function(key, namespace) { + if (!(namespace instanceof ModuleNamespace)) + throw new Error('Registry must be set with an instance of Module Namespace'); + this._registry[key] = namespace; + return this; +}; +// 4.4.8 +Registry.prototype.has = function(key) { + return !!this._registry[key]; +}; +// 4.4.9 +Registry.prototype.delete = function(key) { + if (this._registry[key]) { + //delete this._registry[key]; + // much faster... + this._registry[key] = undefined; + return true; + } + return false; +}; + +/* + * Simple ModuleNamespace Exotic object based on a baseObject + * We export this for allowing a fast-path for module namespace creation over Module descriptors + */ +function ModuleNamespace(baseObject, evaluate) { + var ns = this; + Object.keys(baseObject).forEach(function(key) { + Object.defineProperty(ns, key, { + configurable: false, + enumerable: true, + get: function () { + return baseObject[key]; + }, + set: function() { + throw new TypeError('Module exports cannot be changed externally.'); + } + }); + }); + if (evaluate) + ns._evaluate = evaluate; +} + +if (typeof Symbol !== 'undefined' && Symbol.toStringTag) + ModuleNamespace.prototype[Symbol.toStringTag] = 'Module'; + +// 8.3.1 Reflect.Module +function Module(descriptors, executor, evaluate) { + if (typeof descriptors !== 'object') + throw new TypeError('Expected descriptors object'); + + // instead of providing a mutator, just provide the base object + var baseObject = {}; + + // 8.2.1 ParseExportsDescriptors + Object.keys(descriptors).forEach(function(key) { + var descriptor = descriptors[key]; + + if (!('value' in descriptor)) + throw new TypeError('Error reading descriptor for "' + key + '" - module polyfill only supports value descriptors currently'); + + baseObject[key] = descriptor.value; + }); + + var ns = new ModuleNamespace(baseObject, evaluate); + + if (executor) + executor(baseObject, ns); + + return ns; +}; +Module.prototype = null; + +// 8.4.1 Module.evaluate +Module.evaluate = function(ns) { + if (!(ns instanceof ModuleNamespace)) + throw new TypeError('Module.evaluate must be called on a Module Namespace'); + + if (ns._evaluate) { + ns._evaluate(); + ns._evaluate = undefined; + } +}; diff --git a/core/module-scripts.js b/core/module-scripts.js new file mode 100644 index 0000000..cb7ebb3 --- /dev/null +++ b/core/module-scripts.js @@ -0,0 +1,30 @@ +// - - - - - diff --git a/demo/test1.js b/demo/test1.js deleted file mode 100644 index fd916c8..0000000 --- a/demo/test1.js +++ /dev/null @@ -1 +0,0 @@ -export var hello = 'world'; \ No newline at end of file diff --git a/demo/test2.js b/demo/test2.js deleted file mode 100644 index 3063f50..0000000 --- a/demo/test2.js +++ /dev/null @@ -1,5 +0,0 @@ -export class Foo { - constructor() { - console.log('Created the ES6 class foo!'); - } -} \ No newline at end of file diff --git a/dist/es6-module-loader-dev.js b/dist/es6-module-loader-dev.js deleted file mode 100644 index 6c74b83..0000000 --- a/dist/es6-module-loader-dev.js +++ /dev/null @@ -1,8 +0,0 @@ -/* - * es6-module-loader v1.0.0-alpha - * https://github.com/ModuleLoader/es6-module-loader - * Copyright (c) 2015 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT - */ - -!function(a){function b(a,b){var c;if(a instanceof Error){var c=new a.constructor(a.message,a.fileName,a.lineNumber);c.message=a.message+"\n "+b,c.stack=a.stack}else c=a+"\n "+b;return c}function c(a,c,d){try{new Function(a).call(d)}catch(e){throw b(e,"Evaluating "+c)}}function d(){this._loader={loaderObj:this,resolve:void 0,fetch:void 0,translate:void 0,instantiate:void 0,registry:{}}}function e(a,b,c){return a.registry[b]||(a.registry[b]={key:b,state:L,metadata:c||{},fetch:void 0,translate:void 0,instantiate:void 0,fetchResolve:void 0,translateResolve:void 0,instantiateResolve:void 0,dependencies:void 0,module:void 0,declare:void 0,error:null})}function f(a,b,c){b.fetchResolve?b.fetchResolve(c):b.fetch=Promise.resolve(c),b.fetchResolve=void 0,b.state=Math.max(b.state,M)}function g(a,b,c){b.translateResolve?b.translateResolve(c):b.translate=Promise.resolve(c),b.translateResolve=void 0,b.state=Math.max(b.state,N)}function h(a,b,c,d){if(void 0===c)var e=y(a.loaderObj,b.key,d,b.metadata);else if("function"!=typeof c)throw new TypeError("Instantiate must return an execution function.");b.instantiateResolve?b.instantiateResolve(c):b.instantiate=Promise.resolve(c),b.instantiateResolve=void 0;var f=[];if(void 0===c){b.declare=e.declare;for(var g=0;gO?f:l(a,c,null,f).then(function(){f.state=Math.max(f.state,P);for(var d=[],g=0;gb;b++)if(this[b]===a)return b;return-1},J="object"==typeof exports&&"function"==typeof require,K="undefined"!=typeof process&&!!process.platform.match(/^win/),L=0,M=1,N=2,O=3,P=4,Q=5;d.prototype["import"]=function(a,c){var d=this._loader,e={};return Promise.resolve().then(function(){return d.resolve.call(d.loaderObj,a,c,e)})["catch"](function(d){throw b(d,"Resolving "+a+(c?", "+c:""))}).then(function(a){return o(d,a,e)})},d.prototype.resolve=function(a,b,c){var d=this._loader;return d.resolve.call(d.loaderObj,a,b,c||{})},d.prototype.load=function(a,b,c){var d=this._loader;if("fetch"==b)return j(d,a,c);if("translate"==b)return k(d,a,c);if("instantiate"==b)return m(d,a,c).then(function(a){return a.module instanceof r?void 0:a.module});if("link"==b)return n(d,a,c).then(function(){});if(b&&"ready"!=b)throw new TypeError("Invalid stage "+b);return o(d,a,c).then(function(a){return a.module})},d.prototype.provide=function(a,b,c,d){var h=this._loader,j=e(h,a,d);if("fetch"==b){if(j.state>L)throw new TypeError(a+" has already been fetched.");f(h,j,c)}else if("translate"==b){if(j.state>M)throw new TypeError(a+" has already been translated.");g(h,j,c)}else{if("instantiate"!=b)throw new TypeError("Invalid stage "+b);if(j.state>N)throw new TypeError(a+" has already been instantiated.");f(h,j,void 0),g(h,j,void 0),j.translate.then(function(a){i(h,j,c,a)})}},d.prototype.error=function(){},d.prototype.lookup=function(a){var b=this._loader,c=b.registry[a];if(!c)return null;var d;return c.state==L?d="fetch":c.state==M?d="translate":c.state==N?d="instantiate":c.state==P?d="link":c.state==Q&&(d="ready"),{state:d,metadata:c.metadata,fetch:c.fetch&&Promise.resolve(c.fetch),translate:c.translate&&Promise.resolve(c.translate),instantiate:c.instantiate&&Promise.resolve(c.instantiate),module:c.state==Q&&(c.module instanceof r?c.module:c.module.module),error:c.error}},d.prototype.install=function(a,b){var c=this._loader;if(c.registry[a])throw new TypeError(a+" is already defined in the Loader registry.");if(!(b instanceof r))throw new TypeError("Install must provide a valid Module object.");c.registry[a]={key:a,state:Q,metadata:metadata,fetch:void 0,translate:void 0,instantiate:void 0,dependencies:void 0,module:b,declare:void 0,error:null}},d.prototype.uninstall=function(a){var b=this._loader,c=b.registry[a];if(!c)throw new TypeError(a+" is not defined in the Loader registry.");if(c.state=P)throw new TypeError(a+" is already past linking.");delete b.registry[a]};var R=["resolve","fetch","translate","instantiate"];d.prototype.hook=function(a,b){var c=this._loader;if(-1==I.call(R,a))throw new TypeError(a+" is not a valid hook.");return b?void(c[a]=b):c[a]};var S={};d.prototype.transpiler="traceur";var T,U,V,W,X;if("undefined"!=typeof XMLHttpRequest)X=function(a,b,c){function d(){b(f.responseText)}function e(){c(new Error("GET "+a+" "+f.status+" ("+f.statusText+")"))}var f=new XMLHttpRequest,g=!0,h=!1;if(!("withCredentials"in f)){var i=/^(\w+:)?\/\/([^\/]+)/.exec(a);i&&(g=i[2]===window.location.host,i[1]&&(g&=i[1]===window.location.protocol))}g||"undefined"==typeof XDomainRequest||(f=new XDomainRequest,f.onload=d,f.onerror=e,f.ontimeout=e,f.onprogress=function(){},f.timeout=0,h=!0),f.onreadystatechange=function(){4===f.readyState&&(200===f.status||0==f.status&&f.responseText?d():e())},f.open("GET",a,!0),h&&setTimeout(function(){f.send()},0),f.send(null)};else{if(!J)throw new TypeError("No environment fetch API available.");var Y;X=function(a,b,c){if("file:///"!=a.substr(0,8))throw"Only file URLs of the form file: allowed running in Node.";Y=Y||require("fs"),a=K?a.replace(/\//g,"\\").substr(8):a.substr(7),Y.readFile(a,function(a,d){a?c(a):b(d+"")})}}var Z=function(){function a(a){if(b[a])return b[a];var c,d=0;for(var e in b){var f=e.split("*");if(f.length>2)throw new TypeError("Sites entry "+e+" contains multiple wildcards.");1!=f.length&&e.split("/").length>=d&&e.substr(0,f[0].length)===a.substr(0,f[0].length)&&e.substr(e.length-f[1].length)===f[1]&&(c=b[e].replace("*",a.substr(f[0].length,a.length-e.length+1)),d=e.split("/").length)}return c}d.call(this,arguments);var b={};this.site=function(a){for(var c in a)b[c]=a[c]},this.site.get=function(a){return b[a]},this.site.set=function(a,c){b[a]=c},this.site.has=function(a){return!!b[a]},this.site["delete"]=function(a){delete b[a]},this.hook("resolve",function(b,c){var d=a(b);return(d||!c)&&(c=$),new E(d||b,c).href}),this.hook("fetch",function(a){return new Promise(function(b,c){X(a,b,c)})}),this.hook("translate",function(a,b){return b}),this.hook("instantiate",z),this.transpiler&&w(this)};F.prototype=d.prototype,Z.prototype=new F;var $;if("undefined"!=typeof document&&document.baseURI?$=document.baseURI:"undefined"!=typeof document&&document.getElementsByTagName?($=document.getElementsByTagName("base")[0],$=$&&$.href):"undefined"!=typeof location&&location.href&&($=location.href),$?($=$.split("#")[0].split("?")[0],$=$.substr(0,$.lastIndexOf("/")+1)):"undefined"!=typeof process&&process.cwd&&($="file://"+(K?"/":"")+process.cwd()+"/",K&&($=$.replace(/\\/g,"/"))),$=new E($),"undefined"!=typeof document&&document.getElementsByTagName){var _=document.getElementsByTagName("script");_=_[_.length-1],"complete"===document.readyState?setTimeout(H):document.addEventListener&&(document.addEventListener("DOMContentLoaded",G,!1),window.addEventListener("load",G,!1))}var aa;W=new Z,W.constructor=Z,function(b){aa=b.Reflect||{},aa.Loader=aa.Loader||d,aa.Module=aa.Module||r,aa.global=aa.global||a,b.LoaderPolyfill=d,b.ModulePolyfill=r,b.Reflect=aa,b.System=W}(J?exports:a)}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); -//# sourceMappingURL=es6-module-loader-dev.js.map \ No newline at end of file diff --git a/dist/es6-module-loader-dev.js.map b/dist/es6-module-loader-dev.js.map deleted file mode 100644 index 996631c..0000000 --- a/dist/es6-module-loader-dev.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"es6-module-loader-dev.js","sources":["es6-module-loader-dev.src.js"],"names":["__global","addToError","err","msg","newErr","Error","constructor","message","fileName","lineNumber","stack","__eval","source","debugName","context","Function","call","e","Loader","this","_loader","loaderObj","resolve","undefined","fetch","translate","instantiate","registry","ensureRegistered","loader","key","metadata","state","FETCH","fetchResolve","translateResolve","instantiateResolve","dependencies","module","declare","error","fulfillFetch","entry","payload","Promise","Math","max","TRANSLATE","fulfillTranslate","INSTANTIATE","fulfillInstantiate","instance","registration","transpile","TypeError","deps","i","length","push","value","INSTANTIATE_ALL","loadTranspilerThenFulfillInstantiate","loadTranspiler","then","requestFetch","reject","READY","requestTranslate","requestInstantiate","requestInstantiateAll","LINK","depLoads","pair","depMeta","depKey","depEntry","all","requestLink","computeDependencyGraph","dep","doDynamicLink","declareModule","requestReady","Module","ensureModuleExecution","result","indexOf","descriptors","p","ensureModuleRecord","moduleObj","registryEntry","name","locked","importers","importerModule","importerIndex","setters","execute","depModule","seen","doExecute","moduleRecords","setupTranspilers","traceur","install","default","babel","transpiler","transpilerName","transpilerModule","transpilerResolved","evaluateSystemRegister","Compiler","traceurTranspile","babelTranspile","systemInstantiate","resolved","curSystem","System","curLoader","Reflect","options","traceurOptions","modules","script","sourceMaps","inputSourceMap","sourceMap","filename","moduleName","compiler","doTraceurCompile","compile","babelOptions","code","ast","blacklist","transform","curRegister","register","URL","url","baseURL","m","String","replace","match","RangeError","protocol","username","password","host","hostname","port","pathname","search","hash","base","flag","charAt","slice","lastIndexOf","output","pop","join","origin","href","LoaderProto","completed","document","removeEventListener","window","ready","scripts","getElementsByTagName","anonCnt","type","src","load","provide","innerHTML","substr","Array","prototype","item","thisLen","cjsMode","exports","require","isWindows","process","platform","referrer","stage","lookup","uninstall","cancel","hooks","hook","fetchURI","XMLHttpRequest","fulfill","xhr","responseText","status","statusText","sameDomain","doTimeout","domainCheck","exec","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","setTimeout","send","fs","readFile","data","SystemLoader","siteLookup","target","siteTable","curMatch","curMatchLen","wildcardParts","split","arguments","site","mappings","get","set","has","parentUrl","sitesUrl","baseURI","cwd","curScript","addEventListener","global","LoaderPolyfill","ModulePolyfill","WorkerGlobalScope","self"],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6-module-loader-dev.src.js b/dist/es6-module-loader-dev.src.js deleted file mode 100644 index e9e093b..0000000 --- a/dist/es6-module-loader-dev.src.js +++ /dev/null @@ -1,1188 +0,0 @@ -/* - * Dynamic ES6 Module Loader Polyfill - * - * Implemented to the in-progress WhatWG loader standard at - * https://github.com/whatwg/loader/tree/819035fd5c59c53130a025694162fcaa2315fc36 - * - * Up to date as of 23 Feb 2015. - * - */ - -(function(__global) { - - // IE8 support - // Note: console.assert is not supported or polyfillable in IE8 - // so it is better to debug in IE8 against the source with - // assertions removed. - var indexOf = Array.prototype.indexOf || function(item) { - for (var i = 0, thisLen = this.length; i < thisLen; i++) - if (this[i] === item) - return i; - return -1; - }; - - // if we have require and exports, then define as CommonJS - var cjsMode = typeof exports == 'object' && typeof require == 'function'; - - var isWindows = typeof process != 'undefined' && !!process.platform.match(/^win/); - - function addToError(err, msg) { - var newErr; - if (err instanceof Error) { - var newErr = new err.constructor(err.message, err.fileName, err.lineNumber); - newErr.message = err.message + '\n\t' + msg; - newErr.stack = err.stack; - } - else { - newErr = err + '\n\t' + msg; - } - - return newErr; - } - - function __eval(source, debugName, context) { - try { - new Function(source).call(context); - } - catch(e) { - throw addToError(e, 'Evaluating ' + debugName); - } - } -// ---------- Loader ---------- - /* - * Spec Differences - * - Added ensureRegistered entry cache argument to avoid repeated lookups - * - metadata sent through ensureRegistered and all requestHOOK calls - * - Error entry checking and saving added to requestHOOK calls - */ - - // 3. Loader Objects - - // Loader class - function Loader() { - this._loader = { - loaderObj: this, - - resolve: undefined, - fetch: undefined, - translate: undefined, - instantiate: undefined, - - registry: {} - // Realm not implemented - }; - } - - // 3.1 Module Registry - // States - var FETCH = 0; - var TRANSLATE = 1; - var INSTANTIATE = 2; - var INSTANTIATE_ALL = 3; - var LINK = 4; - var READY = 5; - - // 4. Loading - - // 4.1.1 - function ensureRegistered(loader, key, metadata) { - return loader.registry[key] || (loader.registry[key] = { - key: key, - state: FETCH, - metadata: metadata || {}, - - fetch: undefined, - translate: undefined, - instantiate: undefined, - - fetchResolve: undefined, - translateResolve: undefined, - instantiateResolve: undefined, - - dependencies: undefined, - module: undefined, - - // System register lifecycle - declare: undefined, - - error: null - }); - } - - // 4.1.2 inlined - - // 4.1.3 - function fulfillFetch(loader, entry, payload) { - if (entry.fetchResolve) - entry.fetchResolve(payload); - else - entry.fetch = Promise.resolve(payload); - - entry.fetchResolve = undefined; - entry.state = Math.max(entry.state, TRANSLATE); - } - - // 4.1.4 - function fulfillTranslate(loader, entry, source) { - if (entry.translateResolve) - entry.translateResolve(source); - else - entry.translate = Promise.resolve(source); - - entry.translateResolve = undefined; - entry.state = Math.max(entry.state, INSTANTIATE); - } - - // 4.1.5 - function fulfillInstantiate(loader, entry, instance, source) { - // 4.1.6 CommitInstantiated inlined - - // 4.1.7 Instantiation inlined - if (instance === undefined) - // defined in transpiler.js - var registration = transpile(loader.loaderObj, entry.key, source, entry.metadata); - else if (typeof instance !== 'function') - throw new TypeError('Instantiate must return an execution function.'); - - // we should really resolve instantiate with a Source Text Module Record - // but we don't have that thing here - // it's not used through the instantiate promise though, so it's ok - if (entry.instantiateResolve) - entry.instantiateResolve(instance); - else - entry.instantiate = Promise.resolve(instance); - - entry.instantiateResolve = undefined; - - var deps = []; - - if (instance === undefined) { - // adjusted to use custom transpile hook - // with the system register declare function - entry.declare = registration.declare; - - for (var i = 0; i < registration.deps.length; i++) - deps.push({ key: registration.deps[i], value: undefined }); - } - - entry.dependencies = deps; - entry.module = instance; - entry.state = Math.max(entry.state, INSTANTIATE_ALL); - } - - // adjusted asynchronous declarative instantiate fulfillment - // to load transpiler - function loadTranspilerThenFulfillInstantiate(loader, entry, instance, source) { - return Promise.resolve(instance === undefined && loadTranspiler(loader.loaderObj)).then(function() { - fulfillInstantiate(loader, entry, instance, source); - }); - } - - // 4.2.1 - function requestFetch(loader, key, metadata, entry) { - entry = entry || ensureRegistered(loader, key, metadata); - - if (entry.error) - return Promise.reject(entry.error); - - if (entry.state === READY) - return Promise.reject(new Error(key + ' cannot be fetched as it is already linked.')); - - if (entry.fetch) - return entry.fetch; - - Promise.resolve() - .then(function() { - return loader.fetch.call(loader.loaderObj, key, entry.metadata); - }) - .then(function(payload) { - // in turn calls fetchResolve - fulfillFetch(loader, entry, payload); - }, function(err) { - throw addToError(err, 'Fetching ' + key); - }) - ['catch'](function(err) { - entry.error = entry.error || err; - }) - .then(function() { - if (entry.error && entry.fetchResolve) - entry.fetchResolve(Promise.reject(entry.error)); - }); - - return entry.fetch = new Promise(function(resolve) { - entry.fetchResolve = resolve; - }); - } - - // 4.2.2 - function requestTranslate(loader, key, metadata, entry) { - entry = entry || ensureRegistered(loader, key, metadata); - - if (entry.error) - return Promise.reject(entry.error); - - if (entry.state === READY) - return Promise.reject(new Error(key + ' cannot initiate translate as it is already linked.')); - - if (entry.translate) - return entry.translate; - - requestFetch(loader, key, null, entry) - .then(function(payload) { - return Promise.resolve() - .then(function() { - return loader.translate.call(loader.loaderObj, key, payload, entry.metadata); - }) - .then(function(source) { - // in turn calls translateResolve - fulfillTranslate(loader, entry, source); - }, function(err) { - throw addToError(err, 'Translating ' + key); - }); - }) - ['catch'](function(err) { - entry.error = entry.error || err; - }) - .then(function() { - if (entry.error && entry.translateResolve) - entry.translateResolve(Promise.reject(entry.error)); - }); - - return entry.translate = new Promise(function(resolve) { - entry.translateResolve = resolve; - }); - } - - // 4.2.3 - function requestInstantiate(loader, key, metadata, entry) { - entry = entry || ensureRegistered(loader, key, metadata); - - if (entry.error) - return Promise.reject(entry.error); - - if (entry.state === READY) - return Promise.reject(new Error(key + ' cannot instantiate as it is already linked.')); - - if (entry.instantiate) - return entry.instantiate; - - requestTranslate(loader, key, null, entry) - .then(function(source) { - return Promise.resolve() - .then(function() { - return loader.instantiate.call(loader.loaderObj, key, source, entry.metadata); - }) - .then(function(instance) { - return loadTranspilerThenFulfillInstantiate(loader, entry, instance, source); - }, function(err) { - throw addToError(err, 'Instantiating ' + key); - }); - }) - ['catch'](function(err) { - entry.error = entry.error || err; - }) - .then(function() { - if (entry.error && entry.instantiateResolve) - entry.instantiateResolve(Promise.reject(entry.error)); - }); - - return entry.instantiate = new Promise(function(resolve) { - entry.instantiateResolve = resolve; - }); - } - - // 4.2.4 - function requestInstantiateAll(loader, key, metadata, entry) { - entry = entry || ensureRegistered(loader, key, metadata); - - if (entry.state > INSTANTIATE_ALL) - return entry; - - return requestInstantiate(loader, key, null, entry) - .then(function() { - entry.state = Math.max(entry.state, LINK); - - var depLoads = []; - for (var i = 0; i < entry.dependencies.length; i++) (function(pair) { - // create dep meta object now, passed through into ensureRegister shortly - var depMeta = {}; - depLoads.push(Promise.resolve(loader.resolve.call(loader.loaderObj, pair.key, key, depMeta)) - .then(function(depKey) { - var depEntry = ensureRegistered(loader, depKey, depMeta); - - pair.value = depEntry; - - return requestInstantiateAll(loader, depKey, null, depEntry); - })); - })(entry.dependencies[i]); - return Promise.all(depLoads) - ['catch'](function(err) { - err = addToError(err, 'Loading ' + key); - entry.error = entry.error || err; - throw err; - }); - }); - } - - // 4.2.5 - function requestLink(loader, key, metadata, entry) { - entry = entry || ensureRegistered(loader, key, metadata); - - if (entry.error) - return Promise.reject(entry.error); - - if (entry.state === READY) - return Promise.resolve(entry); - - return requestInstantiateAll(loader, key, metadata, entry) - .then(function() { - // 5.2.1 Link inlined to reduce stack size - - // 5.2.2 dependencyGraph inlined - var deps = []; - computeDependencyGraph(entry, deps); - - // dynamic link - for (var i = 0; i < deps.length; i++) { - var dep = deps[i]; - if (dep.state == LINK && typeof dep.module == 'function') { - doDynamicLink(dep); - // console.assert(dep.module instanceof Module) - dep.state = READY; - } - } - - // declarative link - // adjusted linking implementation - // to handle setter graph logic - if (entry.state == LINK) - // defined in declare.js - declareModule(entry); - - // [assert entry's whole graph is in ready state] - return entry; - }) - ['catch'](function(err) { - entry.error = err; - throw err; - }); - } - - // 4.2.6 - function requestReady(loader, key, metadata, entry) { - entry = entry || ensureRegistered(loader, key, metadata); - - return requestLink(loader, key, metadata, entry) - .then(function(entry) { - var module = entry.module; - // dynamic already executed - if (module instanceof Module) - return module; - - // ModuleRecord needs System register execute - // defined in declarative.js - var err = ensureModuleExecution(module, []); - if (err) { - err = addToError(err, 'Error evaluating ' + key); - entry.error = err; - throw err; - } - return module.module; - }, function(err) { - entry.error = entry.error || err; - throw err; - }); - } - - // 5. Linking - - // 5.2.1 inlined in 4.2.5 - // 5.2.2 inlined in 4.2.5 - - // 5.2.3 - function computeDependencyGraph(entry, result) { - if (indexOf.call(result, entry) != -1) - return; - - result.push(entry); - for (var i = 0; i < entry.dependencies.length; i++) - computeDependencyGraph(entry.dependencies[i].value, result); - } - - function doDynamicLink(dep) { - // may have had a previous error - if (dep.error) - throw dep.error; - - try { - dep.module = dep.module(); - } - catch(e) { - dep.error = e; - throw e; - } - } - - // 6. API - - // 6.1.1 - Loader.prototype['import'] = function(name, referrer) { - var loader = this._loader; - var metadata = {}; - return Promise.resolve() - .then(function() { - return loader.resolve.call(loader.loaderObj, name, referrer, metadata); - }) - ['catch'](function(err) { - throw addToError(err, 'Resolving ' + name + (referrer ? ', ' + referrer : '')); - }) - .then(function(key) { - return requestReady(loader, key, metadata); - }); - }; - - // 6.2.1 - Loader.prototype.resolve = function(name, referrer, metadata) { - var loader = this._loader; - return loader.resolve.call(loader.loaderObj, name, referrer, metadata || {}); - }; - - // 6.3.1 - // For eg ready, - Loader.prototype.load = function(key, stage, metadata) { - var loader = this._loader; - - if (stage == 'fetch') - return requestFetch(loader, key, metadata); - - else if (stage == 'translate') - return requestTranslate(loader, key, metadata); - - else if (stage == 'instantiate') - return requestInstantiateAll(loader, key, metadata) - .then(function(entry) { - if (!(entry.module instanceof Module)) - return entry.module; - }); - - else if (stage == 'link') - return requestLink(loader, key, metadata).then(function() {}) - - else if (!stage || stage == 'ready') - return requestReady(loader, key, metadata) - .then(function(entry) { - // this is ok because we use plain modules throughout - return entry.module; - }); - - else - throw new TypeError('Invalid stage ' + stage); - }; - - // 6.4.1 - // For eg fetch, , key = anon - Loader.prototype.provide = function(key, stage, value, metadata) { - var loader = this._loader; - - var entry = ensureRegistered(loader, key, metadata); - - if (stage == 'fetch') { - if (entry.state > FETCH) - throw new TypeError(key + ' has already been fetched.'); - fulfillFetch(loader, entry, value); - } - else if (stage == 'translate') { - if (entry.state > TRANSLATE) - throw new TypeError(key + ' has already been translated.'); - fulfillTranslate(loader, entry, value); - } - else if (stage == 'instantiate') { - if (entry.state > INSTANTIATE) - throw new TypeError(key + ' has already been instantiated.'); - fulfillFetch(loader, entry, undefined); - fulfillTranslate(loader, entry, undefined); - // NB error propogation - entry.translate.then(function(source) { - loadTranspilerThenFulfillInstantiate(loader, entry, value, source); - }); - } - else - throw new TypeError('Invalid stage ' + stage); - }; - - // 6.4.2 - // SPEC TODO - Loader.prototype.error = function(key, stage, value) {}; - - // 6.5.1 - Loader.prototype.lookup = function(key) { - var loader = this._loader; - - var entry = loader.registry[key]; - if (!entry) - return null; - - var state; - if (entry.state == FETCH) - state = 'fetch'; - else if (entry.state == TRANSLATE) - state = 'translate'; - else if (entry.state == INSTANTIATE) - state = 'instantiate'; - else if (entry.state == LINK) - state = 'link'; - else if (entry.state == READY) - state = 'ready'; - - return { - state: state, - metadata: entry.metadata, - fetch: entry.fetch && Promise.resolve(entry.fetch), - translate: entry.translate && Promise.resolve(entry.translate), - instantiate: entry.instantiate && Promise.resolve(entry.instantiate), - module: entry.state == READY && (entry.module instanceof Module ? entry.module : entry.module.module), - error: entry.error - }; - }; - - // 6.5.2 - Loader.prototype.install = function(key, module) { - var loader = this._loader; - - if (loader.registry[key]) - throw new TypeError(key + ' is already defined in the Loader registry.'); - - if (!(module instanceof Module)) - throw new TypeError('Install must provide a valid Module object.'); - - loader.registry[key] = { - key: key, - state: READY, - metadata: metadata, - - fetch: undefined, - translate: undefined, - instantiate: undefined, - - dependencies: undefined, - module: module, - declare: undefined, - error: null - }; - }; - - // 6.5.3 - Loader.prototype.uninstall = function(key) { - var loader = this._loader; - - var entry = loader.registry[key]; - if (!entry) - throw new TypeError(key + ' is not defined in the Loader registry.'); - - if (entry.state < LINK) - throw new TypeError(key + ' is still loading.'); - - delete loader.registry[key]; - }; - - // 6.5.4 - Loader.prototype.cancel = function(key) { - var loader = this._loader; - - var entry = loader.registry[key]; - if (!entry) - throw new TypeError(key + ' does not exist.'); - - if (entry.state >= LINK) - throw new TypeError(key + ' is already past linking.'); - - delete loader.registry[key]; - }; - - // 6.6.1 - // loader.hook('resolve') -> returns resolve hook - // loader.hook('resolve', fn) -> sets resolve hook - var hooks = ['resolve', 'fetch', 'translate', 'instantiate']; - Loader.prototype.hook = function(name, value) { - var loader = this._loader; - if (indexOf.call(hooks, name) == -1) - throw new TypeError(name + ' is not a valid hook.'); - if (value) - loader[name] = value; - else - return loader[name]; - }; - - // 6.7 Module Reflection - - // plain user-facing module object - function Module(descriptors, executor, evaluate) { - // should define as unconfigurable and preventExtensions - // going for max perf first iteration though - for (var p in descriptors) - this[p] = descriptors[p]; - } - - // ---------- Declarative Linking Code ---------- - - // ES6-style module binding and execution code - function declareModule(entry) { - // could consider a try catch around setters here that saves errors to module.error - var module = entry.module = ensureModuleRecord(entry.key); - var moduleObj = module.module; - - // run the System register declare function - // providing the binding export function argument - // NB module meta should be an additional argument in future here - var registryEntry = entry.declare.call(__global, function(name, value) { - // export setter propogation with locking to avoid cycles - module.locked = true; - moduleObj[name] = value; - - for (var i = 0; i < module.importers.length; i++) { - var importerModule = module.importers[i]; - if (!importerModule.locked) { - var importerIndex = indexOf.call(importerModule.dependencies, module); - importerModule.setters[importerIndex](moduleObj); - } - } - - module.locked = false; - return value; - }); - - module.setters = registryEntry.setters; - module.execute = registryEntry.execute; - - // now go through dependencies and declare them in turn, building up the binding graph as we go - for (var i = 0; i < entry.dependencies.length; i++) { - var depEntry = entry.dependencies[i].value; - - // if dependency not already declared, declare it now - // we check module existence over state to stop at circular and dynamic - if (!depEntry.module) - declareModule(depEntry); - - var depModule = depEntry.module; - - // dynamic -> no setter propogation, but need dependencies and setters to line up - if (depModule instanceof Module) { - module.dependencies.push(null); - } - else { - module.dependencies.push(depModule); - depModule.importers.push(module); - } - - // finally run this setter - if (module.setters[i]) - module.setters[i](depModule.module); - } - - entry.state = READY; - } - - // execute a module record and all the modules that need it - function ensureModuleExecution(module, seen) { - if (indexOf.call(seen, module) != -1) - return; - - if (module.error) - return module.error; - - seen.push(module); - - var deps = module.dependencies; - var err; - - for (var i = 0; i < deps.length; i++) { - var dep = deps[i]; - - // dynamic modules are null in the ModuleRecord graph - if (!dep) - continue; - - err = ensureModuleExecution(deps[i], seen); - if (err) { - module.error = addToError(err, 'Error evaluating ' + dep.key); - return module.error; - } - } - - err = doExecute(module); - - if (err) - module.error = err; - - return err; - } - - function doExecute(module) { - try { - module.execute.call({}); - } - catch(e) { - return e; - } - } - - // module record used for binding and evaluation management - var moduleRecords = {}; - function ensureModuleRecord(key) { - return moduleRecords[key] || (moduleRecords[key] = { - key: key, - dependencies: [], - module: new Module({}), - importers: [], - locked: false, - // these are specifically for runtime binding / execution errors - error: null - }); - } - -// ---------- Transpiler Hooks ---------- - - // use Traceur by default - Loader.prototype.transpiler = 'traceur'; - - var transpilerName, transpilerModule, transpilerResolved; - - // pick up transpilers from globals on constructor - function setupTranspilers(loader) { - try { - if (__global.traceur) - loader.install('traceur', new Module({ 'default': __global.traceur })); - else if (__global.babel) - loader.install('babel', new Module({ 'default': __global.babel })); - } - catch(e) {} - } - - function loadTranspiler(loader) { - var transpiler = loader.transpiler; - - if (transpiler === transpilerName && transpilerModule) - return; - - transpilerName = transpiler; - transpilerModule = transpilerResolved = null; - - return loader['import'](transpiler).then(function(transpiler) { - transpilerModule = transpiler['default']; - }); - } - - function transpile(loader, key, source, metadata) { - // transpile to System register and evaluate out the { deps, declare } form - // set the __moduleURL temporary meta for contextual imports - return evaluateSystemRegister(key, - (transpilerModule.Compiler ? traceurTranspile : babelTranspile)(transpilerModule, key, source, metadata)); - } - - // transpiler instantiate to ensure transpiler is loaded as a global - function systemInstantiate(key, source, metadata) { - var loader = this; - - return Promise.resolve(transpilerName === loader.transpiler && transpilerResolved - || loader.resolve(transpilerName = loader.transpiler)) - .then(function(resolved) { - transpilerResolved = resolved; - if (transpilerResolved === key) - return function() { - // avoid Traceur System clobbering - var curSystem = __global.System; - var curLoader = __global.Reflect.Loader; - // load transpiler as a global, not detected as CommonJS - __eval('~function(require,exports,module){' + source + '}()', key, __global); - __global.System = curSystem; - __global.Reflect.Loader = curLoader; - return new Module({ 'default': __global[loader.transpiler] }); - }; - }); - }; - - function traceurTranspile(traceur, key, source, metadata) { - var options = this.traceurOptions || {}; - options.modules = 'instantiate'; - options.script = false; - options.sourceMaps = 'inline'; - options.inputSourceMap = metadata.sourceMap; - options.filename = key; - options.inputSourceMap = metadata.sourceMap; - options.moduleName = false; - - var compiler = new traceur.Compiler(options); - - return doTraceurCompile(source, compiler, options.filename); - } - function doTraceurCompile(source, compiler, filename) { - try { - return compiler.compile(source, filename); - } - catch(e) { - // traceur throws an error array - throw e[0] || e; - } - } - - function babelTranspile(babel, key, source, metadata) { - var options = this.babelOptions || {}; - options.modules = 'system'; - options.sourceMap = 'inline'; - options.filename = key; - options.code = true; - options.ast = false; - - // encourage a sensible baseline - if (!options.blacklist) - options.blacklist = ['react']; - - return babel.transform(source, options).code; - } - - function evaluateSystemRegister(key, source) { - var curSystem = __global.System = __global.System || System; - - var registration; - - // Hijack System .register to set declare function - var curRegister = curSystem .register; - curSystem .register = function(deps, declare) { - registration = { - deps: deps, - declare: declare - }; - } - - // use {} as this, closes to empty we can get - // add "!eval" to end of sourceURL so the source map - // can use the original name without conflict - __eval('var __moduleURL = "' + key + '";' + source - + '\n//# sourceURL=' + key + '!eval', key, {}); - - curSystem .register = curRegister; - // console.assert(registration); - return registration; - } - - // from https://gist.github.com/Yaffle/1088850 - function URL(url, baseURL) { - if (typeof url != 'string') - throw new TypeError('URL must be a string'); - var m = String(url).replace(/^\s+|\s+$/g, "").match(/^([^:\/?#]+:)?(?:\/\/(?:([^:@\/?#]*)(?::([^:@\/?#]*))?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/); - if (!m) { - throw new RangeError(); - } - var protocol = m[1] || ""; - var username = m[2] || ""; - var password = m[3] || ""; - var host = m[4] || ""; - var hostname = m[5] || ""; - var port = m[6] || ""; - var pathname = m[7] || ""; - var search = m[8] || ""; - var hash = m[9] || ""; - if (baseURL !== undefined) { - var base = baseURL instanceof URL ? baseURL : new URL(baseURL); - var flag = protocol === "" && host === "" && username === ""; - if (flag && pathname === "" && search === "") { - search = base.search; - } - if (flag && pathname.charAt(0) !== "/") { - pathname = (pathname !== "" ? (((base.host !== "" || base.username !== "") && base.pathname === "" ? "/" : "") + base.pathname.slice(0, base.pathname.lastIndexOf("/") + 1) + pathname) : base.pathname); - } - // dot segments removal - var output = []; - pathname.replace(/^(\.\.?(\/|$))+/, "") - .replace(/\/(\.(\/|$))+/g, "/") - .replace(/\/\.\.$/, "/../") - .replace(/\/?[^\/]*/g, function (p) { - if (p === "/..") { - output.pop(); - } else { - output.push(p); - } - }); - pathname = output.join("").replace(/^\//, pathname.charAt(0) === "/" ? "/" : ""); - if (flag) { - port = base.port; - hostname = base.hostname; - host = base.host; - password = base.password; - username = base.username; - } - if (protocol === "") { - protocol = base.protocol; - } - } - // convert windows file URLs to use / - if (protocol == 'file:') - pathname = pathname.replace(/\\/g, '/'); - - this.origin = protocol + (protocol !== "" || host !== "" ? "//" : "") + host; - this.href = protocol + (protocol !== "" || host !== "" ? "//" : "") + (username !== "" ? username + (password !== "" ? ":" + password : "") + "@" : "") + host + pathname + search + hash; - this.protocol = protocol; - this.username = username; - this.password = password; - this.host = host; - this.hostname = hostname; - this.port = port; - this.pathname = pathname; - this.search = search; - this.hash = hash; - } - -// ---------- System Loader Definition ---------- - - var System; - - /* - * Corrsponds to section 8 of the specification - */ - - // Fetch Implementation - var fetchURI; - - if (typeof XMLHttpRequest != 'undefined') { - fetchURI = function(url, fulfill, reject) { - var xhr = new XMLHttpRequest(); - var sameDomain = true; - var doTimeout = false; - if (!('withCredentials' in xhr)) { - // check if same domain - var domainCheck = /^(\w+:)?\/\/([^\/]+)/.exec(url); - if (domainCheck) { - sameDomain = domainCheck[2] === window.location.host; - if (domainCheck[1]) - sameDomain &= domainCheck[1] === window.location.protocol; - } - } - if (!sameDomain && typeof XDomainRequest != 'undefined') { - xhr = new XDomainRequest(); - xhr.onload = load; - xhr.onerror = error; - xhr.ontimeout = error; - xhr.onprogress = function() {}; - xhr.timeout = 0; - doTimeout = true; - } - function load() { - fulfill(xhr.responseText); - } - function error() { - reject(new Error('GET ' + url + ' ' + xhr.status + ' (' + xhr.statusText + ')')); - } - - xhr.onreadystatechange = function () { - if (xhr.readyState === 4) { - if (xhr.status === 200 || (xhr.status == 0 && xhr.responseText)) { - load(); - } else { - error(); - } - } - }; - xhr.open("GET", url, true); - - if (doTimeout) - setTimeout(function() { - xhr.send(); - }, 0); - - xhr.send(null); - } - } - else if (cjsMode) { - var fs; - fetchURI = function(url, fulfill, reject) { - if (url.substr(0, 8) != 'file:///') - throw '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); - fs.readFile(url, function(err, data) { - if (err) - reject(err); - else - fulfill(data + ''); - }); - } - } - else { - throw new TypeError('No environment fetch API available.'); - } - - var SystemLoader = function() { - Loader.call(this, arguments); - - var siteTable = {}; - this.site = function(mappings) { - for (var m in mappings) - siteTable[m] = mappings[m]; - } - this.site.get = function(name) { - return siteTable[name]; - } - this.site.set = function(name, url) { - siteTable[name] = url; - } - this.site.has = function(name) { - return !!siteTable[name]; - } - this.site['delete'] = function(name) { - delete siteTable[name]; - } - - function siteLookup(target) { - if (siteTable[target]) - return siteTable[target]; - - // most specific wildcard wins, with specificity metric as "/" count in pattern - var curMatch, curMatchLen = 0; - for (var p in siteTable) { - var wildcardParts = p.split('*'); - if (wildcardParts.length > 2) - throw new TypeError('Sites entry ' + p + ' contains multiple wildcards.'); - - if (wildcardParts.length == 1) - continue; - - if (p.split('/').length >= curMatchLen - && p.substr(0, wildcardParts[0].length) === target.substr(0, wildcardParts[0].length) - && p.substr(p.length - wildcardParts[1].length) === wildcardParts[1]) { - curMatch = siteTable[p].replace('*', target.substr(wildcardParts[0].length, target.length - p.length + 1)); - curMatchLen = p.split('/').length; - } - } - - return curMatch; - } - - this.hook('resolve', function(url, parentUrl, metadata) { - // first check site table - var sitesUrl = siteLookup(url); - - if (sitesUrl || !parentUrl) - parentUrl = base; - - // then do url normalization - // NB for performance, test out a normalization cache here - return new URL(sitesUrl || url, parentUrl).href; - }); - - this.hook('fetch', function(url, metadata) { - return new Promise(function(resolve, reject) { - fetchURI(url, resolve, reject); - }); - }); - - this.hook('translate', function(url, source, metadata) { - return source; - }); - - // defined in transpiler.js or dynamic-only.js - this.hook('instantiate', systemInstantiate); - - if (this.transpiler) - setupTranspilers(this); - }; - - // inline Object.create-style class extension - function LoaderProto() {} - LoaderProto.prototype = Loader.prototype; - SystemLoader.prototype = new LoaderProto(); - - // set the base URL - var base; - if (typeof document != 'undefined' && document.baseURI) { - base = document.baseURI; - } - else if (typeof document != 'undefined' && document.getElementsByTagName) { - base = document.getElementsByTagName('base')[0]; - base = base && base.href; - } - else if (typeof location != 'undefined' && location.href) { - base = location.href; - } - if (base) { - base = base.split('#')[0].split('?')[0]; - base = base.substr(0, base.lastIndexOf('/') + 1); - } - else if (typeof process != 'undefined' && process.cwd) { - base = 'file://' + (isWindows ? '/' : '') + process.cwd() + '/'; - if (isWindows) - base = base.replace(/\\/g, '/'); - } - base = new URL(base); - -// - if (url) { - System.load(url, 'ready'); - } - - // - else { - System.provide('anon' + ++anonCnt, 'fetch', script.innerHTML.substr(1)); - System.load('anon' + anonCnt, 'ready'); - } - } - } - } - - // DOM ready, taken from https://github.com/jquery/jquery/blob/master/src/core/ready.js#L63 - if (document.readyState === 'complete') { - setTimeout(ready); - } - else if (document.addEventListener) { - document.addEventListener('DOMContentLoaded', completed, false); - window.addEventListener('load', completed, false); - } - } - - // ---------- Export Definitions ---------- - - var Reflect; - - System = new SystemLoader(); - System.constructor = SystemLoader; - - (function(exports) { - - Reflect = exports.Reflect || {}; - - Reflect.Loader = Reflect.Loader || Loader; - Reflect.Module = Reflect.Module || Module; - Reflect.global = Reflect.global || __global; - - exports.LoaderPolyfill = Loader; - exports.ModulePolyfill = Module; - exports.Reflect = Reflect; - exports.System = System; - - })(cjsMode ? exports : __global); - - //module.exports = exports; - -})(typeof window != 'undefined' ? window : (typeof WorkerGlobalScope != 'undefined' ? self : global)); diff --git a/dist/es6-module-loader.js b/dist/es6-module-loader.js deleted file mode 100644 index 1826625..0000000 --- a/dist/es6-module-loader.js +++ /dev/null @@ -1,8 +0,0 @@ -/* - * es6-module-loader v1.0.0-alpha - * https://github.com/ModuleLoader/es6-module-loader - * Copyright (c) 2015 Guy Bedford, Luke Hoban, Addy Osmani; Licensed MIT - */ - -!function(a){function b(a,b){var c;if(a instanceof Error){var c=new a.constructor(a.message,a.fileName,a.lineNumber);c.message=a.message+"\n "+b,c.stack=a.stack}else c=a+"\n "+b;return c}function c(){this._loader={loaderObj:this,resolve:void 0,fetch:void 0,translate:void 0,instantiate:void 0,registry:{}}}function d(a,b,c){return a.registry[b]||(a.registry[b]={key:b,state:y,metadata:c||{},fetch:void 0,translate:void 0,instantiate:void 0,fetchResolve:void 0,translateResolve:void 0,instantiateResolve:void 0,dependencies:void 0,module:void 0,declare:void 0,error:null})}function e(a,b,c){b.fetchResolve?b.fetchResolve(c):b.fetch=Promise.resolve(c),b.fetchResolve=void 0,b.state=Math.max(b.state,z)}function f(a,b,c){b.translateResolve?b.translateResolve(c):b.translate=Promise.resolve(c),b.translateResolve=void 0,b.state=Math.max(b.state,A)}function g(a,b,c,d){if(void 0===c)var e=r(a.loaderObj,b.key,d,b.metadata);else if("function"!=typeof c)throw new TypeError("Instantiate must return an execution function.");b.instantiateResolve?b.instantiateResolve(c):b.instantiate=Promise.resolve(c),b.instantiateResolve=void 0;var f=[];if(void 0===c){b.declare=e.declare;for(var g=0;gB?f:k(a,c,null,f).then(function(){f.state=Math.max(f.state,C);for(var e=[],g=0;gb;b++)if(this[b]===a)return b;return-1},w="object"==typeof exports&&"function"==typeof require,x="undefined"!=typeof process&&!!process.platform.match(/^win/),y=0,z=1,A=2,B=3,C=4,D=5;c.prototype["import"]=function(a,c){var d=this._loader,e={};return Promise.resolve().then(function(){return d.resolve.call(d.loaderObj,a,c,e)})["catch"](function(d){throw b(d,"Resolving "+a+(c?", "+c:""))}).then(function(a){return n(d,a,e)})},c.prototype.resolve=function(a,b,c){var d=this._loader;return d.resolve.call(d.loaderObj,a,b,c||{})},c.prototype.load=function(a,b,c){var d=this._loader;if("fetch"==b)return i(d,a,c);if("translate"==b)return j(d,a,c);if("instantiate"==b)return l(d,a,c).then(function(a){return a.module instanceof q?void 0:a.module});if("link"==b)return m(d,a,c).then(function(){});if(b&&"ready"!=b)throw new TypeError("Invalid stage "+b);return n(d,a,c).then(function(a){return a.module})},c.prototype.provide=function(a,b,c,g){var i=this._loader,j=d(i,a,g);if("fetch"==b){if(j.state>y)throw new TypeError(a+" has already been fetched.");e(i,j,c)}else if("translate"==b){if(j.state>z)throw new TypeError(a+" has already been translated.");f(i,j,c)}else{if("instantiate"!=b)throw new TypeError("Invalid stage "+b);if(j.state>A)throw new TypeError(a+" has already been instantiated.");e(i,j,void 0),f(i,j,void 0),j.translate.then(function(a){h(i,j,c,a)})}},c.prototype.error=function(){},c.prototype.lookup=function(a){var b=this._loader,c=b.registry[a];if(!c)return null;var d;return c.state==y?d="fetch":c.state==z?d="translate":c.state==A?d="instantiate":c.state==C?d="link":c.state==D&&(d="ready"),{state:d,metadata:c.metadata,fetch:c.fetch&&Promise.resolve(c.fetch),translate:c.translate&&Promise.resolve(c.translate),instantiate:c.instantiate&&Promise.resolve(c.instantiate),module:c.state==D&&(c.module instanceof q?c.module:c.module.module),error:c.error}},c.prototype.install=function(a,b){var c=this._loader;if(c.registry[a])throw new TypeError(a+" is already defined in the Loader registry.");if(!(b instanceof q))throw new TypeError("Install must provide a valid Module object.");c.registry[a]={key:a,state:D,metadata:metadata,fetch:void 0,translate:void 0,instantiate:void 0,dependencies:void 0,module:b,declare:void 0,error:null}},c.prototype.uninstall=function(a){var b=this._loader,c=b.registry[a];if(!c)throw new TypeError(a+" is not defined in the Loader registry.");if(c.state=C)throw new TypeError(a+" is already past linking.");delete b.registry[a]};var E=["resolve","fetch","translate","instantiate"];c.prototype.hook=function(a,b){var c=this._loader;if(-1==v.call(E,a))throw new TypeError(a+" is not a valid hook.");return b?void(c[a]=b):c[a]};var F,G;if("undefined"!=typeof XMLHttpRequest)G=function(a,b,c){function d(){b(f.responseText)}function e(){c(new Error("GET "+a+" "+f.status+" ("+f.statusText+")"))}var f=new XMLHttpRequest,g=!0,h=!1;if(!("withCredentials"in f)){var i=/^(\w+:)?\/\/([^\/]+)/.exec(a);i&&(g=i[2]===window.location.host,i[1]&&(g&=i[1]===window.location.protocol))}g||"undefined"==typeof XDomainRequest||(f=new XDomainRequest,f.onload=d,f.onerror=e,f.ontimeout=e,f.onprogress=function(){},f.timeout=0,h=!0),f.onreadystatechange=function(){4===f.readyState&&(200===f.status||0==f.status&&f.responseText?d():e())},f.open("GET",a,!0),h&&setTimeout(function(){f.send()},0),f.send(null)};else{if(!w)throw new TypeError("No environment fetch API available.");var H;G=function(a,b,c){if("file:///"!=a.substr(0,8))throw"Only file URLs of the form file: allowed running in Node.";H=H||require("fs"),a=x?a.replace(/\//g,"\\").substr(8):a.substr(7),H.readFile(a,function(a,d){a?c(a):b(d+"")})}}var I=function(){function a(a){if(b[a])return b[a];var c,d=0;for(var e in b){var f=e.split("*");if(f.length>2)throw new TypeError("Sites entry "+e+" contains multiple wildcards.");1!=f.length&&e.split("/").length>=d&&e.substr(0,f[0].length)===a.substr(0,f[0].length)&&e.substr(e.length-f[1].length)===f[1]&&(c=b[e].replace("*",a.substr(f[0].length,a.length-e.length+1)),d=e.split("/").length)}return c}c.call(this,arguments);var b={};this.site=function(a){for(var c in a)b[c]=a[c]},this.site.get=function(a){return b[a]},this.site.set=function(a,c){b[a]=c},this.site.has=function(a){return!!b[a]},this.site["delete"]=function(a){delete b[a]},this.hook("resolve",function(b,c){var d=a(b);return(d||!c)&&(c=J),new t(d||b,c).href}),this.hook("fetch",function(a){return new Promise(function(b,c){G(a,b,c)})}),this.hook("translate",function(a,b){return b}),this.hook("instantiate",s),this.transpiler&&setupTranspilers(this)};u.prototype=c.prototype,I.prototype=new u;var J;"undefined"!=typeof document&&document.baseURI?J=document.baseURI:"undefined"!=typeof document&&document.getElementsByTagName?(J=document.getElementsByTagName("base")[0],J=J&&J.href):"undefined"!=typeof location&&location.href&&(J=location.href),J?(J=J.split("#")[0].split("?")[0],J=J.substr(0,J.lastIndexOf("/")+1)):"undefined"!=typeof process&&process.cwd&&(J="file://"+(x?"/":"")+process.cwd()+"/",x&&(J=J.replace(/\\/g,"/"))),J=new t(J);var K;F=new I,F.constructor=I,function(b){K=b.Reflect||{},K.Loader=K.Loader||c,K.Module=K.Module||q,K.global=K.global||a,b.LoaderPolyfill=c,b.ModulePolyfill=q,b.Reflect=K,b.System=F}(w?exports:a)}("undefined"!=typeof window?window:"undefined"!=typeof WorkerGlobalScope?self:global); -//# sourceMappingURL=es6-module-loader.js.map \ No newline at end of file diff --git a/dist/es6-module-loader.js.map b/dist/es6-module-loader.js.map deleted file mode 100644 index 819ded9..0000000 --- a/dist/es6-module-loader.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"es6-module-loader.js","sources":["es6-module-loader.src.js"],"names":["__global","addToError","err","msg","newErr","Error","constructor","message","fileName","lineNumber","stack","Loader","this","_loader","loaderObj","resolve","undefined","fetch","translate","instantiate","registry","ensureRegistered","loader","key","metadata","state","FETCH","fetchResolve","translateResolve","instantiateResolve","dependencies","module","declare","error","fulfillFetch","entry","payload","Promise","Math","max","TRANSLATE","fulfillTranslate","source","INSTANTIATE","fulfillInstantiate","instance","registration","transpile","TypeError","deps","i","length","push","value","INSTANTIATE_ALL","loadTranspilerThenFulfillInstantiate","loadTranspiler","then","requestFetch","reject","READY","call","requestTranslate","requestInstantiate","requestInstantiateAll","LINK","depLoads","pair","depMeta","depKey","depEntry","all","requestLink","computeDependencyGraph","dep","doDynamicLink","declareModule","requestReady","Module","ensureModuleExecution","result","indexOf","e","descriptors","p","systemInstantiate","URL","url","baseURL","m","String","replace","match","RangeError","protocol","username","password","host","hostname","port","pathname","search","hash","base","flag","charAt","slice","lastIndexOf","output","pop","join","origin","href","LoaderProto","Array","prototype","item","thisLen","cjsMode","exports","require","isWindows","process","platform","name","referrer","load","stage","provide","lookup","install","uninstall","cancel","hooks","hook","System","fetchURI","XMLHttpRequest","fulfill","xhr","responseText","status","statusText","sameDomain","doTimeout","domainCheck","exec","window","location","XDomainRequest","onload","onerror","ontimeout","onprogress","timeout","onreadystatechange","readyState","open","setTimeout","send","fs","substr","readFile","data","SystemLoader","siteLookup","target","siteTable","curMatch","curMatchLen","wildcardParts","split","arguments","site","mappings","get","set","has","parentUrl","sitesUrl","transpiler","setupTranspilers","document","baseURI","getElementsByTagName","cwd","Reflect","global","LoaderPolyfill","ModulePolyfill","WorkerGlobalScope","self"],"mappings":"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"} \ No newline at end of file diff --git a/dist/es6-module-loader.src.js b/dist/es6-module-loader.src.js deleted file mode 100644 index c308549..0000000 --- a/dist/es6-module-loader.src.js +++ /dev/null @@ -1,910 +0,0 @@ -/* - * Dynamic ES6 Module Loader Polyfill - * - * Implemented to the in-progress WhatWG loader standard at - * https://github.com/whatwg/loader/tree/819035fd5c59c53130a025694162fcaa2315fc36 - * - * Up to date as of 23 Feb 2015. - * - */ - -(function(__global) { - - // IE8 support - // Note: console.assert is not supported or polyfillable in IE8 - // so it is better to debug in IE8 against the source with - // assertions removed. - var indexOf = Array.prototype.indexOf || function(item) { - for (var i = 0, thisLen = this.length; i < thisLen; i++) - if (this[i] === item) - return i; - return -1; - }; - - // if we have require and exports, then define as CommonJS - var cjsMode = typeof exports == 'object' && typeof require == 'function'; - - var isWindows = typeof process != 'undefined' && !!process.platform.match(/^win/); - - function addToError(err, msg) { - var newErr; - if (err instanceof Error) { - var newErr = new err.constructor(err.message, err.fileName, err.lineNumber); - newErr.message = err.message + '\n\t' + msg; - newErr.stack = err.stack; - } - else { - newErr = err + '\n\t' + msg; - } - - return newErr; - } - - function __eval(source, debugName, context) { - try { - new Function(source).call(context); - } - catch(e) { - throw addToError(e, 'Evaluating ' + debugName); - } - } -// ---------- Loader ---------- - /* - * Spec Differences - * - Added ensureRegistered entry cache argument to avoid repeated lookups - * - metadata sent through ensureRegistered and all requestHOOK calls - * - Error entry checking and saving added to requestHOOK calls - */ - - // 3. Loader Objects - - // Loader class - function Loader() { - this._loader = { - loaderObj: this, - - resolve: undefined, - fetch: undefined, - translate: undefined, - instantiate: undefined, - - registry: {} - // Realm not implemented - }; - } - - // 3.1 Module Registry - // States - var FETCH = 0; - var TRANSLATE = 1; - var INSTANTIATE = 2; - var INSTANTIATE_ALL = 3; - var LINK = 4; - var READY = 5; - - // 4. Loading - - // 4.1.1 - function ensureRegistered(loader, key, metadata) { - return loader.registry[key] || (loader.registry[key] = { - key: key, - state: FETCH, - metadata: metadata || {}, - - fetch: undefined, - translate: undefined, - instantiate: undefined, - - fetchResolve: undefined, - translateResolve: undefined, - instantiateResolve: undefined, - - dependencies: undefined, - module: undefined, - - // System register lifecycle - declare: undefined, - - error: null - }); - } - - // 4.1.2 inlined - - // 4.1.3 - function fulfillFetch(loader, entry, payload) { - if (entry.fetchResolve) - entry.fetchResolve(payload); - else - entry.fetch = Promise.resolve(payload); - - entry.fetchResolve = undefined; - entry.state = Math.max(entry.state, TRANSLATE); - } - - // 4.1.4 - function fulfillTranslate(loader, entry, source) { - if (entry.translateResolve) - entry.translateResolve(source); - else - entry.translate = Promise.resolve(source); - - entry.translateResolve = undefined; - entry.state = Math.max(entry.state, INSTANTIATE); - } - - // 4.1.5 - function fulfillInstantiate(loader, entry, instance, source) { - // 4.1.6 CommitInstantiated inlined - - // 4.1.7 Instantiation inlined - if (instance === undefined) - // defined in transpiler.js - var registration = transpile(loader.loaderObj, entry.key, source, entry.metadata); - else if (typeof instance !== 'function') - throw new TypeError('Instantiate must return an execution function.'); - - // we should really resolve instantiate with a Source Text Module Record - // but we don't have that thing here - // it's not used through the instantiate promise though, so it's ok - if (entry.instantiateResolve) - entry.instantiateResolve(instance); - else - entry.instantiate = Promise.resolve(instance); - - entry.instantiateResolve = undefined; - - var deps = []; - - if (instance === undefined) { - // adjusted to use custom transpile hook - // with the system register declare function - entry.declare = registration.declare; - - for (var i = 0; i < registration.deps.length; i++) - deps.push({ key: registration.deps[i], value: undefined }); - } - - entry.dependencies = deps; - entry.module = instance; - entry.state = Math.max(entry.state, INSTANTIATE_ALL); - } - - // adjusted asynchronous declarative instantiate fulfillment - // to load transpiler - function loadTranspilerThenFulfillInstantiate(loader, entry, instance, source) { - return Promise.resolve(instance === undefined && loadTranspiler(loader.loaderObj)).then(function() { - fulfillInstantiate(loader, entry, instance, source); - }); - } - - // 4.2.1 - function requestFetch(loader, key, metadata, entry) { - entry = entry || ensureRegistered(loader, key, metadata); - - if (entry.error) - return Promise.reject(entry.error); - - if (entry.state === READY) - return Promise.reject(new Error(key + ' cannot be fetched as it is already linked.')); - - if (entry.fetch) - return entry.fetch; - - Promise.resolve() - .then(function() { - return loader.fetch.call(loader.loaderObj, key, entry.metadata); - }) - .then(function(payload) { - // in turn calls fetchResolve - fulfillFetch(loader, entry, payload); - }, function(err) { - throw addToError(err, 'Fetching ' + key); - }) - ['catch'](function(err) { - entry.error = entry.error || err; - }) - .then(function() { - if (entry.error && entry.fetchResolve) - entry.fetchResolve(Promise.reject(entry.error)); - }); - - return entry.fetch = new Promise(function(resolve) { - entry.fetchResolve = resolve; - }); - } - - // 4.2.2 - function requestTranslate(loader, key, metadata, entry) { - entry = entry || ensureRegistered(loader, key, metadata); - - if (entry.error) - return Promise.reject(entry.error); - - if (entry.state === READY) - return Promise.reject(new Error(key + ' cannot initiate translate as it is already linked.')); - - if (entry.translate) - return entry.translate; - - requestFetch(loader, key, null, entry) - .then(function(payload) { - return Promise.resolve() - .then(function() { - return loader.translate.call(loader.loaderObj, key, payload, entry.metadata); - }) - .then(function(source) { - // in turn calls translateResolve - fulfillTranslate(loader, entry, source); - }, function(err) { - throw addToError(err, 'Translating ' + key); - }); - }) - ['catch'](function(err) { - entry.error = entry.error || err; - }) - .then(function() { - if (entry.error && entry.translateResolve) - entry.translateResolve(Promise.reject(entry.error)); - }); - - return entry.translate = new Promise(function(resolve) { - entry.translateResolve = resolve; - }); - } - - // 4.2.3 - function requestInstantiate(loader, key, metadata, entry) { - entry = entry || ensureRegistered(loader, key, metadata); - - if (entry.error) - return Promise.reject(entry.error); - - if (entry.state === READY) - return Promise.reject(new Error(key + ' cannot instantiate as it is already linked.')); - - if (entry.instantiate) - return entry.instantiate; - - requestTranslate(loader, key, null, entry) - .then(function(source) { - return Promise.resolve() - .then(function() { - return loader.instantiate.call(loader.loaderObj, key, source, entry.metadata); - }) - .then(function(instance) { - return loadTranspilerThenFulfillInstantiate(loader, entry, instance, source); - }, function(err) { - throw addToError(err, 'Instantiating ' + key); - }); - }) - ['catch'](function(err) { - entry.error = entry.error || err; - }) - .then(function() { - if (entry.error && entry.instantiateResolve) - entry.instantiateResolve(Promise.reject(entry.error)); - }); - - return entry.instantiate = new Promise(function(resolve) { - entry.instantiateResolve = resolve; - }); - } - - // 4.2.4 - function requestInstantiateAll(loader, key, metadata, entry) { - entry = entry || ensureRegistered(loader, key, metadata); - - if (entry.state > INSTANTIATE_ALL) - return entry; - - return requestInstantiate(loader, key, null, entry) - .then(function() { - entry.state = Math.max(entry.state, LINK); - - var depLoads = []; - for (var i = 0; i < entry.dependencies.length; i++) (function(pair) { - // create dep meta object now, passed through into ensureRegister shortly - var depMeta = {}; - depLoads.push(Promise.resolve(loader.resolve.call(loader.loaderObj, pair.key, key, depMeta)) - .then(function(depKey) { - var depEntry = ensureRegistered(loader, depKey, depMeta); - - pair.value = depEntry; - - return requestInstantiateAll(loader, depKey, null, depEntry); - })); - })(entry.dependencies[i]); - return Promise.all(depLoads) - ['catch'](function(err) { - err = addToError(err, 'Loading ' + key); - entry.error = entry.error || err; - throw err; - }); - }); - } - - // 4.2.5 - function requestLink(loader, key, metadata, entry) { - entry = entry || ensureRegistered(loader, key, metadata); - - if (entry.error) - return Promise.reject(entry.error); - - if (entry.state === READY) - return Promise.resolve(entry); - - return requestInstantiateAll(loader, key, metadata, entry) - .then(function() { - // 5.2.1 Link inlined to reduce stack size - - // 5.2.2 dependencyGraph inlined - var deps = []; - computeDependencyGraph(entry, deps); - - // dynamic link - for (var i = 0; i < deps.length; i++) { - var dep = deps[i]; - if (dep.state == LINK && typeof dep.module == 'function') { - doDynamicLink(dep); - // console.assert(dep.module instanceof Module) - dep.state = READY; - } - } - - // declarative link - // adjusted linking implementation - // to handle setter graph logic - if (entry.state == LINK) - // defined in declare.js - declareModule(entry); - - // [assert entry's whole graph is in ready state] - return entry; - }) - ['catch'](function(err) { - entry.error = err; - throw err; - }); - } - - // 4.2.6 - function requestReady(loader, key, metadata, entry) { - entry = entry || ensureRegistered(loader, key, metadata); - - return requestLink(loader, key, metadata, entry) - .then(function(entry) { - var module = entry.module; - // dynamic already executed - if (module instanceof Module) - return module; - - // ModuleRecord needs System register execute - // defined in declarative.js - var err = ensureModuleExecution(module, []); - if (err) { - err = addToError(err, 'Error evaluating ' + key); - entry.error = err; - throw err; - } - return module.module; - }, function(err) { - entry.error = entry.error || err; - throw err; - }); - } - - // 5. Linking - - // 5.2.1 inlined in 4.2.5 - // 5.2.2 inlined in 4.2.5 - - // 5.2.3 - function computeDependencyGraph(entry, result) { - if (indexOf.call(result, entry) != -1) - return; - - result.push(entry); - for (var i = 0; i < entry.dependencies.length; i++) - computeDependencyGraph(entry.dependencies[i].value, result); - } - - function doDynamicLink(dep) { - // may have had a previous error - if (dep.error) - throw dep.error; - - try { - dep.module = dep.module(); - } - catch(e) { - dep.error = e; - throw e; - } - } - - // 6. API - - // 6.1.1 - Loader.prototype['import'] = function(name, referrer) { - var loader = this._loader; - var metadata = {}; - return Promise.resolve() - .then(function() { - return loader.resolve.call(loader.loaderObj, name, referrer, metadata); - }) - ['catch'](function(err) { - throw addToError(err, 'Resolving ' + name + (referrer ? ', ' + referrer : '')); - }) - .then(function(key) { - return requestReady(loader, key, metadata); - }); - }; - - // 6.2.1 - Loader.prototype.resolve = function(name, referrer, metadata) { - var loader = this._loader; - return loader.resolve.call(loader.loaderObj, name, referrer, metadata || {}); - }; - - // 6.3.1 - // For eg ready, - Loader.prototype.load = function(key, stage, metadata) { - var loader = this._loader; - - if (stage == 'fetch') - return requestFetch(loader, key, metadata); - - else if (stage == 'translate') - return requestTranslate(loader, key, metadata); - - else if (stage == 'instantiate') - return requestInstantiateAll(loader, key, metadata) - .then(function(entry) { - if (!(entry.module instanceof Module)) - return entry.module; - }); - - else if (stage == 'link') - return requestLink(loader, key, metadata).then(function() {}) - - else if (!stage || stage == 'ready') - return requestReady(loader, key, metadata) - .then(function(entry) { - // this is ok because we use plain modules throughout - return entry.module; - }); - - else - throw new TypeError('Invalid stage ' + stage); - }; - - // 6.4.1 - // For eg fetch, , key = anon - Loader.prototype.provide = function(key, stage, value, metadata) { - var loader = this._loader; - - var entry = ensureRegistered(loader, key, metadata); - - if (stage == 'fetch') { - if (entry.state > FETCH) - throw new TypeError(key + ' has already been fetched.'); - fulfillFetch(loader, entry, value); - } - else if (stage == 'translate') { - if (entry.state > TRANSLATE) - throw new TypeError(key + ' has already been translated.'); - fulfillTranslate(loader, entry, value); - } - else if (stage == 'instantiate') { - if (entry.state > INSTANTIATE) - throw new TypeError(key + ' has already been instantiated.'); - fulfillFetch(loader, entry, undefined); - fulfillTranslate(loader, entry, undefined); - // NB error propogation - entry.translate.then(function(source) { - loadTranspilerThenFulfillInstantiate(loader, entry, value, source); - }); - } - else - throw new TypeError('Invalid stage ' + stage); - }; - - // 6.4.2 - // SPEC TODO - Loader.prototype.error = function(key, stage, value) {}; - - // 6.5.1 - Loader.prototype.lookup = function(key) { - var loader = this._loader; - - var entry = loader.registry[key]; - if (!entry) - return null; - - var state; - if (entry.state == FETCH) - state = 'fetch'; - else if (entry.state == TRANSLATE) - state = 'translate'; - else if (entry.state == INSTANTIATE) - state = 'instantiate'; - else if (entry.state == LINK) - state = 'link'; - else if (entry.state == READY) - state = 'ready'; - - return { - state: state, - metadata: entry.metadata, - fetch: entry.fetch && Promise.resolve(entry.fetch), - translate: entry.translate && Promise.resolve(entry.translate), - instantiate: entry.instantiate && Promise.resolve(entry.instantiate), - module: entry.state == READY && (entry.module instanceof Module ? entry.module : entry.module.module), - error: entry.error - }; - }; - - // 6.5.2 - Loader.prototype.install = function(key, module) { - var loader = this._loader; - - if (loader.registry[key]) - throw new TypeError(key + ' is already defined in the Loader registry.'); - - if (!(module instanceof Module)) - throw new TypeError('Install must provide a valid Module object.'); - - loader.registry[key] = { - key: key, - state: READY, - metadata: metadata, - - fetch: undefined, - translate: undefined, - instantiate: undefined, - - dependencies: undefined, - module: module, - declare: undefined, - error: null - }; - }; - - // 6.5.3 - Loader.prototype.uninstall = function(key) { - var loader = this._loader; - - var entry = loader.registry[key]; - if (!entry) - throw new TypeError(key + ' is not defined in the Loader registry.'); - - if (entry.state < LINK) - throw new TypeError(key + ' is still loading.'); - - delete loader.registry[key]; - }; - - // 6.5.4 - Loader.prototype.cancel = function(key) { - var loader = this._loader; - - var entry = loader.registry[key]; - if (!entry) - throw new TypeError(key + ' does not exist.'); - - if (entry.state >= LINK) - throw new TypeError(key + ' is already past linking.'); - - delete loader.registry[key]; - }; - - // 6.6.1 - // loader.hook('resolve') -> returns resolve hook - // loader.hook('resolve', fn) -> sets resolve hook - var hooks = ['resolve', 'fetch', 'translate', 'instantiate']; - Loader.prototype.hook = function(name, value) { - var loader = this._loader; - if (indexOf.call(hooks, name) == -1) - throw new TypeError(name + ' is not a valid hook.'); - if (value) - loader[name] = value; - else - return loader[name]; - }; - - // 6.7 Module Reflection - - // plain user-facing module object - function Module(descriptors, executor, evaluate) { - // should define as unconfigurable and preventExtensions - // going for max perf first iteration though - for (var p in descriptors) - this[p] = descriptors[p]; - } - - // ---------- Dynamic-Only Linking Code ---------- - - function transpile() { - throw new TypeError('Native ES Module support not included in this loader.'); - } - - function systemInstantiate() {} - // from https://gist.github.com/Yaffle/1088850 - function URL(url, baseURL) { - if (typeof url != 'string') - throw new TypeError('URL must be a string'); - var m = String(url).replace(/^\s+|\s+$/g, "").match(/^([^:\/?#]+:)?(?:\/\/(?:([^:@\/?#]*)(?::([^:@\/?#]*))?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/); - if (!m) { - throw new RangeError(); - } - var protocol = m[1] || ""; - var username = m[2] || ""; - var password = m[3] || ""; - var host = m[4] || ""; - var hostname = m[5] || ""; - var port = m[6] || ""; - var pathname = m[7] || ""; - var search = m[8] || ""; - var hash = m[9] || ""; - if (baseURL !== undefined) { - var base = baseURL instanceof URL ? baseURL : new URL(baseURL); - var flag = protocol === "" && host === "" && username === ""; - if (flag && pathname === "" && search === "") { - search = base.search; - } - if (flag && pathname.charAt(0) !== "/") { - pathname = (pathname !== "" ? (((base.host !== "" || base.username !== "") && base.pathname === "" ? "/" : "") + base.pathname.slice(0, base.pathname.lastIndexOf("/") + 1) + pathname) : base.pathname); - } - // dot segments removal - var output = []; - pathname.replace(/^(\.\.?(\/|$))+/, "") - .replace(/\/(\.(\/|$))+/g, "/") - .replace(/\/\.\.$/, "/../") - .replace(/\/?[^\/]*/g, function (p) { - if (p === "/..") { - output.pop(); - } else { - output.push(p); - } - }); - pathname = output.join("").replace(/^\//, pathname.charAt(0) === "/" ? "/" : ""); - if (flag) { - port = base.port; - hostname = base.hostname; - host = base.host; - password = base.password; - username = base.username; - } - if (protocol === "") { - protocol = base.protocol; - } - } - // convert windows file URLs to use / - if (protocol == 'file:') - pathname = pathname.replace(/\\/g, '/'); - - this.origin = protocol + (protocol !== "" || host !== "" ? "//" : "") + host; - this.href = protocol + (protocol !== "" || host !== "" ? "//" : "") + (username !== "" ? username + (password !== "" ? ":" + password : "") + "@" : "") + host + pathname + search + hash; - this.protocol = protocol; - this.username = username; - this.password = password; - this.host = host; - this.hostname = hostname; - this.port = port; - this.pathname = pathname; - this.search = search; - this.hash = hash; - } - -// ---------- System Loader Definition ---------- - - var System; - - /* - * Corrsponds to section 8 of the specification - */ - - // Fetch Implementation - var fetchURI; - - if (typeof XMLHttpRequest != 'undefined') { - fetchURI = function(url, fulfill, reject) { - var xhr = new XMLHttpRequest(); - var sameDomain = true; - var doTimeout = false; - if (!('withCredentials' in xhr)) { - // check if same domain - var domainCheck = /^(\w+:)?\/\/([^\/]+)/.exec(url); - if (domainCheck) { - sameDomain = domainCheck[2] === window.location.host; - if (domainCheck[1]) - sameDomain &= domainCheck[1] === window.location.protocol; - } - } - if (!sameDomain && typeof XDomainRequest != 'undefined') { - xhr = new XDomainRequest(); - xhr.onload = load; - xhr.onerror = error; - xhr.ontimeout = error; - xhr.onprogress = function() {}; - xhr.timeout = 0; - doTimeout = true; - } - function load() { - fulfill(xhr.responseText); - } - function error() { - reject(new Error('GET ' + url + ' ' + xhr.status + ' (' + xhr.statusText + ')')); - } - - xhr.onreadystatechange = function () { - if (xhr.readyState === 4) { - if (xhr.status === 200 || (xhr.status == 0 && xhr.responseText)) { - load(); - } else { - error(); - } - } - }; - xhr.open("GET", url, true); - - if (doTimeout) - setTimeout(function() { - xhr.send(); - }, 0); - - xhr.send(null); - } - } - else if (cjsMode) { - var fs; - fetchURI = function(url, fulfill, reject) { - if (url.substr(0, 8) != 'file:///') - throw '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); - fs.readFile(url, function(err, data) { - if (err) - reject(err); - else - fulfill(data + ''); - }); - } - } - else { - throw new TypeError('No environment fetch API available.'); - } - - var SystemLoader = function() { - Loader.call(this, arguments); - - var siteTable = {}; - this.site = function(mappings) { - for (var m in mappings) - siteTable[m] = mappings[m]; - } - this.site.get = function(name) { - return siteTable[name]; - } - this.site.set = function(name, url) { - siteTable[name] = url; - } - this.site.has = function(name) { - return !!siteTable[name]; - } - this.site['delete'] = function(name) { - delete siteTable[name]; - } - - function siteLookup(target) { - if (siteTable[target]) - return siteTable[target]; - - // most specific wildcard wins, with specificity metric as "/" count in pattern - var curMatch, curMatchLen = 0; - for (var p in siteTable) { - var wildcardParts = p.split('*'); - if (wildcardParts.length > 2) - throw new TypeError('Sites entry ' + p + ' contains multiple wildcards.'); - - if (wildcardParts.length == 1) - continue; - - if (p.split('/').length >= curMatchLen - && p.substr(0, wildcardParts[0].length) === target.substr(0, wildcardParts[0].length) - && p.substr(p.length - wildcardParts[1].length) === wildcardParts[1]) { - curMatch = siteTable[p].replace('*', target.substr(wildcardParts[0].length, target.length - p.length + 1)); - curMatchLen = p.split('/').length; - } - } - - return curMatch; - } - - this.hook('resolve', function(url, parentUrl, metadata) { - // first check site table - var sitesUrl = siteLookup(url); - - if (sitesUrl || !parentUrl) - parentUrl = base; - - // then do url normalization - // NB for performance, test out a normalization cache here - return new URL(sitesUrl || url, parentUrl).href; - }); - - this.hook('fetch', function(url, metadata) { - return new Promise(function(resolve, reject) { - fetchURI(url, resolve, reject); - }); - }); - - this.hook('translate', function(url, source, metadata) { - return source; - }); - - // defined in transpiler.js or dynamic-only.js - this.hook('instantiate', systemInstantiate); - - if (this.transpiler) - setupTranspilers(this); - }; - - // inline Object.create-style class extension - function LoaderProto() {} - LoaderProto.prototype = Loader.prototype; - SystemLoader.prototype = new LoaderProto(); - - // set the base URL - var base; - if (typeof document != 'undefined' && document.baseURI) { - base = document.baseURI; - } - else if (typeof document != 'undefined' && document.getElementsByTagName) { - base = document.getElementsByTagName('base')[0]; - base = base && base.href; - } - else if (typeof location != 'undefined' && location.href) { - base = location.href; - } - if (base) { - base = base.split('#')[0].split('?')[0]; - base = base.substr(0, base.lastIndexOf('/') + 1); - } - else if (typeof process != 'undefined' && process.cwd) { - base = 'file://' + (isWindows ? '/' : '') + process.cwd() + '/'; - if (isWindows) - base = base.replace(/\\/g, '/'); - } - base = new URL(base); - - - // ---------- Export Definitions ---------- - - var Reflect; - - System = new SystemLoader(); - System.constructor = SystemLoader; - - (function(exports) { - - Reflect = exports.Reflect || {}; - - Reflect.Loader = Reflect.Loader || Loader; - Reflect.Module = Reflect.Module || Module; - Reflect.global = Reflect.global || __global; - - exports.LoaderPolyfill = Loader; - exports.ModulePolyfill = Module; - exports.Reflect = Reflect; - exports.System = System; - - })(cjsMode ? exports : __global); - - //module.exports = exports; - -})(typeof window != 'undefined' ? window : (typeof WorkerGlobalScope != 'undefined' ? self : global)); diff --git a/index.js b/index.js deleted file mode 100644 index 3f02afd..0000000 --- a/index.js +++ /dev/null @@ -1,25 +0,0 @@ -if (typeof Promise === 'undefined') - require('when/es6-shim/Promise'); - -module.exports = require('./dist/es6-module-loader-declarative.src'); - -var System = module.exports.System; - -var filePrefix = 'file:' + (process.platform.match(/^win/) ? '///' : '//'); -try { - var traceurPath = filePrefix + require.resolve('traceur/bin/traceur.js'); - System.site.set('traceur', traceurPath); -} -catch(e) {} - -try { - var babelPath = filePrefix + require.resolve('babel/browser.js'); - System.site.set('babel', babelPath); -} -catch(e) {} - -try { - var babelCorePath = filePrefix + require.resolve('babel-core/browser.js'); - System.site.set('babel', babelCorePath); -} -catch(e) {} diff --git a/package.json b/package.json index 955bb01..bbc1a0a 100644 --- a/package.json +++ b/package.json @@ -22,50 +22,16 @@ } ], "devDependencies": { - "babel-core": "^4.7.16", - "core-js": "^1.2.1", - "expect.js": "^0.3.1", - "gesalakacula": "^1.0.0", - "grunt": "~0.4.1", - "grunt-contrib-concat": "^0.5.0", - "grunt-contrib-jshint": "~0.6.0", - "grunt-contrib-uglify": "~0.6.0", - "grunt-preprocess": "^5.0.1", - "karma": "^0.12.28", - "karma-benchmark": "^0.4.0", - "karma-benchmark-reporter": "^0.1.1", - "karma-chrome-launcher": "^0.1.7", - "karma-coverage": "^0.2.7", - "karma-expect": "^1.1.0", - "karma-firefox-launcher": "^0.1.3", - "karma-mocha": "^0.1.10", - "karma-mocha-reporter": "^0.3.1", - "karma-sauce-launcher": "^0.2.10", - "minimist": "^1.1.0", - "mocha": "^2.0.1", - "regenerator": "^0.8.9", - "traceur": "0.0.90" + "rollup": "^0.34.7" }, "keywords": [ - "script", + "modules", + "module loader", "loader", - "es6", - "harmony" + "es modules" ], - "engines": { - "node": ">=0.8.0" - }, "scripts": { - "test": "npm run test:node && npm run test:browser", - "test:node": "mocha test/_node-traceur.js && mocha test/_node-babel.js", - "test:browser": "npm run test:browser-traceur && npm run test:browser-babel && npm run test:browser:native-iterator && npm run test:browser:map-polyfill", - "test:browser-traceur": "karma start --single-run", - "test:browser-babel": "karma start --single-run --babel", - "test:browser:perf": "karma start karma-benchmark.conf.js --single-run", - "test:browser:native-iterator": "karma start --single-run --native-iterator && karma start --single-run --babel --native-iterator", - "test:browser:map-polyfill": "karma start --single-run --babel --native-iterator --force-map-polyfill && karma start --single-run --babel --force-map-polyfill" - }, - "dependencies": { - "when": "^3.7.2" + "build": "rollup -c", + "test": "node test/test.js" } } diff --git a/rollup.config.js b/rollup.config.js new file mode 100644 index 0000000..aa644dc --- /dev/null +++ b/rollup.config.js @@ -0,0 +1,6 @@ +export default { + entry: 'system-register-only.js', + format: 'umd', + moduleName: 'SystemRegisterLoader', + dest: 'dist/system-register-only.js' +}; \ No newline at end of file diff --git a/src/declarative.js b/src/declarative.js deleted file mode 100644 index 3386b6e..0000000 --- a/src/declarative.js +++ /dev/null @@ -1,116 +0,0 @@ - // ---------- Declarative Linking Code ---------- - - // ES6-style module binding and execution code - function declareModule(entry) { - // could consider a try catch around setters here that saves errors to module.error - var module = entry.module = ensureModuleRecord(entry.key); - var moduleObj = module.module; - - // run the System register declare function - // providing the binding export function argument - // NB module meta should be an additional argument in future here - var registryEntry = entry.declare.call(__global, function(name, value) { - // export setter propogation with locking to avoid cycles - module.locked = true; - moduleObj[name] = value; - - for (var i = 0; i < module.importers.length; i++) { - var importerModule = module.importers[i]; - if (!importerModule.locked) { - var importerIndex = importerModule.dependencies.indexOf(module); - importerModule.setters[importerIndex](moduleObj); - } - } - - module.locked = false; - return value; - }); - - module.setters = registryEntry.setters; - module.execute = registryEntry.execute; - - // now go through dependencies and declare them in turn, building up the binding graph as we go - for (var i = 0; i < entry.dependencies.length; i++) { - var depEntry = entry.dependencies[i].value; - - // if dependency not already declared, declare it now - // we check module existence over state to stop at circular and dynamic - if (!depEntry.module) - declareModule(depEntry); - - var depModule = depEntry.module; - - // dynamic -> no setter propogation, but need dependencies and setters to line up - if (depModule instanceof Module) { - module.dependencies.push(null); - } - else { - module.dependencies.push(depModule); - depModule.importers.push(module); - } - - // finally run this setter - if (module.setters[i]) - module.setters[i](depModule.module); - } - - entry.state = READY; - } - - // execute a module record and all the modules that need it - function ensureModuleExecution(module, seen) { - if (seen.indexOf(module) != -1) - return; - - if (module.error) - return module.error; - - seen.push(module); - - var deps = module.dependencies; - var err; - - for (var i = 0; i < deps.length; i++) { - var dep = deps[i]; - - // dynamic modules are null in the ModuleRecord graph - if (!dep) - continue; - - err = ensureModuleExecution(deps[i], seen); - if (err) { - module.error = addToError(err, 'Error evaluating ' + dep.key); - return module.error; - } - } - - err = doExecute(module); - - if (err) - module.error = err; - - return err; - } - - function doExecute(module) { - try { - module.execute.call({}); - } - catch(e) { - return e; - } - } - - // module record used for binding and evaluation management - var moduleRecords = {}; - function ensureModuleRecord(key) { - return moduleRecords[key] || (moduleRecords[key] = { - key: key, - dependencies: [], - module: new Module({}), - importers: [], - locked: false, - // these are specifically for runtime binding / execution errors - error: null - }); - } diff --git a/src/dynamic-only.js b/src/dynamic-only.js deleted file mode 100644 index 8fc7c7b..0000000 --- a/src/dynamic-only.js +++ /dev/null @@ -1,7 +0,0 @@ - // ---------- Dynamic-Only Linking Code ---------- - - function transpile() { - throw new TypeError('Native ES Module support not included in this loader.'); - } - - function systemInstantiate() {} \ No newline at end of file diff --git a/src/loader.js b/src/loader.js deleted file mode 100644 index 659a08e..0000000 --- a/src/loader.js +++ /dev/null @@ -1,811 +0,0 @@ -// ---------- Loader ---------- - /* - * Spec Differences - * - Added ensureRegistered entry cache argument to avoid repeated lookups - * - metadata sent through ensureRegistered and all requestHOOK calls - * - Error entry checking and saving added to requestHOOK calls - */ - - // 3. Loader Objects - - // Loader class - function Loader() { - this._loader = { - loaderObj: this, - - resolve: undefined, - fetch: undefined, - translate: undefined, - instantiate: undefined, - - registry: {}, - newRegistry: new Registry(), //this is temporary until Registry is ready to be used - // Realm not implemented - }; - } - - // States - var FETCH = 0; - var TRANSLATE = 1; - var INSTANTIATE = 2; - var INSTANTIATE_ALL = 3; - var LINK = 4; - var READY = 5; - - // feature detection - var hasNativeMap = __global.Map && __global.Map.prototype && __global.Map.prototype.entries && __global.Map.prototype.keys - && __global.Map.prototype.values && __global.Map.prototype.get && __global.Map.prototype.set - && __global.Map.prototype.has && __global.Map.prototype.delete; - var hasNativeIterator = __global.Symbol && __global.Symbol.iterator; - - // 3.3.2 - Loader.prototype['import'] = function(name, referrer) { - var loader = this._loader; - var metadata = {}; - return Promise.resolve() - .then(function() { - return loader.resolve.call(loader.loaderObj, name, referrer, metadata); - }) - ['catch'](function(err) { - throw addToError(err, 'Resolving ' + name + (referrer ? ', ' + referrer : '')); - }) - .then(function(key) { - return requestReady(loader, key, metadata); - }); - }; - - // 3.3.3 - Loader.prototype.resolve = function(name, referrer, metadata) { - var loader = this._loader; - return loader.resolve.call(loader.loaderObj, name, referrer, metadata || {}); - }; - - // 3.3.4 - // For eg ready, - Loader.prototype.load = function(key, stage, metadata) { - var loader = this._loader; - - if (stage == 'fetch') - return requestFetch(loader, key, metadata); - - else if (stage == 'translate') - return requestTranslate(loader, key, metadata); - - else if (stage == 'instantiate') - return requestInstantiateAll(loader, key, metadata) - .then(function(entry) { - if (!(entry.module instanceof Module)) - return entry.module; - }); - - else if (stage == 'link') - return requestLink(loader, key, metadata).then(function() {}) - - else if (!stage || stage == 'ready') - return requestReady(loader, key, metadata) - .then(function(entry) { - // this is ok because we use plain modules throughout - return entry.module; - }); - - // @ifdef STRICT - else - throw new TypeError('Invalid stage ' + stage); - // @endif - }; - - // 3.3.5 - Object.defineProperty(Loader.prototype, 'registry', { - get: function() { - // @ifdef STRICT - if (typeof this !== 'object') - throw new TypeError('this must be a Loader'); - // uncomment when Realm is implemented - // if (!this._loader.realm) - // throw new TypeError('A Loader must have a realm'); - - if (!(this._loader.newRegistry instanceof Registry)) - throw new TypeError('invalid registry -- must be created during Loader constructor'); - // @endif - return this._loader.newRegistry; - } - }); - - // No longer in spec - // For eg fetch, , key = anon - Loader.prototype.provide = function(key, stage, value, metadata) { - var loader = this._loader; - - var entry = ensureRegistered(loader, key, metadata); - - if (stage == 'fetch') { - // @ifdef STRICT - if (entry.state > FETCH) - throw new TypeError(key + ' has already been fetched.'); - // @endif - fulfillFetch(loader, entry, value); - } - else if (stage == 'translate') { - // @ifdef STRICT - if (entry.state > TRANSLATE) - throw new TypeError(key + ' has already been translated.'); - // @endif - fulfillTranslate(loader, entry, value); - } - else if (stage == 'instantiate') { - // @ifdef STRICT - if (entry.state > INSTANTIATE) - throw new TypeError(key + ' has already been instantiated.'); - // @endif - fulfillFetch(loader, entry, undefined); - fulfillTranslate(loader, entry, undefined); - // NB error propogation - entry.translate.then(function(source) { - loadTranspilerThenFulfillInstantiate(loader, entry, value, source); - }); - } - // @ifdef STRICT - else - throw new TypeError('Invalid stage ' + stage); - // @endif - }; - - // TODO: the Loader no longer has the hook property - // loader.hook('resolve') -> returns resolve hook - // loader.hook('resolve', fn) -> sets resolve hook - var hooks = ['resolve', 'fetch', 'translate', 'instantiate']; - Loader.prototype.hook = function(name, value) { - var loader = this._loader; - // @ifdef STRICT - if (hooks.indexOf(name) == -1) - throw new TypeError(name + ' is not a valid hook.'); - // @endif - if (value) - loader[name] = value; - else - return loader[name]; - }; - - // 4. Registry Objects - // For now, registry objects are a work in progress that don't fully integrate into the rest of the code base - - // 4.1.1 inlined in 4.2 - - // 4.2 - see https://github.com/ModuleLoader/es6-module-loader/pull/462#discussion-diff-50639828 for why it deviates from spec - function Registry() { - if (hasNativeMap) - this.registryMap = new __global.Map(); - else - this.registryMap = new InternalMapPolyfill(); - // 4.4.2 - if (hasNativeIterator) - this[__global.Symbol.iterator] = mapPolyfillEntriesIterator.bind(this.registryMap); - } - - // 4.3.1 -- not necessary because of https://github.com/ModuleLoader/es6-module-loader/pull/462#discussion-diff-50639828 - - // 4.4 - not necessary because of https://github.com/ModuleLoader/es6-module-loader/pull/462#discussion-diff-50639828 - - // 4.4.1 - Registry.prototype.constructor = Registry; - - // 4.4.2 is inlined in 4.2 - - // 4.4.3 - Registry.prototype.entries = function() { - // @ifdef STRICT - if (typeof this !== 'object') - throw new TypeError('cannot get entries of a non-registry'); - // @endif - return this.registryMap.entries(); - } - - // 4.4.4 - Registry.prototype.keys = function() { - // @ifdef STRICT - if (typeof this !== 'object') - throw new TypeError('invalid registry'); - // @endif - return this.registryMap.keys(); - } - - // 4.4.5 - Registry.prototype.values = function() { - // @ifdef STRICT - if (typeof this !== 'object') - throw new TypeError('invalid registry'); - // @endif - return this.registryMap.values(); - } - - // 4.4.6 - Registry.prototype.get = function(key) { - // @ifdef STRICT - if (typeof this !== 'object') - throw new TypeError('invalid registry'); - // @endif - return this.registryMap.get(key); - } - - // 4.4.7 - Registry.prototype.set = function(key, value) { - // @ifdef STRICT - if (typeof this !== 'object') - throw new TypeError('invalid registry'); - // @endif - this.registryMap.set(key, value); - return this; - } - - // 4.4.8 - Registry.prototype.has = function(key) { - // @ifdef STRICT - if (typeof this !== 'object') - throw new TypeError('invalid registry'); - // @endif - return this.registryMap.has(key); - } - - // 4.4.9 - Registry.prototype.delete = function(key) { - // @ifdef STRICT - if (typeof this !== 'object') - throw new TypeError('invalid registry'); - // @endif - return this.registryMap.delete(key); - } - - // 4.1.1 - TODO out of date - function getCurrentStage(entry) { - // @ifdef STRICT - if (typeof entry !== 'object') - throw new TypeError('entry is not an object'); - // @endif - return entry.pipeline[0]; - } - - // 4.1.4 - TODO out of date - function getRegistryEntry(registry, key) { - // @ifdef STRICT - if (typeof registry !== 'object') - throw new TypeError('registry is not an object'); - // @endif - - var entry = registry._registry.registryData[key]; - if (!entry) - return null; - - var currentStage = getCurrentStage(entry); - var result = new Promise(function(resolve) { - resolve(currentStage.result); - }); - - return { - stage: currentStage.stage, - result: result, - module: currentStage.stage == 'ready' ? entry.module : undefined, - error: entry.error ? { value: entry.error } : null - }; - } - - // 4.4.3 - TODO out of date - Registry.prototype.lookup = function(key) { - return getRegistryEntry(this, key); - }; - - // 4.4.4 - TODO out of date - Registry.prototype.install = function(key, module) { - // @ifdef STRICT - if (typeof this !== 'object') - throw new TypeError('registry must be an object'); - if (this._registry.registryData[key]) - throw new TypeError('Module with key ' + key + ' already exists'); - // @endif - - var result = new Promise(function(resolve) { - resolve(module); - }); - this._registry.registryData[key] = { - key: key, - pipeline: [{ - stage: 'ready', - result: result - }], - metadata: undefined, - dependencies: undefined, - module: module - }; - } - - // 4.4.5 - TODO out of date - Registry.prototype.uninstall = function(key) { - if (typeof this !== 'object') - throw new TypeError('Registry must be an object'); - var entry = this._registry.registryData[key]; - if (!entry) - throw new TypeError('Module ' + key + ' does not exist'); - var stageEntry = getCurrentStage(entry); - if (stageEntry.stage !== 'link' && stageEntry.stage !== 'ready') - throw new TypeError('Module ' + key + ' is still loading'); - delete this._registry.registryData[key]; - } - - // 4.4.6 - TODO out of date - Registry.prototype.cancel = function(key) { - if (typeof this !== 'object') - throw new TypeError('Registry must be an object'); - var entry = this._registry.registryData[key]; - if (!entry) - throw new TypeError('Module ' + key + ' does not exist'); - var stageEntry = getCurrentStage(entry); - if (stageEntry.stage === 'link' || stageEntry.stage === 'ready') - throw new TypeError('Module ' + key + ' is already done linking'); - delete this._registry.registryData[key]; - } - - // 5. Loading - TODO out of date - - // 5.1.1 - TODO out of date - function ensureRegistered(loader, key, metadata) { - return loader.registry[key] || (loader.registry[key] = { - key: key, - state: FETCH, - metadata: metadata || {}, - - fetch: undefined, - translate: undefined, - instantiate: undefined, - - fetchResolve: undefined, - translateResolve: undefined, - instantiateResolve: undefined, - - dependencies: undefined, - module: undefined, - - // System register lifecycle - declare: undefined, - - error: null - }); - } - - // 5.1.2 inlined - TODO out of date - - // 5.1.3 - TODO out of date - function fulfillFetch(loader, entry, payload) { - if (entry.fetchResolve) - entry.fetchResolve(payload); - else - entry.fetch = Promise.resolve(payload); - - entry.fetchResolve = undefined; - entry.state = Math.max(entry.state, TRANSLATE); - } - - // 5.1.4 - TODO out of date - function fulfillTranslate(loader, entry, source) { - if (entry.translateResolve) - entry.translateResolve(source); - else - entry.translate = Promise.resolve(source); - - entry.translateResolve = undefined; - entry.state = Math.max(entry.state, INSTANTIATE); - } - - // 5.1.5 - TODO out of date - function fulfillInstantiate(loader, entry, instance, source) { - // 5.1.6 CommitInstantiated inlined - - // 5.1.7 Instantiation inlined - if (instance === undefined) - // defined in transpiler.js - var registration = transpile(loader.loaderObj, entry.key, source, entry.metadata); - else if (typeof instance !== 'function') - throw new TypeError('Instantiate must return an execution function.'); - - // we should really resolve instantiate with a Source Text Module Record - // but we don't have that thing here - // it's not used through the instantiate promise though, so it's ok - if (entry.instantiateResolve) - entry.instantiateResolve(instance); - else - entry.instantiate = Promise.resolve(instance); - - entry.instantiateResolve = undefined; - - var deps = []; - - if (instance === undefined) { - // adjusted to use custom transpile hook - // with the system register declare function - entry.declare = registration.declare; - - for (var i = 0; i < registration.deps.length; i++) - deps.push({ key: registration.deps[i], value: undefined }); - } - - entry.dependencies = deps; - entry.module = instance; - entry.state = Math.max(entry.state, INSTANTIATE_ALL); - } - - // adjusted asynchronous declarative instantiate fulfillment - // to load transpiler - function loadTranspilerThenFulfillInstantiate(loader, entry, instance, source) { - return Promise.resolve(instance === undefined && loadTranspiler(loader.loaderObj)).then(function() { - fulfillInstantiate(loader, entry, instance, source); - }); - } - - // 5.2.1 - TODO out of date - function requestFetch(loader, key, metadata, entry) { - entry = entry || ensureRegistered(loader, key, metadata); - - if (entry.error) - return Promise.reject(entry.error); - - if (entry.state === READY) - return Promise.reject(new Error(key + ' cannot be fetched as it is already linked.')); - - if (entry.fetch) - return entry.fetch; - - Promise.resolve() - .then(function() { - return loader.fetch.call(loader.loaderObj, key, entry.metadata); - }) - .then(function(payload) { - // in turn calls fetchResolve - fulfillFetch(loader, entry, payload); - }, function(err) { - throw addToError(err, 'Fetching ' + key); - }) - ['catch'](function(err) { - entry.error = entry.error || err; - }) - .then(function() { - if (entry.error && entry.fetchResolve) - entry.fetchResolve(Promise.reject(entry.error)); - }); - - return entry.fetch = new Promise(function(resolve) { - entry.fetchResolve = resolve; - }); - } - - // 5.2.2 - TODO out of date - function requestTranslate(loader, key, metadata, entry) { - entry = entry || ensureRegistered(loader, key, metadata); - - if (entry.error) - return Promise.reject(entry.error); - - if (entry.state === READY) - return Promise.reject(new Error(key + ' cannot initiate translate as it is already linked.')); - - if (entry.translate) - return entry.translate; - - requestFetch(loader, key, null, entry) - .then(function(payload) { - return Promise.resolve() - .then(function() { - return loader.translate.call(loader.loaderObj, key, payload, entry.metadata); - }) - .then(function(source) { - // in turn calls translateResolve - fulfillTranslate(loader, entry, source); - }, function(err) { - throw addToError(err, 'Translating ' + key); - }); - }) - ['catch'](function(err) { - entry.error = entry.error || err; - }) - .then(function() { - if (entry.error && entry.translateResolve) - entry.translateResolve(Promise.reject(entry.error)); - }); - - return entry.translate = new Promise(function(resolve) { - entry.translateResolve = resolve; - }); - } - - // 5.2.3 - TODO out of date - function requestInstantiate(loader, key, metadata, entry) { - entry = entry || ensureRegistered(loader, key, metadata); - - if (entry.error) - return Promise.reject(entry.error); - - if (entry.state === READY) - return Promise.reject(new Error(key + ' cannot instantiate as it is already linked.')); - - if (entry.instantiate) - return entry.instantiate; - - requestTranslate(loader, key, null, entry) - .then(function(source) { - return Promise.resolve() - .then(function() { - return loader.instantiate.call(loader.loaderObj, key, source, entry.metadata); - }) - .then(function(instance) { - return loadTranspilerThenFulfillInstantiate(loader, entry, instance, source); - }, function(err) { - throw addToError(err, 'Instantiating ' + key); - }); - }) - ['catch'](function(err) { - entry.error = entry.error || err; - }) - .then(function() { - if (entry.error && entry.instantiateResolve) - entry.instantiateResolve(Promise.reject(entry.error)); - }); - - return entry.instantiate = new Promise(function(resolve) { - entry.instantiateResolve = resolve; - }); - } - - // 5.2.4 - TODO out of date - function requestInstantiateAll(loader, key, metadata, entry) { - entry = entry || ensureRegistered(loader, key, metadata); - - if (entry.state > INSTANTIATE_ALL) - return entry; - - return requestInstantiate(loader, key, null, entry) - .then(function() { - entry.state = Math.max(entry.state, LINK); - - var depLoads = []; - for (var i = 0; i < entry.dependencies.length; i++) (function(pair) { - // create dep meta object now, passed through into ensureRegister shortly - var depMeta = {}; - depLoads.push(Promise.resolve(loader.resolve.call(loader.loaderObj, pair.key, key, depMeta)) - .then(function(depKey) { - var depEntry = ensureRegistered(loader, depKey, depMeta); - - pair.value = depEntry; - - return requestInstantiateAll(loader, depKey, null, depEntry); - })); - })(entry.dependencies[i]); - return Promise.all(depLoads) - ['catch'](function(err) { - err = addToError(err, 'Loading ' + key); - entry.error = entry.error || err; - throw err; - }); - }); - } - - // 5.2.5 - TODO out of date - function requestLink(loader, key, metadata, entry) { - entry = entry || ensureRegistered(loader, key, metadata); - - if (entry.error) - return Promise.reject(entry.error); - - if (entry.state === READY) - return Promise.resolve(entry); - - return requestInstantiateAll(loader, key, metadata, entry) - .then(function() { - // 5.2.1 Link inlined to reduce stack size - - // 5.2.2 dependencyGraph inlined - var deps = []; - computeDependencyGraph(entry, deps); - - // dynamic link - for (var i = 0; i < deps.length; i++) { - var dep = deps[i]; - if (dep.state == LINK && typeof dep.module == 'function') { - doDynamicLink(dep); - // console.assert(dep.module instanceof Module) - dep.state = READY; - } - } - - // declarative link - // adjusted linking implementation - // to handle setter graph logic - if (entry.state == LINK) - // defined in declare.js - declareModule(entry); - - // [assert entry's whole graph is in ready state] - return entry; - }) - ['catch'](function(err) { - entry.error = err; - throw err; - }); - } - - // 5.2.6 - TODO out of date - function requestReady(loader, key, metadata, entry) { - entry = entry || ensureRegistered(loader, key, metadata); - - return requestLink(loader, key, metadata, entry) - .then(function(entry) { - var module = entry.module; - // dynamic already executed - if (module instanceof Module) - return module; - - // ModuleRecord needs System register execute - // defined in declarative.js - var err = ensureModuleExecution(module, []); - if (err) { - err = addToError(err, 'Error evaluating ' + key); - entry.error = err; - throw err; - } - return module.module; - }, function(err) { - entry.error = entry.error || err; - throw err; - }); - } - - // 6. Linking - TODO out of date - - // 6.2.1 inlined in 5.2.5 - TODO out of date - // 6.2.2 inlined in 5.2.5 - TODO out of date - - // 6.2.3 - TODO out of date - function computeDependencyGraph(entry, result) { - if (result.indexOf(entry) != -1) - return; - - result.push(entry); - for (var i = 0; i < entry.dependencies.length; i++) - computeDependencyGraph(entry.dependencies[i].value, result); - } - - function doDynamicLink(dep) { - // may have had a previous error - if (dep.error) - throw dep.error; - - try { - dep.module = dep.module(); - } - catch(e) { - dep.error = e; - throw e; - } - } - - - // 7. Module Objects - TODO out of date - - // 7.3 Module Reflection - TODO out of date - - // plain user-facing module object - function Module(descriptors, executor, evaluate) { - // should define as unconfigurable and preventExtensions - // going for max perf first iteration though - for (var p in descriptors) - this[p] = descriptors[p]; - } - - function InternalMapPolyfill() {} - - function mapPolyfillEntriesIterator() { - var map = this; - var keys = Object.keys(map); - var keyIndex = 0; - return { - next: function() { - if (keyIndex < keys.length) { - return { - value: [keys[keyIndex], map[keys[keyIndex++]]], - done: false - }; - } else { - return { - value: undefined, - done: true - }; - } - } - }; - } - - InternalMapPolyfill.prototype.entries = function() { - if (__global.Symbol && __global.Symbol.iterator) { - var iterable = {}; - var map = this; - iterable[__global.Symbol.iterator] = function() { - return mapPolyfillEntriesIterator.call(map); - }; - return iterable; - } else { - throw new Error('Cannot return entries iterator unless Symbol.iterator is defined'); - } - }; - - InternalMapPolyfill.prototype.keys = function() { - if (__global.Symbol && __global.Symbol.iterator) { - var map = this; - var iterable = {}; - iterable[__global.Symbol.iterator] = function() { - var keys = Object.keys(map); - var keyIndex = 0; - return { - next: function() { - if (keyIndex < keys.length) { - return { - value: keys[keyIndex++], - done: false - }; - } else { - return { - value: undefined, - done: true - }; - } - } - }; - }; - return iterable; - } else { - throw new Error('Cannot return keys iterator unless Symbol.iterator is defined'); - } - }; - - InternalMapPolyfill.prototype.values = function() { - if (__global.Symbol && __global.Symbol.iterator) { - var map = this; - var iterable = {}; - iterable[__global.Symbol.iterator] = function() { - var keys = Object.keys(map); - var keyIndex = 0; - return { - next: function() { - if (keyIndex < keys.length) { - return { - value: map[keys[keyIndex++]], - done: false - }; - } else { - return { - value: undefined, - done: true - }; - } - } - }; - }; - return iterable; - } else { - throw new Error('Cannot return values iterator unless Symbol.iterator is defined'); - } - }; - - InternalMapPolyfill.prototype.get = function(key) { - return this[key]; - }; - - InternalMapPolyfill.prototype.set = function(key, value) { - this[key] = value; - return this; - }; - - InternalMapPolyfill.prototype.has = function(key) { - return this.hasOwnProperty(key); - }; - - InternalMapPolyfill.prototype.delete = function(key) { - var hadProperty = this.hasOwnProperty(key); - delete this[key]; - return hadProperty; - }; diff --git a/src/module-tag.js b/src/module-tag.js deleted file mode 100644 index 8f81634..0000000 --- a/src/module-tag.js +++ /dev/null @@ -1,43 +0,0 @@ -// - if (url) { - System.load(url, 'ready'); - } - - // - else { - System.provide('anon' + ++anonCnt, 'fetch', script.innerHTML.substr(1)); - System.load('anon' + anonCnt, 'ready'); - } - } - } - } - - // DOM ready, taken from https://github.com/jquery/jquery/blob/master/src/core/ready.js#L63 - if (document.readyState === 'complete') { - setTimeout(ready); - } - else if (document.addEventListener) { - document.addEventListener('DOMContentLoaded', completed, false); - window.addEventListener('load', completed, false); - } - } \ No newline at end of file diff --git a/src/system.js b/src/system.js deleted file mode 100644 index 3e8a566..0000000 --- a/src/system.js +++ /dev/null @@ -1,184 +0,0 @@ -// ---------- System Loader Definition ---------- - - var System; - - /* - * Corrsponds to section 8 of the specification - */ - - // Fetch Implementation - var fetchURI; - - if (typeof XMLHttpRequest != 'undefined') { - fetchURI = function(url, fulfill, reject) { - var xhr = new XMLHttpRequest(); - var sameDomain = true; - var doTimeout = false; - if (!('withCredentials' in xhr)) { - // check if same domain - var domainCheck = /^(\w+:)?\/\/([^\/]+)/.exec(url); - if (domainCheck) { - sameDomain = domainCheck[2] === window.location.host; - if (domainCheck[1]) - sameDomain &= domainCheck[1] === window.location.protocol; - } - } - if (!sameDomain && typeof XDomainRequest != 'undefined') { - xhr = new XDomainRequest(); - xhr.onload = load; - xhr.onerror = error; - xhr.ontimeout = error; - xhr.onprogress = function() {}; - xhr.timeout = 0; - doTimeout = true; - } - function load() { - fulfill(xhr.responseText); - } - function error() { - reject(new Error('GET ' + url + ' ' + xhr.status + ' (' + xhr.statusText + ')')); - } - - xhr.onreadystatechange = function () { - if (xhr.readyState === 4) { - if (xhr.status === 200 || (xhr.status == 0 && xhr.responseText)) { - load(); - } else { - error(); - } - } - }; - xhr.open("GET", url, true); - - if (doTimeout) - setTimeout(function() { - xhr.send(); - }, 0); - - xhr.send(null); - } - } - else if (cjsMode) { - var fs; - fetchURI = function(url, fulfill, reject) { - if (url.substr(0, 8) != 'file:///') - throw '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); - fs.readFile(url, function(err, data) { - if (err) - reject(err); - else - fulfill(data + ''); - }); - } - } - else { - throw new TypeError('No environment fetch API available.'); - } - - var SystemLoader = function() { - Loader.call(this, arguments); - - var siteTable = {}; - this.site = function(mappings) { - for (var m in mappings) - siteTable[m] = mappings[m]; - } - this.site.get = function(name) { - return siteTable[name]; - } - this.site.set = function(name, url) { - siteTable[name] = url; - } - this.site.has = function(name) { - return !!siteTable[name]; - } - this.site['delete'] = function(name) { - delete siteTable[name]; - } - - function siteLookup(target) { - if (siteTable[target]) - return siteTable[target]; - - // most specific wildcard wins, with specificity metric as "/" count in pattern - var curMatch, curMatchLen = 0; - for (var p in siteTable) { - var wildcardParts = p.split('*'); - if (wildcardParts.length > 2) - throw new TypeError('Sites entry ' + p + ' contains multiple wildcards.'); - - if (wildcardParts.length == 1) - continue; - - if (p.split('/').length >= curMatchLen - && p.substr(0, wildcardParts[0].length) === target.substr(0, wildcardParts[0].length) - && p.substr(p.length - wildcardParts[1].length) === wildcardParts[1]) { - curMatch = siteTable[p].replace('*', target.substr(wildcardParts[0].length, target.length - p.length + 1)); - curMatchLen = p.split('/').length; - } - } - - return curMatch; - } - - this.hook('resolve', function(url, parentUrl, metadata) { - // first check site table - var sitesUrl = siteLookup(url); - - if (sitesUrl || !parentUrl) - parentUrl = base; - - // then do url normalization - // NB for performance, test out a normalization cache here - return new URL(sitesUrl || url, parentUrl).href; - }); - - this.hook('fetch', function(url, metadata) { - return new Promise(function(resolve, reject) { - fetchURI(url, resolve, reject); - }); - }); - - this.hook('translate', function(url, source, metadata) { - return source; - }); - - // defined in transpiler.js or dynamic-only.js - this.hook('instantiate', systemInstantiate); - - if (this.transpiler) - setupTranspilers(this); - }; - - // inline Object.create-style class extension - function LoaderProto() {} - LoaderProto.prototype = Loader.prototype; - SystemLoader.prototype = new LoaderProto(); - - // set the base URL - var base; - if (typeof document != 'undefined' && document.baseURI) { - base = document.baseURI; - } - else if (typeof document != 'undefined' && document.getElementsByTagName) { - base = document.getElementsByTagName('base')[0]; - base = base && base.href; - } - else if (typeof location != 'undefined' && location.href) { - base = location.href; - } - if (base) { - base = base.split('#')[0].split('?')[0]; - base = base.substr(0, base.lastIndexOf('/') + 1); - } - else if (typeof process != 'undefined' && process.cwd) { - base = 'file://' + (isWindows ? '/' : '') + process.cwd() + '/'; - if (isWindows) - base = base.replace(/\\/g, '/'); - } - base = new URL(base); diff --git a/src/transpiler.js b/src/transpiler.js deleted file mode 100644 index f67b306..0000000 --- a/src/transpiler.js +++ /dev/null @@ -1,124 +0,0 @@ -// ---------- Transpiler Hooks ---------- - - // use Traceur by default - Loader.prototype.transpiler = 'traceur'; - - var transpilerName, transpilerModule, transpilerResolved; - - // pick up transpilers from globals on constructor - function setupTranspilers(loader) { - try { - if (__global.traceur) - loader.install('traceur', new Module({ 'default': __global.traceur })); - else if (__global.babel) - loader.install('babel', new Module({ 'default': __global.babel })); - } - catch(e) {} - } - - function loadTranspiler(loader) { - var transpiler = loader.transpiler; - - if (transpiler === transpilerName && transpilerModule) - return; - - transpilerName = transpiler; - transpilerModule = transpilerResolved = null; - - return loader['import'](transpiler).then(function(transpiler) { - transpilerModule = transpiler['default']; - }); - } - - function transpile(loader, key, source, metadata) { - // transpile to System register and evaluate out the { deps, declare } form - // set the __moduleURL temporary meta for contextual imports - return evaluateSystemRegister(key, - (transpilerModule.Compiler ? traceurTranspile : babelTranspile)(transpilerModule, key, source, metadata)); - } - - // transpiler instantiate to ensure transpiler is loaded as a global - function systemInstantiate(key, source, metadata) { - var loader = this; - - return Promise.resolve(transpilerName === loader.transpiler && transpilerResolved - || loader.resolve(transpilerName = loader.transpiler)) - .then(function(resolved) { - transpilerResolved = resolved; - if (transpilerResolved === key) - return function() { - // avoid Traceur System clobbering - var curSystem = __global.System; - var curLoader = __global.Reflect.Loader; - // load transpiler as a global, not detected as CommonJS - __eval('~function(require,exports,module){' + source + '}()', key, __global); - __global.System = curSystem; - __global.Reflect.Loader = curLoader; - return new Module({ 'default': __global[loader.transpiler] }); - }; - }); - }; - - function traceurTranspile(traceur, key, source, metadata) { - var options = this.traceurOptions || {}; - options.modules = 'instantiate'; - options.script = false; - options.sourceMaps = 'inline'; - options.inputSourceMap = metadata.sourceMap; - options.filename = key; - options.inputSourceMap = metadata.sourceMap; - options.moduleName = false; - - var compiler = new traceur.Compiler(options); - - return doTraceurCompile(source, compiler, options.filename); - } - function doTraceurCompile(source, compiler, filename) { - try { - return compiler.compile(source, filename); - } - catch(e) { - // traceur throws an error array - throw e[0] || e; - } - } - - function babelTranspile(babel, key, source, metadata) { - var options = this.babelOptions || {}; - options.modules = 'system'; - options.sourceMap = 'inline'; - options.filename = key; - options.code = true; - options.ast = false; - - // encourage a sensible baseline - if (!options.blacklist) - options.blacklist = ['react']; - - return babel.transform(source, options).code; - } - - function evaluateSystemRegister(key, source) { - var curSystem = __global.System = __global.System || System; - - var registration; - - // Hijack System .register to set declare function - var curRegister = curSystem .register; - curSystem .register = function(deps, declare) { - registration = { - deps: deps, - declare: declare - }; - } - - // use {} as this, closes to empty we can get - // add "!eval" to end of sourceURL so the source map - // can use the original name without conflict - __eval('var __moduleURL = "' + key + '";' + source - + '\n//# sourceURL=' + key + '!eval', key, {}); - - curSystem .register = curRegister; - // console.assert(registration); - return registration; - } diff --git a/src/url-polyfill.js b/src/url-polyfill.js deleted file mode 100644 index 114c4c3..0000000 --- a/src/url-polyfill.js +++ /dev/null @@ -1,67 +0,0 @@ - // from https://gist.github.com/Yaffle/1088850 - function URL(url, baseURL) { - if (typeof url != 'string') - throw new TypeError('URL must be a string'); - var m = String(url).replace(/^\s+|\s+$/g, "").match(/^([^:\/?#]+:)?(?:\/\/(?:([^:@\/?#]*)(?::([^:@\/?#]*))?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/); - if (!m) { - throw new RangeError(); - } - var protocol = m[1] || ""; - var username = m[2] || ""; - var password = m[3] || ""; - var host = m[4] || ""; - var hostname = m[5] || ""; - var port = m[6] || ""; - var pathname = m[7] || ""; - var search = m[8] || ""; - var hash = m[9] || ""; - if (baseURL !== undefined) { - var base = baseURL instanceof URL ? baseURL : new URL(baseURL); - var flag = protocol === "" && host === "" && username === ""; - if (flag && pathname === "" && search === "") { - search = base.search; - } - if (flag && pathname.charAt(0) !== "/") { - pathname = (pathname !== "" ? (((base.host !== "" || base.username !== "") && base.pathname === "" ? "/" : "") + base.pathname.slice(0, base.pathname.lastIndexOf("/") + 1) + pathname) : base.pathname); - } - // dot segments removal - var output = []; - pathname.replace(/^(\.\.?(\/|$))+/, "") - .replace(/\/(\.(\/|$))+/g, "/") - .replace(/\/\.\.$/, "/../") - .replace(/\/?[^\/]*/g, function (p) { - if (p === "/..") { - output.pop(); - } else { - output.push(p); - } - }); - pathname = output.join("").replace(/^\//, pathname.charAt(0) === "/" ? "/" : ""); - if (flag) { - port = base.port; - hostname = base.hostname; - host = base.host; - password = base.password; - username = base.username; - } - if (protocol === "") { - protocol = base.protocol; - } - } - // convert windows file URLs to use / - if (protocol == 'file:') - pathname = pathname.replace(/\\/g, '/'); - - this.origin = protocol + (protocol !== "" || host !== "" ? "//" : "") + host; - this.href = protocol + (protocol !== "" || host !== "" ? "//" : "") + (username !== "" ? username + (password !== "" ? ":" + password : "") + "@" : "") + host + pathname + search + hash; - this.protocol = protocol; - this.username = username; - this.password = password; - this.host = host; - this.hostname = hostname; - this.port = port; - this.pathname = pathname; - this.search = search; - this.hash = hash; - } - \ No newline at end of file diff --git a/src/wrapper-end.js b/src/wrapper-end.js deleted file mode 100644 index 019ac77..0000000 --- a/src/wrapper-end.js +++ /dev/null @@ -1,27 +0,0 @@ - - // ---------- Export Definitions ---------- - - var Reflect; - - System = new SystemLoader(); - System.constructor = SystemLoader; - - (function(exports) { - - Reflect = exports.Reflect || {}; - - Reflect.Loader = Reflect.Loader || Loader; - Reflect.Module = Reflect.Module || Module; - Reflect.global = Reflect.global || __global; - - exports.LoaderPolyfill = Loader; - exports.ModulePolyfill = Module; - exports.Reflect = Reflect; - exports.System = System; - exports.Registry = Registry; - - })(cjsMode ? exports : __global); - - //module.exports = exports; - -})(typeof window != 'undefined' ? window : (typeof WorkerGlobalScope != 'undefined' ? self : global)); diff --git a/src/wrapper-start.js b/src/wrapper-start.js deleted file mode 100644 index 8cba2d9..0000000 --- a/src/wrapper-start.js +++ /dev/null @@ -1,39 +0,0 @@ -/* - * Dynamic ES6 Module Loader Polyfill - * - * Implemented to the in-progress WhatWG loader standard at - * https://github.com/whatwg/loader/tree/819035fd5c59c53130a025694162fcaa2315fc36 - * - * Up to date as of 23 Feb 2015. - * - */ - -(function(__global) { - - // if we have require and exports, then define as CommonJS - var cjsMode = typeof exports == 'object' && typeof require == 'function'; - - var isWindows = typeof process != 'undefined' && !!process.platform.match(/^win/); - - function addToError(err, msg) { - var newErr; - if (err instanceof Error) { - var newErr = new err.constructor(err.message, err.fileName, err.lineNumber); - newErr.message = err.message + '\n\t' + msg; - newErr.stack = err.stack; - } - else { - newErr = err + '\n\t' + msg; - } - - return newErr; - } - - function __eval(source, debugName, context) { - try { - new Function(source).call(context); - } - catch(e) { - throw addToError(e, 'Evaluating ' + debugName); - } - } diff --git a/system-register-only.js b/system-register-only.js new file mode 100644 index 0000000..389748d --- /dev/null +++ b/system-register-only.js @@ -0,0 +1,48 @@ +import RegisterLoader from './core/register-loader.js'; +import { isBrowser, isNode, baseURI, envGlobal as global } from './core/common.js'; +import { scriptLoad } from './core/fetch.js'; +import { loadModuleScripts } from './core/module-scripts.js'; + +function SystemRegisterLoader(baseKey) { + RegisterLoader.apply(this, arguments); + loadModuleScripts(this); +} +SystemRegisterLoader.prototype = Object.create(RegisterLoader.prototype); + +// normalize is never given a relative name like "./x", that part is already handled +// so we just need to do plain name normalization here +// for this loader, identity is enough to get URL-like normalization +SystemRegisterLoader.prototype.normalize = function(key, parent, metadata) { + return key; +}; + +// instantiate just needs to run System.register +// so we load the module name as a URL, and expect that to run System.register +SystemRegisterLoader.prototype.instantiate = function(key, metadata) { + var loader = this; + + // ensure System.register is available + global.System = global.System || {}; + global.System.register = function() { + loader.register.apply(loader, arguments); + }; + + if (isNode) { + require(key); + // no process necessary for the sync case as it happens automatically + } + else if (isBrowser) { + return new Promise(function(resolve, reject) { + scriptLoad(loader, key, function() { + // we need to process synchronously to get the right context + loader.processRegisterQueue(key); + resolve(); + }, reject); + }); + } + else { + throw new Error('No fetch system defined for this environment.'); + } +}; + +export default SystemRegisterLoader; \ No newline at end of file diff --git a/test/_browser.js b/test-old/_browser.js similarity index 100% rename from test/_browser.js rename to test-old/_browser.js diff --git a/test/_helper.js b/test-old/_helper.js similarity index 100% rename from test/_helper.js rename to test-old/_helper.js diff --git a/test/_node-babel.js b/test-old/_node-babel.js similarity index 100% rename from test/_node-babel.js rename to test-old/_node-babel.js diff --git a/test/_node-traceur.js b/test-old/_node-traceur.js similarity index 100% rename from test/_node-traceur.js rename to test-old/_node-traceur.js diff --git a/test/browser-script-type-module.js b/test-old/browser-script-type-module.js similarity index 100% rename from test/browser-script-type-module.js rename to test-old/browser-script-type-module.js diff --git a/test/custom-loader.js b/test-old/custom-loader.js similarity index 100% rename from test/custom-loader.js rename to test-old/custom-loader.js diff --git a/test/custom-loader.spec.js b/test-old/custom-loader.spec.js similarity index 100% rename from test/custom-loader.spec.js rename to test-old/custom-loader.spec.js diff --git a/test/force-map-polyfill.js b/test-old/force-map-polyfill.js similarity index 100% rename from test/force-map-polyfill.js rename to test-old/force-map-polyfill.js diff --git a/karma-benchmark.conf.js b/test-old/karma-benchmark.conf.js similarity index 100% rename from karma-benchmark.conf.js rename to test-old/karma-benchmark.conf.js diff --git a/karma.conf.js b/test-old/karma.conf.js similarity index 100% rename from karma.conf.js rename to test-old/karma.conf.js diff --git a/test/loader/amd-dep.js b/test-old/loader/amd-dep.js similarity index 100% rename from test/loader/amd-dep.js rename to test-old/loader/amd-dep.js diff --git a/test/loader/amd.js b/test-old/loader/amd.js similarity index 100% rename from test/loader/amd.js rename to test-old/loader/amd.js diff --git a/test/loader/anon.js b/test-old/loader/anon.js similarity index 100% rename from test/loader/anon.js rename to test-old/loader/anon.js diff --git a/test/loader/async-norm.js b/test-old/loader/async-norm.js similarity index 100% rename from test/loader/async-norm.js rename to test-old/loader/async-norm.js diff --git a/test/loader/custom-folder/path.js b/test-old/loader/custom-folder/path.js similarity index 100% rename from test/loader/custom-folder/path.js rename to test-old/loader/custom-folder/path.js diff --git a/test/loader/custom-path.js b/test-old/loader/custom-path.js similarity index 100% rename from test/loader/custom-path.js rename to test-old/loader/custom-path.js diff --git a/test/loader/custom.js b/test-old/loader/custom.js similarity index 100% rename from test/loader/custom.js rename to test-old/loader/custom.js diff --git a/test/loader/error1-parent.js b/test-old/loader/error1-parent.js similarity index 100% rename from test/loader/error1-parent.js rename to test-old/loader/error1-parent.js diff --git a/test/loader/master.js b/test-old/loader/master.js similarity index 100% rename from test/loader/master.js rename to test-old/loader/master.js diff --git a/test/loader/module.js b/test-old/loader/module.js similarity index 100% rename from test/loader/module.js rename to test-old/loader/module.js diff --git a/test/loader/moduleName.js b/test-old/loader/moduleName.js similarity index 100% rename from test/loader/moduleName.js rename to test-old/loader/moduleName.js diff --git a/test/loader/named.js b/test-old/loader/named.js similarity index 100% rename from test/loader/named.js rename to test-old/loader/named.js diff --git a/test/loader/specific-path.js b/test-old/loader/specific-path.js similarity index 100% rename from test/loader/specific-path.js rename to test-old/loader/specific-path.js diff --git a/test/loads/_a.js b/test-old/loads/_a.js similarity index 100% rename from test/loads/_a.js rename to test-old/loads/_a.js diff --git a/test/loads/_b.js b/test-old/loads/_b.js similarity index 100% rename from test/loads/_b.js rename to test-old/loads/_b.js diff --git a/test/loads/_c.js b/test-old/loads/_c.js similarity index 100% rename from test/loads/_c.js rename to test-old/loads/_c.js diff --git a/test/loads/_d.js b/test-old/loads/_d.js similarity index 100% rename from test/loads/_d.js rename to test-old/loads/_d.js diff --git a/test/loads/_e.js b/test-old/loads/_e.js similarity index 100% rename from test/loads/_e.js rename to test-old/loads/_e.js diff --git a/test/loads/_f.js b/test-old/loads/_f.js similarity index 100% rename from test/loads/_f.js rename to test-old/loads/_f.js diff --git a/test/loads/_g.js b/test-old/loads/_g.js similarity index 100% rename from test/loads/_g.js rename to test-old/loads/_g.js diff --git a/test/loads/_h.js b/test-old/loads/_h.js similarity index 100% rename from test/loads/_h.js rename to test-old/loads/_h.js diff --git a/test/loads/_i.js b/test-old/loads/_i.js similarity index 100% rename from test/loads/_i.js rename to test-old/loads/_i.js diff --git a/test/loads/a.js b/test-old/loads/a.js similarity index 100% rename from test/loads/a.js rename to test-old/loads/a.js diff --git a/test/loads/b.js b/test-old/loads/b.js similarity index 100% rename from test/loads/b.js rename to test-old/loads/b.js diff --git a/test/loads/c.js b/test-old/loads/c.js similarity index 100% rename from test/loads/c.js rename to test-old/loads/c.js diff --git a/test/loads/deperror.js b/test-old/loads/deperror.js similarity index 100% rename from test/loads/deperror.js rename to test-old/loads/deperror.js diff --git a/test/loads/load-non-existent.js b/test-old/loads/load-non-existent.js similarity index 100% rename from test/loads/load-non-existent.js rename to test-old/loads/load-non-existent.js diff --git a/test/loads/main.js b/test-old/loads/main.js similarity index 100% rename from test/loads/main.js rename to test-old/loads/main.js diff --git a/test/loads/s.js b/test-old/loads/s.js similarity index 100% rename from test/loads/s.js rename to test-old/loads/s.js diff --git a/test/manual/source-maps/test.html b/test-old/manual/source-maps/test.html similarity index 100% rename from test/manual/source-maps/test.html rename to test-old/manual/source-maps/test.html diff --git a/test/manual/source-maps/test.js b/test-old/manual/source-maps/test.js similarity index 100% rename from test/manual/source-maps/test.js rename to test-old/manual/source-maps/test.js diff --git a/test/perf.html b/test-old/perf.html similarity index 100% rename from test/perf.html rename to test-old/perf.html diff --git a/test/perf.js b/test-old/perf.js similarity index 100% rename from test/perf.js rename to test-old/perf.js diff --git a/test/registry.native-iterator-spec.js b/test-old/registry.native-iterator-spec.js similarity index 100% rename from test/registry.native-iterator-spec.js rename to test-old/registry.native-iterator-spec.js diff --git a/test/registry.spec.js b/test-old/registry.spec.js similarity index 100% rename from test/registry.spec.js rename to test-old/registry.spec.js diff --git a/test/syntax/circular1.js b/test-old/syntax/circular1.js similarity index 100% rename from test/syntax/circular1.js rename to test-old/syntax/circular1.js diff --git a/test/syntax/circular2.js b/test-old/syntax/circular2.js similarity index 100% rename from test/syntax/circular2.js rename to test-old/syntax/circular2.js diff --git a/test/syntax/direct.js b/test-old/syntax/direct.js similarity index 100% rename from test/syntax/direct.js rename to test-old/syntax/direct.js diff --git a/test/syntax/es6-dep.js b/test-old/syntax/es6-dep.js similarity index 100% rename from test/syntax/es6-dep.js rename to test-old/syntax/es6-dep.js diff --git a/test/syntax/es6-file.js b/test-old/syntax/es6-file.js similarity index 100% rename from test/syntax/es6-file.js rename to test-old/syntax/es6-file.js diff --git a/test/syntax/es6-generator.js b/test-old/syntax/es6-generator.js similarity index 100% rename from test/syntax/es6-generator.js rename to test-old/syntax/es6-generator.js diff --git a/test/syntax/es6-withdep.js b/test-old/syntax/es6-withdep.js similarity index 100% rename from test/syntax/es6-withdep.js rename to test-old/syntax/es6-withdep.js diff --git a/test/syntax/es6.js b/test-old/syntax/es6.js similarity index 100% rename from test/syntax/es6.js rename to test-old/syntax/es6.js diff --git a/test/syntax/even.js b/test-old/syntax/even.js similarity index 100% rename from test/syntax/even.js rename to test-old/syntax/even.js diff --git a/test/syntax/export-default.js b/test-old/syntax/export-default.js similarity index 100% rename from test/syntax/export-default.js rename to test-old/syntax/export-default.js diff --git a/test/syntax/export-star.js b/test-old/syntax/export-star.js similarity index 100% rename from test/syntax/export-star.js rename to test-old/syntax/export-star.js diff --git a/test/syntax/export-star2.js b/test-old/syntax/export-star2.js similarity index 100% rename from test/syntax/export-star2.js rename to test-old/syntax/export-star2.js diff --git a/test/syntax/export.js b/test-old/syntax/export.js similarity index 100% rename from test/syntax/export.js rename to test-old/syntax/export.js diff --git a/test/syntax/import.js b/test-old/syntax/import.js similarity index 100% rename from test/syntax/import.js rename to test-old/syntax/import.js diff --git a/test/syntax/odd.js b/test-old/syntax/odd.js similarity index 100% rename from test/syntax/odd.js rename to test-old/syntax/odd.js diff --git a/test/syntax/rebinding.js b/test-old/syntax/rebinding.js similarity index 100% rename from test/syntax/rebinding.js rename to test-old/syntax/rebinding.js diff --git a/test/syntax/reexport-binding.js b/test-old/syntax/reexport-binding.js similarity index 100% rename from test/syntax/reexport-binding.js rename to test-old/syntax/reexport-binding.js diff --git a/test/syntax/reexport1.js b/test-old/syntax/reexport1.js similarity index 100% rename from test/syntax/reexport1.js rename to test-old/syntax/reexport1.js diff --git a/test/syntax/reexport2.js b/test-old/syntax/reexport2.js similarity index 100% rename from test/syntax/reexport2.js rename to test-old/syntax/reexport2.js diff --git a/test/syntax/script.js b/test-old/syntax/script.js similarity index 100% rename from test/syntax/script.js rename to test-old/syntax/script.js diff --git a/test/syntax/star-dep.js b/test-old/syntax/star-dep.js similarity index 100% rename from test/syntax/star-dep.js rename to test-old/syntax/star-dep.js diff --git a/test/syntax/test-file.js b/test-old/syntax/test-file.js similarity index 100% rename from test/syntax/test-file.js rename to test-old/syntax/test-file.js diff --git a/test/system.normalize.spec.js b/test-old/system.normalize.spec.js similarity index 100% rename from test/system.normalize.spec.js rename to test-old/system.normalize.spec.js diff --git a/test/system.spec.js b/test-old/system.spec.js similarity index 100% rename from test/system.spec.js rename to test-old/system.spec.js diff --git a/test/worker/es6.js b/test-old/worker/es6.js similarity index 100% rename from test/worker/es6.js rename to test-old/worker/es6.js diff --git a/test/worker/worker-babel.js b/test-old/worker/worker-babel.js similarity index 100% rename from test/worker/worker-babel.js rename to test-old/worker/worker-babel.js diff --git a/test/worker/worker-traceur.js b/test-old/worker/worker-traceur.js similarity index 100% rename from test/worker/worker-traceur.js rename to test-old/worker/worker-traceur.js diff --git a/test/register.js b/test/register.js new file mode 100644 index 0000000..8175341 --- /dev/null +++ b/test/register.js @@ -0,0 +1,7 @@ +System.register([], function($__export) { + return function() { + $__export({ + hello: 'world' + }); + }; +}) \ No newline at end of file diff --git a/test/test.js b/test/test.js new file mode 100644 index 0000000..723c002 --- /dev/null +++ b/test/test.js @@ -0,0 +1,10 @@ +var SystemRegisterLoader = require('../dist/system-register-only.js'); + +var loader = new SystemRegisterLoader(__filename); + +loader.import('./register.js').then(function(m) { + console.log(m); +}) +.catch(function(err) { + console.error(err); +}); \ No newline at end of file From 5339ca8a1ce8e0b9a755e67f1c749c5046e84a60 Mon Sep 17 00:00:00 2001 From: guybedford Date: Tue, 9 Aug 2016 02:21:52 +0200 Subject: [PATCH 248/482] tweak, simple readme --- README.md | 163 ++-------------------------------------- system-register-only.js | 14 ++-- 2 files changed, 15 insertions(+), 162 deletions(-) diff --git a/README.md b/README.md index 80a7e0c..ae0f613 100644 --- a/README.md +++ b/README.md @@ -4,169 +4,20 @@ Dynamically loads ES6 modules in browsers and [NodeJS](#nodejs-use) with support This project implements dynamic module loading as per the newly redrafted specification at [WhatWG loader spec](https://github.com/whatwg/loader). It replaces the 0.* branch, which implements the previous ES6-specified loader API at [2014-08-24 ES6 Specification Draft Rev 27, Section 15](http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#august_24_2014_draft_rev_27). -The rest of this Readme describes the previous implementation and will be updated as work progresses. +### System Register Only Build +The core project is contained in the `core` folder. -* Provides an asynchronous loader (`System.import`) to [dynamically load ES6 modules](#getting-started). -* Supports both [Traceur](https://github.com/google/traceur-compiler) and [Babel](http://babeljs.io/) for compiling ES6 modules and syntax into ES5 in the browser with source map support. -* Fully supports [ES6 circular references and live bindings](https://github.com/ModuleLoader/es6-module-loader/wiki/Circular-References-&-Bindings). -* Includes [`baseURL` and `paths` implementations](https://github.com/ModuleLoader/es6-module-loader/wiki/Configuring-the-Loader). -* Can be used as a [tracing tool](https://github.com/ModuleLoader/es6-module-loader/wiki/Tracing-API) for static analysis of modules. -* Polyfills ES6 Promises in the browser with an optionally bundled ES6 promise implementation. -* Supports IE9+. -* The complete combined polyfill, including ES6 promises, comes to 9KB minified and gzipped, making it suitable for production use, provided that modules are [built into ES5 making them independent of Traceur](https://github.com/ModuleLoader/es6-module-loader/wiki/Production-Workflows). +The `system-register-only.js` file is an illustrative build of how this project can be used to create any type of custom loader. -For an overview of build workflows, [see the production guide](https://github.com/ModuleLoader/es6-module-loader/wiki/Production-Workflows). +This loader will load `System.register` module files in both the browser and Node, as well as supporting ` - -``` - -To use Babel, load Babel's `browser.js` instead and set the transpiler to `babel` with the loader configuration: - -```html - -``` - -Then we can write any ES6 module: - -mymodule.js: -```javascript - export class q { - constructor() { - console.log('this is an es6 class!'); - } - } -``` - -and load the module dynamically in the browser - -```html - -``` - -The dynamic loader returns a `Module` object, which contains getters for the named exports (in this case, `q`). - -#### Setting transpilation options - -If using Traceur, these can be set with: - -```javascript -System.traceurOptions = {...}; -``` - -Or with Babel: - -```javascript -System.babelOptions = {...}; -``` - -#### Module Tag - -As well as defining `window.System`, this polyfill provides support for the ` -``` - -Because it is only possible to load ES6 modules with this tag, it is not suitable for production use in this way. - -See the [demo folder](https://github.com/ModuleLoader/es6-module-loader/blob/master/demo/index.html) in this repo for a working example demonstrating module loading in the browser both with `System.import` and with the module-type script tag. - -#### NodeJS Use - -``` - npm install es6-module-loader babel traceur -``` - -It is important that Babel or Traceur is installed into the path in order to be found, since these are no longer project dependencies. - -For use in NodeJS, the `Loader` and `System` globals are provided as exports: - -index.js: -```javascript - var System = require('es6-module-loader').System; - /* - * Include: - * System.transpiler = 'babel'; - * to use Babel instead of Traceur - */ - - System.import('some-module').then(function(m) { - console.log(m.p); - }); -``` - -some-module.js: -```javascript - export var p = 'NodeJS test'; -``` - -Running the application: -``` -> node index.js -NodeJS test -``` - -## Contributing -In lieu of a formal styleguide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using [grunt](https://github.com/cowboy/grunt). - -_Also, please don't edit files in the "dist" subdirectory as they are generated via grunt. You'll find source code in the "lib" subdirectory!_ - -## Testing - -- `npm run test:node` will use node to to run the tests -- `npm run test:browser` will run `npm run test:browser-babel` and `npm run test:browser-traceur` -- `npm run test:browser-[transpiler]` use karma to run the tests with Traceur or Babel. -- `npm run test:browser:perf` will use karma to run benchmarks - -`npm run test:browser-[transpiler]` supports options after a double dash (`--`) : - -- You can use the `--polyfill` option to test the code with polyfill. - -- You can use the `--coverage` option to test and extract coverage info. - -- You can use the `--native-iterator` option to run extra tests that check that `for ... of` and other iterator syntaxes work with es6-module-loader - -- You can use the `--force-map-polyfill` option to simulate an environment where `Map` is not defined - -- You can use the `--saucelabs` option to use karma and saucelabs to run the tests in various browsers. -Note: you will need to export your username and key to launch it. - - ```sh - export SAUCE_USERNAME={your user name} && export SAUCE_ACCESS_KEY={the access key that you see once logged in} - npm run test:browsers -- --saucelabs - ``` - -## Credit -Copyright (c) 2015 Luke Hoban, Addy Osmani, Guy Bedford +Run `node test/test.js` to see this built version of the loader loading a `System.register` module file. ## License Licensed under the MIT license. diff --git a/system-register-only.js b/system-register-only.js index 389748d..5a5c383 100644 --- a/system-register-only.js +++ b/system-register-only.js @@ -5,6 +5,14 @@ import { loadModuleScripts } from './core/module-scripts.js'; function SystemRegisterLoader(baseKey) { RegisterLoader.apply(this, arguments); + + // ensure System.register is available + global.System = global.System || {}; + global.System.register = function() { + loader.register.apply(loader, arguments); + }; + + // support - - - -

Click to start

\ No newline at end of file diff --git a/test-old/perf.js b/test-old/perf.js deleted file mode 100644 index 261b38a..0000000 --- a/test-old/perf.js +++ /dev/null @@ -1,137 +0,0 @@ -'use strict'; - -/* PARAMETERS */ -var NUM_MODULES = 1000; - - - /* - TREE LOOKS LIKE - - - MODULE NUM_MODULES - | - | - ------------------------------------- ... ----- - | | | - MODULE 0 MODULE TREE_DEPTH ... - | | - MODULE 1 MODULE TREE_DEPTH + 1 - ... ... - MODULE TREE_DEPTH - 1 MODULE TREE_DEPTH * 2 - 1 - -THAT IS - - DEPTH = TREE_DEPTH - BREADTH = FLOOR(NUM_MODULES / TREE_DEPTH) - - */ - - /* - - PERF RESULTS - ------------ - - WITH 1000 modules, - - TREE_DEPTH FULL LOAD TIME PER MODULE (including evaluation and defining) - 1 0.25ms - 10 0.27ms - 50 0.30ms - 100 0.35ms - 500 0.90ms - 1000 1.90ms - - */ - -//// - -System.set('module0', System.newModule({})); - -function instantiateAtDepth(treeDepth) { - return function (load) { - var num = parseInt(load.name.substr(6)); - - var deps = []; - - // the last module depends on all of them - if (num == NUM_MODULES) { - for (var i = 0; i < NUM_MODULES; i += treeDepth) - deps.push('module' + i); - } - else if (num % treeDepth != treeDepth - 1) - deps = ['module' + (num + 1)]; - - return { - deps: deps, - execute: function () { - eval(load.source); - return System.newModule({}); - } - }; - }; -} - -//// - -function hundredModulesBench(treeDepth) { - - benchmark('hundred modules depth ' + treeDepth, function (deferred) { - - // Generate range 0 to NUM_MODULES - var range = Array.apply(null, { length: NUM_MODULES }); - - Promise - // Define all the modules - .all(range.map(function (_, i) { - if (!i) return; - return System.define('module' + i, "function q() {} var p = 5;\n // non-trivial code"); - })) - - .then(function () { - // Import the last one - return System.import('module' + (NUM_MODULES - 1)); - }) - - .then(function () { - return Promise - // Remove all the modules - .all(range.map(function (_, i) { - if (!i) return; - return System.delete('module' + i); - }) - ); - }) - - // End of the bench - .then(function () { - deferred.resolve(); - }) - .catch(function (e) { - setTimeout(function () { - throw e; - }) - }) - ; - - }, { - defer: true, - timeout: false, - setup: function(){ - - System.instantiate = instantiateAtDepth(treeDepth); - - } - }); - -} - -//// - -suite('System', function () { - - hundredModulesBench(1); - hundredModulesBench(10); - hundredModulesBench(50); - hundredModulesBench(100); - hundredModulesBench(500); - hundredModulesBench(1000); - -}); diff --git a/test-old/system.normalize.spec.js b/test-old/system.normalize.spec.js deleted file mode 100644 index 5039bd8..0000000 --- a/test-old/system.normalize.spec.js +++ /dev/null @@ -1,115 +0,0 @@ -// -(function() { -var base, origin; -if (typeof window != 'undefined') { - base = window.location.href.substr(0, window.location.href.lastIndexOf('/') + 1); - origin = window.location.origin + '/'; -} -else { - base = 'file://' + (process.platform.match(/^win/) ? '/' : '') + process.cwd() + '/'; - origin = 'file:///'; -} - -describe('System', function () { - - describe('#resolve', function () { - - describe('when having no arguments', function () { - - it('should throw', function () { - expect(function () { System.resolve() }) - .to.throwException(function (e) { - expect(e).to.be.a(TypeError); - expect(e.message).to.match(/URL must be a string/); - }); - }); - - }); - - describe('when having one argument', function () { - - it('should normalize to base', function () { - expect(System.resolve('d/e/f')).to.equal(base + 'd/e/f'); - }); - - it.skip('should "below baseURL"', function () { - expect(System.resolve('../../../../e/f')).to.equal(base + 'e/f'); - }); - - it('should be backwards compat', function () { - expect(System.resolve('./a.js')).to.equal(base + 'a.js'); - }); - - it('shouldn\'t change an absolute URL', function () { - expect(System.resolve('file:///example.org/a/b.html')).to.equal('file:///example.org/a/b.html'); - }); - - it('should resolve an embedded path', function () { - expect(System.resolve('a/b/../c')).to.equal(base + 'a/c'); - }); - - }); - - describe('when having two arguments', function () { - - var referrer = base + 'dir/path'; - - it('should support relative path', function () { - expect(System.resolve('d/e/f', referrer)).to.equal(base + 'dir/d/e/f'); - expect(System.resolve('./d/e/f', referrer)).to.equal(base + 'dir/d/e/f'); - expect(System.resolve('../e/f', referrer)).to.equal(base + 'e/f'); - }); - - it('should resolve the path with relative parent', function () { - expect(System.resolve('./a/b', base + 'c')).to.equal(base + 'a/b'); - expect(System.resolve('./a/b', base + 'c/d')).to.equal(base + 'c/a/b'); - }); - - }); - }); - - describe('#sites', function () { - - it('should resolve exact site matches', function () { - System.site({ - jquery: '/jquery.js' - }); - - expect(System.resolve('jquery')).to.equal(origin + 'jquery.js'); - expect(System.resolve('jquery/nomatch')).to.equal(base + 'jquery/nomatch'); - }); - - it('sites table items can be added, checked and removed', function () { - - System.site.set('jquery', 'custom-jquery'); - - expect(System.site.has('jquery')).to.be.ok(); - - expect(System.site.get('jquery')).to.equal('custom-jquery'); - - expect(System.resolve('jquery')).to.equal(base + 'custom-jquery'); - - System.site['delete']('jquery'); - - expect(System.resolve('jquery')).to.equal(base + 'jquery'); - - expect(!System.site.has('jquery')).to.be.ok(); - - }); - - it('should resolve wildcard site matches', function() { - - System.site['delete']('jquery'); - System.site({ - 'jquery/*': '/path/to/jquery/*.js' - }); - - expect(System.resolve('jquery')).to.equal(base + 'jquery'); - expect(System.resolve('jquery/sub')).to.equal(origin + 'path/to/jquery/sub.js'); - expect(System.resolve('jquery/sub/path')).to.equal(origin + 'path/to/jquery/sub/path.js'); - - }); - - }); -}); -})(); diff --git a/test/runner.js b/test/runner.js index a2830c9..c4a594d 100644 --- a/test/runner.js +++ b/test/runner.js @@ -1,18 +1,14 @@ -var LoaderNodeBabel = require('../dist/loader-node.js'); +import Mocha from 'mocha'; +import fs from 'fs'; +import path from 'path'; -var loader = new LoaderNodeBabel(process.cwd()); - -var Mocha = require('mocha'); var runner = new Mocha({ ui: 'bdd' }); runner.suite.emit('pre-require', global, 'global-mocha-context', runner); -var fs = require('fs'); var tests = fs.readdirSync('test').filter(function(testName) { - return testName != 'runner.js' && testName.endsWith('.js') + return testName != 'runner.js' && testName.endsWith('.js'); }); -var path = require('path'); - Promise.all(tests.map((test) => loader.import(path.resolve('test/' + test)))) .then(function() { runner.run(); From 1a967cf16a1f97092ad80d7e2fb56841749ecab8 Mon Sep 17 00:00:00 2001 From: guybedford Date: Wed, 10 Aug 2016 23:51:57 +0200 Subject: [PATCH 265/482] ensure trailing slash for dot-ending relative resolutions --- core/resolve.js | 23 +++++++++----- loader-system-register.js | 60 ------------------------------------ test/url-resolution-tests.js | 12 ++++++++ 3 files changed, 27 insertions(+), 68 deletions(-) delete mode 100644 loader-system-register.js diff --git a/core/resolve.js b/core/resolve.js index 7a23f1d..e9415b0 100644 --- a/core/resolve.js +++ b/core/resolve.js @@ -29,7 +29,8 @@ export function resolveUrlToParentIfNotPlain(relUrl, parentUrl) { return parentProtocol + relUrl; } // relative-url - else if (relUrl[0] === '.' && (relUrl[1] === '/' || relUrl[1] === '.' && relUrl[2] === '/') || relUrl[0] === '/') { + else if (relUrl[0] === '.' && (relUrl[1] === '/' || relUrl[1] === '.' && (relUrl[2] === '/' || relUrl.length === 2) || relUrl.length === 1) + || relUrl[0] === '/') { var parentIsPlain = !parentProtocol || parentUrl[parentProtocol.length] !== '/'; // read pathname from parent if a URL @@ -83,20 +84,26 @@ export function resolveUrlToParentIfNotPlain(relUrl, parentUrl) { // ../ segment if (segmented[i + 1] === '.' && (segmented[i + 2] === '/' || i + 2 === segmented.length)) { output.pop(); - // this is the plain URI backtracking error (../, package:x -> error) - if (parentIsPlain && output.length === 0) - throwResolveError(); i += 2; - continue; } // ./ segment else if (segmented[i + 1] === '/' || i + 1 === segmented.length) { - // this is the plain URI backtracking error (./, package:x -> error) - if (parentIsPlain && output.length === 0) - throwResolveError(); i += 1; + } + else { + // the start of a new segment (just like below) + segmentIndex = i; continue; } + + // this is the plain URI backtracking error (./, package:x -> error) + if (parentIsPlain && output.length === 0) + throwResolveError(); + + // if we end with a . or a .. then we end with a trailing "/" + if (i === segmented.length || i === segmented.length - 1) + output.push(''); + continue; } // it is the start of a new segment diff --git a/loader-system-register.js b/loader-system-register.js deleted file mode 100644 index 224e352..0000000 --- a/loader-system-register.js +++ /dev/null @@ -1,60 +0,0 @@ -import RegisterLoader from './core/register-loader.js'; -import { isBrowser, isNode, envGlobal as global, baseURI } from './core/common.js'; -import { resolveUrlToParentIfNotPlain } from './core/resolve.js'; -import { scriptLoad, nodeFetch } from './core/fetch.js'; -import { loadModuleScripts } from './core/module-scripts.js'; - -/* - * Example System Register loader - * - * Loads modules in the browser and Node as System.register modules - * Uses '); - -}(typeof window != 'undefined' && window )); - - diff --git a/test/url-resolution-tests.js b/test/1-url-resolution-tests.js similarity index 100% rename from test/url-resolution-tests.js rename to test/1-url-resolution-tests.js diff --git a/test/2-loader-tests.js b/test/2-loader-tests.js new file mode 100644 index 0000000..8ea38f9 --- /dev/null +++ b/test/2-loader-tests.js @@ -0,0 +1,61 @@ +import assert from 'assert'; +import { Loader, Module, InternalModuleNamespace } from '../core/loader-polyfill.js'; +import { pathToFileUrl } from '../core/common.js'; + +describe('Loader Polyfill API', function() { + var loader = new Loader(pathToFileUrl(process.cwd())); + + it('Should be an instance of itself', function() { + assert(loader instanceof Loader); + }); + + it('Should support the full registry API', function() { + assert(loader.registry); + + loader.registry.set('asdf', new InternalModuleNamespace({ asdf: 'asdf' })); + assert(loader.registry.has('asdf')); + var m = loader.registry.get('asdf'); + assert(m); + assert(m instanceof InternalModuleNamespace); + assert.equal(m.asdf, 'asdf'); + + for (var k of loader.registry.keys()) + assert.equal(k, 'asdf'); + + for (var v of loader.registry.values()) + assert.equal(v.asdf, 'asdf'); + + for (var v of loader.registry.entries()) { + assert.equal(v[0], 'asdf'); + assert.equal(v[1].asdf, 'asdf'); + } + + for (var v of loader.registry) { + assert.equal(v[0], 'asdf'); + assert.equal(v[1].asdf, 'asdf'); + } + + assert.equal(loader.registry.delete('asdf'), true); + assert.equal(loader.registry.has('asdf'), false); + }); + + it('Should support Module construction and execution', function() { + var evaluated = false; + var mutator; + var module = new Module({ + a: { value: 'asdf' } + }, function(_mutator) { + mutator = _mutator; + }, function() { + evaluated = true; + mutator.a = 'b'; + }); + + assert.equal(module.a, 'asdf'); + + Module.evaluate(module); + assert(evaluated); + + assert.equal(module.a, 'b'); + }); +}); \ No newline at end of file diff --git a/test/fixtures/system-register-loader.js b/test/fixtures/system-register-loader.js new file mode 100644 index 0000000..bd6c2fe --- /dev/null +++ b/test/fixtures/system-register-loader.js @@ -0,0 +1,61 @@ +import RegisterLoader from '../../core/register-loader.js'; +import { isBrowser, isNode, global, baseURI } from '../../core/common.js'; +import { resolveUrlToParentIfNotPlain } from '../../core/resolve.js'; +import { scriptLoad, nodeFetch } from '../../core/fetch.js'; + +/* + * Example System Register loader + * + * Loads modules in the browser and Node as System.register modules + * Uses - - - diff --git a/test-old/manual/source-maps/test.js b/test-old/manual/source-maps/test.js deleted file mode 100644 index 1e88e56..0000000 --- a/test-old/manual/source-maps/test.js +++ /dev/null @@ -1,4 +0,0 @@ -export function make() { - return new Error('Hello') -} - diff --git a/test-old/registry.native-iterator-spec.js b/test-old/registry.native-iterator-spec.js deleted file mode 100644 index 23ba601..0000000 --- a/test-old/registry.native-iterator-spec.js +++ /dev/null @@ -1,57 +0,0 @@ -describe('native iterator tests', function() { - var modules = [ - { - name: 'h1', - value: 'bb8' - }, - { - name: 'h2', - value: 'er3' - } - ] - - beforeEach(function() { - for (var i=0; i Date: Thu, 11 Aug 2016 20:36:51 +0200 Subject: [PATCH 286/482] test updates, pending fixes --- .gitignore | 3 +- .travis.yml | 1 + package.json | 2 + test-old/loader/amd-dep.js | 5 - test-old/loader/amd.js | 5 - test-old/loader/anon.js | 1 - test-old/loader/async-norm.js | 3 - test-old/loader/custom-folder/path.js | 1 - test-old/loader/custom-path.js | 1 - test-old/loader/custom.js | 3 - test-old/loader/error1-parent.js | 2 - test-old/loader/master.js | 1 - test-old/loader/module.js | 7 - test-old/loader/named.js | 1 - test-old/loader/specific-path.js | 1 - test/3-register-loader.js | 454 +++++++----------- test/fixtures/.babelrc | 3 + .../loads => test/fixtures/es-modules}/_a.js | 0 .../loads => test/fixtures/es-modules}/_b.js | 0 .../loads => test/fixtures/es-modules}/_c.js | 0 .../loads => test/fixtures/es-modules}/_d.js | 0 .../loads => test/fixtures/es-modules}/_e.js | 0 .../loads => test/fixtures/es-modules}/_f.js | 0 .../loads => test/fixtures/es-modules}/_g.js | 0 .../loads => test/fixtures/es-modules}/_h.js | 0 .../loads => test/fixtures/es-modules}/_i.js | 0 .../loads => test/fixtures/es-modules}/a.js | 0 .../loads => test/fixtures/es-modules}/b.js | 0 .../loads => test/fixtures/es-modules}/c.js | 0 .../fixtures/es-modules}/circular1.js | 0 .../fixtures/es-modules}/circular2.js | 0 .../fixtures/es-modules}/deperror.js | 0 .../fixtures/es-modules}/direct.js | 0 .../fixtures/es-modules}/es6-dep.js | 0 .../fixtures/es-modules}/es6-file.js | 0 .../fixtures/es-modules}/es6-generator.js | 0 .../fixtures/es-modules}/es6-withdep.js | 0 .../fixtures/es-modules}/es6.js | 0 .../fixtures/es-modules}/even.js | 0 .../fixtures/es-modules}/export-default.js | 0 .../fixtures/es-modules}/export-star.js | 0 .../fixtures/es-modules}/export-star2.js | 0 .../fixtures/es-modules}/export.js | 0 .../fixtures/es-modules}/import.js | 0 .../fixtures/es-modules}/load-non-existent.js | 0 .../fixtures/es-modules}/main.js | 0 .../fixtures/es-modules}/moduleName.js | 0 test/fixtures/es-modules/no-imports.js | 1 + .../fixtures/es-modules}/odd.js | 0 .../fixtures/es-modules}/rebinding.js | 0 .../fixtures/es-modules}/reexport-binding.js | 0 .../fixtures/es-modules}/reexport1.js | 0 .../fixtures/es-modules}/reexport2.js | 0 .../loads => test/fixtures/es-modules}/s.js | 0 .../fixtures/es-modules}/script.js | 0 .../fixtures/es-modules}/star-dep.js | 0 .../fixtures/es-modules}/test-file.js | 0 test/fixtures/register-modules/no-imports.js | 11 +- 58 files changed, 187 insertions(+), 319 deletions(-) delete mode 100644 test-old/loader/amd-dep.js delete mode 100644 test-old/loader/amd.js delete mode 100644 test-old/loader/anon.js delete mode 100644 test-old/loader/async-norm.js delete mode 100644 test-old/loader/custom-folder/path.js delete mode 100644 test-old/loader/custom-path.js delete mode 100644 test-old/loader/custom.js delete mode 100644 test-old/loader/error1-parent.js delete mode 100644 test-old/loader/master.js delete mode 100644 test-old/loader/module.js delete mode 100644 test-old/loader/named.js delete mode 100644 test-old/loader/specific-path.js create mode 100644 test/fixtures/.babelrc rename {test-old/loads => test/fixtures/es-modules}/_a.js (100%) rename {test-old/loads => test/fixtures/es-modules}/_b.js (100%) rename {test-old/loads => test/fixtures/es-modules}/_c.js (100%) rename {test-old/loads => test/fixtures/es-modules}/_d.js (100%) rename {test-old/loads => test/fixtures/es-modules}/_e.js (100%) rename {test-old/loads => test/fixtures/es-modules}/_f.js (100%) rename {test-old/loads => test/fixtures/es-modules}/_g.js (100%) rename {test-old/loads => test/fixtures/es-modules}/_h.js (100%) rename {test-old/loads => test/fixtures/es-modules}/_i.js (100%) rename {test-old/loads => test/fixtures/es-modules}/a.js (100%) rename {test-old/loads => test/fixtures/es-modules}/b.js (100%) rename {test-old/loads => test/fixtures/es-modules}/c.js (100%) rename {test-old/syntax => test/fixtures/es-modules}/circular1.js (100%) rename {test-old/syntax => test/fixtures/es-modules}/circular2.js (100%) rename {test-old/loads => test/fixtures/es-modules}/deperror.js (100%) rename {test-old/syntax => test/fixtures/es-modules}/direct.js (100%) rename {test-old/syntax => test/fixtures/es-modules}/es6-dep.js (100%) rename {test-old/syntax => test/fixtures/es-modules}/es6-file.js (100%) rename {test-old/syntax => test/fixtures/es-modules}/es6-generator.js (100%) rename {test-old/syntax => test/fixtures/es-modules}/es6-withdep.js (100%) rename {test-old/syntax => test/fixtures/es-modules}/es6.js (100%) rename {test-old/syntax => test/fixtures/es-modules}/even.js (100%) rename {test-old/syntax => test/fixtures/es-modules}/export-default.js (100%) rename {test-old/syntax => test/fixtures/es-modules}/export-star.js (100%) rename {test-old/syntax => test/fixtures/es-modules}/export-star2.js (100%) rename {test-old/syntax => test/fixtures/es-modules}/export.js (100%) rename {test-old/syntax => test/fixtures/es-modules}/import.js (100%) rename {test-old/loads => test/fixtures/es-modules}/load-non-existent.js (100%) rename {test-old/loads => test/fixtures/es-modules}/main.js (100%) rename {test-old/loader => test/fixtures/es-modules}/moduleName.js (100%) create mode 100644 test/fixtures/es-modules/no-imports.js rename {test-old/syntax => test/fixtures/es-modules}/odd.js (100%) rename {test-old/syntax => test/fixtures/es-modules}/rebinding.js (100%) rename {test-old/syntax => test/fixtures/es-modules}/reexport-binding.js (100%) rename {test-old/syntax => test/fixtures/es-modules}/reexport1.js (100%) rename {test-old/syntax => test/fixtures/es-modules}/reexport2.js (100%) rename {test-old/loads => test/fixtures/es-modules}/s.js (100%) rename {test-old/syntax => test/fixtures/es-modules}/script.js (100%) rename {test-old/syntax => test/fixtures/es-modules}/star-dep.js (100%) rename {test-old/syntax => test/fixtures/es-modules}/test-file.js (100%) diff --git a/.gitignore b/.gitignore index b1ecd7e..7e99391 100644 --- a/.gitignore +++ b/.gitignore @@ -5,4 +5,5 @@ coverage .DS_Store npm-debug.log .lvimrc -dist \ No newline at end of file +dist +test/fixtures/register-modules \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 6cd6f32..199fb54 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,4 +7,5 @@ node_js: before_install: - npm install script: + - npm run make-test - npm run test diff --git a/package.json b/package.json index e13e761..8786ec5 100644 --- a/package.json +++ b/package.json @@ -22,6 +22,7 @@ ], "devDependencies": { "babel-plugin-transform-async-to-generator": "^6.8.0", + "babel-plugin-transform-es2015-modules-systemjs": "^6.12.0", "benchmark": "^2.1.1", "mocha": "^3.0.2", "node-es-module-loader": "^0.1.1" @@ -33,6 +34,7 @@ "es modules" ], "scripts": { + "make-test": "babel test/fixtures/es-modules --out-dir test/fixtures/register-modules", "test": "node-esml test/runner.js", "test-inspect": "node --inspect node_modules/.bin/node-esml test/runner.js", "bench": "node-esml bench/runner.js" diff --git a/test-old/loader/amd-dep.js b/test-old/loader/amd-dep.js deleted file mode 100644 index 12bbc65..0000000 --- a/test-old/loader/amd-dep.js +++ /dev/null @@ -1,5 +0,0 @@ -define([], function() { - return { - name: 'amd' - }; -}); diff --git a/test-old/loader/amd.js b/test-old/loader/amd.js deleted file mode 100644 index 6970924..0000000 --- a/test-old/loader/amd.js +++ /dev/null @@ -1,5 +0,0 @@ -define(['./amd-dep'], function(dep) { - return { - format: dep.name - }; -}); diff --git a/test-old/loader/anon.js b/test-old/loader/anon.js deleted file mode 100644 index 7a29aca..0000000 --- a/test-old/loader/anon.js +++ /dev/null @@ -1 +0,0 @@ -window.anon2 = class {} diff --git a/test-old/loader/async-norm.js b/test-old/loader/async-norm.js deleted file mode 100644 index ceef94d..0000000 --- a/test-old/loader/async-norm.js +++ /dev/null @@ -1,3 +0,0 @@ -define([], function() { - return { n: 'n' }; -}); diff --git a/test-old/loader/custom-folder/path.js b/test-old/loader/custom-folder/path.js deleted file mode 100644 index 0e7f339..0000000 --- a/test-old/loader/custom-folder/path.js +++ /dev/null @@ -1 +0,0 @@ -export var bar = 'baa'; diff --git a/test-old/loader/custom-path.js b/test-old/loader/custom-path.js deleted file mode 100644 index c5ebeb9..0000000 --- a/test-old/loader/custom-path.js +++ /dev/null @@ -1 +0,0 @@ -export var bar = 'bar'; diff --git a/test-old/loader/custom.js b/test-old/loader/custom.js deleted file mode 100644 index cb1a544..0000000 --- a/test-old/loader/custom.js +++ /dev/null @@ -1,3 +0,0 @@ -define([], function() { - return { path: true }; -}); diff --git a/test-old/loader/error1-parent.js b/test-old/loader/error1-parent.js deleted file mode 100644 index 002a462..0000000 --- a/test-old/loader/error1-parent.js +++ /dev/null @@ -1,2 +0,0 @@ -define(['error1'], function() { -}); diff --git a/test-old/loader/master.js b/test-old/loader/master.js deleted file mode 100644 index a97e644..0000000 --- a/test-old/loader/master.js +++ /dev/null @@ -1 +0,0 @@ -export * from 'slave'; diff --git a/test-old/loader/module.js b/test-old/loader/module.js deleted file mode 100644 index c04c425..0000000 --- a/test-old/loader/module.js +++ /dev/null @@ -1,7 +0,0 @@ -export var run; - -(function(global) { - run = global.run ? 'second' : 'first'; - - global.run = true; -})(typeof window == 'undefined' ? global : window); \ No newline at end of file diff --git a/test-old/loader/named.js b/test-old/loader/named.js deleted file mode 100644 index 09761e2..0000000 --- a/test-old/loader/named.js +++ /dev/null @@ -1 +0,0 @@ -export var q = 'test'; diff --git a/test-old/loader/specific-path.js b/test-old/loader/specific-path.js deleted file mode 100644 index d1a69ef..0000000 --- a/test-old/loader/specific-path.js +++ /dev/null @@ -1 +0,0 @@ -export var path = true; diff --git a/test/3-register-loader.js b/test/3-register-loader.js index 8ea36c8..803d0cd 100644 --- a/test/3-register-loader.js +++ b/test/3-register-loader.js @@ -5,338 +5,224 @@ import SystemRegisterLoader from './fixtures/system-register-loader.js'; describe('System Register Loader', function() { var loader = new SystemRegisterLoader(path.resolve('test/fixtures/register-modules') + path.sep); - it('Should be an instance of itself', function() { - assert(loader instanceof SystemRegisterLoader); - }); - - it('Should import a module', async function() { - var m = await loader.import('./no-imports.js'); - assert(m); - assert.equal(m.asdf, 'asdf'); - }); -}); - -/* -describe('System', function () { - - describe('#import', function () { - - describe('an ES5 script', function () { - - it('should import a ES5 script', function (done) { - - }); - - it('should import a ES5 script once loaded', function (done) { - System.import(base + 'test/syntax/script.js') - .then(function () { - return System.import(base + 'test/syntax/script.js'). - then(function (m) { - expect(!!m).to.be.ok(); - }); - }) - .then(done, done); - }); + describe('Simple tests', function() { + it('Should be an instance of itself', function() { + assert(loader instanceof SystemRegisterLoader); }); - describe('an ES6 script', function () { - - it('should import an ES6 script', function (done) { - System.import(base + 'test/syntax/es6.js') - .then(function (m) { - expect(m.p).to.equal('p'); - }) - .then(done, done); - }); - - it('should import an ES6 script with its dependencies', function (done) { - System.import(base + 'test/syntax/es6-withdep.js') - .then(function (m) { - expect(m.p).to.equal('p'); - }) - .then(done, done); - }); + it('Should import a module', async function() { + var m = await loader.import('./no-imports.js'); + assert(m); + assert.equal(m.asdf, 'asdf'); + }); - (ie ? it.skip : it)('should import an ES6 script with a generator', function (done) { - System.import(base + 'test/syntax/es6-generator.js') - .then(function (m) { - expect(!!m.generator).to.be.ok(); - }) - .then(done, done); - }); + it('Should import a module cached', async function() { + var m1 = await loader.import('./no-imports.js'); + var m2 = await loader.import('./no-imports.js'); + assert.equal(m1.asdf, 'asdf'); + assert.equal(m1, m2); + }); - it('should import without bindings', function (done) { - System.import(base + 'test/syntax/direct.js') - .then(function (m) { - expect(!!m).to.be.ok(); - }) - .then(done, done); - }); + it('should import an es module with its dependencies', async function() { + var m = await loader.import('./es6-withdep.js'); + assert.equal(m.p, 'p'); + }); - it('should support es6 various syntax', function (done) { - System.import(base + 'test/syntax/es6-file.js') - .then(function (m) { + it('should import without bindings', async function() { + var m = await loader.import('./direct.js'); + assert(!!m); + }); - expect(m.q).to.be.a('function'); + it('should support various es syntax', async function() { + var m = await loader.import('./es6-file.js'); - expect(function () { (new m.q()).foo(); }) - .to.throwException(function (e) { - expect(e).to.equal('g'); - }); + assert.equal(typeof m.q, 'function'); - }) - .then(done, done); - }); + var thrown = false; + try { + new m.q().foo(); + } + catch(e) { + thrown = true; + assert.equal(e, 'g'); + } + if (!thrown) + throw new Error('Supposed to throw'); }); - describe('with circular dependencies', function () { - - (System.transpiler == 'traceur' ? it : it.skip)('should resolve circular dependencies', function (done) { - System.import(base + 'test/syntax/circular1.js') - .then(function (m1) { - return System.import(base + 'test/syntax/circular2.js').then(function (m2) { - expect(m1.variable1).to.equal('test circular 1'); - expect(m2.variable2).to.equal('test circular 2'); - - expect(m2.output, 'The module 2 output is the module 1 variable') - .to.equal('test circular 1'); - expect(m1.output, 'The module 1 output is the module 2 variable') - .to.equal('test circular 2'); - expect(m2.output1, 'The module 2 output1 is the module 1 output') - .to.equal('test circular 2'); - expect(m1.output2, 'The module 1 output2 is the module 2 output') - .to.equal('test circular 1'); - }); - }) - .then(done, done); - }); - - - it('should update circular dependencies', function (done) { - System.import(base + 'test/syntax/even.js') - .then(function (m) { - expect(m.counter, 'Counter initially at 1').to.be.equal(1); - expect(m.even(10), 'Must be an even number').to.be.ok(); - expect(m.counter, 'Counter sould now be at 7').to.be.equal(7); - expect(m.even(15), 'Must be an odd number').to.not.be.ok(); - expect(m.counter, 'Counter sould now be at 15').to.be.equal(15); - }) - .then(done, done); - }); + it('should resolve various import syntax', async function() { + var m = await loader.import('./import.js'); + assert.equal(typeof m.a, 'function'); + assert.equal(m.b, 4); + assert.equal(m.c, 5); + assert.equal(m.d, 4); + assert.equal(typeof m.q, 'object'); + assert.equal(typeof m.q.foo, 'function'); + }); + it('should support __moduleName', async function() { + var m = await loader.import('./moduleName.js'); + assert.equal(m.name, './moduleName'); + assert.equal(m.address, System.baseURL + './moduleName.js'); }); + }); - describe('loading order', function () { + describe('Circular dependencies', function() { - function expectedOrder(file, order, done) { - System.import(base + 'test/loads/' + file) - .then(function (m) { - order.forEach(function (letter) { - expect(m[letter], 'The "' + letter + '" file wasn\'t loaded') - .to.equal(letter); - }); + it('should resolve circular dependencies', async function() { + var m1 = await loader.import('./circular1.js'); + var m2 = await loader.import('./circular2.js'); - }) - .then(done, done); - } - it('should load in order (a)', function (done) { - expectedOrder('a.js', ['a', 'b'], done) - }); + assert.equal(m1.variable1, 'test circular 1'); + assert.equal(m2.variable2, 'test circular 2'); - it('should load in order (c)', function (done) { - expectedOrder('c.js', ['c', 'a', 'b'], done) - }); + assert.equal(m2.output, 'test circular 1'); + assert.equal(m1.output, 'test circular 2'); + assert.equal(m2.output1, 'test circular 2'); + assert.equal(m1.output2, 'test circular 1'); + }); - it('should load in order (s)', function (done) { - expectedOrder('s.js', ['s', 'c', 'a', 'b'], done) - }); + it('should update circular dependencies', async function() { + var m = await loader.import('./even.js'); + assert.equal(m.counter, 1); + assert(m.even(10)); + assert.equal(m.counter, 7); + assert(!m.even(15)); + assert.equal(m.counter, 15); + }); - it('should load in order (_a)', function (done) { - expectedOrder('_a.js', ['b', 'd', 'g', 'a'], done) - }); + }); - it('should load in order (_e)', function (done) { - expectedOrder('_e.js', ['c', 'e'], done) + describe('Loading order', function() { + async function assertLoadOrder(module, order) { + await loader.import('./' + module); + order.forEach(function(name) { + assert.equal(m[name], module); }); + } - it('should load in order (_f)', function (done) { - expectedOrder('_f.js', ['g', 'f'], done) - }); + it('should load in order (a)', async function() { + await assertLoadOrder('a.js', ['a', 'b']); + }); - it('should load in order (_h)', function (done) { - expectedOrder('_h.js', ['i', 'a', 'h'], done) - }); + it('should load in order (c)', async function() { + await assertLoadOrder('c.js', ['c', 'a', 'b']); + }); + it('should load in order (s)', async function() { + await assertLoadOrder('s.js', ['s', 'c', 'a', 'b']); }); + it('should load in order (_a)', async function() { + await assertLoadOrder('_a.js', ['b', 'd', 'g', 'a']); + }); - describe('errors', function () { + it('should load in order (_e)', async function() { + await assertLoadOrder('_e.js', ['c', 'e']); + }); - function supposedToFail() { - expect(false, 'should not be successful').to.be.ok(); - } + it('should load in order (_f)', async function() { + await assertLoadOrder('_f.js', ['g', 'f']); + }); - it('should throw if on syntax error', function (done) { - System.import(base + 'test/loads/main.js') - .then(supposedToFail) - .catch(function(e) { - expect(e) - .to.be.equal('dep error\n\tError evaluating ' + base + 'test/loads/deperror.js\n\tError evaluating ' + base + 'test/loads/main.js'); - }) - .then(done, done); - }); + it('should load in order (_h)', async function() { + await assertLoadOrder('_h.js', ['i', 'a', 'h']); + }); + }); - it('should throw what the script throws', function (done) { - System.import(base + 'test/loads/deperror.js') - .then(supposedToFail) - .catch(function(e) { - expect(e) - .to.be.equal('dep error\n\tError evaluating ' + base + 'test/loads/deperror.js'); - }) - .then(done, done); - }); + describe('Export variations', function () { + it('should resolve different export syntax', async function() { + var m = await loader.import('./export.js'); + assert.equal(m.p, 5); + assert.equal(typeof m.foo, 'function'); + assert.equal(typeof m.q, 'object'); + assert.equal(typeof m.default, 'function'); + assert.equal(m.s, 4); + assert.equal(m.t, 4); + assert.equal(typeof m.m, 'object'); + }); + it('should resolve "export default"', async function() { + var m = await loader.import('./export-default.js'); + assert.equal(m.default(), 'test'); + }); - it('404 error', function (done) { - System.import(base + 'test/loads/load-non-existent.js') - .then(supposedToFail) - .catch(function (e) { - var b = typeof window == 'undefined' ? base.substr(7) : base; - var e; - if (typeof window == 'undefined') { - e = e.toString().substr(14); - if (e.substr(26, 1) == ',') - e = e.substr(27); - } - expect(e.toString()) - .to.be.equal((typeof window == 'undefined' ? ' open \'' : 'Error: GET ') + b + 'test/loads/non-existent.js' + (typeof window == 'undefined' ? '\'' : ' 404 (Not Found)') + '\n\tFetching ' + base + 'test/loads/non-existent.js\n\tLoading ' + base + 'test/loads/load-non-existent.js'); - }) - .then(done, done); - }); + it('should support simple re-exporting', async function() { + var m = await loader.import('./reexport1.js'); + assert.equal(m.p, 5); + }); + it('should support re-exporting binding', async function() { + var m = await loader.import('./reexport-binding.js'); + assert.equal(m.p, 4); }); - describe('es6 export syntax overview', function () { - it('should resolve different export syntax', function (done) { - System.import(base + 'test/syntax/export.js') - .then(function (m) { - expect(m.p, 'should export a number').to.be.equal(5); - expect(m.foo, 'should export a function').to.be.a('function'); - expect(m.q, 'should export an object').to.be.an('object'); - expect(m.default, 'should export a default function') - .to.be.a('function'); - expect(m.s, 'should export a set of variable').to.be.equal(4); - expect(m.t, 'should export a specifier number').to.be.equal(4); - expect(m.m, 'should export a specifier object ').to.be.an('object'); - }) - .then(done, done); - }); + it('should support re-exporting with a new name', async function() { + var m = await loader.import('./reexport2.js'); + assert.equal(m.q, 4); + assert.equal(m.z, 5); }); - describe('es6 export default syntax', function () { - it('should resolve "export default"', function (done) { - System.import(base + 'test/syntax/export-default.js') - .then(function (m) { - expect(m.default()).to.be.equal('test'); - }) - .then(done, done); - }); + it('should support re-exporting', async function() { + var m = await loader.import('./export-star.js'); + assert.equal(m.foo, 'foo'); + assert.equal(m.bar, 'bar'); }); - describe('es6 export re-exporting', function () { - it('should support simple re-exporting', function (done) { - System.import(base + 'test/syntax/reexport1.js') - .then(function (m) { - expect(m.p, 'should export 5 from the "./export"').to.be.equal(5); - }) - .then(done, done); - }); + it('should support re-exporting overwriting', async function() { + var m = await loader.import('./export-star2.js'); + assert.equal(m.bar, 'bar'); + assert.equal(typeof m.foo, 'function'); + }); + }); +}); - it('should support re-exporting binding', function (done) { - System.import(base + 'test/syntax/reexport-binding.js') - .then(function () { - return System.import(base + 'test/syntax/rebinding.js').then(function (m) { - expect(m.p, 'should export "p" from the "./rebinding"') - .to.be.equal(4); - }); - }) - .then(done, done); - }); +/* - it('should support re-exporting with a new name', function (done) { - System.import(base + 'test/syntax/reexport2.js') - .then(function (m) { - expect(m.q, 'should export "t" as "q" from the "./export"') - .to.be.equal(4); - expect(m.z, 'should export "q" as "z" from the "./export"') - .to.be.equal(5); - }) - .then(done, done); - }); +describe('errors', function () { - it('should support re-exporting', function (done) { - System.import(base + 'test/syntax/export-star.js') - .then(function (m) { - expect(m.foo, 'should export a function').to.be.equal('foo'); - expect(m.bar, 'should re-export export-star bar variable') - .to.be.equal('bar'); - }) - .then(done, done); - }); + function supposedToFail() { + assert.equal(false, 'should not be successful').to.be.ok(); + } - (System.transpiler != 'traceur' ? it.skip : it)('should support re-exporting overwriting', function (done) { - System.import(base + 'test/syntax/export-star2.js') - .then(function (m) { - expect(m.bar, 'should re-export "./export-star" bar variable') - .to.be.equal('bar'); - expect(m.foo, 'should overwrite "./star-dep" foo variable with a function') - .to.be.a('function'); - }) - .then(done, done); - }); - }); + it('should throw if on syntax error', async function() { + var m = await loader.import('./main.js'); + .then(supposedToFail) + .catch(function(e) { + assert.equal(e) + .to.be.equal('dep error\n\tError evaluating ' + './deperror.js\n\tError evaluating ' + './main.js'); + }) + }); - // - - describe('es6 import syntax overview', function () { - it('should resolve different import syntax', function (done) { - System.import(base + 'test/syntax/import.js') - .then(function (m) { - expect(m.a, 'should export "d" as "a" from the "./export"') - .to.be.a('function'); - expect(m.b, 'should export "p" as "b" for "s" as "p" from "./reexport1"') - .to.be.equal(4); - expect(m.c, 'should export "z" as "c" with "z" from "./reexport2"') - .to.be.equal(5); - expect(m.d, 'should export "r" as "d" for "q" as "r" from the "./reexport2"') - .to.be.equal(4); - expect(m.q, 'should export "q" as "*" from the "./reexport1"') - .to.be.an('object'); - expect(m.q.foo, 'should access the "foo" function of "./reexport1" through "q" ad "*" ') - .to.be.a('function'); - }) - .then(done, done); - }); - }); + it('should throw what the script throws', async function() { + var m = await loader.import('./deperror.js'); + .then(supposedToFail) + .catch(function(e) { + assert.equal(e) + .to.be.equal('dep error\n\tError evaluating ' + './deperror.js'); + }) + }); - // - - describe('a script with metas', function () { - // NB module name meta - it.skip('should support module name meta', function (done) { - System.import(base + 'test/loader/moduleName.js') - .then(function (m) { - expect(m.name).to.be.equal('test/loader/moduleName'); - expect(m.address) - .to.be.equal(System.baseURL + 'test/loader/moduleName.js'); - }) - .then(done, done); - }); - }); + it('404 error', async function() { + var m = await loader.import('./load-non-existent.js'); + .then(supposedToFail) + .catch(function (e) { + var b = typeof window == 'undefined' ? base.substr(7) : base; + var e; + if (typeof window == 'undefined') { + e = e.toString().substr(14); + if (e.substr(26, 1) == ',') + e = e.substr(27); + } + assert.equal(e.toString()) + .to.be.equal((typeof window == 'undefined' ? ' open \'' : 'Error: GET ') + b + './non-existent.js' + (typeof window == 'undefined' ? '\'' : ' 404 (Not Found)') + '\n\tFetching ' + './non-existent.js\n\tLoading ' + './load-non-existent.js'); + }) }); + }); + */ \ No newline at end of file diff --git a/test/fixtures/.babelrc b/test/fixtures/.babelrc new file mode 100644 index 0000000..2af8f57 --- /dev/null +++ b/test/fixtures/.babelrc @@ -0,0 +1,3 @@ +{ + "plugins": "transform-es2015-modules-systemjs" +} \ No newline at end of file diff --git a/test-old/loads/_a.js b/test/fixtures/es-modules/_a.js similarity index 100% rename from test-old/loads/_a.js rename to test/fixtures/es-modules/_a.js diff --git a/test-old/loads/_b.js b/test/fixtures/es-modules/_b.js similarity index 100% rename from test-old/loads/_b.js rename to test/fixtures/es-modules/_b.js diff --git a/test-old/loads/_c.js b/test/fixtures/es-modules/_c.js similarity index 100% rename from test-old/loads/_c.js rename to test/fixtures/es-modules/_c.js diff --git a/test-old/loads/_d.js b/test/fixtures/es-modules/_d.js similarity index 100% rename from test-old/loads/_d.js rename to test/fixtures/es-modules/_d.js diff --git a/test-old/loads/_e.js b/test/fixtures/es-modules/_e.js similarity index 100% rename from test-old/loads/_e.js rename to test/fixtures/es-modules/_e.js diff --git a/test-old/loads/_f.js b/test/fixtures/es-modules/_f.js similarity index 100% rename from test-old/loads/_f.js rename to test/fixtures/es-modules/_f.js diff --git a/test-old/loads/_g.js b/test/fixtures/es-modules/_g.js similarity index 100% rename from test-old/loads/_g.js rename to test/fixtures/es-modules/_g.js diff --git a/test-old/loads/_h.js b/test/fixtures/es-modules/_h.js similarity index 100% rename from test-old/loads/_h.js rename to test/fixtures/es-modules/_h.js diff --git a/test-old/loads/_i.js b/test/fixtures/es-modules/_i.js similarity index 100% rename from test-old/loads/_i.js rename to test/fixtures/es-modules/_i.js diff --git a/test-old/loads/a.js b/test/fixtures/es-modules/a.js similarity index 100% rename from test-old/loads/a.js rename to test/fixtures/es-modules/a.js diff --git a/test-old/loads/b.js b/test/fixtures/es-modules/b.js similarity index 100% rename from test-old/loads/b.js rename to test/fixtures/es-modules/b.js diff --git a/test-old/loads/c.js b/test/fixtures/es-modules/c.js similarity index 100% rename from test-old/loads/c.js rename to test/fixtures/es-modules/c.js diff --git a/test-old/syntax/circular1.js b/test/fixtures/es-modules/circular1.js similarity index 100% rename from test-old/syntax/circular1.js rename to test/fixtures/es-modules/circular1.js diff --git a/test-old/syntax/circular2.js b/test/fixtures/es-modules/circular2.js similarity index 100% rename from test-old/syntax/circular2.js rename to test/fixtures/es-modules/circular2.js diff --git a/test-old/loads/deperror.js b/test/fixtures/es-modules/deperror.js similarity index 100% rename from test-old/loads/deperror.js rename to test/fixtures/es-modules/deperror.js diff --git a/test-old/syntax/direct.js b/test/fixtures/es-modules/direct.js similarity index 100% rename from test-old/syntax/direct.js rename to test/fixtures/es-modules/direct.js diff --git a/test-old/syntax/es6-dep.js b/test/fixtures/es-modules/es6-dep.js similarity index 100% rename from test-old/syntax/es6-dep.js rename to test/fixtures/es-modules/es6-dep.js diff --git a/test-old/syntax/es6-file.js b/test/fixtures/es-modules/es6-file.js similarity index 100% rename from test-old/syntax/es6-file.js rename to test/fixtures/es-modules/es6-file.js diff --git a/test-old/syntax/es6-generator.js b/test/fixtures/es-modules/es6-generator.js similarity index 100% rename from test-old/syntax/es6-generator.js rename to test/fixtures/es-modules/es6-generator.js diff --git a/test-old/syntax/es6-withdep.js b/test/fixtures/es-modules/es6-withdep.js similarity index 100% rename from test-old/syntax/es6-withdep.js rename to test/fixtures/es-modules/es6-withdep.js diff --git a/test-old/syntax/es6.js b/test/fixtures/es-modules/es6.js similarity index 100% rename from test-old/syntax/es6.js rename to test/fixtures/es-modules/es6.js diff --git a/test-old/syntax/even.js b/test/fixtures/es-modules/even.js similarity index 100% rename from test-old/syntax/even.js rename to test/fixtures/es-modules/even.js diff --git a/test-old/syntax/export-default.js b/test/fixtures/es-modules/export-default.js similarity index 100% rename from test-old/syntax/export-default.js rename to test/fixtures/es-modules/export-default.js diff --git a/test-old/syntax/export-star.js b/test/fixtures/es-modules/export-star.js similarity index 100% rename from test-old/syntax/export-star.js rename to test/fixtures/es-modules/export-star.js diff --git a/test-old/syntax/export-star2.js b/test/fixtures/es-modules/export-star2.js similarity index 100% rename from test-old/syntax/export-star2.js rename to test/fixtures/es-modules/export-star2.js diff --git a/test-old/syntax/export.js b/test/fixtures/es-modules/export.js similarity index 100% rename from test-old/syntax/export.js rename to test/fixtures/es-modules/export.js diff --git a/test-old/syntax/import.js b/test/fixtures/es-modules/import.js similarity index 100% rename from test-old/syntax/import.js rename to test/fixtures/es-modules/import.js diff --git a/test-old/loads/load-non-existent.js b/test/fixtures/es-modules/load-non-existent.js similarity index 100% rename from test-old/loads/load-non-existent.js rename to test/fixtures/es-modules/load-non-existent.js diff --git a/test-old/loads/main.js b/test/fixtures/es-modules/main.js similarity index 100% rename from test-old/loads/main.js rename to test/fixtures/es-modules/main.js diff --git a/test-old/loader/moduleName.js b/test/fixtures/es-modules/moduleName.js similarity index 100% rename from test-old/loader/moduleName.js rename to test/fixtures/es-modules/moduleName.js diff --git a/test/fixtures/es-modules/no-imports.js b/test/fixtures/es-modules/no-imports.js new file mode 100644 index 0000000..fce63d5 --- /dev/null +++ b/test/fixtures/es-modules/no-imports.js @@ -0,0 +1 @@ +export var asdf = 'asdf'; \ No newline at end of file diff --git a/test-old/syntax/odd.js b/test/fixtures/es-modules/odd.js similarity index 100% rename from test-old/syntax/odd.js rename to test/fixtures/es-modules/odd.js diff --git a/test-old/syntax/rebinding.js b/test/fixtures/es-modules/rebinding.js similarity index 100% rename from test-old/syntax/rebinding.js rename to test/fixtures/es-modules/rebinding.js diff --git a/test-old/syntax/reexport-binding.js b/test/fixtures/es-modules/reexport-binding.js similarity index 100% rename from test-old/syntax/reexport-binding.js rename to test/fixtures/es-modules/reexport-binding.js diff --git a/test-old/syntax/reexport1.js b/test/fixtures/es-modules/reexport1.js similarity index 100% rename from test-old/syntax/reexport1.js rename to test/fixtures/es-modules/reexport1.js diff --git a/test-old/syntax/reexport2.js b/test/fixtures/es-modules/reexport2.js similarity index 100% rename from test-old/syntax/reexport2.js rename to test/fixtures/es-modules/reexport2.js diff --git a/test-old/loads/s.js b/test/fixtures/es-modules/s.js similarity index 100% rename from test-old/loads/s.js rename to test/fixtures/es-modules/s.js diff --git a/test-old/syntax/script.js b/test/fixtures/es-modules/script.js similarity index 100% rename from test-old/syntax/script.js rename to test/fixtures/es-modules/script.js diff --git a/test-old/syntax/star-dep.js b/test/fixtures/es-modules/star-dep.js similarity index 100% rename from test-old/syntax/star-dep.js rename to test/fixtures/es-modules/star-dep.js diff --git a/test-old/syntax/test-file.js b/test/fixtures/es-modules/test-file.js similarity index 100% rename from test-old/syntax/test-file.js rename to test/fixtures/es-modules/test-file.js diff --git a/test/fixtures/register-modules/no-imports.js b/test/fixtures/register-modules/no-imports.js index bac7465..2f8a646 100644 --- a/test/fixtures/register-modules/no-imports.js +++ b/test/fixtures/register-modules/no-imports.js @@ -1,8 +1,13 @@ -System.register([], function(_export) { +System.register([], function (_export, _context) { + "use strict"; + + var asdf; return { setters: [], - execute: function() { - _export('asdf', 'asdf'); + execute: function () { + _export('asdf', asdf = 'asdf'); + + _export('asdf', asdf); } }; }); \ No newline at end of file From e22d8fc147f7435698e6cfa1f413c571c2609934 Mon Sep 17 00:00:00 2001 From: guybedford Date: Fri, 12 Aug 2016 02:32:00 +0200 Subject: [PATCH 287/482] load tests completion --- core/common.js | 12 ++++++------ core/register-loader.js | 15 +++++++-------- test/3-register-loader.js | 21 ++++++++++++--------- test/fixtures/es-modules/es6-dep.js | 1 - test/fixtures/es-modules/es6-generator.js | 3 --- test/fixtures/es-modules/es6-withdep.js | 3 +-- test/fixtures/es-modules/moduleName.js | 3 +-- test/fixtures/es-modules/script.js | 1 - 8 files changed, 27 insertions(+), 32 deletions(-) delete mode 100644 test/fixtures/es-modules/es6-generator.js delete mode 100644 test/fixtures/es-modules/script.js diff --git a/core/common.js b/core/common.js index 9de2511..57c71c0 100644 --- a/core/common.js +++ b/core/common.js @@ -25,28 +25,28 @@ export function fileUrlToPath(fileUrl) { /* * Path to loader itself */ -export var scriptSrc; +export var loaderSrc; if (isBrowser) { if (document.currentScript) - scriptSrc = document.currentScript.src; + loaderSrc = document.currentScript.src; var scripts = document.getElementsByTagName('script'); var curScript = scripts.length && scripts[scripts.length - 1]; if (curScript && !curScript.defer && !curScript.async) - scriptSrc = curScript.src; + loaderSrc = curScript.src; } else if (isWorker) { try { throw new Error('_'); } catch (e) { e.stack.replace(/(?:at|@).*(http.+):[\d]+:[\d]+/, function(m, url) { - scriptSrc = url; + loaderSrc = url; }); } } else if (typeof __filename != 'undefined') { - scriptSrc = __filename; + loaderSrc = __filename; } /* @@ -95,7 +95,7 @@ export function addToError(err, msg) { // if the error stack doesn't start in SystemJS, skip the SystemJS stack part newStack = []; for (var i = 0; i < stack.length; i++) - if (scriptSrc && stack[i].indexOf(scriptSrc) === -1) + if (loaderSrc && stack[i].indexOf(loaderSrc) === -1) newStack.push(stack[i]); } diff --git a/core/register-loader.js b/core/register-loader.js index 322c32d..37624d7 100644 --- a/core/register-loader.js +++ b/core/register-loader.js @@ -205,12 +205,6 @@ function instantiateAllDeps(loader, load, seen) { return Promise.resolve(); } - // circular - if (seen.indexOf(instantiation) !== -1) - return Promise.resolve(); - - // es module load - // register setter with dependency instantiation.importerSetters.push(esLinkRecord.setters[i]); @@ -218,6 +212,12 @@ function instantiateAllDeps(loader, load, seen) { if (esLinkRecord.setters[i]) esLinkRecord.setters[i](instantiation.esLinkRecord.moduleObj); + // circular + if (seen.indexOf(instantiation) !== -1) + return Promise.resolve(); + + // es module load + // if not already linked, instantiate dependencies if (instantiation.esLinkRecord) return instantiateAllDeps(loader, instantiation, seen); @@ -423,8 +423,7 @@ function ensureEvaluated(loader, load, seen) { err = ensureEvaluated(loader, depLoad, seen); if (err) - // we should really know the dependency resolved name for the namespace case, but oh well - return addToError(err, 'Evaluating ' + (depLoad.key || esLinkRecord.dependencies[i])); + return addToError(err, 'Evaluating ' + load.key); } // es load record evaluation diff --git a/test/3-register-loader.js b/test/3-register-loader.js index 803d0cd..14a2253 100644 --- a/test/3-register-loader.js +++ b/test/3-register-loader.js @@ -1,6 +1,7 @@ import assert from 'assert'; import path from 'path'; import SystemRegisterLoader from './fixtures/system-register-loader.js'; +import { pathToFileUrl } from '../core/common.js'; describe('System Register Loader', function() { var loader = new SystemRegisterLoader(path.resolve('test/fixtures/register-modules') + path.sep); @@ -64,13 +65,13 @@ describe('System Register Loader', function() { it('should support __moduleName', async function() { var m = await loader.import('./moduleName.js'); - assert.equal(m.name, './moduleName'); - assert.equal(m.address, System.baseURL + './moduleName.js'); + assert.equal(m.name, pathToFileUrl(path.resolve('test/fixtures/register-modules/moduleName.js'))); }); }); describe('Circular dependencies', function() { + it('should resolve circular dependencies', async function() { var m1 = await loader.import('./circular1.js'); var m2 = await loader.import('./circular2.js'); @@ -85,7 +86,8 @@ describe('System Register Loader', function() { assert.equal(m1.output2, 'test circular 1'); }); - it('should update circular dependencies', async function() { + // pending https://github.com/babel/babel/pull/3650 + it.skip('should update circular dependencies', async function() { var m = await loader.import('./even.js'); assert.equal(m.counter, 1); assert(m.even(10)); @@ -97,10 +99,10 @@ describe('System Register Loader', function() { }); describe('Loading order', function() { - async function assertLoadOrder(module, order) { - await loader.import('./' + module); - order.forEach(function(name) { - assert.equal(m[name], module); + async function assertLoadOrder(module, exports) { + var m = await loader.import('./' + module); + exports.forEach(function(name) { + assert.equal(m[name], name); }); } @@ -156,7 +158,8 @@ describe('System Register Loader', function() { }); it('should support re-exporting binding', async function() { - var m = await loader.import('./reexport-binding.js'); + await loader.import('./reexport-binding.js'); + var m = await loader.import('./rebinding.js'); assert.equal(m.p, 4); }); @@ -172,7 +175,7 @@ describe('System Register Loader', function() { assert.equal(m.bar, 'bar'); }); - it('should support re-exporting overwriting', async function() { + it.skip('should support re-exporting overwriting', async function() { var m = await loader.import('./export-star2.js'); assert.equal(m.bar, 'bar'); assert.equal(typeof m.foo, 'function'); diff --git a/test/fixtures/es-modules/es6-dep.js b/test/fixtures/es-modules/es6-dep.js index 41890af..edcd3c7 100644 --- a/test/fixtures/es-modules/es6-dep.js +++ b/test/fixtures/es-modules/es6-dep.js @@ -1,2 +1 @@ export var p = 'p'; -console.log('dep'); diff --git a/test/fixtures/es-modules/es6-generator.js b/test/fixtures/es-modules/es6-generator.js deleted file mode 100644 index 2ad064e..0000000 --- a/test/fixtures/es-modules/es6-generator.js +++ /dev/null @@ -1,3 +0,0 @@ -export function* generator() { - yield 1; -} diff --git a/test/fixtures/es-modules/es6-withdep.js b/test/fixtures/es-modules/es6-withdep.js index 15774ca..a6d2026 100644 --- a/test/fixtures/es-modules/es6-withdep.js +++ b/test/fixtures/es-modules/es6-withdep.js @@ -1,2 +1 @@ -export { p } from './es6-dep.js'; -console.log('withdep'); \ No newline at end of file +export { p } from './es6-dep.js'; \ No newline at end of file diff --git a/test/fixtures/es-modules/moduleName.js b/test/fixtures/es-modules/moduleName.js index 7a73d78..f022135 100644 --- a/test/fixtures/es-modules/moduleName.js +++ b/test/fixtures/es-modules/moduleName.js @@ -1,2 +1 @@ -export var name = __moduleName; -export var address = __moduleAddress; \ No newline at end of file +export var name = __moduleName; \ No newline at end of file diff --git a/test/fixtures/es-modules/script.js b/test/fixtures/es-modules/script.js deleted file mode 100644 index a6a223c..0000000 --- a/test/fixtures/es-modules/script.js +++ /dev/null @@ -1 +0,0 @@ -console.log('script'); From 84c1e670d03cec088fec6120af1b27824638e265 Mon Sep 17 00:00:00 2001 From: guybedford Date: Fri, 12 Aug 2016 02:41:34 +0200 Subject: [PATCH 288/482] babel-cli dev dependency --- package.json | 1 + 1 file changed, 1 insertion(+) diff --git a/package.json b/package.json index 8786ec5..25d3013 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,7 @@ } ], "devDependencies": { + "babel-cli": "^6.11.4", "babel-plugin-transform-async-to-generator": "^6.8.0", "babel-plugin-transform-es2015-modules-systemjs": "^6.12.0", "benchmark": "^2.1.1", From 349d6b94d8ec172ee4b8079826da5a597ec70c83 Mon Sep 17 00:00:00 2001 From: guybedford Date: Fri, 12 Aug 2016 03:10:55 +0200 Subject: [PATCH 289/482] relax parentUrl constraint, register benchmarking --- bench/1-register-loading.js | 692 ++++++++++++++++++ ...-url-resolution.js => 2-url-resolution.js} | 0 core/register-loader.js | 2 +- core/resolve.js | 4 +- 4 files changed, 696 insertions(+), 2 deletions(-) create mode 100644 bench/1-register-loading.js rename bench/{1-url-resolution.js => 2-url-resolution.js} (100%) diff --git a/bench/1-register-loading.js b/bench/1-register-loading.js new file mode 100644 index 0000000..a3cfa55 --- /dev/null +++ b/bench/1-register-loading.js @@ -0,0 +1,692 @@ +import RegisterLoader from '../core/register-loader.js'; + +function declareBundle(loader) { + loader.register('_e.js', ['_c.js'], function (_export, _context) { + "use strict"; + + var e; + return { + setters: [function (_cJs) { + var _exportObj = {}; + _exportObj.c = _cJs.c; + + _export(_exportObj); + }], + execute: function () { + _export('e', e = 'e'); + + _export('e', e); + } + }; + }); + loader.register('_f.js', ['_g.js'], function (_export, _context) { + "use strict"; + + var f; + return { + setters: [function (_gJs) { + var _exportObj = {}; + _exportObj.g = _gJs.g; + + _export(_exportObj); + }], + execute: function () { + _export('f', f = 'f'); + + _export('f', f); + } + }; + }); + loader.register('_g.js', [], function (_export, _context) { + "use strict"; + + var g; + return { + setters: [], + execute: function () { + _export('g', g = 'g'); + + _export('g', g); + } + }; + }); + loader.register('_a.js', ['_b.js', '_d.js', '_g.js'], function (_export, _context) { + "use strict"; + + var a; + return { + setters: [function (_bJs) { + var _exportObj = {}; + _exportObj.b = _bJs.b; + + _export(_exportObj); + }, function (_dJs) { + var _exportObj2 = {}; + _exportObj2.d = _dJs.d; + + _export(_exportObj2); + }, function (_gJs) { + var _exportObj3 = {}; + _exportObj3.g = _gJs.g; + + _export(_exportObj3); + }], + execute: function () { + _export('a', a = 'a'); + + _export('a', a); + } + }; + }); + loader.register('_d.js', [], function (_export, _context) { + "use strict"; + + var d; + return { + setters: [], + execute: function () { + _export('d', d = 'd'); + + _export('d', d); + } + }; + }); + loader.register('_c.js', ['_d.js'], function (_export, _context) { + "use strict"; + + var c; + return { + setters: [function (_dJs) { + var _exportObj = {}; + _exportObj.d = _dJs.d; + + _export(_exportObj); + }], + execute: function () { + _export('c', c = 'c'); + + _export('c', c); + } + }; + }); + loader.register('_b.js', ['_c.js'], function (_export, _context) { + "use strict"; + + var b; + return { + setters: [function (_cJs) { + var _exportObj = {}; + _exportObj.c = _cJs.c; + + _export(_exportObj); + }], + execute: function () { + _export('b', b = 'b'); + + _export('b', b); + } + }; + }); + loader.register('_i.js', ['_b.js'], function (_export, _context) { + "use strict"; + + var i; + return { + setters: [function (_bJs) { + var _exportObj = {}; + _exportObj.b = _bJs.b; + + _export(_exportObj); + }], + execute: function () { + _export('i', i = 'i'); + + _export('i', i); + } + }; + }); + loader.register('_h.js', ['_a.js', '_i.js'], function (_export, _context) { + "use strict"; + + var h; + return { + setters: [function (_aJs) { + var _exportObj = {}; + _exportObj.a = _aJs.a; + + _export(_exportObj); + }, function (_iJs) { + var _exportObj2 = {}; + _exportObj2.i = _iJs.i; + + _export(_exportObj2); + }], + execute: function () { + _export('h', h = 'h'); + + _export('h', h); + } + }; + }); + loader.register('circular2.js', ['circular1.js'], function (_export, _context) { + "use strict"; + + var fn1, variable1, variable2, output; + function fn2() { + _export('output', output = variable1); + } + + _export('fn2', fn2); + + return { + setters: [function (_circular1Js) { + fn1 = _circular1Js.fn1; + variable1 = _circular1Js.variable1; + var _exportObj = {}; + _exportObj.output1 = _circular1Js.output; + + _export(_exportObj); + }], + execute: function () { + _export('variable2', variable2 = 'test circular 2'); + + _export('variable2', variable2); + + fn1(); + + _export('output', output); + } + }; + }); + loader.register('circular1.js', ['circular2.js'], function (_export, _context) { + "use strict"; + + var fn2, variable2, variable1, output; + function fn1() { + _export('output', output = variable2); + } + + _export('fn1', fn1); + + return { + setters: [function (_circular2Js) { + fn2 = _circular2Js.fn2; + variable2 = _circular2Js.variable2; + var _exportObj = {}; + _exportObj.output2 = _circular2Js.output; + + _export(_exportObj); + }], + execute: function () { + _export('variable1', variable1 = 'test circular 1'); + + _export('variable1', variable1); + + fn2(); + + _export('output', output); + } + }; + }); + loader.register("direct.js", ['es6-dep.js'], function (_export, _context) { + "use strict"; + + var p; + return { + setters: [function (_es6DepJs) { + p = _es6DepJs.p; + }], + execute: function () {} + }; + }); + loader.register("test-file.js", [], function (_export, _context) { + "use strict"; + + var s; + function q() {} + + _export("default", q); + + return { + setters: [], + execute: function () { + _export("s", s = 4); + + _export("s", s); + } + }; + }); + loader.register('es6-file.js', ['test-file.js'], function (_export, _context) { + "use strict"; + + var Q, p; + return { + setters: [function (_testFileJs) { + Q = _testFileJs; + }], + execute: function () { + class q { + foo() { + throw 'g'; + console.log('class method'); + } + } + + _export('q', q); + + _export('default', 4); + + p = 5; + } + }; + }); + loader.register('es6-dep.js', [], function (_export, _context) { + "use strict"; + + var p; + return { + setters: [], + execute: function () { + _export('p', p = 'p'); + + _export('p', p); + } + }; + }); + loader.register("es6-withdep.js", ['es6-dep.js'], function (_export, _context) { + "use strict"; + + return { + setters: [function (_es6DepJs) { + var _exportObj = {}; + _exportObj.p = _es6DepJs.p; + + _export(_exportObj); + }], + execute: function () {} + }; + }); + loader.register('es6.js', [], function (_export, _context) { + "use strict"; + + var p; + return { + setters: [], + execute: function () { + _export('p', p = 'p'); + + _export('p', p); + } + }; + }); + loader.register('odd.js', ['even.js'], function (_export, _context) { + "use strict"; + + var even; + function odd(n) { + return n != 0 && even(n - 1); + } + + _export('odd', odd); + + return { + setters: [function (_evenJs) { + even = _evenJs.even; + }], + execute: function () {} + }; + }); + loader.register('even.js', ['odd.js'], function (_export, _context) { + "use strict"; + + var odd, counter; + function even(n) { + _export('counter', counter++); + return n == 0 || odd(n - 1); + } + + _export('even', even); + + return { + setters: [function (_oddJs) { + odd = _oddJs.odd; + }], + execute: function () { + _export('counter', counter = 0); + + _export('counter', counter); + + odd(1); + } + }; + }); + loader.register('export-default.js', [], function (_export, _context) { + "use strict"; + + _export('default', function () { + return 'test'; + }); + + return { + setters: [], + execute: function () {} + }; + }); + loader.register('star-dep.js', [], function (_export, _context) { + "use strict"; + + var foo; + return { + setters: [], + execute: function () { + _export('foo', foo = 'foo'); + + _export('foo', foo); + } + }; + }); + loader.register("export-star.js", ['star-dep.js'], function (_export, _context) { + "use strict"; + + var bar; + return { + setters: [function (_starDepJs) { + var _exportObj = {}; + + for (var _key in _starDepJs) { + if (_key !== "default" && _key !== "__esModule") _exportObj[_key] = _starDepJs[_key]; + } + + _export(_exportObj); + }], + execute: function () { + _export('bar', bar = 'bar'); + + _export('bar', bar); + } + }; + }); + loader.register('export-star2.js', ['export-star.js'], function (_export, _context) { + "use strict"; + + function foo() {} + + _export('foo', foo); + + return { + setters: [function (_exportStarJs) { + var _exportObj = {}; + + for (var _key in _exportStarJs) { + if (_key !== "default" && _key !== "__esModule") _exportObj[_key] = _exportStarJs[_key]; + } + + _export(_exportObj); + }], + execute: function () {} + }; + }); + loader.register("reexport1.js", ['export.js'], function (_export, _context) { + "use strict"; + + return { + setters: [function (_exportJs) { + var _exportObj = {}; + + for (var _key in _exportJs) { + if (_key !== "default" && _key !== "__esModule") _exportObj[_key] = _exportJs[_key]; + } + + _export(_exportObj); + }], + execute: function () {} + }; + }); + loader.register("export.js", [], function (_export, _context) { + "use strict"; + + var p, q, s; + function foo() {} + _export("foo", foo); + + function bar() {} + _export("default", bar); + + return { + setters: [], + execute: function () { + _export("p", p = 5); + + _export("p", p); + + ; + + _export("m", _export("q", q = {})); + + _export("q", q); + + ; + + _export("t", _export("s", s = 4)); + + _export("s", s); + + _export("t", s); + + _export("m", q); + } + }; + }); + loader.register('reexport2.js', ['export.js'], function (_export, _context) { + "use strict"; + + return { + setters: [function (_exportJs) { + var _exportObj = {}; + _exportObj.q = _exportJs.t; + _exportObj.z = _exportJs.p; + + _export(_exportObj); + }], + execute: function () { + _export('default', 4); + } + }; + }); + loader.register('import.js', ['export.js', 'reexport1.js', 'reexport2.js'], function (_export, _context) { + "use strict"; + + var d, p, z, r, q; + return { + setters: [function (_exportJs) { + d = _exportJs.default; + }, function (_reexport1Js) { + p = _reexport1Js.s; + q = _reexport1Js; + }, function (_reexport2Js) { + z = _reexport2Js.z; + r = _reexport2Js.q; + }], + execute: function () { + _export('a', d); + + _export('b', p); + + _export('c', z); + + _export('d', r); + + _export('q', q); + } + }; + }); + loader.register("moduleName.js", [], function (_export, _context) { + "use strict"; + + var name; + return { + setters: [], + execute: function () { + _export("name", name = _context.id); + + _export("name", name); + } + }; + }); + loader.register('no-imports.js', [], function (_export, _context) { + "use strict"; + + var asdf; + return { + setters: [], + execute: function () { + _export('asdf', asdf = 'asdf'); + + _export('asdf', asdf); + } + }; + }); + loader.register("rebinding.js", [], function (_export, _context) { + "use strict"; + + var p; + return { + setters: [], + execute: function () { + _export("p", p = 4); + + _export("p", p); + } + }; + }); + loader.register("reexport-binding.js", ['rebinding.js'], function (_export, _context) { + "use strict"; + + return { + setters: [function (_rebindingJs) { + var _exportObj = {}; + _exportObj.p = _rebindingJs.p; + + _export(_exportObj); + }], + execute: function () {} + }; + }); + loader.register('c.js', ['a.js'], function (_export, _context) { + "use strict"; + + var c; + return { + setters: [function (_aJs) { + var _exportObj = {}; + _exportObj.a = _aJs.a; + _exportObj.b = _aJs.b; + + _export(_exportObj); + }], + execute: function () { + _export('c', c = 'c'); + + _export('c', c); + } + }; + }); + loader.register('b.js', [], function (_export, _context) { + "use strict"; + + var b; + return { + setters: [], + execute: function () { + _export('b', b = 'b'); + + _export('b', b); + } + }; + }); + loader.register('a.js', ['b.js'], function (_export, _context) { + "use strict"; + + var a; + return { + setters: [function (_bJs) { + var _exportObj = {}; + _exportObj.b = _bJs.b; + + _export(_exportObj); + }], + execute: function () { + _export('a', a = 'a'); + + _export('a', a); + } + }; + }); + loader.register('s.js', ['c.js', 'a.js'], function (_export, _context) { + "use strict"; + + var s; + return { + setters: [function (_cJs) { + var _exportObj = {}; + _exportObj.b = _cJs.b; + _exportObj.c = _cJs.c; + + _export(_exportObj); + }, function (_aJs) { + var _exportObj2 = {}; + _exportObj2.a = _aJs.a; + + _export(_exportObj2); + }], + execute: function () { + _export('s', s = 's'); + + _export('s', s); + } + }; + }); +} + +var toImport = [ + 'no-imports.js', + 'es6-withdep.js', + 'direct.js', + 'es6-file.js', + 'import.js', + 'moduleName.js', + 'circular1.js', + 'circular2.js', + 'even.js', + 'a.js', + 'c.js', + 's.js', + '_a.js', + '_e.js', + '_f.js', + '_h.js', + 'export.js', + 'export-default.js', + 'reexport1.js', + 'reexport-binding.js', + 'rebinding.js', + 'reexport2.js', + 'export-star.js', + 'export-star2.js' +]; +function doImports(loader) { + return Promise.all(toImport.map(function(name) { + return loader.import(name); + })); +} + +suite.add('Importing a bundle', async function() { + var loader = new RegisterLoader(); + loader.normalize = function(key) { return key; }; + declareBundle(loader); + return doImports(loader) + .catch(function(err) { + console.log(err); + throw err; + }); +}); \ No newline at end of file diff --git a/bench/1-url-resolution.js b/bench/2-url-resolution.js similarity index 100% rename from bench/1-url-resolution.js rename to bench/2-url-resolution.js diff --git a/core/register-loader.js b/core/register-loader.js index 37624d7..cecb55b 100644 --- a/core/register-loader.js +++ b/core/register-loader.js @@ -304,7 +304,7 @@ RegisterLoader.prototype.register = function(key, deps, declare) { // all other named defines, can be directly processed else { - registerModule(key, deps, declare); + registerModule.call(this, key, deps, declare); } }; diff --git a/core/resolve.js b/core/resolve.js index 5ddade2..fb6902a 100644 --- a/core/resolve.js +++ b/core/resolve.js @@ -20,7 +20,7 @@ export function resolveUrlToParentIfNotPlain(relUrl, parentUrl) { return relUrl; } - var parentProtocol = parentUrl.substr(0, parentUrl.indexOf(':') + 1); + var parentProtocol = parentUrl && parentUrl.substr(0, parentUrl.indexOf(':') + 1); // protocol-relative if (relUrl[0] === '/' && relUrl[1] === '/') { @@ -38,6 +38,8 @@ export function resolveUrlToParentIfNotPlain(relUrl, parentUrl) { var pathname; if (parentIsPlain) { // resolving to a plain parent -> skip standard URL prefix, and treat entire parent as pathname + if (parentUrl === undefined) + throwResolveError(); pathname = parentUrl; } else if (parentUrl[parentProtocol.length + 1] === '/') { From 8dc7a6fe460e49c7f34ef37fc32c659baa817c8a Mon Sep 17 00:00:00 2001 From: guybedford Date: Fri, 12 Aug 2016 14:14:34 +0200 Subject: [PATCH 290/482] err handling polishing and tests --- README.md | 2 +- core/common.js | 54 +++++++------- core/loader-polyfill.js | 7 +- core/register-loader.js | 12 ++-- test/3-register-loader.js | 70 ++++++++----------- test/fixtures/es-modules/load-non-existent.js | 2 +- 6 files changed, 65 insertions(+), 82 deletions(-) diff --git a/README.md b/README.md index 8cbd287..e8bbd0b 100644 --- a/README.md +++ b/README.md @@ -176,7 +176,7 @@ and not ModuleStatus objects as promises for Namespace objects (Module.evaluate This is to allow individual loader implementations to determine their own impact on the environment. - A constructor argument is added to the loader that takes the environment baseKey to be used as the default normalization parent. - An internal `Loader.prototype[Loader.instantiate]` hook is used as well as the `Loader.prototype[Loader.resolve]` hook - in order to ensure that uses of `loader.resolve` do not have to result in module loading and execution, as discussed in https://github.com/whatwg/loader/issues/147#issuecomment-232314879. + in order to ensure that uses of `loader.resolve` do not have to result in module loading and execution, as discussed in https://github.com/whatwg/loader/issues/147#issuecomment-230407764. ## License Licensed under the MIT license. diff --git a/core/common.js b/core/common.js index 57c71c0..bd04965 100644 --- a/core/common.js +++ b/core/common.js @@ -82,43 +82,37 @@ else { } /* - * Error chaining for loader stacks + * LoaderError with chaining for loader stacks */ var errArgs = new Error(0, '_').fileName == '_'; +export function LoaderError(message, childErr) { + this.name = 'LoaderError'; -export function addToError(err, msg) { - // parse the stack removing loader code lines for simplification - if (!err.originalErr) { - var stack = (err.stack || err.message || err).toString().split('\n'); - var newStack; - - // if the error stack doesn't start in SystemJS, skip the SystemJS stack part - newStack = []; - for (var i = 0; i < stack.length; i++) - if (loaderSrc && stack[i].indexOf(loaderSrc) === -1) - newStack.push(stack[i]); - } + if (childErr) { + // Convert file:/// URLs to paths in Node + if (!isBrowser) + message = message.replace(isWindows ? /file:\/\/\//g : /file:\/\//g, ''); - var newMsg = '(SystemJS) ' + (newStack ? newStack.join('\n\t') : err.message.substr(11)) + '\n\t' + msg; + this.message = (childErr.message || childErr) + '\n\t' + message; - // Convert file:/// URLs to paths in Node - if (!isBrowser) - newMsg = newMsg.replace(isWindows ? /file:\/\/\//g : /file:\/\//g, ''); + this.stack = childErr.originalErr ? childErr.originalErr.stack : childErr.stack; + this.originalErr = childErr.originalErr || childErr; - var newErr = errArgs ? new Error(newMsg, err.fileName, err.lineNumber) : new Error(newMsg); - - // Node needs stack adjustment for throw to show message - if (!isBrowser) - newErr.stack = newMsg; - // Clearing the stack stops unnecessary loader lines showing - else - newErr.stack = null; - - // track the original error - newErr.originalErr = err.originalErr || err; - - return newErr; + // NB test if this actually works!? + // filename and line support + if (errArgs && childErr && childErr.fileName) + Error.call(this, message, childErr.fileName, childErr.lineNumber); + } + else { + this.message = message; + if (Error.captureStackTrace) + Error.captureStackTrace(this, LoaderError); + else + this.stack = new Error().stack; + } } +LoaderError.prototype = Object.create(Error.prototype); +LoaderError.prototype.constructor = LoaderError; /* * Simple Symbol() shim diff --git a/core/loader-polyfill.js b/core/loader-polyfill.js index f39a40a..8003416 100644 --- a/core/loader-polyfill.js +++ b/core/loader-polyfill.js @@ -1,4 +1,4 @@ -import { arrayValues, createSymbol, addToError } from './common.js'; +import { arrayValues, createSymbol, LoaderError } from './common.js'; export { Loader, Module, ModuleNamespace as InternalModuleNamespace } /* @@ -40,7 +40,7 @@ var INSTANTIATE = Loader.instantiate = createSymbol('instantiate'); Loader.prototype.resolve = function(key, parent) { return this[RESOLVE](key, parent) .catch(function(err) { - addToError(err, 'Resolving ' + key + (parent ? ' to ' + parent : '')); + throw new LoaderError('Resolving ' + key + (parent ? ' to ' + parent : ''), err); }); }; @@ -72,8 +72,7 @@ Loader.prototype.load = function(key, parent) { }); }) .catch(function(err) { - addToError(err, 'Loading ' + key + (resolvedKey ? ' as ' + resolvedKey : '') + (parent ? ' from ' + parent : '')); - throw err; + throw new LoaderError('Loading ' + key + (resolvedKey ? ' as ' + resolvedKey : '') + (parent ? ' from ' + parent : ''), err); }); }; diff --git a/core/register-loader.js b/core/register-loader.js index cecb55b..a3a1465 100644 --- a/core/register-loader.js +++ b/core/register-loader.js @@ -1,6 +1,6 @@ import { Loader, Module, InternalModuleNamespace as ModuleNamespace } from './loader-polyfill.js'; import { resolveUrlToParentIfNotPlain } from './resolve.js'; -import { addToError, global } from './common.js'; +import { LoaderError, global } from './common.js'; export default RegisterLoader; @@ -141,7 +141,7 @@ function instantiate(loader, key) { return load; }) .catch(function(err) { - err = addToError(err, 'Instantiating ' + load.key); + err = new LoaderError('Instantiating ' + load.key, err); // immediately clear the load record for an instantiation error if (loader._registerRegistry[load.key] === load) @@ -176,7 +176,7 @@ function instantiateAllDeps(loader, load, seen) { // this resolve can potentially be cached on the link record, should be a measured optimization instantiateDepsPromises[i] = loader[RESOLVE](esLinkRecord.dependencies[i], load.key) .catch(function(err) { - throw addToError(err, 'Resolving ' + esLinkRecord.dependencies[i] + ' to ' + load.key); + throw new LoaderError('Resolving ' + esLinkRecord.dependencies[i] + ' to ' + load.key, err); }) .then(function(resolvedDepKey) { var existingNamespace = loader.registry.get(resolvedDepKey); @@ -227,7 +227,7 @@ function instantiateAllDeps(loader, load, seen) { return Promise.all(instantiateDepsPromises) .catch(function(err) { - err = addToError(err, 'Loading ' + load.key); + err = new LoaderError('Loading ' + load.key, err); // throw up the instantiateAllDeps stack // loads are then synchonously cleared at the top-level through the helper below @@ -423,7 +423,7 @@ function ensureEvaluated(loader, load, seen) { err = ensureEvaluated(loader, depLoad, seen); if (err) - return addToError(err, 'Evaluating ' + load.key); + return new LoaderError('Evaluating ' + load.key, err); } // es load record evaluation @@ -433,7 +433,7 @@ function ensureEvaluated(loader, load, seen) { loader.registry.delete(load.key); if (loader._registerRegistry[load.key] === load) loader._registerRegistry[load.key] = undefined; - return addToError(err, 'Evaluating ' + load.key); + return new LoaderError('Evaluating ' + load.key, err); } load.module = new ModuleNamespace(esLinkRecord.moduleObj); diff --git a/test/3-register-loader.js b/test/3-register-loader.js index 14a2253..9c43684 100644 --- a/test/3-register-loader.js +++ b/test/3-register-loader.js @@ -1,7 +1,7 @@ import assert from 'assert'; import path from 'path'; import SystemRegisterLoader from './fixtures/system-register-loader.js'; -import { pathToFileUrl } from '../core/common.js'; +import { pathToFileUrl, fileUrlToPath } from '../core/common.js'; describe('System Register Loader', function() { var loader = new SystemRegisterLoader(path.resolve('test/fixtures/register-modules') + path.sep); @@ -181,51 +181,41 @@ describe('System Register Loader', function() { assert.equal(typeof m.foo, 'function'); }); }); -}); -/* + describe('Errors', function () { -describe('errors', function () { + var testPath = fileUrlToPath(loader.key); - function supposedToFail() { - assert.equal(false, 'should not be successful').to.be.ok(); - } + async function getImportError(module) { + try { + await loader.import(module); + } + catch(e) { + return e.toString(); + } + throw new Error('Test supposed to fail'); + } - it('should throw if on syntax error', async function() { - var m = await loader.import('./main.js'); - .then(supposedToFail) - .catch(function(e) { - assert.equal(e) - .to.be.equal('dep error\n\tError evaluating ' + './deperror.js\n\tError evaluating ' + './main.js'); - }) - }); + it('should throw if on syntax error', async function() { + var err = await getImportError('./main.js'); + assert.equal(err, 'LoaderError: dep error\n\tEvaluating ' + testPath + 'deperror.js\n\tEvaluating ' + testPath + 'main.js\n\tLoading ./main.js'); + }); - it('should throw what the script throws', async function() { - var m = await loader.import('./deperror.js'); - .then(supposedToFail) - .catch(function(e) { - assert.equal(e) - .to.be.equal('dep error\n\tError evaluating ' + './deperror.js'); - }) - }); + it('should throw what the script throws', async function() { + var err = await getImportError('./deperror.js'); + assert.equal(err, 'LoaderError: dep error\n\tEvaluating ' + testPath + 'deperror.js\n\tLoading ./deperror.js'); + }); + it('404 error', async function() { + var err = await getImportError('./load-non-existent.js'); + var lines = err.split('\n\t'); + assert(lines[0].startsWith('LoaderError: ')); + assert(lines[0].endsWith('open \'' + testPath + 'non-existent.js\'')); + assert.equal(lines[1], 'Instantiating ' + testPath + 'non-existent.js'); + assert.equal(lines[2], 'Loading ' + testPath + 'load-non-existent.js'); + assert.equal(lines[3], 'Loading ./load-non-existent.js'); + }); - it('404 error', async function() { - var m = await loader.import('./load-non-existent.js'); - .then(supposedToFail) - .catch(function (e) { - var b = typeof window == 'undefined' ? base.substr(7) : base; - var e; - if (typeof window == 'undefined') { - e = e.toString().substr(14); - if (e.substr(26, 1) == ',') - e = e.substr(27); - } - assert.equal(e.toString()) - .to.be.equal((typeof window == 'undefined' ? ' open \'' : 'Error: GET ') + b + './non-existent.js' + (typeof window == 'undefined' ? '\'' : ' 404 (Not Found)') + '\n\tFetching ' + './non-existent.js\n\tLoading ' + './load-non-existent.js'); - }) }); -}); - -*/ \ No newline at end of file +}); \ No newline at end of file diff --git a/test/fixtures/es-modules/load-non-existent.js b/test/fixtures/es-modules/load-non-existent.js index 4ecf35c..1a68974 100644 --- a/test/fixtures/es-modules/load-non-existent.js +++ b/test/fixtures/es-modules/load-non-existent.js @@ -1 +1 @@ -import 'non-existent.js'; \ No newline at end of file +import './non-existent.js'; \ No newline at end of file From 910a8ee46fb2dd8ab894ddfcea70c43fae8b18e5 Mon Sep 17 00:00:00 2001 From: guybedford Date: Fri, 12 Aug 2016 14:27:23 +0200 Subject: [PATCH 291/482] benchmark comparison to systemjs --- bench/1-register-loading.js | 15 ++++++++++++++- bench/runner.js | 2 +- package.json | 3 ++- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/bench/1-register-loading.js b/bench/1-register-loading.js index a3cfa55..7bd314c 100644 --- a/bench/1-register-loading.js +++ b/bench/1-register-loading.js @@ -689,4 +689,17 @@ suite.add('Importing a bundle', async function() { console.log(err); throw err; }); -}); \ No newline at end of file +}); + +suite.add('Importing with SystemJS', async function() { + var curSystem = global.System; + var SystemJS = require('systemjs'); + global.System = curSystem; + var loader = new SystemJS.constructor(); + declareBundle(loader); + return doImports(loader) + .catch(function(err) { + console.log(err); + throw err; + }); +}) \ No newline at end of file diff --git a/bench/runner.js b/bench/runner.js index e6b52fc..ee383c7 100644 --- a/bench/runner.js +++ b/bench/runner.js @@ -30,7 +30,7 @@ function runNextBenchmark() { suite.on('error', reject); - suite.run({ async: true }); + suite.run({ async: true, maxTime: 1, minSamples: 1 }); }); }) .then(function() { diff --git a/package.json b/package.json index 25d3013..dbcfea7 100644 --- a/package.json +++ b/package.json @@ -26,7 +26,8 @@ "babel-plugin-transform-es2015-modules-systemjs": "^6.12.0", "benchmark": "^2.1.1", "mocha": "^3.0.2", - "node-es-module-loader": "^0.1.1" + "node-es-module-loader": "^0.1.1", + "systemjs": "^0.19.36" }, "keywords": [ "modules", From e030453970c1a990d132125493d1dd6ea6e3cc6c Mon Sep 17 00:00:00 2001 From: guybedford Date: Fri, 12 Aug 2016 14:49:11 +0200 Subject: [PATCH 292/482] reduce common api --- core/common.js | 92 ++++++++--------------------------------- core/loader-polyfill.js | 42 ++++++++++++++++++- 2 files changed, 59 insertions(+), 75 deletions(-) diff --git a/core/common.js b/core/common.js index bd04965..cc15b57 100644 --- a/core/common.js +++ b/core/common.js @@ -22,33 +22,6 @@ export function fileUrlToPath(fileUrl) { return fileUrl.substr(7); } -/* - * Path to loader itself - */ -export var loaderSrc; - -if (isBrowser) { - if (document.currentScript) - loaderSrc = document.currentScript.src; - - var scripts = document.getElementsByTagName('script'); - var curScript = scripts.length && scripts[scripts.length - 1]; - if (curScript && !curScript.defer && !curScript.async) - loaderSrc = curScript.src; -} -else if (isWorker) { - try { - throw new Error('_'); - } catch (e) { - e.stack.replace(/(?:at|@).*(http.+):[\d]+:[\d]+/, function(m, url) { - loaderSrc = url; - }); - } -} -else if (typeof __filename != 'undefined') { - loaderSrc = __filename; -} - /* * Environment baseURI */ @@ -98,58 +71,29 @@ export function LoaderError(message, childErr) { this.stack = childErr.originalErr ? childErr.originalErr.stack : childErr.stack; this.originalErr = childErr.originalErr || childErr; - // NB test if this actually works!? - // filename and line support - if (errArgs && childErr && childErr.fileName) - Error.call(this, message, childErr.fileName, childErr.lineNumber); + // filename and line support in Firefox (no longer LoaderError: text though unfortunately) + if (errArgs && childErr.fileName) { + var err = new Error(this.message, childErr.fileName, childErr.lineNumber); + err.__proto__ = LoaderError; + err.originalErr = this.originalErr; + return err; + } } else { this.message = message; - if (Error.captureStackTrace) + if (Error.captureStackTrace) { Error.captureStackTrace(this, LoaderError); - else + } + // firefox case + else if (errArgs) { + var err = new Error(message); + err.__proto__ = LoaderError; + return err; + } + else { this.stack = new Error().stack; + } } } LoaderError.prototype = Object.create(Error.prototype); -LoaderError.prototype.constructor = LoaderError; - -/* - * Simple Symbol() shim - */ -var hasSymbol = typeof Symbol !== 'undefined'; -export function createSymbol(name) { - return hasSymbol ? Symbol() : '@@' + name; -} - -/* - * Simple Array values shim - */ -export function arrayValues(arr) { - if (arr.values) - return arr.values(); - - if (typeof Symbol === 'undefined' || !Symbol.iterator) - throw new Error('Cannot return values iterator unless Symbol.iterator is defined'); - - var iterable = {}; - iterable[Symbol.iterator] = function() { - var keys = Object.keys(arr); - var keyIndex = 0; - return { - next: function() { - if (keyIndex < keys.length) - return { - value: arr[keys[keyIndex++]], - done: false - }; - else - return { - value: undefined, - done: true - }; - } - }; - }; - return iterable; -} \ No newline at end of file +LoaderError.prototype.constructor = LoaderError; \ No newline at end of file diff --git a/core/loader-polyfill.js b/core/loader-polyfill.js index 8003416..b47c5a4 100644 --- a/core/loader-polyfill.js +++ b/core/loader-polyfill.js @@ -1,6 +1,46 @@ -import { arrayValues, createSymbol, LoaderError } from './common.js'; +import { LoaderError } from './common.js'; export { Loader, Module, ModuleNamespace as InternalModuleNamespace } +/* + * Simple Symbol() shim + */ +var hasSymbol = typeof Symbol !== 'undefined'; +function createSymbol(name) { + return hasSymbol ? Symbol() : '@@' + name; +} + +/* + * Simple Array values shim + */ +function arrayValues(arr) { + if (arr.values) + return arr.values(); + + if (typeof Symbol === 'undefined' || !Symbol.iterator) + throw new Error('Cannot return values iterator unless Symbol.iterator is defined'); + + var iterable = {}; + iterable[Symbol.iterator] = function() { + var keys = Object.keys(arr); + var keyIndex = 0; + return { + next: function() { + if (keyIndex < keys.length) + return { + value: arr[keys[keyIndex++]], + done: false + }; + else + return { + value: undefined, + done: true + }; + } + }; + }; + return iterable; +} + /* * 3. Reflect.Loader * From 3c7fe0b368d712a8faaee85ef56c9b3110433235 Mon Sep 17 00:00:00 2001 From: guybedford Date: Fri, 12 Aug 2016 17:32:14 +0200 Subject: [PATCH 293/482] remove fetch api, simplify api, ensure register is always deferred, benchmark updates --- bench/1-register-loading.js | 67 +++++++----- bench/runner.js | 2 +- core/common.js | 9 +- core/fetch.js | 138 ------------------------ core/loader-polyfill.js | 4 +- core/register-loader.js | 91 +++++++--------- test/fixtures/system-register-loader.js | 77 +++++++++++-- 7 files changed, 155 insertions(+), 233 deletions(-) delete mode 100644 core/fetch.js diff --git a/bench/1-register-loading.js b/bench/1-register-loading.js index 7bd314c..1a784f6 100644 --- a/bench/1-register-loading.js +++ b/bench/1-register-loading.js @@ -648,6 +648,44 @@ function declareBundle(loader) { }); } +async function declaredSystemJSLoader() { + var curSystem = global.System; + var SystemJS = (await loader.import('systemjs')).default; + global.System = curSystem; + var sjsLoader = new SystemJS.constructor(); + declareBundle(sjsLoader); + return sjsLoader; +} + +async function declaredRegisterLoader() { + var loader = new RegisterLoader(); + loader.normalize = function(key) { return key; }; + declareBundle(loader); + return loader; +} + +suite.add('Importing a single registered module with SystemJS', async function() { + var loader = await declaredSystemJSLoader(); + await loader.import('no-imports.js'); +}); + +suite.add('Importing a single registered module with RegisterLoader', async function() { + var loader = await declaredRegisterLoader(); + await loader.import('no-imports.js'); +}); + +suite.add('Importing a module with deps with RegisterLoader', async function() { + var loader = await declaredRegisterLoader(); + await loader.import('es6-withdep.js'); +}); + +suite.add('Importing a module with deps with SystemJS', async function() { + var loader = await declaredSystemJSLoader(); + await loader.import('es6-withdep.js'); +}); + + + var toImport = [ 'no-imports.js', 'es6-withdep.js', @@ -674,32 +712,3 @@ var toImport = [ 'export-star.js', 'export-star2.js' ]; -function doImports(loader) { - return Promise.all(toImport.map(function(name) { - return loader.import(name); - })); -} - -suite.add('Importing a bundle', async function() { - var loader = new RegisterLoader(); - loader.normalize = function(key) { return key; }; - declareBundle(loader); - return doImports(loader) - .catch(function(err) { - console.log(err); - throw err; - }); -}); - -suite.add('Importing with SystemJS', async function() { - var curSystem = global.System; - var SystemJS = require('systemjs'); - global.System = curSystem; - var loader = new SystemJS.constructor(); - declareBundle(loader); - return doImports(loader) - .catch(function(err) { - console.log(err); - throw err; - }); -}) \ No newline at end of file diff --git a/bench/runner.js b/bench/runner.js index ee383c7..219f664 100644 --- a/bench/runner.js +++ b/bench/runner.js @@ -20,7 +20,7 @@ function runNextBenchmark() { .then(function() { return new Promise(function(resolve, reject) { suite.on('cycle', function(event) { - console.log(String(event.target)); + console.log(event.target.error ? event.target.error : String(event.target)); }); suite.on('complete', function(event) { diff --git a/core/common.js b/core/common.js index cc15b57..3c51793 100644 --- a/core/common.js +++ b/core/common.js @@ -2,9 +2,8 @@ * Environment */ export var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined'; -export var isWorker = typeof window === 'undefined' && typeof self !== 'undefined' && typeof importScripts !== 'undefined'; -export var isWindows = typeof process !== 'undefined' && typeof process.platform === 'string' && process.platform.match(/^win/); export var isNode = typeof process !== 'undefined' && process.versions && process.versions.node; +export var isWindows = typeof process !== 'undefined' && typeof process.platform === 'string' && process.platform.match(/^win/); var envGlobal = typeof self !== 'undefined' ? self : global; export { envGlobal as global } @@ -68,7 +67,11 @@ export function LoaderError(message, childErr) { this.message = (childErr.message || childErr) + '\n\t' + message; - this.stack = childErr.originalErr ? childErr.originalErr.stack : childErr.stack; + // node doesn't show the message otherwise + if (isNode) + this.stack = this.message; + else + this.stack = childErr.originalErr ? childErr.originalErr.stack : childErr.stack; this.originalErr = childErr.originalErr || childErr; // filename and line support in Firefox (no longer LoaderError: text though unfortunately) diff --git a/core/fetch.js b/core/fetch.js deleted file mode 100644 index 621b318..0000000 --- a/core/fetch.js +++ /dev/null @@ -1,138 +0,0 @@ -import { isWindows } from './common.js'; - -/* - * Script loading - */ -// script load can rely on a sync onload callback function -// hence the use of a callback -export function scriptLoad(src, resolve, reject) { - var script = document.createElement('script'); - script.type = 'text/javascript'; - script.charset = 'utf-8'; - script.async = true; - - script.addEventListener('load', load, false); - script.addEventListener('error', error, false); - - script.src = src; - document.head.appendChild(script); - - function load() { - cleanup(); - resolve(); - } - - function error(err) { - cleanup(); - reject(new Error('Fetching ' + src)); - } - - function cleanup() { - script.removeEventListener('load', load, false); - script.removeEventListener('error', error, false); - document.head.removeChild(script); - } -} - -/* - * Source loading - */ -export var envFetch; - -if (typeof XMLHttpRequest != 'undefined') - envFetch = xhrFetch; -else if (typeof module !== 'undefined' && module.require && typeof process !== 'undefined') - envFetch = nodeFetch; -else if (typeof self !== 'undefined' && self.fetch) - envFetch = fetchFetch; - -export function xhrFetch(url, authorization, fulfill, reject) { - var xhr = new XMLHttpRequest(); - function load() { - fulfill(xhr.responseText); - } - function error() { - reject(new Error('XHR error' + (xhr.status ? ' (' + xhr.status + (xhr.statusText ? ' ' + xhr.statusText : '') + ')' : '') + ' loading ' + url)); - } - - xhr.onreadystatechange = function () { - if (xhr.readyState === 4) { - // in Chrome on file:/// URLs, status is 0 - if (xhr.status == 0) { - if (xhr.responseText) { - load(); - } - else { - // when responseText is empty, wait for load or error event - // to inform if it is a 404 or empty file - xhr.addEventListener('error', error); - xhr.addEventListener('load', load); - } - } - else if (xhr.status === 200) { - load(); - } - else { - error(); - } - } - }; - xhr.open("GET", url, true); - - if (xhr.setRequestHeader) { - xhr.setRequestHeader('Accept', 'application/x-es-module, */*'); - // can set "authorization: true" to enable withCredentials only - if (authorization) { - if (typeof authorization == 'string') - xhr.setRequestHeader('Authorization', authorization); - xhr.withCredentials = true; - } - } - - xhr.send(null); -} - -var fs; -export function nodeFetch(url, authorization, fulfill, reject) { - if (url.substr(0, 8) != 'file:///') - throw new Error('Unable to fetch "' + url + '". Only file URLs of the form file:/// allowed running in Node.'); - fs = fs || module.require('fs'); - if (isWindows) - url = url.replace(/\//g, '\\').substr(8); - else - url = url.substr(7); - return fs.readFile(url, function(err, data) { - if (err) { - return reject(err); - } - else { - // Strip Byte Order Mark out if it's the leading char - var dataString = data + ''; - if (dataString[0] === '\ufeff') - dataString = dataString.substr(1); - - fulfill(dataString); - } - }); -} - -export function fetchFetch(url, authorization, fulfill, reject) { - var opts = { - headers: {'Accept': 'application/x-es-module, */*'} - }; - - if (authorization) { - if (typeof authorization == 'string') - opts.headers['Authorization'] = authorization; - opts.credentials = 'include'; - } - - fetch(url, opts) - .then(function(res) { - if (res.ok) - return res.text(); - else - throw new Error('Fetch error: ' + res.status + ' ' + res.statusText); - }) - .then(fulfill, reject); -} \ No newline at end of file diff --git a/core/loader-polyfill.js b/core/loader-polyfill.js index b47c5a4..6fd93c6 100644 --- a/core/loader-polyfill.js +++ b/core/loader-polyfill.js @@ -1,4 +1,4 @@ -import { LoaderError } from './common.js'; +import { baseURI, LoaderError } from './common.js'; export { Loader, Module, ModuleNamespace as InternalModuleNamespace } /* @@ -48,7 +48,7 @@ function arrayValues(arr) { */ // 3.1.1 function Loader(baseKey) { - this.key = baseKey; + this.key = baseKey || baseURI; this.registry = new Registry(); // evaluation flag to allow for tracing loaders diff --git a/core/register-loader.js b/core/register-loader.js index a3a1465..5f2690a 100644 --- a/core/register-loader.js +++ b/core/register-loader.js @@ -19,8 +19,11 @@ export var emptyModule = new ModuleNamespace({}); function RegisterLoader(baseKey) { Loader.apply(this, arguments); - // System.register registration queue - this._registerQueue = []; + // System.register registration cache + this._registerCache = {}; + + // last anonymous System.register call + this._registeredLastAnon = undefined; // in-flight es module load records this._registerRegistry = {}; @@ -130,9 +133,8 @@ function instantiate(loader, key) { return instantiation; } - // es module not already linked with no link record - if (!load.esLinkRecord && !load.importerSetters) - throw new TypeError('Module instantiation did not call an anonymous or correctly named System.register'); + // run the cached loader.register declaration if there is one + ensureRegisterLinkRecord.call(loader, load); // metadata no longer needed if (!loader.trace) @@ -159,9 +161,6 @@ function instantiateAllDeps(loader, load, seen) { var esLinkRecord = load.esLinkRecord; - // note that we've started linking this record - esLinkRecord.startedLinking = true; - // no dependencies shortpath if (!esLinkRecord.dependencies.length) return Promise.resolve(); @@ -255,7 +254,7 @@ function clearLoadErrors(loader, load) { if (depLoad.esLinkRecord && depLoad.esLinkRecord.error) { // unregister setters for es dependency load records - var setterIndex = depLoad.importerSetters.indexOf(esLinkRecord.setters[i]); + var setterIndex = depLoad.importerSetters.indexOf(esLinkRecord.setters[index]); depLoad.importerSetters.splice(setterIndex, 1); // provides a circular reference check @@ -267,7 +266,6 @@ function clearLoadErrors(loader, load) { function createESLinkRecord(dependencies, setters, module, moduleObj, execute) { return { - startedLinking: false, dependencies: dependencies, error: undefined, @@ -288,59 +286,47 @@ function createESLinkRecord(dependencies, setters, module, moduleObj, execute) { * Places the status into the registry and a load into the loads list */ RegisterLoader.prototype.register = function(key, deps, declare) { - // anonymous modules go onto the register queue - if (typeof declare === 'undefined') { - declare = deps; - deps = key; - key = undefined; - this._registerQueue.push([key, deps, declare]); - return; - } + // anonymous modules get stored as lastAnon + if (declare === undefined) + this._registeredLastAnon = [key, deps]; - // relative named defines go onto the queue - else if (key[0] === '.' && (key[1] === '/' || key[1] === '.' && key[2] === '/')) { - this._registerQueue.push([key, deps, declare]); - } - - // all other named defines, can be directly processed - else { - registerModule.call(this, key, deps, declare); - } + // everything else registers into the register cache + else + this._registerCache[key] = [deps, declare]; }; RegisterLoader.prototype.processRegisterContext = function(contextKey) { - if (!this._registerQueue.length) + if (!this._registeredLastAnon) return; - for (var i = 0; i < this._registerQueue.length; i++) { - var registration = this._registerQueue[i]; - var key = registration[0]; - registration[0] = key === undefined ? contextKey : resolveUrlToParentIfNotPlain(key, contextKey) || key; - registerModule.apply(this, registration); - } - - this._registerQueue = []; + this._registerCache[contextKey] = this._registeredLastAnon; + this._registeredLastAnon = undefined; }; -function registerModule(key, deps, declare) { - var load = getOrCreateLoadRecord(this, key); - - // usually registrations will overwrite the existing registrations present in the registry - // unless this load already has a load record in progress or completed - if (load.module || load.esLinkRecord && load.esLinkRecord.startedLinking) +function ensureRegisterLinkRecord(load) { + // ensure we already have a link record + if (load.esLinkRecord) return; + var key = load.key; + + var registrationPair = this._registerCache[key]; + + if (!registrationPair) + throw new TypeError('Module instantiation did not call an anonymous or correctly named System.register'); + + this._registerCache[key] = undefined; + var importerSetters = []; var moduleObj = {}; var locked = false; - var declared = declare.call(global, function(name, value) { + var declared = registrationPair[1].call(global, function(name, value) { // export setter propogation with locking to avoid cycles if (locked) return; - locked = true; if (typeof name == 'object') { for (var p in name) @@ -350,13 +336,16 @@ function registerModule(key, deps, declare) { moduleObj[name] = value; } - for (var i = 0; i < importerSetters.length; i++) - // this object should be a defined module object - // but in order to do that we need the exports returned by declare - // for now we assume no exports in the implementation - importerSetters[i](moduleObj); + if (importerSetters.length) { + locked = true; + for (var i = 0; i < importerSetters.length; i++) + // this object should be a defined module object + // but in order to do that we need the exports returned by declare + // for now we assume no exports in the implementation + importerSetters[i](moduleObj); - locked = false; + locked = false; + } return value; }, new ContextualLoader(this, key)); @@ -373,7 +362,7 @@ function registerModule(key, deps, declare) { // TODO, pass module when we can create it here already via exports load.importerSetters = importerSetters; - load.esLinkRecord = createESLinkRecord(deps, setters, undefined, moduleObj, execute); + load.esLinkRecord = createESLinkRecord(registrationPair[0], setters, undefined, moduleObj, execute); } // ContextualLoader class diff --git a/test/fixtures/system-register-loader.js b/test/fixtures/system-register-loader.js index bd6c2fe..dbed5e5 100644 --- a/test/fixtures/system-register-loader.js +++ b/test/fixtures/system-register-loader.js @@ -1,7 +1,6 @@ import RegisterLoader from '../../core/register-loader.js'; -import { isBrowser, isNode, global, baseURI } from '../../core/common.js'; +import { isBrowser, isNode, global, baseURI, fileUrlToPath } from '../../core/common.js'; import { resolveUrlToParentIfNotPlain } from '../../core/resolve.js'; -import { scriptLoad, nodeFetch } from '../../core/fetch.js'; /* * Example System Register loader @@ -36,21 +35,29 @@ SystemRegisterLoader.prototype.normalize = function(key, parent, metadata) { return key; }; +var fs; + // instantiate just needs to run System.register // so we load the module name as a URL, and expect that to run System.register SystemRegisterLoader.prototype.instantiate = function(key, metadata) { - var loader = this; + var thisLoader = this; return new Promise(function(resolve, reject) { if (isNode) - nodeFetch(key, undefined, function(source) { - eval(source); - loader.processRegisterContext(key); - resolve(); - }, reject); + Promise.resolve(fs || (fs = typeof require !== 'undefined' ? require('fs') : loader.import('fs').then(m => m.default))) + .then(function(fs) { + fs.readFile(fileUrlToPath(key), function(err, source) { + if (err) + return reject(err); + + (0, eval)(source.toString()); + thisLoader.processRegisterContext(key); + resolve(); + }); + }); else if (isBrowser) scriptLoad(key, function() { - loader.processRegisterContext(key); + thisLoader.processRegisterContext(key); resolve(); }, reject); else @@ -58,4 +65,56 @@ SystemRegisterLoader.prototype.instantiate = function(key, metadata) { }); }; +function nodeFetch(url, authorization, fulfill, reject) { + if (url.substr(0, 8) != 'file:///') + throw new Error('Unable to fetch "' + url + '". Only file URLs of the form file:/// allowed running in Node.'); + fs = fs || module.require('fs'); + if (isWindows) + url = url.replace(/\//g, '\\').substr(8); + else + url = url.substr(7); + return fs.readFile(url, function(err, data) { + if (err) { + return reject(err); + } + else { + // Strip Byte Order Mark out if it's the leading char + var dataString = data + ''; + if (dataString[0] === '\ufeff') + dataString = dataString.substr(1); + + fulfill(dataString); + } + }); +} + +function scriptLoad(src, resolve, reject) { + var script = document.createElement('script'); + script.type = 'text/javascript'; + script.charset = 'utf-8'; + script.async = true; + + script.addEventListener('load', load, false); + script.addEventListener('error', error, false); + + script.src = src; + document.head.appendChild(script); + + function load() { + resolve(); + cleanup(); + } + + function error(err) { + cleanup(); + reject(new Error('Fetching ' + src)); + } + + function cleanup() { + script.removeEventListener('load', load, false); + script.removeEventListener('error', error, false); + document.head.removeChild(script); + } +} + export default SystemRegisterLoader; \ No newline at end of file From 07936fe8b7fc14fdd1c1f95714a582bcd8536f19 Mon Sep 17 00:00:00 2001 From: guybedford Date: Sat, 13 Aug 2016 09:51:21 +0200 Subject: [PATCH 294/482] benchmark completion, revert to addToError for Promise-thrown display in Chrome --- bench/1-register-loading.js | 52 ++++++++++++++++++++++++--------- core/common.js | 57 +++++++++++++------------------------ core/loader-polyfill.js | 6 ++-- core/register-loader.js | 12 ++++---- 4 files changed, 67 insertions(+), 60 deletions(-) diff --git a/bench/1-register-loading.js b/bench/1-register-loading.js index 1a784f6..adad301 100644 --- a/bench/1-register-loading.js +++ b/bench/1-register-loading.js @@ -1,5 +1,16 @@ import RegisterLoader from '../core/register-loader.js'; +// sync require SystemJS in this scope +import Module from 'module'; +import { fileUrlToPath } from '../core/common.js'; + +var base = fileUrlToPath(__moduleName); +var parentModuleContext = new Module(base); +parentModuleContext.paths = Module._nodeModulePaths(base); +var curSystem = global.System; +var SystemJS = parentModuleContext.require('systemjs'); +global.System = curSystem; + function declareBundle(loader) { loader.register('_e.js', ['_c.js'], function (_export, _context) { "use strict"; @@ -648,45 +659,50 @@ function declareBundle(loader) { }); } -async function declaredSystemJSLoader() { - var curSystem = global.System; - var SystemJS = (await loader.import('systemjs')).default; - global.System = curSystem; +function declaredSystemJSLoader() { var sjsLoader = new SystemJS.constructor(); declareBundle(sjsLoader); return sjsLoader; } -async function declaredRegisterLoader() { +RegisterLoader.prototype.normalize = function(key) { return key; }; +function declaredRegisterLoader() { var loader = new RegisterLoader(); - loader.normalize = function(key) { return key; }; declareBundle(loader); return loader; } suite.add('Importing a single registered module with SystemJS', async function() { - var loader = await declaredSystemJSLoader(); + var loader = declaredSystemJSLoader(); await loader.import('no-imports.js'); }); suite.add('Importing a single registered module with RegisterLoader', async function() { - var loader = await declaredRegisterLoader(); + var loader = declaredRegisterLoader(); await loader.import('no-imports.js'); }); -suite.add('Importing a module with deps with RegisterLoader', async function() { - var loader = await declaredRegisterLoader(); +suite.add('Importing a module with deps with SystemJS', async function() { + var loader = declaredSystemJSLoader(); await loader.import('es6-withdep.js'); }); -suite.add('Importing a module with deps with SystemJS', async function() { - var loader = await declaredSystemJSLoader(); +suite.add('Importing a module with deps with RegisterLoader', async function() { + var loader = declaredRegisterLoader(); await loader.import('es6-withdep.js'); }); +suite.add('Importing a deep tree of modules with SystemJS', async function() { + var loader = declaredSystemJSLoader(); + await loader.import('_a.js'); +}); +suite.add('Importing a deep tree of modules with RegisterLoader', async function() { + var loader = declaredRegisterLoader(); + await loader.import('_a.js'); +}); -var toImport = [ +var allModules = [ 'no-imports.js', 'es6-withdep.js', 'direct.js', @@ -712,3 +728,13 @@ var toImport = [ 'export-star.js', 'export-star2.js' ]; + +suite.add('Importing mulitple trees at the same time with SystemJS', async function() { + var loader = declaredSystemJSLoader(); + await Promise.all(allModules.map(m => loader.import(m))); +}); + +suite.add('Importing mulitple trees at the same time with RegisterLoader', async function() { + var loader = declaredRegisterLoader(); + await Promise.all(allModules.map(m => loader.import(m))); +}); diff --git a/core/common.js b/core/common.js index 3c51793..142652d 100644 --- a/core/common.js +++ b/core/common.js @@ -57,46 +57,27 @@ else { * LoaderError with chaining for loader stacks */ var errArgs = new Error(0, '_').fileName == '_'; -export function LoaderError(message, childErr) { - this.name = 'LoaderError'; +function loaderErrorCheckErrorMessageAboveForLoaderStack(childErr, newMessage) { + // Convert file:/// URLs to paths in Node + if (!isBrowser) + newMessage = newMessage.replace(isWindows ? /file:\/\/\//g : /file:\/\//g, ''); - if (childErr) { - // Convert file:/// URLs to paths in Node - if (!isBrowser) - message = message.replace(isWindows ? /file:\/\/\//g : /file:\/\//g, ''); + var message = (childErr.message || childErr) + '\n\t' + newMessage; - this.message = (childErr.message || childErr) + '\n\t' + message; + var err; + if (errArgs && childErr.fileName) + err = new Error(message, childErr.fileName, childErr.lineNumber); + else + err = new Error(message); - // node doesn't show the message otherwise - if (isNode) - this.stack = this.message; - else - this.stack = childErr.originalErr ? childErr.originalErr.stack : childErr.stack; - this.originalErr = childErr.originalErr || childErr; + // node doesn't show the message otherwise + if (isNode) + err.stack = message; + else + err.stack = childErr.originalErr ? childErr.originalErr.stack : childErr.stack; - // filename and line support in Firefox (no longer LoaderError: text though unfortunately) - if (errArgs && childErr.fileName) { - var err = new Error(this.message, childErr.fileName, childErr.lineNumber); - err.__proto__ = LoaderError; - err.originalErr = this.originalErr; - return err; - } - } - else { - this.message = message; - if (Error.captureStackTrace) { - Error.captureStackTrace(this, LoaderError); - } - // firefox case - else if (errArgs) { - var err = new Error(message); - err.__proto__ = LoaderError; - return err; - } - else { - this.stack = new Error().stack; - } - } + err.originalErr = childErr.originalErr || childErr; + + return err; } -LoaderError.prototype = Object.create(Error.prototype); -LoaderError.prototype.constructor = LoaderError; \ No newline at end of file +export { loaderErrorCheckErrorMessageAboveForLoaderStack as addToError } diff --git a/core/loader-polyfill.js b/core/loader-polyfill.js index 6fd93c6..29b0704 100644 --- a/core/loader-polyfill.js +++ b/core/loader-polyfill.js @@ -1,4 +1,4 @@ -import { baseURI, LoaderError } from './common.js'; +import { baseURI, addToError } from './common.js'; export { Loader, Module, ModuleNamespace as InternalModuleNamespace } /* @@ -80,7 +80,7 @@ var INSTANTIATE = Loader.instantiate = createSymbol('instantiate'); Loader.prototype.resolve = function(key, parent) { return this[RESOLVE](key, parent) .catch(function(err) { - throw new LoaderError('Resolving ' + key + (parent ? ' to ' + parent : ''), err); + throw addToError(err, 'Resolving ' + key + (parent ? ' to ' + parent : '')); }); }; @@ -112,7 +112,7 @@ Loader.prototype.load = function(key, parent) { }); }) .catch(function(err) { - throw new LoaderError('Loading ' + key + (resolvedKey ? ' as ' + resolvedKey : '') + (parent ? ' from ' + parent : ''), err); + throw addToError(err, 'Loading ' + key + (resolvedKey ? ' as ' + resolvedKey : '') + (parent ? ' from ' + parent : '')); }); }; diff --git a/core/register-loader.js b/core/register-loader.js index 5f2690a..74a0faa 100644 --- a/core/register-loader.js +++ b/core/register-loader.js @@ -1,6 +1,6 @@ import { Loader, Module, InternalModuleNamespace as ModuleNamespace } from './loader-polyfill.js'; import { resolveUrlToParentIfNotPlain } from './resolve.js'; -import { LoaderError, global } from './common.js'; +import { addToError, global } from './common.js'; export default RegisterLoader; @@ -143,7 +143,7 @@ function instantiate(loader, key) { return load; }) .catch(function(err) { - err = new LoaderError('Instantiating ' + load.key, err); + err = addToError(err, 'Instantiating ' + load.key); // immediately clear the load record for an instantiation error if (loader._registerRegistry[load.key] === load) @@ -175,7 +175,7 @@ function instantiateAllDeps(loader, load, seen) { // this resolve can potentially be cached on the link record, should be a measured optimization instantiateDepsPromises[i] = loader[RESOLVE](esLinkRecord.dependencies[i], load.key) .catch(function(err) { - throw new LoaderError('Resolving ' + esLinkRecord.dependencies[i] + ' to ' + load.key, err); + throw addToError(err, 'Resolving ' + esLinkRecord.dependencies[i] + ' to ' + load.key); }) .then(function(resolvedDepKey) { var existingNamespace = loader.registry.get(resolvedDepKey); @@ -226,7 +226,7 @@ function instantiateAllDeps(loader, load, seen) { return Promise.all(instantiateDepsPromises) .catch(function(err) { - err = new LoaderError('Loading ' + load.key, err); + err = addToError(err, 'Loading ' + load.key); // throw up the instantiateAllDeps stack // loads are then synchonously cleared at the top-level through the helper below @@ -412,7 +412,7 @@ function ensureEvaluated(loader, load, seen) { err = ensureEvaluated(loader, depLoad, seen); if (err) - return new LoaderError('Evaluating ' + load.key, err); + return addToError(err, 'Evaluating ' + load.key); } // es load record evaluation @@ -422,7 +422,7 @@ function ensureEvaluated(loader, load, seen) { loader.registry.delete(load.key); if (loader._registerRegistry[load.key] === load) loader._registerRegistry[load.key] = undefined; - return new LoaderError('Evaluating ' + load.key, err); + return addToError(err, 'Evaluating ' + load.key); } load.module = new ModuleNamespace(esLinkRecord.moduleObj); From 4bdd28d3166b1e6b020d4eb78a420f550b02b15a Mon Sep 17 00:00:00 2001 From: guybedford Date: Sat, 13 Aug 2016 10:05:32 +0200 Subject: [PATCH 295/482] createMetadata comment, benchmark reordering --- bench/1-register-loading.js | 34 +++++++++++++++++----------------- core/register-loader.js | 4 ++++ 2 files changed, 21 insertions(+), 17 deletions(-) diff --git a/bench/1-register-loading.js b/bench/1-register-loading.js index adad301..1b2d23e 100644 --- a/bench/1-register-loading.js +++ b/bench/1-register-loading.js @@ -672,34 +672,24 @@ function declaredRegisterLoader() { return loader; } -suite.add('Importing a single registered module with SystemJS', async function() { - var loader = declaredSystemJSLoader(); - await loader.import('no-imports.js'); -}); - suite.add('Importing a single registered module with RegisterLoader', async function() { var loader = declaredRegisterLoader(); await loader.import('no-imports.js'); }); -suite.add('Importing a module with deps with SystemJS', async function() { - var loader = declaredSystemJSLoader(); - await loader.import('es6-withdep.js'); -}); - suite.add('Importing a module with deps with RegisterLoader', async function() { var loader = declaredRegisterLoader(); await loader.import('es6-withdep.js'); }); -suite.add('Importing a deep tree of modules with SystemJS', async function() { - var loader = declaredSystemJSLoader(); +suite.add('Importing a deep tree of modules with RegisterLoader', async function() { + var loader = declaredRegisterLoader(); await loader.import('_a.js'); }); -suite.add('Importing a deep tree of modules with RegisterLoader', async function() { +suite.add('Importing mulitple trees at the same time with RegisterLoader', async function() { var loader = declaredRegisterLoader(); - await loader.import('_a.js'); + await Promise.all(allModules.map(m => loader.import(m))); }); var allModules = [ @@ -734,7 +724,17 @@ suite.add('Importing mulitple trees at the same time with SystemJS', async funct await Promise.all(allModules.map(m => loader.import(m))); }); -suite.add('Importing mulitple trees at the same time with RegisterLoader', async function() { - var loader = declaredRegisterLoader(); - await Promise.all(allModules.map(m => loader.import(m))); +suite.add('Importing a single registered module with SystemJS', async function() { + var loader = declaredSystemJSLoader(); + await loader.import('no-imports.js'); +}); + +suite.add('Importing a module with deps with SystemJS', async function() { + var loader = declaredSystemJSLoader(); + await loader.import('es6-withdep.js'); +}); + +suite.add('Importing a deep tree of modules with SystemJS', async function() { + var loader = declaredSystemJSLoader(); + await loader.import('_a.js'); }); diff --git a/core/register-loader.js b/core/register-loader.js index 74a0faa..182d201 100644 --- a/core/register-loader.js +++ b/core/register-loader.js @@ -44,6 +44,10 @@ RegisterLoader.prototype.normalize = function(key, parentKey, metadata) { RegisterLoader.prototype.instantiate = function(key, metadata) {}; +// this function is an optimization to allow loader extensions to +// implement it to set the metadata object shape upfront to ensure +// it can run as a single hidden class throughout the normalize +// and instantiate pipeline hooks in the js engine RegisterLoader.prototype.createMetadata = function() { return {}; }; From 1d97d7a60d592c4d190aefce68566cf43a46f55d Mon Sep 17 00:00:00 2001 From: guybedford Date: Sat, 13 Aug 2016 10:06:38 +0200 Subject: [PATCH 296/482] fix up error tests --- test/3-register-loader.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/test/3-register-loader.js b/test/3-register-loader.js index 9c43684..0283464 100644 --- a/test/3-register-loader.js +++ b/test/3-register-loader.js @@ -198,18 +198,18 @@ describe('System Register Loader', function() { it('should throw if on syntax error', async function() { var err = await getImportError('./main.js'); - assert.equal(err, 'LoaderError: dep error\n\tEvaluating ' + testPath + 'deperror.js\n\tEvaluating ' + testPath + 'main.js\n\tLoading ./main.js'); + assert.equal(err, 'Error: dep error\n\tEvaluating ' + testPath + 'deperror.js\n\tEvaluating ' + testPath + 'main.js\n\tLoading ./main.js'); }); it('should throw what the script throws', async function() { var err = await getImportError('./deperror.js'); - assert.equal(err, 'LoaderError: dep error\n\tEvaluating ' + testPath + 'deperror.js\n\tLoading ./deperror.js'); + assert.equal(err, 'Error: dep error\n\tEvaluating ' + testPath + 'deperror.js\n\tLoading ./deperror.js'); }); it('404 error', async function() { var err = await getImportError('./load-non-existent.js'); var lines = err.split('\n\t'); - assert(lines[0].startsWith('LoaderError: ')); + assert(lines[0].startsWith('Error: ')); assert(lines[0].endsWith('open \'' + testPath + 'non-existent.js\'')); assert.equal(lines[1], 'Instantiating ' + testPath + 'non-existent.js'); assert.equal(lines[2], 'Loading ' + testPath + 'load-non-existent.js'); From 41cd30944caa8dec882111bd0c26fbbdbfdd3de4 Mon Sep 17 00:00:00 2001 From: guybedford Date: Sat, 13 Aug 2016 10:13:42 +0200 Subject: [PATCH 297/482] 1.0.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index dbcfea7..8e5a2c7 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "es-module-loader", "description": "An ES Module Loader shim", - "version": "0.1.0", + "version": "1.0.0", "homepage": "https://github.com/ModuleLoader/es-module-loader", "author": { "name": "Guy Bedford, Luke Hoban, Addy Osmani", From efe1b12487203bd878285440bba44efb1a8d5a01 Mon Sep 17 00:00:00 2001 From: guybedford Date: Sat, 13 Aug 2016 11:21:17 +0200 Subject: [PATCH 298/482] clearer stack hint --- core/common.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/common.js b/core/common.js index 142652d..3da353c 100644 --- a/core/common.js +++ b/core/common.js @@ -57,7 +57,7 @@ else { * LoaderError with chaining for loader stacks */ var errArgs = new Error(0, '_').fileName == '_'; -function loaderErrorCheckErrorMessageAboveForLoaderStack(childErr, newMessage) { +function LoaderError__Check_error_message_above_for_loader_stack(childErr, newMessage) { // Convert file:/// URLs to paths in Node if (!isBrowser) newMessage = newMessage.replace(isWindows ? /file:\/\/\//g : /file:\/\//g, ''); @@ -80,4 +80,4 @@ function loaderErrorCheckErrorMessageAboveForLoaderStack(childErr, newMessage) { return err; } -export { loaderErrorCheckErrorMessageAboveForLoaderStack as addToError } +export { LoaderError__Check_error_message_above_for_loader_stack as addToError } From 230907a36ca14850d0aa0d01d0a1bc8dd954120f Mon Sep 17 00:00:00 2001 From: guybedford Date: Thu, 18 Aug 2016 11:40:06 +0200 Subject: [PATCH 299/482] symbol migration note --- core/register-loader.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/core/register-loader.js b/core/register-loader.js index 182d201..b494e9a 100644 --- a/core/register-loader.js +++ b/core/register-loader.js @@ -38,6 +38,8 @@ RegisterLoader.prototype = Object.create(Loader.prototype); RegisterLoader.prototype.constructor = RegisterLoader; // these are implementation specific +// NB consider moving these to symbols as Loader.prototype[Loader.normalize] +// and Loader.prototype[Loader.instantiate] as they shouldn't be exposed to end-users RegisterLoader.prototype.normalize = function(key, parentKey, metadata) { return key; }; From b45a49fa76282a5b0609fa8fa4daa9bfbb1227a3 Mon Sep 17 00:00:00 2001 From: guybedford Date: Thu, 18 Aug 2016 11:42:08 +0200 Subject: [PATCH 300/482] create symbols migration path --- core/register-loader.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/register-loader.js b/core/register-loader.js index b494e9a..f4ddef3 100644 --- a/core/register-loader.js +++ b/core/register-loader.js @@ -38,8 +38,12 @@ RegisterLoader.prototype = Object.create(Loader.prototype); RegisterLoader.prototype.constructor = RegisterLoader; // these are implementation specific -// NB consider moving these to symbols as Loader.prototype[Loader.normalize] -// and Loader.prototype[Loader.instantiate] as they shouldn't be exposed to end-users + +// this allows a v2 migration path into symbols so normalize and instantiate +// aren't exposed to end-users +RegisterLoader.normalize = 'normalize'; +RegisterLoader.instantiate = 'instantiate'; + RegisterLoader.prototype.normalize = function(key, parentKey, metadata) { return key; }; From f5becd2cb5b4e0a59b57c58ff7907e5c8d68d02e Mon Sep 17 00:00:00 2001 From: guybedford Date: Thu, 18 Aug 2016 12:54:44 +0200 Subject: [PATCH 301/482] benchmark reorder --- bench/{2-url-resolution.js => 1-url-resolution.js} | 0 bench/{1-register-loading.js => 2-register-loading.js} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename bench/{2-url-resolution.js => 1-url-resolution.js} (100%) rename bench/{1-register-loading.js => 2-register-loading.js} (100%) diff --git a/bench/2-url-resolution.js b/bench/1-url-resolution.js similarity index 100% rename from bench/2-url-resolution.js rename to bench/1-url-resolution.js diff --git a/bench/1-register-loading.js b/bench/2-register-loading.js similarity index 100% rename from bench/1-register-loading.js rename to bench/2-register-loading.js From 4ea0fbe113f4fdcbcafbc057ae71febfceb40703 Mon Sep 17 00:00:00 2001 From: guybedford Date: Thu, 18 Aug 2016 18:06:26 +0200 Subject: [PATCH 302/482] move default resolution logic into normalize, document symbols --- README.md | 10 +++++---- core/loader-polyfill.js | 1 + core/register-loader.js | 27 ++++++++++++++++--------- test/fixtures/system-register-loader.js | 5 +++-- 4 files changed, 28 insertions(+), 15 deletions(-) diff --git a/README.md b/README.md index e8bbd0b..9aac63b 100644 --- a/README.md +++ b/README.md @@ -57,14 +57,16 @@ class MyCustomLoader extends RegisterLoader { /* * Default normalize hook */ - normalize(key, parentKey, metadata) { + [RegisterLoader.normalize](key, parentKey, metadata) { + // parent normalize is sync, providing relative normalization only + var relativeResolved = super[RegisterLoader.normalize](key, parentKey, metadata) || key; return key; } /* * Default instantiate hook */ - instantiate(key, metadata) { + [RegisterLoader.instantiate](key, metadata) { return undefined; } } @@ -92,7 +94,7 @@ When instantiate returns `undefined`, it is assumed that the module key has alre For example: ```javascript - instantate(key, metadata) { + [RegisterLoader.instantate](key, metadata) { this.register(key, deps, declare); return undefined; } @@ -102,7 +104,7 @@ When using the anonymous form of System.register - `loader.register(deps, declar the context in which it was called, it is necessary to call the `loader.processRegisterContext(contextKey)` method: ```javascript - instantiate(key, metadata) { + [RegisterLoader.instantiate](key, metadata) { this.register(deps, declare); this.processRegisterContext(key); return undefined; diff --git a/core/loader-polyfill.js b/core/loader-polyfill.js index 29b0704..8389894 100644 --- a/core/loader-polyfill.js +++ b/core/loader-polyfill.js @@ -51,6 +51,7 @@ function Loader(baseKey) { this.key = baseKey || baseURI; this.registry = new Registry(); + // NB deprecate // evaluation flag to allow for tracing loaders this.execute = true; } diff --git a/core/register-loader.js b/core/register-loader.js index f4ddef3..d83fdff 100644 --- a/core/register-loader.js +++ b/core/register-loader.js @@ -43,9 +43,11 @@ RegisterLoader.prototype.constructor = RegisterLoader; // aren't exposed to end-users RegisterLoader.normalize = 'normalize'; RegisterLoader.instantiate = 'instantiate'; +RegisterLoader.createMetadata = 'createMetadata'; +// default normalize is the WhatWG style normalizer RegisterLoader.prototype.normalize = function(key, parentKey, metadata) { - return key; + return resolveUrlToParentIfNotPlain(key, parentKey); }; RegisterLoader.prototype.instantiate = function(key, metadata) {}; @@ -63,18 +65,25 @@ var RESOLVE = Loader.resolve; RegisterLoader.prototype[RESOLVE] = function(key, parentKey) { var loader = this; - var resolved = resolveUrlToParentIfNotPlain(key, parentKey); - // normalization shortpath if already in the registry or loading - if (resolved && (loader.registry.has(resolved) || loader._registerRegistry[resolved])) - return Promise.resolve(resolved); + if (key && (loader.registry.has(key) || loader._registerRegistry[key])) + return Promise.resolve(key); var metadata = this.createMetadata(); - return Promise.resolve(loader.normalize(resolved || key, parentKey, metadata)) + return Promise.resolve(loader.normalize(key, parentKey, metadata)) .then(function(resolvedKey) { + if (typeof resolvedKey !== 'string') { + if (resolvedKey === undefined) + throw new RangeError('No resolution normalizing "' + key + '" to ' + parentKey); + + // allow a non-string resolve for use cases like conditionals + return resolvedKey; + } + // we create the in-progress load record already here to store the normalization metadata if (!loader.registry.has(resolvedKey)) - getOrCreateLoadRecord(loader, resolvedKey).metadata = metadata; + getOrCreateLoadRecord(loader, resolvedKey, metadata); + return resolvedKey; }); }; @@ -84,10 +93,10 @@ RegisterLoader.prototype[RESOLVE] = function(key, parentKey) { // this record represents that waiting period, and when set, we then populate // the esLinkRecord record into this load record. // instantiate is a promise for a module namespace or undefined -function getOrCreateLoadRecord(loader, key) { +function getOrCreateLoadRecord(loader, key, metadata) { return loader._registerRegistry[key] || (loader._registerRegistry[key] = { key: key, - metadata: undefined, + metadata: metadata, instantiatePromise: undefined, diff --git a/test/fixtures/system-register-loader.js b/test/fixtures/system-register-loader.js index dbed5e5..9b34d4a 100644 --- a/test/fixtures/system-register-loader.js +++ b/test/fixtures/system-register-loader.js @@ -30,9 +30,10 @@ SystemRegisterLoader.prototype = Object.create(RegisterLoader.prototype); // normalize is never given a relative name like "./x", that part is already handled // so we just need to do plain name detect to throw as in the WhatWG spec SystemRegisterLoader.prototype.normalize = function(key, parent, metadata) { - if (key.indexOf(':') === -1) + var resolved = RegisterLoader.prototype.normalize.call(this, key, parent, metadata); + if (!resolved) throw new RangeError('System.register loader does not resolve plain module names, resolving "' + key + '" to ' + parent); - return key; + return resolved; }; var fs; From f7ef025c1124d14c50e9cfce7fc12f976a6da518 Mon Sep 17 00:00:00 2001 From: guybedford Date: Fri, 19 Aug 2016 10:50:58 +0200 Subject: [PATCH 303/482] 1.0.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 8e5a2c7..d1bece1 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "es-module-loader", "description": "An ES Module Loader shim", - "version": "1.0.0", + "version": "1.0.1", "homepage": "https://github.com/ModuleLoader/es-module-loader", "author": { "name": "Guy Bedford, Luke Hoban, Addy Osmani", From 03fca28e1df72935ec388a11a79d2c69c78e3573 Mon Sep 17 00:00:00 2001 From: guybedford Date: Sat, 20 Aug 2016 13:43:03 +0200 Subject: [PATCH 304/482] fix tracing system --- core/register-loader.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/register-loader.js b/core/register-loader.js index d83fdff..20cca9d 100644 --- a/core/register-loader.js +++ b/core/register-loader.js @@ -488,7 +488,7 @@ function traceLoadRecord(loader, load, seen) { metadata: load.metadata }; - load.esLinkRecord.dependencies.forEach(function(dep) { + load.esLinkRecord.dependencyInstantiations.forEach(function(dep) { if (seen.indexOf(dep) === -1) traceLoadRecord(loader, dep, seen); }); From 9b114d6e63f83f9c6ca265bd9774f67ab7506be7 Mon Sep 17 00:00:00 2001 From: guybedford Date: Sat, 20 Aug 2016 13:43:17 +0200 Subject: [PATCH 305/482] 1.0.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d1bece1..63f32eb 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "es-module-loader", "description": "An ES Module Loader shim", - "version": "1.0.1", + "version": "1.0.2", "homepage": "https://github.com/ModuleLoader/es-module-loader", "author": { "name": "Guy Bedford, Luke Hoban, Addy Osmani", From 86a9c16104bb93c33437fab69c0de22308b907d2 Mon Sep 17 00:00:00 2001 From: guybedford Date: Sun, 21 Aug 2016 14:37:00 +0200 Subject: [PATCH 306/482] fix error stack --- core/common.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/core/common.js b/core/common.js index 3da353c..1884e0b 100644 --- a/core/common.js +++ b/core/common.js @@ -70,11 +70,14 @@ function LoaderError__Check_error_message_above_for_loader_stack(childErr, newMe else err = new Error(message); - // node doesn't show the message otherwise + + var stack = childErr.originalErr ? childErr.originalErr.stack : childErr.stack; + if (isNode) - err.stack = message; + // node doesn't show the message otherwise + err.stack = message + '\n' + stack; else - err.stack = childErr.originalErr ? childErr.originalErr.stack : childErr.stack; + err.stack = stack; err.originalErr = childErr.originalErr || childErr; From d051e59b3cc0c23a5cc16fa6eed600556182bd32 Mon Sep 17 00:00:00 2001 From: guybedford Date: Sun, 21 Aug 2016 14:38:23 +0200 Subject: [PATCH 307/482] ensure error stack in Node --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 63f32eb..cd2586a 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "es-module-loader", "description": "An ES Module Loader shim", - "version": "1.0.2", + "version": "1.0.3", "homepage": "https://github.com/ModuleLoader/es-module-loader", "author": { "name": "Guy Bedford, Luke Hoban, Addy Osmani", From 1c073b2690936157ff43b2a3dc6bc172072fba02 Mon Sep 17 00:00:00 2001 From: guybedford Date: Sun, 21 Aug 2016 14:45:52 +0200 Subject: [PATCH 308/482] fix typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9aac63b..eae413d 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ class MyCustomLoader extends RegisterLoader { [RegisterLoader.normalize](key, parentKey, metadata) { // parent normalize is sync, providing relative normalization only var relativeResolved = super[RegisterLoader.normalize](key, parentKey, metadata) || key; - return key; + return relativeResolved; } /* From a65b28716e9841a587cb19d109410ab85543f4ab Mon Sep 17 00:00:00 2001 From: guybedford Date: Tue, 30 Aug 2016 20:40:36 +0200 Subject: [PATCH 309/482] tracing fix --- core/register-loader.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/core/register-loader.js b/core/register-loader.js index 20cca9d..96ee7c8 100644 --- a/core/register-loader.js +++ b/core/register-loader.js @@ -197,6 +197,11 @@ function instantiateAllDeps(loader, load, seen) { throw addToError(err, 'Resolving ' + esLinkRecord.dependencies[i] + ' to ' + load.key); }) .then(function(resolvedDepKey) { + if (loader.trace) { + esLinkRecord.depMap = esLinkRecord.depMap || {}; + esLinkRecord.depMap[esLinkRecord.dependencies[i]] = resolvedDepKey; + } + var existingNamespace = loader.registry.get(resolvedDepKey); if (existingNamespace) { esLinkRecord.dependencyInstantiations[i] = existingNamespace; @@ -206,11 +211,6 @@ function instantiateAllDeps(loader, load, seen) { return Promise.resolve(); } - if (loader.trace) { - esLinkRecord.depMap = esLinkRecord.depMap || {}; - esLinkRecord.depMap[esLinkRecord.dependencies[i]] = resolvedDepKey; - } - return instantiate(loader, resolvedDepKey) .then(function(instantiation) { // instantiation is either a load record or a module namespace From 71b4b6eb432f024929d84326db7d2addf547036e Mon Sep 17 00:00:00 2001 From: guybedford Date: Thu, 1 Sep 2016 17:45:20 +0200 Subject: [PATCH 310/482] update test register loader --- test/fixtures/system-register-loader.js | 38 +++++++------------------ 1 file changed, 10 insertions(+), 28 deletions(-) diff --git a/test/fixtures/system-register-loader.js b/test/fixtures/system-register-loader.js index 9b34d4a..1e9d5cf 100644 --- a/test/fixtures/system-register-loader.js +++ b/test/fixtures/system-register-loader.js @@ -29,7 +29,7 @@ SystemRegisterLoader.prototype = Object.create(RegisterLoader.prototype); // normalize is never given a relative name like "./x", that part is already handled // so we just need to do plain name detect to throw as in the WhatWG spec -SystemRegisterLoader.prototype.normalize = function(key, parent, metadata) { +SystemRegisterLoader.prototype[RegisterLoader.normalize] = function(key, parent, metadata) { var resolved = RegisterLoader.prototype.normalize.call(this, key, parent, metadata); if (!resolved) throw new RangeError('System.register loader does not resolve plain module names, resolving "' + key + '" to ' + parent); @@ -40,18 +40,23 @@ var fs; // instantiate just needs to run System.register // so we load the module name as a URL, and expect that to run System.register -SystemRegisterLoader.prototype.instantiate = function(key, metadata) { +SystemRegisterLoader.prototype[RegisterLoader.instantiate] = function(key, metadata) { var thisLoader = this; return new Promise(function(resolve, reject) { if (isNode) - Promise.resolve(fs || (fs = typeof require !== 'undefined' ? require('fs') : loader.import('fs').then(m => m.default))) + Promise.resolve(fs || (fs = typeof require !== 'undefined' ? require('fs') : loader.import('fs').then(function(m){ return m.default }))) .then(function(fs) { fs.readFile(fileUrlToPath(key), function(err, source) { if (err) return reject(err); - (0, eval)(source.toString()); + // Strip Byte Order Mark out if it's the leading char + var sourceString = source.toString(); + if (sourceString[0] === '\ufeff') + sourceString = sourceString.substr(1); + + (0, eval)(sourceString); thisLoader.processRegisterContext(key); resolve(); }); @@ -66,29 +71,6 @@ SystemRegisterLoader.prototype.instantiate = function(key, metadata) { }); }; -function nodeFetch(url, authorization, fulfill, reject) { - if (url.substr(0, 8) != 'file:///') - throw new Error('Unable to fetch "' + url + '". Only file URLs of the form file:/// allowed running in Node.'); - fs = fs || module.require('fs'); - if (isWindows) - url = url.replace(/\//g, '\\').substr(8); - else - url = url.substr(7); - return fs.readFile(url, function(err, data) { - if (err) { - return reject(err); - } - else { - // Strip Byte Order Mark out if it's the leading char - var dataString = data + ''; - if (dataString[0] === '\ufeff') - dataString = dataString.substr(1); - - fulfill(dataString); - } - }); -} - function scriptLoad(src, resolve, reject) { var script = document.createElement('script'); script.type = 'text/javascript'; @@ -118,4 +100,4 @@ function scriptLoad(src, resolve, reject) { } } -export default SystemRegisterLoader; \ No newline at end of file +export default SystemRegisterLoader; From 436cc654f02aca6d01894c1ba56e95526820ee52 Mon Sep 17 00:00:00 2001 From: guybedford Date: Thu, 1 Sep 2016 18:20:18 +0200 Subject: [PATCH 311/482] combine register cache with load records to reduce lookup count --- core/register-loader.js | 32 ++++++++++++++++++-------------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/core/register-loader.js b/core/register-loader.js index 96ee7c8..44e740f 100644 --- a/core/register-loader.js +++ b/core/register-loader.js @@ -19,9 +19,6 @@ export var emptyModule = new ModuleNamespace({}); function RegisterLoader(baseKey) { Loader.apply(this, arguments); - // System.register registration cache - this._registerCache = {}; - // last anonymous System.register call this._registeredLastAnon = undefined; @@ -81,8 +78,11 @@ RegisterLoader.prototype[RESOLVE] = function(key, parentKey) { } // we create the in-progress load record already here to store the normalization metadata - if (!loader.registry.has(resolvedKey)) - getOrCreateLoadRecord(loader, resolvedKey, metadata); + if (!loader.registry.has(resolvedKey)) { + var load = getOrCreateLoadRecord(loader, resolvedKey); + if (!load.metadata) + load.metadata = metadata; + } return resolvedKey; }); @@ -93,13 +93,16 @@ RegisterLoader.prototype[RESOLVE] = function(key, parentKey) { // this record represents that waiting period, and when set, we then populate // the esLinkRecord record into this load record. // instantiate is a promise for a module namespace or undefined -function getOrCreateLoadRecord(loader, key, metadata) { +function getOrCreateLoadRecord(loader, key) { return loader._registerRegistry[key] || (loader._registerRegistry[key] = { key: key, - metadata: metadata, + metadata: undefined, + // define cache + defined: undefined, + // in-flight instantiatePromise: undefined, - + // loaded module: undefined, // es-specific @@ -156,8 +159,10 @@ function instantiate(loader, key) { ensureRegisterLinkRecord.call(loader, load); // metadata no longer needed - if (!loader.trace) + if (!loader.trace) { load.metadata = undefined; + load.defined = undefined; + } return load; }) @@ -311,14 +316,14 @@ RegisterLoader.prototype.register = function(key, deps, declare) { // everything else registers into the register cache else - this._registerCache[key] = [deps, declare]; + getOrCreateLoadRecord(this, key).defined = [deps, declare]; }; RegisterLoader.prototype.processRegisterContext = function(contextKey) { if (!this._registeredLastAnon) return; - this._registerCache[contextKey] = this._registeredLastAnon; + getOrCreateLoadRecord(this, contextKey).defined = this._registeredLastAnon; this._registeredLastAnon = undefined; }; @@ -328,13 +333,12 @@ function ensureRegisterLinkRecord(load) { return; var key = load.key; - - var registrationPair = this._registerCache[key]; + var registrationPair = load.defined; if (!registrationPair) throw new TypeError('Module instantiation did not call an anonymous or correctly named System.register'); - this._registerCache[key] = undefined; + load.defined = undefined; var importerSetters = []; From 26d652d0bf1ca813f800ddfa6760173256ff3f0e Mon Sep 17 00:00:00 2001 From: guybedford Date: Thu, 1 Sep 2016 18:43:20 +0200 Subject: [PATCH 312/482] perf adjustments --- core/register-loader.js | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/core/register-loader.js b/core/register-loader.js index 44e740f..1aad295 100644 --- a/core/register-loader.js +++ b/core/register-loader.js @@ -78,11 +78,8 @@ RegisterLoader.prototype[RESOLVE] = function(key, parentKey) { } // we create the in-progress load record already here to store the normalization metadata - if (!loader.registry.has(resolvedKey)) { - var load = getOrCreateLoadRecord(loader, resolvedKey); - if (!load.metadata) - load.metadata = metadata; - } + if (!loader.registry.has(resolvedKey)) + (loader._registerRegistry[resolvedKey] || createLoadRecord(loader, resolvedKey)).metadata = metadata; return resolvedKey; }); @@ -93,8 +90,8 @@ RegisterLoader.prototype[RESOLVE] = function(key, parentKey) { // this record represents that waiting period, and when set, we then populate // the esLinkRecord record into this load record. // instantiate is a promise for a module namespace or undefined -function getOrCreateLoadRecord(loader, key) { - return loader._registerRegistry[key] || (loader._registerRegistry[key] = { +function createLoadRecord(loader, key) { + return loader._registerRegistry[key] = { key: key, metadata: undefined, @@ -108,7 +105,7 @@ function getOrCreateLoadRecord(loader, key) { // es-specific esLinkRecord: undefined, importerSetters: undefined - }); + }; } RegisterLoader.prototype[Loader.instantiate] = function(key) { @@ -159,10 +156,8 @@ function instantiate(loader, key) { ensureRegisterLinkRecord.call(loader, load); // metadata no longer needed - if (!loader.trace) { + if (!loader.trace) load.metadata = undefined; - load.defined = undefined; - } return load; }) @@ -316,14 +311,14 @@ RegisterLoader.prototype.register = function(key, deps, declare) { // everything else registers into the register cache else - getOrCreateLoadRecord(this, key).defined = [deps, declare]; + (this._registerRegistry[key] || createLoadRecord(this, key)).defined = [deps, declare]; }; RegisterLoader.prototype.processRegisterContext = function(contextKey) { if (!this._registeredLastAnon) return; - getOrCreateLoadRecord(this, contextKey).defined = this._registeredLastAnon; + (this._registerRegistry[contextKey] || createLoadRecord(this, contextKey)).defined = this._registeredLastAnon; this._registeredLastAnon = undefined; }; From d5ac3d5a848f30ba59d02050faac8d1f8e55df9a Mon Sep 17 00:00:00 2001 From: guybedford Date: Fri, 2 Sep 2016 13:40:43 +0200 Subject: [PATCH 313/482] missing semicolon --- core/register-loader.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/register-loader.js b/core/register-loader.js index 1aad295..df41a6b 100644 --- a/core/register-loader.js +++ b/core/register-loader.js @@ -393,7 +393,7 @@ ContextualLoader.prototype.constructor = function() { throw new TypeError('Cannot subclass the contextual loader only Reflect.Loader.'); }; ContextualLoader.prototype.import = function(key) { - return this.loader.import(key, this.key) + return this.loader.import(key, this.key); }; ContextualLoader.prototype.resolve = function(key) { return this.loader[Loader.resolve](key, this.key); From 85bf1280188b90dd82df49762f2fd60f76966163 Mon Sep 17 00:00:00 2001 From: guybedford Date: Fri, 2 Sep 2016 13:43:50 +0200 Subject: [PATCH 314/482] deprecate execute --- core/loader-polyfill.js | 14 +------------- core/register-loader.js | 14 ++++---------- 2 files changed, 5 insertions(+), 23 deletions(-) diff --git a/core/loader-polyfill.js b/core/loader-polyfill.js index 8389894..22153d5 100644 --- a/core/loader-polyfill.js +++ b/core/loader-polyfill.js @@ -50,10 +50,6 @@ function arrayValues(arr) { function Loader(baseKey) { this.key = baseKey || baseURI; this.registry = new Registry(); - - // NB deprecate - // evaluation flag to allow for tracing loaders - this.execute = true; } // 3.3.1 Loader.prototype.constructor = Loader; @@ -61,15 +57,7 @@ Loader.prototype.constructor = Loader; Loader.prototype.import = function(key, parent) { if (typeof key !== 'string') throw new TypeError('Loader import method must be passed a module key string'); - var execute = this.execute; - return this.load(key, parent) - .then(function(module) { - // ensure evaluated - if (execute) - Module.evaluate(module); - - return module; - }); + return this.load(key, parent); }; // 3.3.3 var RESOLVE = Loader.resolve = createSymbol('resolve'); diff --git a/core/register-loader.js b/core/register-loader.js index df41a6b..6aba829 100644 --- a/core/register-loader.js +++ b/core/register-loader.js @@ -63,19 +63,14 @@ RegisterLoader.prototype[RESOLVE] = function(key, parentKey) { var loader = this; // normalization shortpath if already in the registry or loading - if (key && (loader.registry.has(key) || loader._registerRegistry[key])) + if (loader._registerRegistry[key] || loader.registry.has(key)) return Promise.resolve(key); var metadata = this.createMetadata(); return Promise.resolve(loader.normalize(key, parentKey, metadata)) .then(function(resolvedKey) { - if (typeof resolvedKey !== 'string') { - if (resolvedKey === undefined) - throw new RangeError('No resolution normalizing "' + key + '" to ' + parentKey); - - // allow a non-string resolve for use cases like conditionals - return resolvedKey; - } + if (resolvedKey === undefined) + throw new RangeError('No resolution normalizing "' + key + '" to ' + parentKey); // we create the in-progress load record already here to store the normalization metadata if (!loader.registry.has(resolvedKey)) @@ -117,8 +112,7 @@ RegisterLoader.prototype[Loader.instantiate] = function(key) { return instantiateAllDeps(loader, instantiated, []) .then(function() { - if (loader.execute) - var err = ensureEvaluated(loader, instantiated, []); + var err = ensureEvaluated(loader, instantiated, []); if (err) return Promise.reject(err); From f66ac14c0b1b9504c08227e8697fca29ef52e582 Mon Sep 17 00:00:00 2001 From: guybedford Date: Fri, 2 Sep 2016 13:47:52 +0200 Subject: [PATCH 315/482] clear errors in next tick --- core/register-loader.js | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/core/register-loader.js b/core/register-loader.js index 6aba829..3aed2c1 100644 --- a/core/register-loader.js +++ b/core/register-loader.js @@ -430,12 +430,8 @@ function ensureEvaluated(loader, load, seen) { // es load record evaluation err = esEvaluate(esLinkRecord); - if (err) { - loader.registry.delete(load.key); - if (loader._registerRegistry[load.key] === load) - loader._registerRegistry[load.key] = undefined; + if (err) return addToError(err, 'Evaluating ' + load.key); - } load.module = new ModuleNamespace(esLinkRecord.moduleObj); loader.registry.set(load.key, load.module); From fe86d0a51bd6a92cc7a6aa76a21573e87f80b311 Mon Sep 17 00:00:00 2001 From: guybedford Date: Fri, 2 Sep 2016 13:55:45 +0200 Subject: [PATCH 316/482] use single frozen execution context --- core/register-loader.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/register-loader.js b/core/register-loader.js index 3aed2c1..e305c75 100644 --- a/core/register-loader.js +++ b/core/register-loader.js @@ -441,11 +441,15 @@ function ensureEvaluated(loader, load, seen) { load.esLinkRecord = undefined; } +var execContext = {}; +if (Object.freeze) + Object.freeze(execContext); + function esEvaluate(esLinkRecord) { try { // {} is the closest we can get to call(undefined) // this should really be blocked earlier though - esLinkRecord.execute.call({}); + esLinkRecord.execute.call(execContext); } catch(err) { return err; From 47cbeff1f96852ebfab65a28f6d47a2947297877 Mon Sep 17 00:00:00 2001 From: guybedford Date: Tue, 6 Sep 2016 16:03:54 +0200 Subject: [PATCH 317/482] 1.2.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index cd2586a..2307353 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "es-module-loader", "description": "An ES Module Loader shim", - "version": "1.0.3", + "version": "1.2.0", "homepage": "https://github.com/ModuleLoader/es-module-loader", "author": { "name": "Guy Bedford, Luke Hoban, Addy Osmani", From 94993c9acf673f5fdd064b65b7065115286aeb5e Mon Sep 17 00:00:00 2001 From: guybedford Date: Wed, 7 Sep 2016 22:47:05 +0200 Subject: [PATCH 318/482] bench reordering --- ...register-loading.js => 1-register-loading.js} | 16 ++++++++-------- .../{1-url-resolution.js => 2-url-resolution.js} | 0 2 files changed, 8 insertions(+), 8 deletions(-) rename bench/{2-register-loading.js => 1-register-loading.js} (100%) rename bench/{1-url-resolution.js => 2-url-resolution.js} (100%) diff --git a/bench/2-register-loading.js b/bench/1-register-loading.js similarity index 100% rename from bench/2-register-loading.js rename to bench/1-register-loading.js index 1b2d23e..5051279 100644 --- a/bench/2-register-loading.js +++ b/bench/1-register-loading.js @@ -672,24 +672,24 @@ function declaredRegisterLoader() { return loader; } -suite.add('Importing a single registered module with RegisterLoader', async function() { +suite.add('Importing mulitple trees at the same time with RegisterLoader', async function() { var loader = declaredRegisterLoader(); - await loader.import('no-imports.js'); + await Promise.all(allModules.map(m => loader.import(m))); }); -suite.add('Importing a module with deps with RegisterLoader', async function() { +suite.add('Importing a deep tree of modules with RegisterLoader', async function() { var loader = declaredRegisterLoader(); - await loader.import('es6-withdep.js'); + await loader.import('_a.js'); }); -suite.add('Importing a deep tree of modules with RegisterLoader', async function() { +suite.add('Importing a module with deps with RegisterLoader', async function() { var loader = declaredRegisterLoader(); - await loader.import('_a.js'); + await loader.import('es6-withdep.js'); }); -suite.add('Importing mulitple trees at the same time with RegisterLoader', async function() { +suite.add('Importing a single registered module with RegisterLoader', async function() { var loader = declaredRegisterLoader(); - await Promise.all(allModules.map(m => loader.import(m))); + await loader.import('no-imports.js'); }); var allModules = [ diff --git a/bench/1-url-resolution.js b/bench/2-url-resolution.js similarity index 100% rename from bench/1-url-resolution.js rename to bench/2-url-resolution.js From 5b58425d764a5d65e4bf11ca695a2655ea3ccf74 Mon Sep 17 00:00:00 2001 From: guybedford Date: Wed, 7 Sep 2016 22:51:13 +0200 Subject: [PATCH 319/482] module namespace correctness fixes --- core/loader-polyfill.js | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/core/loader-polyfill.js b/core/loader-polyfill.js index 22153d5..c2d3b4c 100644 --- a/core/loader-polyfill.js +++ b/core/loader-polyfill.js @@ -15,7 +15,7 @@ function createSymbol(name) { function arrayValues(arr) { if (arr.values) return arr.values(); - + if (typeof Symbol === 'undefined' || !Symbol.iterator) throw new Error('Cannot return values iterator unless Symbol.iterator is defined'); @@ -194,11 +194,20 @@ function ModuleNamespace(baseObject, evaluate) { }); }); if (evaluate) - ns._evaluate = evaluate; + Object.defineProperty(ns, '$__evaluate', { + value: evaluate, + writable: true + }); } if (typeof Symbol !== 'undefined' && Symbol.toStringTag) ModuleNamespace.prototype[Symbol.toStringTag] = 'Module'; +else + Object.defineProperty(ModuleNamespace.prototype, 'toString', { + value: function() { + return '[object Module]'; + } + }); // 8.3.1 Reflect.Module function Module(descriptors, executor, evaluate) { @@ -230,11 +239,8 @@ Module.prototype = null; // 8.4.1 Module.evaluate Module.evaluate = function(ns) { - if (!(ns instanceof ModuleNamespace)) - throw new TypeError('Module.evaluate must be called on a Module Namespace'); - - if (ns._evaluate) { - ns._evaluate(); - ns._evaluate = undefined; + if (ns.$__evaluate) { + ns.$__evaluate(); + ns.$__evaluate = undefined; } }; From 397f96c94322289f2a3a090a40bda0979e289829 Mon Sep 17 00:00:00 2001 From: guybedford Date: Wed, 7 Sep 2016 23:02:55 +0200 Subject: [PATCH 320/482] registry shortpaths --- core/loader-polyfill.js | 3 ++- core/register-loader.js | 12 +++++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/core/loader-polyfill.js b/core/loader-polyfill.js index c2d3b4c..7a08be5 100644 --- a/core/loader-polyfill.js +++ b/core/loader-polyfill.js @@ -76,6 +76,7 @@ Loader.prototype.resolve = function(key, parent) { // 3.3.4 Loader.prototype.load = function(key, parent) { var loader = this; + var registry = loader.registry._registry; var resolvedKey; @@ -83,7 +84,7 @@ Loader.prototype.load = function(key, parent) { // but this needs to be done based on performance measurement return Promise.resolve(this[RESOLVE](key, parent || this.key)) .then(function(resolved) { - var existingNamespace = loader.registry.get(resolved); + var existingNamespace = registry[resolved]; if (existingNamespace) return Promise.resolve(existingNamespace); diff --git a/core/register-loader.js b/core/register-loader.js index e305c75..de2cc52 100644 --- a/core/register-loader.js +++ b/core/register-loader.js @@ -61,9 +61,10 @@ var RESOLVE = Loader.resolve; RegisterLoader.prototype[RESOLVE] = function(key, parentKey) { var loader = this; + var registry = loader.registry._registry; // normalization shortpath if already in the registry or loading - if (loader._registerRegistry[key] || loader.registry.has(key)) + if (loader._registerRegistry[key] || registry[key]) return Promise.resolve(key); var metadata = this.createMetadata(); @@ -73,7 +74,7 @@ RegisterLoader.prototype[RESOLVE] = function(key, parentKey) { throw new RangeError('No resolution normalizing "' + key + '" to ' + parentKey); // we create the in-progress load record already here to store the normalization metadata - if (!loader.registry.has(resolvedKey)) + if (!registry[resolvedKey]) (loader._registerRegistry[resolvedKey] || createLoadRecord(loader, resolvedKey)).metadata = metadata; return resolvedKey; @@ -141,7 +142,7 @@ function instantiate(loader, key) { .then(function(instantiation) { // dynamic module if (instantiation !== undefined) { - loader.registry.set(key, instantiation); + loader.registry._registry[key] = instantiation; loader._registerRegistry[key] = undefined; return instantiation; } @@ -182,6 +183,7 @@ function instantiateAllDeps(loader, load, seen) { seen.push(load); var instantiateDepsPromises = Array(esLinkRecord.dependencies.length); + var registry = loader.registry._registry; // normalize dependencies for (var i = 0; i < esLinkRecord.dependencies.length; i++) (function(i) { @@ -196,7 +198,7 @@ function instantiateAllDeps(loader, load, seen) { esLinkRecord.depMap[esLinkRecord.dependencies[i]] = resolvedDepKey; } - var existingNamespace = loader.registry.get(resolvedDepKey); + var existingNamespace = registry[resolvedDepKey]; if (existingNamespace) { esLinkRecord.dependencyInstantiations[i] = existingNamespace; // run setter to reference the module @@ -434,7 +436,7 @@ function ensureEvaluated(loader, load, seen) { return addToError(err, 'Evaluating ' + load.key); load.module = new ModuleNamespace(esLinkRecord.moduleObj); - loader.registry.set(load.key, load.module); + loader.registry._registry[load.key] = load.module; // can clear link record now if (!loader.trace) From 12a86f2405ac2ecc90d856a3a3b7794ea19bd7b0 Mon Sep 17 00:00:00 2001 From: guybedford Date: Sat, 17 Sep 2016 00:20:33 +0200 Subject: [PATCH 321/482] fix error indentations --- core/common.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/common.js b/core/common.js index 1884e0b..0c9f8b1 100644 --- a/core/common.js +++ b/core/common.js @@ -62,7 +62,7 @@ function LoaderError__Check_error_message_above_for_loader_stack(childErr, newMe if (!isBrowser) newMessage = newMessage.replace(isWindows ? /file:\/\/\//g : /file:\/\//g, ''); - var message = (childErr.message || childErr) + '\n\t' + newMessage; + var message = (childErr.message || childErr) + '\n ' + newMessage; var err; if (errArgs && childErr.fileName) @@ -75,7 +75,7 @@ function LoaderError__Check_error_message_above_for_loader_stack(childErr, newMe if (isNode) // node doesn't show the message otherwise - err.stack = message + '\n' + stack; + err.stack = message + '\n ' + stack; else err.stack = stack; From 65797fce99658efedde12697bd4a4132fdb19f78 Mon Sep 17 00:00:00 2001 From: guybedford Date: Fri, 23 Sep 2016 14:52:24 +0200 Subject: [PATCH 322/482] update tests --- test/1-url-resolution.js | 7 +++++-- test/3-register-loader.js | 8 ++++---- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/test/1-url-resolution.js b/test/1-url-resolution.js index 3823588..c2b0014 100644 --- a/test/1-url-resolution.js +++ b/test/1-url-resolution.js @@ -5,6 +5,9 @@ describe('Simple normalization tests', function() { it('Should resolve windows paths as file:/// URLs', function() { assert.equal(resolveUrlToParentIfNotPlain('c:\\some\\path', 'file:///c:/adsf/asdf'), 'file:///c:/some/path'); }); + it('Should resolve relative windows paths', function() { + assert.equal(resolveUrlToParentIfNotPlain('./test.js', 'file:///C:/some/path/'), 'file:///C:/some/path/test.js'); + }); it('Should resolve unix file paths as file:/// URLs', function() { assert.equal(resolveUrlToParentIfNotPlain('/some/file/path.js', 'file:///home/path/to/project'), 'file:///some/file/path.js'); }); @@ -59,7 +62,7 @@ describe('Simple normalization tests', function() { import fs from 'fs'; var testCases = eval('(' + fs.readFileSync('test/fixtures/url-resolution-cases.json') + ')'); -describe('URL resolution selected WhatWG URL spec tests', function() { +describe('URL resolution selected WhatWG URL spec tests', function() { var run = 0; testCases.forEach(function(test) { if (typeof test == 'string') @@ -128,4 +131,4 @@ describe('URL resolution selected WhatWG URL spec tests', function() { assert.equal(resolved, test.href); }); }); -}); \ No newline at end of file +}); diff --git a/test/3-register-loader.js b/test/3-register-loader.js index 0283464..3dc6929 100644 --- a/test/3-register-loader.js +++ b/test/3-register-loader.js @@ -198,17 +198,17 @@ describe('System Register Loader', function() { it('should throw if on syntax error', async function() { var err = await getImportError('./main.js'); - assert.equal(err, 'Error: dep error\n\tEvaluating ' + testPath + 'deperror.js\n\tEvaluating ' + testPath + 'main.js\n\tLoading ./main.js'); + assert.equal(err, 'Error: dep error\n Evaluating ' + testPath + 'deperror.js\n Evaluating ' + testPath + 'main.js\n Loading ./main.js'); }); it('should throw what the script throws', async function() { var err = await getImportError('./deperror.js'); - assert.equal(err, 'Error: dep error\n\tEvaluating ' + testPath + 'deperror.js\n\tLoading ./deperror.js'); + assert.equal(err, 'Error: dep error\n Evaluating ' + testPath + 'deperror.js\n Loading ./deperror.js'); }); it('404 error', async function() { var err = await getImportError('./load-non-existent.js'); - var lines = err.split('\n\t'); + var lines = err.split('\n '); assert(lines[0].startsWith('Error: ')); assert(lines[0].endsWith('open \'' + testPath + 'non-existent.js\'')); assert.equal(lines[1], 'Instantiating ' + testPath + 'non-existent.js'); @@ -218,4 +218,4 @@ describe('System Register Loader', function() { }); -}); \ No newline at end of file +}); From 72f61666c74355a4f02d888a5ef03a00422a1649 Mon Sep 17 00:00:00 2001 From: guybedford Date: Fri, 23 Sep 2016 14:55:43 +0200 Subject: [PATCH 323/482] ensure baseURI has a trailing / --- core/common.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/common.js b/core/common.js index 0c9f8b1..84906d3 100644 --- a/core/common.js +++ b/core/common.js @@ -45,7 +45,7 @@ if (baseURI) { baseURI = baseURI.substr(0, baseURI.lastIndexOf('/') + 1); } else if (typeof process != 'undefined' && process.cwd) { - baseURI = 'file://' + (isWindows ? '/' : '') + process.cwd() + '/'; + baseURI = 'file://' + (isWindows ? '/' : '') + process.cwd(); if (isWindows) baseURI = baseURI.replace(/\\/g, '/'); } @@ -53,6 +53,10 @@ else { throw new TypeError('No environment baseURI'); } +// ensure baseURI has trailing "/" +if (baseURI[baseURI.length - 1] !== '/') + baseURI += '/'; + /* * LoaderError with chaining for loader stacks */ @@ -72,7 +76,7 @@ function LoaderError__Check_error_message_above_for_loader_stack(childErr, newMe var stack = childErr.originalErr ? childErr.originalErr.stack : childErr.stack; - + if (isNode) // node doesn't show the message otherwise err.stack = message + '\n ' + stack; From a6c06e305039e2bde5229b2095df0c6220df349f Mon Sep 17 00:00:00 2001 From: guybedford Date: Fri, 23 Sep 2016 15:02:28 +0200 Subject: [PATCH 324/482] 1.2.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2307353..5a7feef 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "es-module-loader", "description": "An ES Module Loader shim", - "version": "1.2.0", + "version": "1.2.1", "homepage": "https://github.com/ModuleLoader/es-module-loader", "author": { "name": "Guy Bedford, Luke Hoban, Addy Osmani", From 6a3ab6ebe845d7e7f04d37f8be8f9ce600c8a324 Mon Sep 17 00:00:00 2001 From: guybedford Date: Wed, 5 Oct 2016 15:29:06 +0200 Subject: [PATCH 325/482] readme update --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index eae413d..a49941a 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@ Some examples of common use case module loaders built with this project are prov A demonstration-only loader to load ES modules in the browser including support for the `