const std = @import("std"); const bun = @import("bun"); const strings = bun.strings; const string = bun.string; const AsyncIO = @import("bun").AsyncIO; const JSC = @import("bun").JSC; const PathString = JSC.PathString; const Environment = bun.Environment; const C = bun.C; const Syscall = @import("./syscall.zig"); const os = std.os; const JSGlobalObject = JSC.JSGlobalObject; const ArgumentsSlice = JSC.Node.ArgumentsSlice; pub const BufferVectorized = struct { extern fn memset_pattern16(b: *anyopaque, pattern16: *const anyopaque, len: usize) void; pub fn fill( str: *JSC.ZigString, buf_ptr: [*]u8, fill_length: usize, encoding: JSC.Node.Encoding, ) callconv(.C) void { if (str.len == 0) return; var buf = buf_ptr[0..fill_length]; const written = switch (encoding) { JSC.Node.Encoding.utf8 => if (str.is16Bit()) JSC.WebCore.Encoder.writeU16(str.utf16SliceAligned().ptr, str.utf16SliceAligned().len, buf.ptr, buf.len, JSC.Node.Encoding.utf8) else JSC.WebCore.Encoder.writeU8(str.slice().ptr, str.slice().len, buf.ptr, buf.len, JSC.Node.Encoding.utf8), JSC.Node.Encoding.ascii => if (str.is16Bit()) JSC.WebCore.Encoder.writeU16(str.utf16SliceAligned().ptr, str.utf16SliceAligned().len, buf.ptr, buf.len, JSC.Node.Encoding.ascii) else JSC.WebCore.Encoder.writeU8(str.slice().ptr, str.slice().len, buf.ptr, buf.len, JSC.Node.Encoding.ascii), JSC.Node.Encoding.latin1 => if (str.is16Bit()) JSC.WebCore.Encoder.writeU16(str.utf16SliceAligned().ptr, str.utf16SliceAligned().len, buf.ptr, buf.len, JSC.Node.Encoding.latin1) else JSC.WebCore.Encoder.writeU8(str.slice().ptr, str.slice().len, buf.ptr, buf.len, JSC.Node.Encoding.latin1), JSC.Node.Encoding.buffer => if (str.is16Bit()) JSC.WebCore.Encoder.writeU16(str.utf16SliceAligned().ptr, str.utf16SliceAligned().len, buf.ptr, buf.len, JSC.Node.Encoding.buffer) else JSC.WebCore.Encoder.writeU8(str.slice().ptr, str.slice().len, buf.ptr, buf.len, JSC.Node.Encoding.buffer), JSC.Node.Encoding.utf16le, JSC.Node.Encoding.ucs2, => if (str.is16Bit()) JSC.WebCore.Encoder.writeU16(str.utf16SliceAligned().ptr, str.utf16SliceAligned().len, buf.ptr, buf.len, JSC.Node.Encoding.utf16le) else JSC.WebCore.Encoder.writeU8(str.slice().ptr, str.slice().len, buf.ptr, buf.len, JSC.Node.Encoding.utf16le), JSC.Node.Encoding.base64 => if (str.is16Bit()) JSC.WebCore.Encoder.writeU16(str.utf16SliceAligned().ptr, str.utf16SliceAligned().len, buf.ptr, buf.len, JSC.Node.Encoding.base64) else JSC.WebCore.Encoder.writeU8(str.slice().ptr, str.slice().len, buf.ptr, buf.len, JSC.Node.Encoding.base64), JSC.Node.Encoding.base64url => if (str.is16Bit()) JSC.WebCore.Encoder.writeU16(str.utf16SliceAligned().ptr, str.utf16SliceAligned().len, buf.ptr, buf.len, JSC.Node.Encoding.base64url) else JSC.WebCore.Encoder.writeU8(str.slice().ptr, str.slice().len, buf.ptr, buf.len, JSC.Node.Encoding.base64url), JSC.Node.Encoding.hex => if (str.is16Bit()) JSC.WebCore.Encoder.writeU16(str.utf16SliceAligned().ptr, str.utf16SliceAligned().len, buf.ptr, buf.len, JSC.Node.Encoding.hex) else JSC.WebCore.Encoder.writeU8(str.slice().ptr, str.slice().len, buf.ptr, buf.len, JSC.Node.Encoding.hex), }; if (written <= 0) { return; } var contents = buf[0..@intCast(usize, written)]; buf = buf[@intCast(usize, written)..]; if (contents.len == 1) { @memset(buf.ptr, contents[0], buf.len); return; } const minimum_contents = contents; while (buf.len >= contents.len) { const min_len = @minimum(contents.len, buf.len); std.mem.copy(u8, buf[0..min_len], contents[0..min_len]); if (buf.len <= contents.len) { break; } buf = buf[min_len..]; contents.len *= 2; } while (buf.len > 0) { const to_fill = @minimum(minimum_contents.len, buf.len); std.mem.copy(u8, buf[0..to_fill], minimum_contents[0..to_fill]); buf = buf[to_fill..]; } } }; comptime { if (!JSC.is_bindgen) { @export(BufferVectorized.fill, .{ .name = "Bun__Buffer_fill" }); } } -values Unnamed repository; edit this file 'description' to name the repository.
aboutsummaryrefslogtreecommitdiff
path: root/integration/bunjs-only-snippets/path.test.js (unfollow)
AgeCommit message (Expand)AuthorFilesLines
2022-04-04ughhGravatar Jarred Sumner 1-1/+2
2022-04-04Update syscall.zigGravatar Jarred Sumner 1-4/+4
2022-04-04Update syscall.zigGravatar Jarred Sumner 1-5/+1
2022-04-04hmGravatar Jarred Sumner 2-2/+2
2022-04-04Update Dockerfile.baseGravatar Jarred Sumner 1-1/+1
2022-04-04fixupGravatar Jarred Sumner 4-2/+24
2022-04-04Update MakefileGravatar Jarred Sumner 1-0/+2
2022-04-04Update MakefileGravatar Jarred Sumner 1-1/+2
2022-04-04Update MakefileGravatar Jarred Sumner 1-2/+2
2022-04-04Update MakefileGravatar Jarred Sumner 1-0/+5
2022-04-04Update MakefileGravatar Jarred Sumner 1-1/+2
2022-04-04Remove unused functionGravatar Jarred Sumner 3-44/+0
2022-04-04Update DockerfileGravatar Jarred Sumner 1-0/+2
2022-04-04Add zlib for uwsGravatar Jarred Sumner 2-1/+2
2022-04-04Update DockerfileGravatar Jarred Sumner 1-0/+2
2022-04-04Update MakefileGravatar Jarred Sumner 1-4/+2
2022-04-04Update DockerfileGravatar Jarred Sumner 1-0/+2
2022-04-04Fix missingGravatar Jarred Sumner 4-9/+16
2022-04-04Update response.zigGravatar Jarred Sumner 1-1/+1
2022-04-04Update DockerfileGravatar Jarred Sumner 1-1/+17
2022-04-04Update tsconfig.jsonGravatar Jarred Sumner 1-0/+2
2022-04-04Update launch.jsonGravatar Jarred Sumner 1-0/+12
2022-04-04Update http-file.tsGravatar Jarred Sumner 1-3/+3
2022-04-04fix httpsGravatar Jarred Sumner 4-40/+109
2022-04-04Update bun.d.tsGravatar Jarred Sumner 1-5/+14
2022-04-04Fix error in bun:errorGravatar Jarred Sumner 1-1/+1
2022-04-04Add a couple more testsGravatar Jarred Sumner 1-0/+27
2022-04-04Make `Bun.file()` -> HTMLRewriter -> HTTP response workGravatar Jarred Sumner 5-72/+222
2022-04-04[bun] Don't allow `Transfer-Encoding` headerGravatar Jarred Sumner 1-0/+2
2022-04-04[bun.js] Improve error message for HTTP serverGravatar Jarred Sumner 1-4/+4
2022-04-04[bun.js] Support truncating file length up to u52Gravatar Jarred Sumner 1-7/+7