mirror of
https://github.com/nodejs/node.git
synced 2026-10-28 10:15:07 +08:00
Signed-off-by: Aviv Keller <me@aviv.sh> PR-URL: https://github.com/nodejs/node/pull/64034 Fixes: https://github.com/nodejs/node/issues/64523 Closes: https://github.com/nodejs/node/pull/64534 Fixes: https://github.com/nodejs/node/issues/39387 Closes: https://github.com/nodejs/node/pull/39392 Fixes: https://github.com/nodejs/node/issues/61390 Fixes: https://github.com/nodejs/node/issues/63126 Fixes: https://github.com/nodejs/node/issues/38503 Fixes: https://github.com/nodejs/node/issues/37445 Fixes: https://github.com/nodejs/node/issues/38145 Fixes: https://github.com/nodejs/node/issues/33369 Fixes: https://github.com/nodejs/node/issues/48131 Fixes: https://github.com/nodejs/node/issues/8309 Fixes: https://github.com/nodejs/node/issues/39689 Fixes: https://github.com/nodejs/node/issues/18931 Reviewed-By: Dario Piotrowicz <dario.piotrowicz@gmail.com> Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Filip Skokan <panva.ip@gmail.com>
35 lines
1000 B
JavaScript
35 lines
1000 B
JavaScript
'use strict';
|
|
|
|
require('../common');
|
|
const { describe, it } = require('node:test');
|
|
const assert = require('assert');
|
|
const { startNewREPLServer, complete } = require('../common/repl');
|
|
|
|
describe('REPL tab completion without side effects', () => {
|
|
const setup = [
|
|
'globalThis.counter = 0;',
|
|
'function incCounter() { return counter++; }',
|
|
'const arr = [{ bar: "baz" }];',
|
|
];
|
|
// None of these expressions should affect the value of `counter`
|
|
for (const code of [
|
|
'incCounter().',
|
|
'a=(counter+=1).foo.',
|
|
'a=(counter++).foo.',
|
|
'for((counter)of[1])foo.',
|
|
'for((counter)in{1:1})foo.',
|
|
'arr[incCounter()].b',
|
|
]) {
|
|
it(`does not evaluate with side effects (${code})`, async () => {
|
|
const { replServer, run } = startNewREPLServer();
|
|
await run(setup);
|
|
|
|
const data = await complete(replServer, code);
|
|
assert.deepStrictEqual(data[0], []);
|
|
|
|
assert.strictEqual(replServer.context.counter, 0);
|
|
replServer.close();
|
|
});
|
|
}
|
|
});
|