mirror of
https://github.com/oven-sh/bun
synced 2026-02-02 15:08:46 +00:00
* Add a zig fmt action * add failing file * Setup prettier better * Update prettier-fmt.yml * Fail on error * Update prettier-fmt.yml * boop * boop2 * tar.gz * Update zig-fmt.yml * Update zig-fmt.yml * Update zig-fmt.yml * Update zig-fmt.yml * Update zig-fmt.yml * boop * Update prettier-fmt.yml * tag * newlines * multiline * fixup * Update zig-fmt.yml * update it * fixup * both * w * Update prettier-fmt.yml * prettier all the things * Update package.json * zig fmt * ❌ ✅ * bump * . * quotes * fix prettier ignore * once more * Update prettier-fmt.yml * Update fallback.ts * consistentcy --------- Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
51 lines
1.5 KiB
JavaScript
51 lines
1.5 KiB
JavaScript
// original code:
|
|
// var re_btou = new RegExp(
|
|
// [
|
|
// "[\xC0-\xDF][\x80-\xBF]",
|
|
// "[\xE0-\xEF][\x80-\xBF]{2}",
|
|
// "[\xF0-\xF7][\x80-\xBF]{3}",
|
|
// ].join("|"),
|
|
// "g"
|
|
// );
|
|
|
|
export var re_utob = /[\uD800-\uDBFF][\uDC00-\uDFFFF]|[^\x00-\x7F]/g;
|
|
export var re_btou = new RegExp(
|
|
["[\xC0-\xDF][\x80-\xBF]", "[\xE0-\xEF][\x80-\xBF]{2}", "[\xF0-\xF7][\x80-\xBF]{3}"].join("|"),
|
|
"g",
|
|
);
|
|
|
|
const encoder = new TextEncoder();
|
|
const realLines = ["[\xC0-\xDF][\x80-\xBF]", "[\xE0-\xEF][\x80-\xBF]{2}", "[\xF0-\xF7][\x80-\xBF]{3}"];
|
|
const real = realLines.map(input => Array.from(encoder.encode(input)));
|
|
|
|
const expected = [
|
|
[91, 195, 128, 45, 195, 159, 93, 91, 194, 128, 45, 194, 191, 93],
|
|
[91, 195, 160, 45, 195, 175, 93, 91, 194, 128, 45, 194, 191, 93, 123, 50, 125],
|
|
[91, 195, 176, 45, 195, 183, 93, 91, 194, 128, 45, 194, 191, 93, 123, 51, 125],
|
|
];
|
|
|
|
const newlinePreserved = `\n`;
|
|
|
|
export function test() {
|
|
if (!real.every((point, i) => point.every((val, j) => val === expected[i][j]))) {
|
|
throw new Error(
|
|
`test failed
|
|
${JSON.stringify({ expected, real }, null, 2)}`,
|
|
);
|
|
}
|
|
|
|
if (newlinePreserved.length !== 1 || newlinePreserved.charCodeAt(0) !== 10) {
|
|
throw new Error("Newline was not preserved");
|
|
}
|
|
|
|
const decoder = new TextDecoder("utf8");
|
|
if (!realLines.every((line, i) => decoder.decode(Uint8Array.from(expected[i])) === line)) {
|
|
throw new Error(
|
|
`test failed. Lines did not match.
|
|
${JSON.stringify({ expected, real }, null, 2)}`,
|
|
);
|
|
}
|
|
|
|
testDone(import.meta.url);
|
|
}
|