aboutsummaryrefslogtreecommitdiff
path: root/src/javascript/jsc/javascript.zig
diff options
context:
space:
mode:
authorGravatar Jarred SUmner <jarred@jarredsumner.com> 2022-03-23 01:46:47 -0700
committerGravatar Jarred SUmner <jarred@jarredsumner.com> 2022-03-23 01:46:47 -0700
commit5e5f0bd2930a0e1a2f897ba6e857be05e8ca04f2 (patch)
treec7b707280cba036f57ba2888bde6034845cb0448 /src/javascript/jsc/javascript.zig
parent9974142eef9909866128951f64f4beb8a9617db7 (diff)
downloadbun-5e5f0bd2930a0e1a2f897ba6e857be05e8ca04f2.tar.gz
bun-5e5f0bd2930a0e1a2f897ba6e857be05e8ca04f2.tar.zst
bun-5e5f0bd2930a0e1a2f897ba6e857be05e8ca04f2.zip
[bun.js] Implement Bun.write()
Diffstat (limited to 'src/javascript/jsc/javascript.zig')
-rw-r--r--src/javascript/jsc/javascript.zig16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/javascript/jsc/javascript.zig b/src/javascript/jsc/javascript.zig
index 90cb8341f..eebeae8e9 100644
--- a/src/javascript/jsc/javascript.zig
+++ b/src/javascript/jsc/javascript.zig
@@ -297,9 +297,11 @@ pub fn IOTask(comptime Context: type) type {
};
}
+const CopyFilePromiseTask = WebCore.Blob.Store.CopyFile.CopyFilePromiseTask;
const AsyncTransformTask = @import("./api/transpiler.zig").TransformTask.AsyncTransformTask;
const BunTimerTimeoutTask = Bun.Timer.Timeout.TimeoutTask;
const ReadFileTask = WebCore.Blob.Store.ReadFile.ReadFileTask;
+const WriteFileTask = WebCore.Blob.Store.WriteFile.WriteFileTask;
const OpenAndStatFileTask = WebCore.Blob.Store.OpenAndStatFile.OpenAndStatFileTask;
// const PromiseTask = JSInternalPromise.Completion.PromiseTask;
pub const Task = TaggedPointerUnion(.{
@@ -309,6 +311,8 @@ pub const Task = TaggedPointerUnion(.{
BunTimerTimeoutTask,
ReadFileTask,
OpenAndStatFileTask,
+ CopyFilePromiseTask,
+ WriteFileTask,
// PromiseTask,
// TimeoutTasklet,
});
@@ -527,6 +531,13 @@ pub const VirtualMachine = struct {
finished += 1;
vm_.active_tasks -|= 1;
},
+ @field(Task.Tag, @typeName(CopyFilePromiseTask)) => {
+ var transform_task: *CopyFilePromiseTask = task.get(CopyFilePromiseTask).?;
+ transform_task.*.runFromJS();
+ transform_task.deinit();
+ finished += 1;
+ vm_.active_tasks -|= 1;
+ },
@field(Task.Tag, @typeName(BunTimerTimeoutTask)) => {
var transform_task: *BunTimerTimeoutTask = task.get(BunTimerTimeoutTask).?;
transform_task.*.runFromJS();
@@ -542,6 +553,11 @@ pub const VirtualMachine = struct {
transform_task.*.runFromJS();
finished += 1;
},
+ @field(Task.Tag, @typeName(WriteFileTask)) => {
+ var transform_task: *WriteFileTask = task.get(WriteFileTask).?;
+ transform_task.*.runFromJS();
+ finished += 1;
+ },
else => unreachable,
}
}