diff options
Diffstat (limited to 'thirdparty/systemjs/lib/proto.js')
-rw-r--r-- | thirdparty/systemjs/lib/proto.js | 268 |
1 files changed, 0 insertions, 268 deletions
diff --git a/thirdparty/systemjs/lib/proto.js b/thirdparty/systemjs/lib/proto.js deleted file mode 100644 index 08203cc49..000000000 --- a/thirdparty/systemjs/lib/proto.js +++ /dev/null @@ -1,268 +0,0 @@ -// SystemJS Loader Class and Extension helpers -function SystemJSLoader() { - Loader.call(this); - - this.paths = {}; - this._loader.paths = {}; - - systemJSConstructor.call(this); -} - -// inline Object.create-style class extension -function SystemProto() {}; -SystemProto.prototype = Loader.prototype; -SystemJSLoader.prototype = new SystemProto(); -SystemJSLoader.prototype.constructor = SystemJSLoader; - -var systemJSConstructor; - -function hook(name, hook) { - SystemJSLoader.prototype[name] = hook(SystemJSLoader.prototype[name] || function() {}); -} -function hookConstructor(hook) { - systemJSConstructor = hook(systemJSConstructor || function() {}); -} - - -var absURLRegEx = /^[^\/]+:\/\//; -function isAbsolute(name) { - return name.match(absURLRegEx); -} -function isRel(name) { - return (name[0] == '.' && (!name[1] || name[1] == '/' || name[1] == '.')) || name[0] == '/'; -} -function isPlain(name) { - return !isRel(name) && !isAbsolute(name); -} - -var baseURIObj = new URL(baseURI); - -function urlResolve(name, parent) { - // url resolution shortpaths - if (name[0] == '.') { - // dot-relative url normalization - if (name[1] == '/' && name[2] != '.') - return (parent && parent.substr(0, parent.lastIndexOf('/') + 1) || baseURI) + name.substr(2); - } - else if (name[0] != '/' && name.indexOf(':') == -1) { - // plain parent normalization - return (parent && parent.substr(0, parent.lastIndexOf('/') + 1) || baseURI) + name; - } - - return new URL(name, parent && parent.replace(/#/g, '%05') || baseURIObj).href.replace(/%05/g, '#'); -} - -// NB no specification provided for System.paths, used ideas discussed in https://github.com/jorendorff/js-loaders/issues/25 -function applyPaths(loader, name) { - // most specific (most number of slashes in path) match wins - var pathMatch = '', wildcard, maxWildcardPrefixLen = 0; - - var paths = loader.paths; - var pathsCache = loader._loader.paths; - - // check to see if we have a paths entry - for (var p in paths) { - if (paths.hasOwnProperty && !paths.hasOwnProperty(p)) - continue; - - // paths sanitization - var path = paths[p]; - if (path !== pathsCache[p]) - path = paths[p] = pathsCache[p] = urlResolve(paths[p], isRel(paths[p]) ? baseURI : loader.baseURL); - - // exact path match - 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) : ''); - } - } - // wildcard path match - else { - var pathParts = p.split('*'); - if (pathParts.length > 2) - throw new TypeError('Only one wildcard in a path is permitted'); - - var wildcardPrefixLen = pathParts[0].length; - if (wildcardPrefixLen >= maxWildcardPrefixLen && - name.substr(0, pathParts[0].length) == pathParts[0] && - name.substr(name.length - pathParts[1].length) == pathParts[1]) { - maxWildcardPrefixLen = wildcardPrefixLen; - pathMatch = p; - wildcard = name.substr(pathParts[0].length, name.length - pathParts[1].length - pathParts[0].length); - } - } - } - - var outPath = paths[pathMatch]; - if (typeof wildcard == 'string') - outPath = outPath.replace('*', wildcard); - - return outPath; -} - -function dedupe(deps) { - var newDeps = []; - for (var i = 0, l = deps.length; i < l; i++) - if (indexOf.call(newDeps, deps[i]) == -1) - newDeps.push(deps[i]) - return newDeps; -} - -function group(deps) { - var names = []; - var indices = []; - for (var i = 0, l = deps.length; i < l; i++) { - var index = indexOf.call(names, deps[i]); - if (index === -1) { - names.push(deps[i]); - indices.push([i]); - } - else { - indices[index].push(i); - } - } - return { names: names, indices: indices }; -} - -var getOwnPropertyDescriptor = true; -try { - Object.getOwnPropertyDescriptor({ a: 0 }, 'a'); -} -catch(e) { - getOwnPropertyDescriptor = false; -} - -// converts any module.exports object into an object ready for SystemJS.newModule -function getESModule(exports) { - var esModule = {}; - // don't trigger getters/setters in environments that support them - if ((typeof exports == 'object' || typeof exports == 'function') && exports !== __global) { - if (getOwnPropertyDescriptor) { - for (var p in exports) { - // The default property is copied to esModule later on - if (p === 'default') - continue; - defineOrCopyProperty(esModule, exports, p); - } - } - else { - extend(esModule, exports); - } - } - esModule['default'] = exports; - defineProperty(esModule, '__useDefault', { - value: true - }); - return esModule; -} - -function defineOrCopyProperty(targetObj, sourceObj, propName) { - try { - var d; - if (d = Object.getOwnPropertyDescriptor(sourceObj, propName)) - defineProperty(targetObj, propName, d); - } - catch (ex) { - // Object.getOwnPropertyDescriptor threw an exception, fall back to normal set property - // we dont need hasOwnProperty here because getOwnPropertyDescriptor would have returned undefined above - targetObj[propName] = sourceObj[propName]; - return false; - } -} - -function extend(a, b, prepend) { - var hasOwnProperty = b && b.hasOwnProperty; - for (var p in b) { - if (hasOwnProperty && !b.hasOwnProperty(p)) - continue; - if (!prepend || !(p in a)) - a[p] = b[p]; - } - return a; -} - -// meta first-level extends where: -// array + array appends -// object + object extends -// other properties replace -function extendMeta(a, b, prepend) { - var hasOwnProperty = b && b.hasOwnProperty; - for (var p in b) { - if (hasOwnProperty && !b.hasOwnProperty(p)) - continue; - var val = b[p]; - if (!(p in a)) - a[p] = val; - else if (val instanceof Array && a[p] instanceof Array) - a[p] = [].concat(prepend ? val : a[p]).concat(prepend ? a[p] : val); - else if (typeof val == 'object' && val !== null && typeof a[p] == 'object') - a[p] = extend(extend({}, a[p]), val, prepend); - else if (!prepend) - a[p] = val; - } -} - -function extendPkgConfig(pkgCfgA, pkgCfgB, pkgName, loader, warnInvalidProperties) { - for (var prop in pkgCfgB) { - if (indexOf.call(['main', 'format', 'defaultExtension', 'basePath'], prop) != -1) { - pkgCfgA[prop] = pkgCfgB[prop]; - } - else if (prop == 'map') { - extend(pkgCfgA.map = pkgCfgA.map || {}, pkgCfgB.map); - } - else if (prop == 'meta') { - extend(pkgCfgA.meta = pkgCfgA.meta || {}, pkgCfgB.meta); - } - else if (prop == 'depCache') { - for (var d in pkgCfgB.depCache) { - var dNormalized; - - if (d.substr(0, 2) == './') - dNormalized = pkgName + '/' + d.substr(2); - else - dNormalized = coreResolve.call(loader, d); - loader.depCache[dNormalized] = (loader.depCache[dNormalized] || []).concat(pkgCfgB.depCache[d]); - } - } - 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); - } - } -} - -// deeply-merge (to first level) config with any existing package config -function setPkgConfig(loader, pkgName, cfg, prependConfig) { - var pkg; - - // first package is config by reference for fast path, cloned after that - if (!loader.packages[pkgName]) { - pkg = loader.packages[pkgName] = cfg; - } - else { - var basePkg = loader.packages[pkgName]; - pkg = loader.packages[pkgName] = {}; - - 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 || {}; - pkg.map['./@main'] = pkg.main; - pkg.main['default'] = pkg.main['default'] || './'; - pkg.main = '@main'; - } - - return pkg; -} - -function warn(msg) { - if (this.warnings && typeof console != 'undefined' && console.warn) - console.warn(msg); -} |