mirror of
https://github.com/oven-sh/bun
synced 2026-02-09 10:28:47 +00:00
address unicode issue (#2763)
* Fix an oopsie * Another oopsie * use inline for * Fixup --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user