Files
scriptc/tests/corpus/input-lifetimes-modules/main.ts
Chris Tate 932ef772f2 Improve input lifetimes and compiler memory use
- Borrow string inputs through proven helpers while preserving owned call boundaries.
- Keep temporary array arguments on the stack with safe snapshots and compact lookups.
- Bound shared LLVM shard growth and cover evaluation order, escaping values, and cleanup.
2026-10-04 16:00:55 -05:00

21 lines
981 B
TypeScript

import { Entry, keep, name, normalize } from "./model.ts";
import { describe, inspect, invoke, matching, pair, read } from "./helpers.ts";
const entries = [new Entry(" Alpha ", 3), new Entry("Beta", 5)];
console.log(read(entries, 0), read(entries, 1), read(entries, 2));
console.log(matching(entries, "B"));
const records = [{ key: "Record", extra: 7 }];
console.log(describe(records[0]), describe(records[1]));
console.log(pair(entries[0], entries[1]));
console.log(pair(records[0], records[1]));
console.log(invoke(normalize, " INDIRECT "));
const escaped = keep(entries[0]);
console.log(inspect(entries[0], () => { entries.length = 0; }));
console.log(name(escaped), entries.length);
const saved = name(records[0]);
records.length = 0;
console.log(saved);
const nested = [new Entry("nested", 11)];
console.log(pair(nested[0], keep(nested[0])));
const generic = keep({ key: "generic", extra: 13 });
console.log(describe(generic), describe(keep<Entry | undefined>(undefined)));