repl: default useGlobal to true
This is a partial revert of 15157c3c3d7594cefb7f5941cbe925657e7d88bd. This change lead to a regression that broke require() in the CLI REPL, as imported files were evaluated in a different context. Refs: https://github.com/nodejs/node/pull/5703 Fixes: https://github.com/nodejs/node/issues/7788 PR-URL: https://github.com/nodejs/node/pull/7795 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Minwoo Jung <jmwsoft@gmail.com>
This commit is contained in:
parent
68b966b2de
commit
2cc01da7f0
@ -22,7 +22,7 @@ function createRepl(env, opts, cb) {
|
|||||||
opts = opts || {
|
opts = opts || {
|
||||||
ignoreUndefined: false,
|
ignoreUndefined: false,
|
||||||
terminal: process.stdout.isTTY,
|
terminal: process.stdout.isTTY,
|
||||||
useGlobal: false,
|
useGlobal: true,
|
||||||
breakEvalOnSigint: true
|
breakEvalOnSigint: true
|
||||||
};
|
};
|
||||||
|
|
||||||
|
28
test/parallel/test-repl-require-context.js
Normal file
28
test/parallel/test-repl-require-context.js
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
'use strict';
|
||||||
|
const common = require('../common');
|
||||||
|
const assert = require('assert');
|
||||||
|
const cp = require('child_process');
|
||||||
|
const path = require('path');
|
||||||
|
const child = cp.spawn(process.execPath, ['--interactive']);
|
||||||
|
const fixture = path.join(common.fixturesDir, 'is-object.js').replace(/\\/g,
|
||||||
|
'/');
|
||||||
|
let output = '';
|
||||||
|
|
||||||
|
child.stdout.setEncoding('utf8');
|
||||||
|
child.stdout.on('data', (data) => {
|
||||||
|
output += data;
|
||||||
|
});
|
||||||
|
|
||||||
|
child.on('exit', common.mustCall(() => {
|
||||||
|
const results = output.split('\n').map((line) => {
|
||||||
|
return line.replace(/\w*>\w*/, '').trim();
|
||||||
|
});
|
||||||
|
|
||||||
|
assert.deepStrictEqual(results, ['undefined', 'true', 'true', '']);
|
||||||
|
}));
|
||||||
|
|
||||||
|
child.stdin.write('const isObject = (obj) => obj.constructor === Object;\n');
|
||||||
|
child.stdin.write('isObject({});\n');
|
||||||
|
child.stdin.write(`require('${fixture}').isObject({});\n`);
|
||||||
|
child.stdin.write('.exit');
|
||||||
|
child.stdin.end();
|
Loading…
x
Reference in New Issue
Block a user