diff options
Diffstat (limited to 'node_modules/natives/index.js')
-rw-r--r-- | node_modules/natives/index.js | 158 |
1 files changed, 0 insertions, 158 deletions
diff --git a/node_modules/natives/index.js b/node_modules/natives/index.js deleted file mode 100644 index 90950a0e8..000000000 --- a/node_modules/natives/index.js +++ /dev/null @@ -1,158 +0,0 @@ -var natives = process.binding('natives') -var module = require('module') -var normalRequire = require -exports.source = src -exports.require = req -var vm = require('vm') - -// fallback for 0.x support -var runInThisContext, ContextifyScript, Script -/*istanbul ignore next*/ -try { - ContextifyScript = process.binding('contextify').ContextifyScript; - /*istanbul ignore next*/ - if (process.version.split('.')[0].length > 2) { // v10.0.0 and above - runInThisContext = vm.runInThisContext; - } else { - runInThisContext = function runInThisContext(code, options) { - var script = new ContextifyScript(code, options); - return script.runInThisContext(); - } - } -} catch (er) { - Script = process.binding('evals').NodeScript; - runInThisContext = Script.runInThisContext; -} - -var wrap = [ - '(function (exports, require, module, __filename, __dirname) { ', - '\n});' -]; - - -// Basically the same functionality as node's (buried deep) -// NativeModule class, but without caching, or internal/ blocking, -// or a class, since that's not really necessary. I assume that if -// you're loading something with this module, it's because you WANT -// a separate copy. However, to preserve semantics, any require() -// calls made throughout the internal module load IS cached. -function req (id, whitelist) { - var cache = Object.create(null) - - if (Array.isArray(whitelist)) { - // a whitelist of things to pull from the "actual" native modules - whitelist.forEach(function (id) { - cache[id] = { - loading: false, - loaded: true, - filename: id + '.js', - exports: require(id) - } - }) - } - - return req_(id, cache) -} - -function req_ (id, cache) { - // Buffer is special, because it's a type rather than a "normal" - // class, and many things depend on `Buffer.isBuffer` working. - if (id === 'buffer') { - return require('buffer') - } - - // native_module isn't actually a natives binding. - // weird, right? - if (id === 'native_module') { - return { - getSource: src, - wrap: function (script) { - return wrap[0] + script + wrap[1] - }, - wrapper: wrap, - _cache: cache, - _source: natives, - nonInternalExists: function (id) { - return id.indexOf('internal/') !== 0; - } - } - } - - var source = src(id) - if (!source) { - return undefined - } - source = wrap[0] + source + wrap[1] - - var cachingRequire = function require (id) { - if (cache[id]) { - return cache[id].exports - } - if (id === 'internal/bootstrap/loaders' || id === 'internal/process') { - // Provide just enough to keep `graceful-fs@3` working and tests passing. - // For now. - return { - internalBinding: function(name) { - if (name === 'types') { - return process.binding('util'); - } else { - try { - return process.binding(name); - } catch (e) {} - return {}; - } - }, - NativeModule: { - _source: process.binding('natives'), - nonInternalExists: function(id) { - return !id.startsWith('internal/'); - } - } - }; - } - return req_(id, cache) - } - - var nm = { - exports: {}, - loading: true, - loaded: false, - filename: id + '.js' - } - cache[id] = nm - var fn - var setV8Flags = false - try { - require('v8').setFlagsFromString('--allow_natives_syntax') - setV8Flags = true - } catch (e) {} - try { - /* istanbul ignore else */ - if (ContextifyScript) { - fn = runInThisContext(source, { - filename: nm.filename, - lineOffset: 0, - displayErrors: true - }); - } else { - fn = runInThisContext(source, nm.filename, true); - } - fn(nm.exports, cachingRequire, nm, nm.filename) - nm.loaded = true - } finally { - nm.loading = false - /*istanbul ignore next*/ - if (setV8Flags) { - // Ref: https://github.com/nodejs/node/blob/591a24b819d53a555463b1cbf9290a6d8bcc1bcb/lib/internal/bootstrap_node.js#L429-L434 - var re = /^--allow[-_]natives[-_]syntax$/ - if (!process.execArgv.some(function (s) { return re.test(s) })) - require('v8').setFlagsFromString('--noallow_natives_syntax') - } - } - - return nm.exports -} - -function src (id) { - return natives[id] -} |