���� JFIF �� � ( %"1"%)+...383,7(-.-
![]() Server : Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.20 System : Linux st2.domain.com 3.10.0-1127.10.1.el7.x86_64 #1 SMP Wed Jun 3 14:28:03 UTC 2020 x86_64 User : apache ( 48) PHP Version : 7.4.20 Disable Function : NONE Directory : /home/real/node-v13.0.1/test/parallel/ |
'use strict'; // Flags: --expose-internals const common = require('../common'); const stream = require('stream'); const repl = require('internal/repl'); const assert = require('assert'); // Array of [useGlobal, expectedResult] pairs const globalTestCases = [ [false, 'undefined'], [true, '\'tacos\''], [undefined, 'undefined'] ]; const globalTest = (useGlobal, cb, output) => (err, repl) => { if (err) return cb(err); let str = ''; output.on('data', (data) => (str += data)); global.lunch = 'tacos'; repl.write('global.lunch;\n'); repl.close(); delete global.lunch; cb(null, str.trim()); }; // Test how the global object behaves in each state for useGlobal for (const [option, expected] of globalTestCases) { runRepl(option, globalTest, common.mustCall((err, output) => { assert.ifError(err); assert.strictEqual(output, expected); })); } // Test how shadowing the process object via `let` // behaves in each useGlobal state. Note: we can't // actually test the state when useGlobal is true, // because the exception that's generated is caught // (see below), but errors are printed, and the test // suite is aware of it, causing a failure to be flagged. // const processTestCases = [false, undefined]; const processTest = (useGlobal, cb, output) => (err, repl) => { if (err) return cb(err); let str = ''; output.on('data', (data) => (str += data)); // If useGlobal is false, then `let process` should work repl.write('let process;\n'); repl.write('21 * 2;\n'); repl.close(); cb(null, str.trim()); }; for (const option of processTestCases) { runRepl(option, processTest, common.mustCall((err, output) => { assert.ifError(err); assert.strictEqual(output, 'undefined\n42'); })); } function runRepl(useGlobal, testFunc, cb) { const inputStream = new stream.PassThrough(); const outputStream = new stream.PassThrough(); const opts = { input: inputStream, output: outputStream, useGlobal: useGlobal, useColors: false, terminal: false, prompt: '' }; repl.createInternalRepl( process.env, opts, testFunc(useGlobal, cb, opts.output)); }