diff options
Diffstat (limited to 'node_modules/systemjs/dist/system.src.js')
-rw-r--r-- | node_modules/systemjs/dist/system.src.js | 188 |
1 files changed, 104 insertions, 84 deletions
diff --git a/node_modules/systemjs/dist/system.src.js b/node_modules/systemjs/dist/system.src.js index 13dbc2fe5..e7e59edc3 100644 --- a/node_modules/systemjs/dist/system.src.js +++ b/node_modules/systemjs/dist/system.src.js @@ -1,5 +1,5 @@ /* - * SystemJS v0.19.41 + * SystemJS v0.19.47 */ (function() { function bootstrap() {// from https://gist.github.com/Yaffle/1088850 @@ -7,7 +7,7 @@ function bootstrap() {// from https://gist.github.com/Yaffle/1088850 function URLPolyfill(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]*)?/); + var m = String(url).replace(/^\s+|\s+$/g, "").replace(/\\/g, '/').match(/^([^:\/?#]+:)?(?:\/\/(?:([^:@\/?#]*)(?::([^:@\/?#]*))?@)?(([^:\/?#]*)(?::(\d*))?))?([^?#]*)(\?[^#]*)?(#[\s\S]*)?/); if (!m) throw new RangeError('Invalid URL format'); var protocol = m[1] || ""; @@ -65,7 +65,8 @@ function URLPolyfill(url, baseURL) { this.hash = hash; } global.URLPolyfill = URLPolyfill; -})(typeof self != 'undefined' ? self : global);(function(__global) { +})(typeof self != 'undefined' ? self : global); +(function(__global) { var isWorker = typeof window == 'undefined' && typeof self != 'undefined' && typeof importScripts != 'undefined'; var isBrowser = typeof window != 'undefined' && typeof document != 'undefined'; @@ -83,7 +84,7 @@ global.URLPolyfill = URLPolyfill; } return -1; }; - + var defineProperty; (function () { try { @@ -120,9 +121,9 @@ global.URLPolyfill = URLPolyfill; newMsg = newMsg.replace(isWindows ? /file:\/\/\//g : /file:\/\//g, ''); var newErr = errArgs ? new Error(newMsg, err.fileName, err.lineNumber) : new Error(newMsg); - + newErr.stack = newMsg; - + // track the original error newErr.originalErr = err.originalErr || err; @@ -431,7 +432,7 @@ function logloads(loads) { .then(function(instantiateResult) { if (instantiateResult === undefined) throw new TypeError('Declarative modules unsupported in the polyfill.'); - + if (typeof instantiateResult != 'object') throw new TypeError('Invalid instantiate return value'); @@ -494,8 +495,6 @@ function logloads(loads) { for (var i = 0, l = linkSets.length; i < l; i++) { linkSetFailed(linkSets[i], load, exc); } - - console.assert(load.linkSets.length == 0, 'linkSets not removed'); }); } @@ -548,7 +547,6 @@ function logloads(loads) { 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)); } @@ -636,9 +634,6 @@ function logloads(loads) { 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) @@ -671,8 +666,6 @@ function logloads(loads) { if (abrupt) return; - console.assert(linkSet.loads.length == 0, 'loads cleared'); - linkSet.resolve(startingLoad); } @@ -681,7 +674,7 @@ function logloads(loads) { var loader = linkSet.loader; var requests; - checkError: + checkError: if (load) { if (linkSet.loads[0].name == load.name) { exc = addToError(exc, 'Error loading ' + load.name); @@ -715,7 +708,6 @@ function logloads(loads) { 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); @@ -747,7 +739,6 @@ function logloads(loads) { } // if not anonymous, add to the module table if (load.name) { - console.assert(!loader.modules[load.name] || loader.modules[load.name].module === load.module.module, 'load not in module table'); loader.modules[load.name] = load.module; } var loadIndex = indexOf.call(loader.loads, load); @@ -857,7 +848,7 @@ function logloads(loads) { var loader = this._loader; if (loader.modules[name]) return Promise.resolve(); - return loader.importPromises[name] || createImportPromise(this, name, new Promise(asyncStartLoadPartwayThrough({ + return (loader.importPromises[name] || createImportPromise(this, name, new Promise(asyncStartLoadPartwayThrough({ step: 'locate', loader: loader, moduleName: name, @@ -865,9 +856,11 @@ function logloads(loads) { moduleSource: undefined, moduleAddress: undefined })) - .then(function() { + .then(function(load) { delete loader.importPromises[name]; - })); + return load.module.module; + }))) + .then(function () {}); }, // 26.3.3.11 module: function(source, options) { @@ -977,7 +970,6 @@ function logloads(loads) { })(); var System; - var fetchTextFromURL; if (typeof XMLHttpRequest != 'undefined') { fetchTextFromURL = function(url, authorization, fulfill, reject) { @@ -1265,7 +1257,7 @@ function applyPaths(loader, name) { if (p.indexOf('*') === -1) { if (name == p) return paths[p]; - + // support trailing / in paths rules else if (name.substr(0, p.length - 1) == p.substr(0, p.length - 1) && (name.length < p.length || name[p.length - 1] == p[p.length - 1]) && (paths[p][paths[p].length - 1] == '/' || paths[p] == '')) { return paths[p].substr(0, paths[p].length - 1) + (name.length > p.length ? (paths[p] && '/' || '') + name.substr(p.length) : ''); @@ -1419,7 +1411,7 @@ function extendPkgConfig(pkgCfgA, pkgCfgB, pkgName, loader, warnInvalidPropertie loader.depCache[dNormalized] = (loader.depCache[dNormalized] || []).concat(pkgCfgB.depCache[d]); } } - else if (warnInvalidProperties && indexOf.call(['browserConfig', 'nodeConfig', 'devConfig', 'productionConfig'], prop) == -1 && + else if (warnInvalidProperties && indexOf.call(['browserConfig', 'nodeConfig', 'devConfig', 'productionConfig'], prop) == -1 && (!pkgCfgB.hasOwnProperty || pkgCfgB.hasOwnProperty(prop))) { warn.call(loader, '"' + prop + '" is not a valid package configuration option in package ' + pkgName); } @@ -1441,7 +1433,7 @@ function setPkgConfig(loader, pkgName, cfg, prependConfig) { extendPkgConfig(pkg, prependConfig ? cfg : basePkg, pkgName, loader, prependConfig); extendPkgConfig(pkg, prependConfig ? basePkg : cfg, pkgName, loader, !prependConfig); } - + // main object becomes main map if (typeof pkg.main == 'object') { pkg.map = pkg.map || {}; @@ -1457,6 +1449,15 @@ function warn(msg) { if (this.warnings && typeof console != 'undefined' && console.warn) console.warn(msg); } + +function createInstantiate (load, result) { + load.metadata.entry = createEntry(); + load.metadata.entry.execute = function() { + return result; + } + load.metadata.entry.deps = []; + load.metadata.format = 'defined'; +} // we define a __exec for globally-scoped execution // used by module format implementations var __exec; @@ -2902,7 +2903,7 @@ SystemJSLoader.prototype.config = function(cfg, isEnvConfig) { * * * The code here replicates the ES6 linking groups algorithm to ensure that - * circular ES6 compiled into System.register can work alongside circular AMD + * circular ES6 compiled into System.register can work alongside circular AMD * and CommonJS, identically to the actual ES6 loader. * */ @@ -2912,7 +2913,7 @@ SystemJSLoader.prototype.config = function(cfg, isEnvConfig) { * Registry side table entries in loader.defined * Registry Entry Contains: * - name - * - deps + * - deps * - declare for declarative modules * - execute for dynamic modules, different to declarative execute on module * - executingRequire indicates require drives execution for circularity of dynamic modules @@ -2930,7 +2931,7 @@ SystemJSLoader.prototype.config = function(cfg, isEnvConfig) { * For dynamic we track the es module with: * - esModule actual es module value * - esmExports whether to extend the esModule with named exports - * + * * Then for declarative only we track dynamic bindings with the 'module' records: * - name * - exports @@ -2975,7 +2976,7 @@ function createEntry() { * see https://github.com/ModuleLoader/es6-module-loader/wiki/System.register-Explained * * 2. System.registerDynamic for dynamic modules (3-4 params) - System.registerDynamic([name, ]deps, executingRequire, execute) - * the true or false statement + * the true or false statement * * this extension implements the linking algorithm for the two variations identical to the spec * allowing compiled ES6 circular references to work alongside AMD and CJS circular references. @@ -2994,7 +2995,7 @@ function createEntry() { return this.registerDynamic.apply(this, arguments); var entry = createEntry(); - // ideally wouldn't apply map config to bundle names but + // ideally wouldn't apply map config to bundle names but // dependencies go through map regardless so we can't restrict // could reconsider in shift to new spec entry.name = name && (this.decanonicalize || this.normalize).call(this, name); @@ -3080,17 +3081,17 @@ function createEntry() { for (var i = 0, l = entry.normalizedDeps.length; i < l; i++) { var depName = entry.normalizedDeps[i]; var depEntry = loader.defined[depName]; - + // not in the registry means already linked / ES6 if (!depEntry || depEntry.evaluated) continue; - + // now we know the entry is in our unlinked linkage group var depGroupIndex = entry.groupIndex + (depEntry.declarative != entry.declarative); // the group index of an entry is always the maximum if (depEntry.groupIndex === null || depEntry.groupIndex < depGroupIndex) { - + // if already in a group, remove from the old group if (depEntry.groupIndex !== null) { groups[depEntry.groupIndex].splice(indexOf.call(groups[depEntry.groupIndex], depEntry), 1); @@ -3130,7 +3131,7 @@ function createEntry() { else linkDynamicModule(entry, loader); } - curGroupDeclarative = !curGroupDeclarative; + curGroupDeclarative = !curGroupDeclarative; } } @@ -3190,7 +3191,7 @@ function createEntry() { // allowing undefined declaration was a mistake! To be deprecated. declaration = declaration || { setters: [], execute: function() {} }; - + module.setters = declaration.setters; module.execute = declaration.execute; @@ -3233,7 +3234,7 @@ function createEntry() { else { module.dependencies.push(null); } - + // run setters for all entries with the matching dependency name var originalIndices = entry.originalIndices[i]; for (var j = 0, len = originalIndices.length; j < len; ++j) { @@ -3259,7 +3260,7 @@ function createEntry() { else { if (entry.declarative) ensureEvaluated(name, entry, [], loader); - + else if (!entry.evaluated) linkDynamicModule(entry, loader); @@ -3268,7 +3269,7 @@ function createEntry() { if ((!entry || entry.declarative) && exports && exports.__useDefault) return exports['default']; - + return exports; } @@ -3306,7 +3307,7 @@ function createEntry() { throw new Error('Module ' + name + ' not declared as a dependency of ' + entry.name); }, exports, module); - + if (output !== undefined) module.exports = output; @@ -3330,7 +3331,7 @@ function createEntry() { * (unless one is a circular dependency already in the list of seen * modules, in which case we execute it) * - * Then we evaluate the module itself depth-first left to right + * Then we evaluate the module itself depth-first left to right * execution to match ES6 modules */ function ensureEvaluated(moduleName, entry, seen, loader) { @@ -3376,7 +3377,7 @@ function createEntry() { } load.metadata.deps = load.metadata.deps || []; - + return fetch.call(this, load); }; }); @@ -3387,7 +3388,7 @@ function createEntry() { load.metadata.deps = load.metadata.deps || []; return Promise.resolve(translate.apply(this, arguments)).then(function(source) { // run detection for register format - if (load.metadata.format == 'register' || !load.metadata.format && detectRegisterFormat(load.source)) + if (load.metadata.format == 'register' || load.metadata.format == 'system' || !load.metadata.format && detectRegisterFormat(load.source)) load.metadata.format = 'register'; return source; }); @@ -3405,7 +3406,7 @@ function createEntry() { entry.originalIndices = entry.normalizedDeps = []; - // recursively ensure that the module and all its + // recursively ensure that the module and all its // dependencies are linked (with dependency group handling) link(normalized, entry, loader); @@ -3456,9 +3457,9 @@ function createEntry() { // Contains System.register calls // (dont run bundles in the builder) - else if (!(loader.builder && load.metadata.bundle) + else if (!(loader.builder && load.metadata.bundle) && (load.metadata.format == 'register' || load.metadata.format == 'esm' || load.metadata.format == 'es6')) { - + if (typeof __exec != 'undefined') __exec.call(loader, load); @@ -3481,9 +3482,9 @@ function createEntry() { // place this module onto defined for circular references loader.defined[load.name] = entry; - + var grouped = group(entry.deps); - + entry.deps = grouped.names; entry.originalIndices = grouped.indices; entry.name = load.name; @@ -3501,7 +3502,7 @@ function createEntry() { return { deps: entry.deps, execute: function() { - // recursively ensure that the module and all its + // recursively ensure that the module and all its // dependencies are linked (with dependency group handling) link(load.name, entry, loader); @@ -3569,10 +3570,28 @@ function createEntry() { // do transpilation return (loader._loader.transpilerPromise || ( loader._loader.transpilerPromise = Promise.resolve( - __global[loader.transpiler == 'typescript' ? 'ts' : loader.transpiler] || (loader.pluginLoader || loader)['import'](loader.transpiler) + __global[loader.transpiler == 'typescript' ? 'ts' : loader.transpiler] || (loader.pluginLoader || loader).normalize(loader.transpiler) + .then(function(normalized) { + loader._loader.transpilerNormalized = normalized; + return (loader.pluginLoader || loader).load(normalized) + .then(function() { + return (loader.pluginLoader || loader).get(normalized); + }); + }) ))).then(function(transpiler) { loader._loader.loadedTranspilerRuntime = true; + if (typeof transpiler.default === 'function' && !__global[loader.transpiler == 'typescript' ? 'ts' : loader.transpiler]) { + // instantiate plugins dont build + if (loader.builder) + return source; + return Promise.resolve(transpiler.default.call(loader, load.address, load.name)) + .then(function (result) { + createInstantiate(load, result); + return ''; + }); + } + // translate hooks means this is a transpiler plugin instead of a raw implementation if (transpiler.translate) { // if transpiler is the same as the plugin loader, then don't run twice @@ -3589,7 +3608,7 @@ function createEntry() { var sourceMap = load.metadata.sourceMap; if (sourceMap && typeof sourceMap == 'object') { var originalName = load.address.split('!')[0]; - + // force set the filename of the original file if (!sourceMap.file || sourceMap.file == load.address) sourceMap.file = originalName + '!transpiled'; @@ -3608,14 +3627,14 @@ function createEntry() { // legacy builder support if (loader.builder) load.metadata.originalSource = load.source; - + // defined in es6-module-loader/src/transpile.js return transpile.call(loader, load) .then(function(source) { // clear sourceMap as transpiler embeds it load.metadata.sourceMap = undefined; return source; - }); + }); }, function(err) { throw addToError(err, 'Unable to load transpiler to transpile ' + load.name); }); @@ -4539,15 +4558,16 @@ hookConstructor(function(constructor) { hook('fetch', function(fetch) { return function(load) { var loader = this; - if (load.metadata.loaderModule && load.metadata.loaderModule.fetch && load.metadata.format != 'defined') { + if (load.metadata.loaderModule && load.metadata.format != 'defined') { + if (typeof load.metadata.loaderModule === 'function' || load.metadata.loaderModule instanceof Module && typeof load.metadata.loaderModule.default === 'function') + return ''; load.metadata.scriptLoad = false; - return load.metadata.loaderModule.fetch.call(loader, load, function(load) { - return fetch.call(loader, load); - }); - } - else { - return fetch.call(loader, load); + if (load.metadata.loaderModule.fetch) + return load.metadata.loaderModule.fetch.call(loader, load, function(load) { + return fetch.call(loader, load); + }); } + return fetch.call(loader, load); }; }); @@ -4584,9 +4604,7 @@ hookConstructor(function(constructor) { return translate.apply(loader, args); }); } - else { - return translate.apply(loader, args); - } + return translate.apply(loader, args); }; }); @@ -4595,28 +4613,30 @@ hookConstructor(function(constructor) { var loader = this; var calledInstantiate = false; - if (load.metadata.loaderModule && load.metadata.loaderModule.instantiate && !loader.builder && load.metadata.format != 'defined') - return Promise.resolve(load.metadata.loaderModule.instantiate.call(loader, load, function(load) { - if (calledInstantiate) - throw new Error('Instantiate must only be called once.'); - calledInstantiate = true; - return instantiate.call(loader, load); - })).then(function(result) { - if (calledInstantiate) - return result; - - if (result !== undefined) { - load.metadata.entry = createEntry(); - load.metadata.entry.execute = function() { + if (load.metadata.loaderModule && !loader.builder && load.metadata.format != 'defined') { + if (load.metadata.loaderModule.instantiate) + return Promise.resolve(load.metadata.loaderModule.instantiate.call(loader, load, function(load) { + if (calledInstantiate) + throw new Error('Instantiate must only be called once.'); + calledInstantiate = true; + return instantiate.call(loader, load); + })).then(function(result) { + if (calledInstantiate) return result; - } - load.metadata.entry.deps = load.metadata.deps; - load.metadata.format = 'defined'; - } - return instantiate.call(loader, load); - }); - else - return instantiate.call(loader, load); + + if (result !== undefined) + createInstantiate(load, result); + return instantiate.call(loader, load); + }); + else if (typeof load.metadata.loaderModule === 'function' || load.metadata.loaderModule instanceof Module && typeof load.metadata.loaderModule.default === 'function') + return Promise.resolve((load.metadata.loaderModule.default || load.metadata.loaderModule).call(loader, load.address, load.name)) + .then(function (result) { + if (result !== undefined) + createInstantiate(load, result); + return instantiate.call(loader, load); + }); + } + return instantiate.call(loader, load); }; }); @@ -5094,7 +5114,7 @@ hookConstructor(function(constructor) { System = new SystemJSLoader(); __global.SystemJS = System; -System.version = '0.19.41 Standard'; +System.version = '0.19.47 Standard'; if (typeof module == 'object' && module.exports && typeof exports == 'object') module.exports = System; |