Files
scriptc/tests/corpus/text-codec-var.ts
Chris Tate fc6408a662 Compile native class caches and environment proxies
- Keep cached native class instances callable, including inherited methods and JavaScript arguments.
- Support plain-object Proxy traps with live receivers, enumeration, and data-property invariants.
- Compile untyped addition, computed environment keys, and text-codec startup storage natively.
2026-09-28 12:25:30 -05:00

28 lines
1.2 KiB
TypeScript

function encode(): Uint8Array { return encoder.encode(input()); }
let calls = 0;
function input(): string { calls++; return "café"; }
function encoderState(): void { console.log(encoder === undefined, typeof encoder); }
encoderState();
try { encode(); }
catch (error) { if (error instanceof Error) console.log(error.name, error.message, calls); }
var encoder = new TextEncoder();
console.log(encode().join(","), calls);
const saved = encoder;
encoder = new TextEncoder();
console.log(saved === encoder, saved.encode("saved").length);
function decode(): string { return decoder.decode(new Uint8Array([0x80])); }
try { decode(); }
catch (error) { if (error instanceof Error) console.log(error.name, error.message); }
var decoder: TextDecoder;
function decoderState(): void { console.log(decoder === undefined); }
decoderState();
decoder = new TextDecoder("windows-1252");
console.log(decode());
decoder = new TextDecoder();
console.log(decoder.decode(encoder.encode("shared ✓")));
function nestedRead(): number { return nested.encode("nested").length; }
try { nestedRead(); }
catch (error) { if (error instanceof Error) console.log(error.name, error.message); }
if (calls > 0) { var nested = new TextEncoder(); }
console.log(nestedRead());