mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-10-23 06:10:02 +08:00
- Add shared ArrayBuffer storage and native Unicode grapheme segmentation. - Preserve builtin modules, globals, and byte views across JavaScript bindings. - Compile package initialization expressions and optional native callables.
30 lines
1.0 KiB
TypeScript
30 lines
1.0 KiB
TypeScript
let order = "";
|
|
function pattern(value: string | undefined): string | undefined {
|
|
order += "p";
|
|
return value;
|
|
}
|
|
function flags(value: string | undefined): string | undefined {
|
|
order += "f";
|
|
return value;
|
|
}
|
|
// @ts-expect-error JavaScript permits an undefined pattern.
|
|
const insensitive = new RegExp(pattern("a"), flags("i"));
|
|
console.log(insensitive.test("A"), order);
|
|
order = "";
|
|
// @ts-expect-error JavaScript permits an undefined pattern.
|
|
const empty = new RegExp(pattern(undefined), flags(undefined));
|
|
console.log(empty.test("anything"), order);
|
|
// @ts-expect-error JavaScript permits an undefined pattern.
|
|
console.log(new RegExp(undefined, undefined).test(""));
|
|
for (const onlyFirst of [true, false]) {
|
|
const regex = new RegExp("a", onlyFirst ? undefined : "g");
|
|
console.log("aba".replace(regex, "x"));
|
|
}
|
|
order = "";
|
|
try {
|
|
// @ts-expect-error JavaScript permits an undefined pattern.
|
|
new RegExp(pattern("a"), flags("gg"));
|
|
} catch (error) {
|
|
if (error instanceof Error) console.log(error.name, order);
|
|
}
|