aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/bundler/bundle_v2.zig8
-rw-r--r--src/options.zig3
-rw-r--r--src/string_immutable.zig25
3 files changed, 17 insertions, 19 deletions
diff --git a/src/bundler/bundle_v2.zig b/src/bundler/bundle_v2.zig
index 3f0c08a65..6f4674b30 100644
--- a/src/bundler/bundle_v2.zig
+++ b/src/bundler/bundle_v2.zig
@@ -941,7 +941,13 @@ pub const BundleV2 = struct {
obj.put(
globalThis,
JSC.ZigString.static("result"),
- output_file.toJS(globalThis),
+ output_file.toJS(
+ if (output_file.value == .saved)
+ bun.default_allocator.dupe(u8, output_file.input.text) catch unreachable
+ else
+ "",
+ globalThis,
+ ),
);
output_files_js.putIndex(globalThis, @intCast(u32, i), obj);
}
diff --git a/src/options.zig b/src/options.zig
index a1aeba88e..0ad92a5e1 100644
--- a/src/options.zig
+++ b/src/options.zig
@@ -2120,6 +2120,7 @@ pub const OutputFile = struct {
pub fn toJS(
this: *OutputFile,
+ owned_pathname: []const u8,
globalObject: *JSC.JSGlobalObject,
) bun.JSC.JSValue {
return switch (this.value) {
@@ -2127,7 +2128,7 @@ pub const OutputFile = struct {
.noop => JSC.JSValue.undefined,
.move => this.value.move.toJS(globalObject, this.loader),
.copy => this.value.copy.toJS(globalObject, this.loader),
- .saved => SavedFile.toJS(globalObject, this.input.text, this.size),
+ .saved => SavedFile.toJS(globalObject, owned_pathname, this.size),
.buffer => |buffer| brk: {
var blob = bun.default_allocator.create(JSC.WebCore.Blob) catch unreachable;
blob.* = JSC.WebCore.Blob.init(@constCast(buffer.bytes), buffer.allocator, globalObject);
diff --git a/src/string_immutable.zig b/src/string_immutable.zig
index 2527b6898..f16759eaf 100644
--- a/src/string_immutable.zig
+++ b/src/string_immutable.zig
@@ -1105,29 +1105,20 @@ pub inline fn copyU16IntoU8(output_: []u8, comptime InputType: type, input_: Inp
var output_ptr = output.ptr;
if (comptime Environment.enableSIMD) {
- const last_vector_ptr = input.ptr + (@min(input.len, output.len) & ~(group - 1));
+ const end_len = (@min(input.len, output.len) & ~(group - 1));
+ const last_vector_ptr = input.ptr + end_len;
while (last_vector_ptr != input_ptr) {
const input_vec1: @Vector(group, u16) = input_ptr[0..group].*;
- output_ptr[0] = @truncate(u8, input_vec1[0]);
- output_ptr[1] = @truncate(u8, input_vec1[1]);
- output_ptr[2] = @truncate(u8, input_vec1[2]);
- output_ptr[3] = @truncate(u8, input_vec1[3]);
- output_ptr[4] = @truncate(u8, input_vec1[4]);
- output_ptr[5] = @truncate(u8, input_vec1[5]);
- output_ptr[6] = @truncate(u8, input_vec1[6]);
- output_ptr[7] = @truncate(u8, input_vec1[7]);
- output_ptr[8] = @truncate(u8, input_vec1[8]);
- output_ptr[9] = @truncate(u8, input_vec1[9]);
- output_ptr[10] = @truncate(u8, input_vec1[10]);
- output_ptr[11] = @truncate(u8, input_vec1[11]);
- output_ptr[12] = @truncate(u8, input_vec1[12]);
- output_ptr[13] = @truncate(u8, input_vec1[13]);
- output_ptr[14] = @truncate(u8, input_vec1[14]);
- output_ptr[15] = @truncate(u8, input_vec1[15]);
+ inline for (0..group) |i| {
+ output_ptr[i] = @truncate(u8, input_vec1[i]);
+ }
output_ptr += group;
input_ptr += group;
}
+
+ input.len -= end_len;
+ output.len -= end_len;
}
const last_input_ptr = input_ptr + @min(input.len, output.len);