mirror of
https://github.com/nodejs/node.git
synced 2026-10-28 18:25:13 +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>
24 lines
683 B
JavaScript
24 lines
683 B
JavaScript
import '../common/index.mjs';
|
|
import assert from 'node:assert';
|
|
import repl from 'node:repl';
|
|
import { startNewREPLServer } from '../common/repl.js';
|
|
|
|
let evalCount = 0;
|
|
|
|
function customEval(code, context, file, cb) {
|
|
evalCount++;
|
|
|
|
return cb(evalCount === 1 ? new repl.Recoverable() : null, true);
|
|
}
|
|
|
|
const { output, run } = startNewREPLServer({ eval: customEval });
|
|
|
|
// https://github.com/nodejs/node/issues/2939
|
|
// Expose recoverable errors to the consumer.
|
|
await run('1\n');
|
|
await run('2\n');
|
|
|
|
assert(output.accumulator.includes('| '), 'REPL never recovered');
|
|
assert(output.accumulator.includes('true\n'), 'REPL never rendered the result');
|
|
assert.strictEqual(evalCount, 2);
|