mirror of
https://github.com/vercel-labs/scriptc.git
synced 2026-10-23 06:10:02 +08:00
Represent ordinary JavaScript arrays with hole, value, and explicit-undefined states; add sparse side storage and carry missing values through the frontend, native backends, runtime, and Node-facing consumers.
21 lines
539 B
TypeScript
21 lines
539 B
TypeScript
type MaybeNumber = number | undefined;
|
|
|
|
function describe(label: string, values: MaybeNumber[]): void {
|
|
const visits: string[] = [];
|
|
values.forEach((value, index) => {
|
|
visits.push(index + ":" + value);
|
|
});
|
|
console.log(label, values.length, visits.join("|"));
|
|
}
|
|
|
|
const values: MaybeNumber[] = [];
|
|
values[4] = 30;
|
|
values[1] = undefined;
|
|
values[3] = 10;
|
|
const alias = values;
|
|
|
|
describe("before", values);
|
|
values.sort((left, right) => (left ?? 0) - (right ?? 0));
|
|
describe("sorted", values);
|
|
console.log("same", alias === values);
|