aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/builtins
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-12-05 03:52:20 -0800
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-12-05 03:52:20 -0800
commiteeea1707a132ac7b5c8898f0b4bcf5c0f04a097b (patch)
tree55ed59416066e0ac9efcc2c53f5981cf988ae201 /src/bun.js/builtins
parentb7e08cb9379634fa1a407f8aa84de78ae4839589 (diff)
downloadbun-eeea1707a132ac7b5c8898f0b4bcf5c0f04a097b.tar.gz
bun-eeea1707a132ac7b5c8898f0b4bcf5c0f04a097b.tar.zst
bun-eeea1707a132ac7b5c8898f0b4bcf5c0f04a097b.zip
`process.stdin` exists but doesn't totally work yet
Diffstat (limited to 'src/bun.js/builtins')
-rw-r--r--src/bun.js/builtins/cpp/ProcessObjectInternalsBuiltins.cpp29
-rw-r--r--src/bun.js/builtins/js/ProcessObjectInternals.js27
2 files changed, 25 insertions, 31 deletions
diff --git a/src/bun.js/builtins/cpp/ProcessObjectInternalsBuiltins.cpp b/src/bun.js/builtins/cpp/ProcessObjectInternalsBuiltins.cpp
index 07086c4c8..0170d0de3 100644
--- a/src/bun.js/builtins/cpp/ProcessObjectInternalsBuiltins.cpp
+++ b/src/bun.js/builtins/cpp/ProcessObjectInternalsBuiltins.cpp
@@ -473,7 +473,7 @@ const char* const s_processObjectInternalsGetStdioWriteStreamCode =
const JSC::ConstructAbility s_processObjectInternalsGetStdinStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
const JSC::ConstructorKind s_processObjectInternalsGetStdinStreamCodeConstructorKind = JSC::ConstructorKind::None;
const JSC::ImplementationVisibility s_processObjectInternalsGetStdinStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
-const int s_processObjectInternalsGetStdinStreamCodeLength = 3915;
+const int s_processObjectInternalsGetStdinStreamCodeLength = 3786;
static const JSC::Intrinsic s_processObjectInternalsGetStdinStreamCodeIntrinsic = JSC::NoIntrinsic;
const char* const s_processObjectInternalsGetStdinStreamCode =
"(function (fd, rawRequire, Bun) {\n" \
@@ -505,7 +505,7 @@ const char* const s_processObjectInternalsGetStdinStreamCode =
" constructor() {\n" \
" super({ readable: true, writable: true });\n" \
"\n" \
- " this.#onReadable = this._read.bind(this);\n" \
+ " this.#onReadable = (...args) => this._read(...args);\n" \
" }\n" \
"\n" \
" #onFinished(err) {\n" \
@@ -565,11 +565,10 @@ const char* const s_processObjectInternalsGetStdinStreamCode =
" Bun.stdin.stream(),\n" \
" ));\n" \
"\n" \
- " readStream.on(\"readable\", () => {\n" \
- " const cb = this.#onReadable;\n" \
- " this.#onReadable = null;\n" \
- " cb();\n" \
+ " readStream.on(\"data\", (data) => {\n" \
+ " this.push(data);\n" \
" });\n" \
+ " readStream.ref();\n" \
"\n" \
" readStream.on(\"end\", () => {\n" \
" this.push(null);\n" \
@@ -584,16 +583,14 @@ const char* const s_processObjectInternalsGetStdinStreamCode =
" });\n" \
" }\n" \
"\n" \
- " _read() {\n" \
- " var readStream = this.#readStream;\n" \
- " while (true) {\n" \
- " const buf = readStream.read();\n" \
- " if (buf === null || !this.push(buf)) {\n" \
- " this.#onReadable = this._read.bind(this);\n" \
- " return;\n" \
- " }\n" \
- " }\n" \
+ " ref() {\n" \
+ " this.#readStream?.ref?.();\n" \
" }\n" \
+ " unref() {\n" \
+ " this.#readStream?.unref?.();\n" \
+ " }\n" \
+ "\n" \
+ " _read(encoding, callback) {}\n" \
"\n" \
" #constructWriteStream() {\n" \
" var { createWriteStream } = require(\"node:fs\");\n" \
@@ -641,7 +638,7 @@ const char* const s_processObjectInternalsGetStdinStreamCode =
"\n" \
" _final(callback) {\n" \
" this.#writeStream.end();\n" \
- " this.#onFinish = callback.bind(this);\n" \
+ " this.#onFinish = (...args) => callback(...args);\n" \
" }\n" \
" };\n" \
"\n" \
diff --git a/src/bun.js/builtins/js/ProcessObjectInternals.js b/src/bun.js/builtins/js/ProcessObjectInternals.js
index 13c1da431..bf548eee6 100644
--- a/src/bun.js/builtins/js/ProcessObjectInternals.js
+++ b/src/bun.js/builtins/js/ProcessObjectInternals.js
@@ -464,7 +464,7 @@ function getStdinStream(fd, rawRequire, Bun) {
constructor() {
super({ readable: true, writable: true });
- this.#onReadable = this._read.bind(this);
+ this.#onReadable = (...args) => this._read(...args);
}
#onFinished(err) {
@@ -522,11 +522,10 @@ function getStdinStream(fd, rawRequire, Bun) {
Bun.stdin.stream(),
));
- readStream.on("readable", () => {
- const cb = this.#onReadable;
- this.#onReadable = null;
- cb();
+ readStream.on("data", (data) => {
+ this.push(data);
});
+ readStream.ref();
readStream.on("end", () => {
this.push(null);
@@ -541,16 +540,14 @@ function getStdinStream(fd, rawRequire, Bun) {
});
}
- _read() {
- var readStream = this.#readStream;
- while (true) {
- const buf = readStream.read();
- if (buf === null || !this.push(buf)) {
- this.#onReadable = this._read.bind(this);
- return;
- }
- }
+ ref() {
+ this.#readStream?.ref?.();
}
+ unref() {
+ this.#readStream?.unref?.();
+ }
+
+ _read(encoding, callback) {}
#constructWriteStream() {
var { createWriteStream } = require("node:fs");
@@ -598,7 +595,7 @@ function getStdinStream(fd, rawRequire, Bun) {
_final(callback) {
this.#writeStream.end();
- this.#onFinish = callback.bind(this);
+ this.#onFinish = (...args) => callback(...args);
}
};