diff options
Diffstat (limited to 'thirdparty/systemjs/lib/cjs.js')
-rw-r--r-- | thirdparty/systemjs/lib/cjs.js | 138 |
1 files changed, 0 insertions, 138 deletions
diff --git a/thirdparty/systemjs/lib/cjs.js b/thirdparty/systemjs/lib/cjs.js deleted file mode 100644 index c7327f181..000000000 --- a/thirdparty/systemjs/lib/cjs.js +++ /dev/null @@ -1,138 +0,0 @@ -/* - SystemJS CommonJS Format -*/ -(function() { - // CJS Module Format - // require('...') || exports[''] = ... || exports.asd = ... || module.exports = ... - var cjsExportsRegEx = /(?:^\uFEFF?|[^$_a-zA-Z\xA0-\uFFFF.])(exports\s*(\[['"]|\.)|module(\.exports|\['exports'\]|\["exports"\])\s*(\[['"]|[=,\.]))/; - // RegEx adjusted from https://github.com/jbrantly/yabble/blob/master/lib/yabble.js#L339 - var cjsRequireRegEx = /(?:^\uFEFF?|[^$_a-zA-Z\xA0-\uFFFF."'])require\s*\(\s*("[^"\\]*(?:\\.[^"\\]*)*"|'[^'\\]*(?:\\.[^'\\]*)*')\s*\)/g; - var commentRegEx = /(^|[^\\])(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg; - - var stringRegEx = /("[^"\\\n\r]*(\\.[^"\\\n\r]*)*"|'[^'\\\n\r]*(\\.[^'\\\n\r]*)*')/g; - - // used to support leading #!/usr/bin/env in scripts as supported in Node - var hashBangRegEx = /^\#\!.*/; - - function getCJSDeps(source) { - cjsRequireRegEx.lastIndex = commentRegEx.lastIndex = stringRegEx.lastIndex = 0; - - var deps = []; - - var match; - - // track string and comment locations for unminified source - var stringLocations = [], commentLocations = []; - - function inLocation(locations, match) { - for (var i = 0; i < locations.length; i++) - if (locations[i][0] < match.index && locations[i][1] > match.index) - return true; - return false; - } - - if (source.length / source.split('\n').length < 200) { - while (match = stringRegEx.exec(source)) - stringLocations.push([match.index, match.index + match[0].length]); - - // TODO: track template literals here before comments - - while (match = commentRegEx.exec(source)) { - // only track comments not starting in strings - if (!inLocation(stringLocations, match)) - commentLocations.push([match.index + match[1].length, match.index + match[0].length - 1]); - } - } - - while (match = cjsRequireRegEx.exec(source)) { - // ensure we're not within a string or comment location - if (!inLocation(stringLocations, match) && !inLocation(commentLocations, match)) { - var dep = match[1].substr(1, match[1].length - 2); - // skip cases like require('" + file + "') - if (dep.match(/"|'/)) - continue; - // trailing slash requires are removed as they don't map mains in SystemJS - if (dep[dep.length - 1] == '/') - dep = dep.substr(0, dep.length - 1); - deps.push(dep); - } - } - - return deps; - } - - hook('instantiate', function(instantiate) { - return function(load) { - var loader = this; - if (!load.metadata.format) { - cjsExportsRegEx.lastIndex = 0; - cjsRequireRegEx.lastIndex = 0; - if (cjsRequireRegEx.exec(load.source) || cjsExportsRegEx.exec(load.source)) - load.metadata.format = 'cjs'; - } - - if (load.metadata.format == 'cjs') { - var metaDeps = load.metadata.deps; - var deps = load.metadata.cjsRequireDetection === false ? [] : getCJSDeps(load.source); - - for (var g in load.metadata.globals) - if (load.metadata.globals[g]) - deps.push(load.metadata.globals[g]); - - var entry = createEntry(); - - load.metadata.entry = entry; - - entry.deps = deps; - entry.executingRequire = true; - entry.execute = function(_require, exports, module) { - function require(name) { - if (name[name.length - 1] == '/') - name = name.substr(0, name.length - 1); - return _require.apply(this, arguments); - } - require.resolve = function(name) { - return loader.get('@@cjs-helpers').requireResolve(name, module.id); - }; - // support module.paths ish - module.paths = []; - module.require = _require; - - // ensure meta deps execute first - if (!load.metadata.cjsDeferDepsExecute) - for (var i = 0; i < metaDeps.length; i++) - require(metaDeps[i]); - - var pathVars = loader.get('@@cjs-helpers').getPathVars(module.id); - var __cjsWrapper = { - exports: exports, - args: [require, exports, module, pathVars.filename, pathVars.dirname, __global, __global] - }; - - var cjsWrapper = "(function(require, exports, module, __filename, __dirname, global, GLOBAL"; - - // add metadata.globals to the wrapper arguments - if (load.metadata.globals) - for (var g in load.metadata.globals) { - __cjsWrapper.args.push(require(load.metadata.globals[g])); - cjsWrapper += ", " + g; - } - - // disable AMD detection - var define = __global.define; - __global.define = undefined; - __global.__cjsWrapper = __cjsWrapper; - - load.source = cjsWrapper + ") {" + load.source.replace(hashBangRegEx, '') + "\n}).apply(__cjsWrapper.exports, __cjsWrapper.args);"; - - __exec.call(loader, load); - - __global.__cjsWrapper = undefined; - __global.define = define; - }; - } - - return instantiate.call(loader, load); - }; - }); -})(); |