Files
Chris Tate a36b356a6c Support native callable properties and terminal streams
- Preserve callable properties, descriptors, and shared module bindings across native JavaScript code.
- Add stored process streams with input control, output callbacks, and write interception.
- Preserve Error identity and classification through native rethrows and promise rejection.
2026-09-29 00:52:01 -05:00

22 lines
905 B
JavaScript

const input = process.stdin;
const output = process.stdout;
const error = process.stderr;
console.log(input === process.stdin, output === process.stdout, error === process.stderr);
console.log(input === output, output === error, input.fd, output.fd, error.fd);
console.log(Boolean(input.isTTY), Boolean(output.isTTY), output.columns ?? 80, output.rows ?? 24);
console.log(typeof input.setRawMode, typeof input.on, input.readableLength);
console.log(input.pause() === input, input.isPaused());
console.log(input.resume() === input, input.isPaused());
input.pause();
let calls = 0;
const original = output.write;
output.write = function(chunk, encoding, callback) {
calls++;
return original.call(this, chunk, encoding, callback);
};
output.write(Buffer.from('bytes\n'), () => {
output.write = original;
console.log('completed', calls, output.write === original);
});
console.log('through-console');