Compare commits

...

3 Commits

Author SHA1 Message Date
Derrick Farris
fbf9ce127b fix(bindings): mark JSCInitialize 2023-03-02 00:28:36 -06:00
Derrick Farris
6d535fb7b4 chore(builtins): add process builtin gen'd code 2023-03-01 23:44:22 -06:00
Derrick Farris
c6e0bc3b19 feat(stdio): add some tty.WriteStream methods 2023-03-01 23:44:20 -06:00
3 changed files with 48 additions and 1 deletions

View File

@@ -4723,6 +4723,7 @@ pub const DOMCalls = .{
extern "c" fn JSCInitialize(env: [*]const [*:0]u8, count: usize, cb: *const fn ([*]const u8, len: usize) callconv(.C) void) void;
pub fn initialize() void {
JSC.markBinding(@src());
JSCInitialize(
std.os.environ.ptr,
std.os.environ.len,

View File

@@ -51,7 +51,7 @@ namespace WebCore {
const JSC::ConstructAbility s_processObjectInternalsGetStdioWriteStreamCodeConstructAbility = JSC::ConstructAbility::CannotConstruct;
const JSC::ConstructorKind s_processObjectInternalsGetStdioWriteStreamCodeConstructorKind = JSC::ConstructorKind::None;
const JSC::ImplementationVisibility s_processObjectInternalsGetStdioWriteStreamCodeImplementationVisibility = JSC::ImplementationVisibility::Public;
const int s_processObjectInternalsGetStdioWriteStreamCodeLength = 9767;
const int s_processObjectInternalsGetStdioWriteStreamCodeLength = 10295;
static const JSC::Intrinsic s_processObjectInternalsGetStdioWriteStreamCodeIntrinsic = JSC::NoIntrinsic;
const char* const s_processObjectInternalsGetStdioWriteStreamCode =
"(function (fd_, rawRequire) {\n" \
@@ -224,6 +224,8 @@ const char* const s_processObjectInternalsGetStdioWriteStreamCode =
" return normalied === \"utf8\" || normalied === \"utf-8\" || normalied === \"buffer\" || normalied === \"binary\";\n" \
" }\n" \
"\n" \
" var readline;\n" \
"\n" \
" var FastStdioWriteStream = class StdioWriteStream extends EventEmitter {\n" \
" #fd;\n" \
" #innerStream;\n" \
@@ -275,6 +277,27 @@ const char* const s_processObjectInternalsGetStdioWriteStreamCode =
" return (this.#isTTY ??= require(\"node:tty\").isatty(this.#fd));\n" \
" }\n" \
"\n" \
" cursorTo(x, y, callback) {\n" \
" return (readline ??= require(\"readline\")).cursorTo(this, x, y, callback);\n" \
" }\n" \
"\n" \
" moveCursor(dx, dy, callback) {\n" \
" return (readline ??= require(\"readline\")).moveCursor(this, dx, dy, callback);\n" \
" }\n" \
"\n" \
" clearLine(dir, callback) {\n" \
" return (readline ??= require(\"readline\")).clearLine(this, dir, callback);\n" \
" }\n" \
"\n" \
" clearScreenDown(callback) {\n" \
" return (readline ??= require(\"readline\")).clearScreenDown(this, callback);\n" \
" }\n" \
"\n" \
" //\n" \
" //\n" \
" //\n" \
" //\n" \
"\n" \
" ref() {\n" \
" this.#getWriter().ref();\n" \
" }\n" \

View File

@@ -191,6 +191,8 @@ function getStdioWriteStream(fd_, rawRequire) {
return normalied === "utf8" || normalied === "utf-8" || normalied === "buffer" || normalied === "binary";
}
var readline;
var FastStdioWriteStream = class StdioWriteStream extends EventEmitter {
#fd;
#innerStream;
@@ -242,6 +244,27 @@ function getStdioWriteStream(fd_, rawRequire) {
return (this.#isTTY ??= require("node:tty").isatty(this.#fd));
}
cursorTo(x, y, callback) {
return (readline ??= require("readline")).cursorTo(this, x, y, callback);
}
moveCursor(dx, dy, callback) {
return (readline ??= require("readline")).moveCursor(this, dx, dy, callback);
}
clearLine(dir, callback) {
return (readline ??= require("readline")).clearLine(this, dir, callback);
}
clearScreenDown(callback) {
return (readline ??= require("readline")).clearScreenDown(this, callback);
}
// TODO: once implemented this.columns and this.rows should be uncommented
// getWindowSize() {
// return [this.columns, this.rows];
// }
ref() {
this.#getWriter().ref();
}