diff options
author | 2022-09-22 23:44:53 -0700 | |
---|---|---|
committer | 2022-09-22 23:45:02 -0700 | |
commit | 2c1926993bc4d94f9e7bc4d171217a707efd385c (patch) | |
tree | 827148c57920e40ad48c4c6d73ceec68a9b21c96 /src/bun.js/scripts/generate-jssink.js | |
parent | e14a3af491ece8d1b0309e76ae3022b4fad91f16 (diff) | |
download | bun-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.js | 18 |
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; |