aboutsummaryrefslogtreecommitdiff
path: root/src/bun.js/scripts/generate-jssink.js
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-09-22 23:44:53 -0700
committerGravatar Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com> 2022-09-22 23:45:02 -0700
commit2c1926993bc4d94f9e7bc4d171217a707efd385c (patch)
tree827148c57920e40ad48c4c6d73ceec68a9b21c96 /src/bun.js/scripts/generate-jssink.js
parente14a3af491ece8d1b0309e76ae3022b4fad91f16 (diff)
downloadbun-2c1926993bc4d94f9e7bc4d171217a707efd385c.tar.gz
bun-2c1926993bc4d94f9e7bc4d171217a707efd385c.tar.zst
bun-2c1926993bc4d94f9e7bc4d171217a707efd385c.zip
Faster `Blob` + begin to implement `FileSink`
Diffstat (limited to 'src/bun.js/scripts/generate-jssink.js')
-rw-r--r--src/bun.js/scripts/generate-jssink.js18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/bun.js/scripts/generate-jssink.js b/src/bun.js/scripts/generate-jssink.js
index 1caea3c22..65fc864fb 100644
--- a/src/bun.js/scripts/generate-jssink.js
+++ b/src/bun.js/scripts/generate-jssink.js
@@ -1,6 +1,11 @@
import { resolve } from "path";
-const classes = ["ArrayBufferSink", "HTTPResponseSink", "HTTPSResponseSink"];
+const classes = [
+ "ArrayBufferSink",
+ "FileSink",
+ "HTTPResponseSink",
+ "HTTPSResponseSink",
+];
const SINK_COUNT = 5;
function names(name) {
@@ -11,11 +16,14 @@ function names(name) {
controllerName: `Readable${name}Controller`,
prototypeName: `JS${name}Prototype`,
controllerPrototypeName: `JSReadable${name}ControllerPrototype`,
+ writableStreamSourcePrototype: `JSWritableStreamSource${name}Prototype`,
+ writableStreamName: `JSWritableStreamSource${name}`,
};
}
function header() {
function classTemplate(name) {
- const { constructor, className, controller } = names(name);
+ const { constructor, className, controller, writableStreamName } =
+ names(name);
return `class ${constructor} final : public JSC::InternalFunction {
public:
@@ -108,6 +116,8 @@ function header() {
void finishCreation(JSC::VM&);
};
+
+
class ${controller} final : public JSC::JSDestructibleObject {
public:
using Base = JSC::JSDestructibleObject;
@@ -360,6 +370,8 @@ JSC_DEFINE_HOST_FUNCTION(functionStartDirectStream, (JSC::JSGlobalObject * lexic
controllerName,
controllerPrototypeName,
constructor,
+ writableStreamName,
+ writableStreamSourcePrototype,
} = names(name);
const protopad = `${controller}__close`.length;
const padding = `${name}__doClose`.length;
@@ -460,6 +472,8 @@ JSC_DEFINE_HOST_FUNCTION(${name}__doClose, (JSC::JSGlobalObject * lexicalGlobalO
controllerName,
controllerPrototypeName,
constructor,
+ writableStreamSourcePrototype,
+ writableStreamName,
} = names(name);
const protopad = `${controller}__close`.length;
const padding = `${name}__doClose`.length;