diff options
Diffstat (limited to 'src/js/node/tty.js')
-rw-r--r-- | src/js/node/tty.js | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/js/node/tty.js b/src/js/node/tty.js index 2ffc2d764..1c3fb2fac 100644 --- a/src/js/node/tty.js +++ b/src/js/node/tty.js @@ -11,30 +11,34 @@ function ReadStream(fd) { const stream = require("node:fs").ReadStream.call(this, "", { fd, }); + Object.setPrototypeOf(stream, ReadStream.prototype); stream.isRaw = false; - stream.isTTY = isatty(stream.fd); + stream.isTTY = true; + + $assert(stream instanceof ReadStream); return stream; } Object.defineProperty(ReadStream, "prototype", { get() { - const Real = require("node:fs").ReadStream.prototype; + const Prototype = Object.create(require("node:fs").ReadStream.prototype); - Object.defineProperty(ReadStream, "prototype", { value: Real }); - ReadStream.prototype.setRawMode = function (flag) { + Prototype.setRawMode = function (flag) { const mode = flag ? 1 : 0; const err = ttySetMode(this.fd, mode); if (err) { - this.emit("error", new Error("setRawMode failed with errno:", err)); + this.emit("error", new Error("setRawMode failed with errno: " + err)); return this; } this.isRaw = flag; return this; }; - return Real; + Object.defineProperty(ReadStream, "prototype", { value: Prototype }); + + return Prototype; }, enumerable: true, configurable: true, |