86 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			86 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | 'use strict'; | ||
|  | 
 | ||
|  | Object.defineProperty(exports, '__esModule', { | ||
|  |   value: true | ||
|  | }); | ||
|  | exports.default = _default; | ||
|  | 
 | ||
|  | function _fs() { | ||
|  |   const data = _interopRequireDefault(require('fs')); | ||
|  | 
 | ||
|  |   _fs = function _fs() { | ||
|  |     return data; | ||
|  |   }; | ||
|  | 
 | ||
|  |   return data; | ||
|  | } | ||
|  | 
 | ||
|  | var _createProcessObject = _interopRequireDefault( | ||
|  |   require('./createProcessObject') | ||
|  | ); | ||
|  | 
 | ||
|  | var _deepCyclicCopy = _interopRequireDefault(require('./deepCyclicCopy')); | ||
|  | 
 | ||
|  | function _interopRequireDefault(obj) { | ||
|  |   return obj && obj.__esModule ? obj : {default: obj}; | ||
|  | } | ||
|  | 
 | ||
|  | /** | ||
|  |  * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved. | ||
|  |  * | ||
|  |  * This source code is licensed under the MIT license found in the | ||
|  |  * LICENSE file in the root directory of this source tree. | ||
|  |  */ | ||
|  | const DTRACE = Object.keys(global).filter(key => key.startsWith('DTRACE')); | ||
|  | 
 | ||
|  | function _default(globalObject, globals) { | ||
|  |   globalObject.process = (0, _createProcessObject.default)(); | ||
|  |   const symbol = globalObject.Symbol; // Keep a reference to some globals that Jest needs
 | ||
|  | 
 | ||
|  |   Object.defineProperties(globalObject, { | ||
|  |     [symbol.for('jest-native-promise')]: { | ||
|  |       enumerable: false, | ||
|  |       value: Promise, | ||
|  |       writable: false | ||
|  |     }, | ||
|  |     [symbol.for('jest-native-now')]: { | ||
|  |       enumerable: false, | ||
|  |       value: globalObject.Date.now.bind(globalObject.Date), | ||
|  |       writable: false | ||
|  |     }, | ||
|  |     [symbol.for('jest-native-read-file')]: { | ||
|  |       enumerable: false, | ||
|  |       value: _fs().default.readFileSync.bind(_fs().default), | ||
|  |       writable: false | ||
|  |     }, | ||
|  |     [symbol.for('jest-native-write-file')]: { | ||
|  |       enumerable: false, | ||
|  |       value: _fs().default.writeFileSync.bind(_fs().default), | ||
|  |       writable: false | ||
|  |     }, | ||
|  |     [symbol.for('jest-native-exists-file')]: { | ||
|  |       enumerable: false, | ||
|  |       value: _fs().default.existsSync.bind(_fs().default), | ||
|  |       writable: false | ||
|  |     }, | ||
|  |     'jest-symbol-do-not-touch': { | ||
|  |       enumerable: false, | ||
|  |       value: symbol, | ||
|  |       writable: false | ||
|  |     } | ||
|  |   }); // Forward some APIs.
 | ||
|  | 
 | ||
|  |   DTRACE.forEach(dtrace => { | ||
|  |     // @ts-ignore: no index
 | ||
|  |     globalObject[dtrace] = function(...args) { | ||
|  |       // @ts-ignore: no index
 | ||
|  |       return global[dtrace].apply(this, args); | ||
|  |     }; | ||
|  |   }); // Forward some others (this breaks the sandbox but for now it's OK).
 | ||
|  | 
 | ||
|  |   globalObject.Buffer = global.Buffer; | ||
|  |   globalObject.setImmediate = global.setImmediate; | ||
|  |   globalObject.clearImmediate = global.clearImmediate; | ||
|  |   return Object.assign(globalObject, (0, _deepCyclicCopy.default)(globals)); | ||
|  | } |