diff options
-rw-r--r-- | src/bundler/bundle_v2.zig | 8 | ||||
-rw-r--r-- | src/options.zig | 3 | ||||
-rw-r--r-- | src/string_immutable.zig | 25 |
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); |