Skip to content

Value

Defined in: packages/engine/src/vm/Value.ts:252

Universal runtime value for the solve-js VM.

Carries a ValueType discriminant, a polymorphic value payload, and an optional unit string (for UoM values). Treated as immutable after construction, the arena reuses objects internally via recycle(), but external code should never mutate Value fields.

A cached _cachedNumber avoids repeated toNumber() computation on hot paths (ADD/SUB/MUL in the VM dispatch loop).

new Value(
type,
value,
unit?): Value;

Defined in: packages/engine/src/vm/Value.ts:266

ParameterType
typeValueType
value| string | number | bigint | boolean | SymbolicNode | MatrixData | RangeData
unit?string

Value

optional timedOut?: boolean;

Defined in: packages/engine/src/vm/Value.ts:264

Set by async resolvers when a fetch timed out, the result is a fallback (typically 0).


type: ValueType;

Defined in: packages/engine/src/vm/Value.ts:260


optional unit?: string;

Defined in: packages/engine/src/vm/Value.ts:262


value:
| string
| number
| bigint
| boolean
| SymbolicNode
| MatrixData
| RangeData;

Defined in: packages/engine/src/vm/Value.ts:261

isBigInt(): this is Value & { value: bigint };

Defined in: packages/engine/src/vm/Value.ts:304

this is Value & { value: bigint }


isHex(): this is Value & { value: number };

Defined in: packages/engine/src/vm/Value.ts:300

this is Value & { value: number }


isMatrix(): this is Value & { value: MatrixData };

Defined in: packages/engine/src/vm/Value.ts:312

this is Value & { value: MatrixData }


isNaN(): boolean;

Defined in: packages/engine/src/vm/Value.ts:375

boolean


isNumber(): this is Value & { value: number };

Defined in: packages/engine/src/vm/Value.ts:296

this is Value & { value: number }


isRange(): this is Value & { value: RangeData };

Defined in: packages/engine/src/vm/Value.ts:323

this is Value & { value: RangeData }


isString(): this is Value & { value: string };

Defined in: packages/engine/src/vm/Value.ts:308

this is Value & { value: string }


isSymbolic(): this is Value & { value: SymbolicNode };

Defined in: packages/engine/src/vm/Value.ts:327

this is Value & { value: SymbolicNode }


isVectorShape(): boolean;

Defined in: packages/engine/src/vm/Value.ts:317

A Matrix shaped like a vector, 1×N (row) or N×1 (column).

boolean


recycle(
type,
value,
unit?): void;

Defined in: packages/engine/src/vm/Value.ts:285

Phase 5.3: Reset all fields for arena reuse. Called by ValueArena.acquire(), zero allocation, just field assignment.

ParameterType
typeValueType
value| string | number | bigint | boolean | SymbolicNode | MatrixData | RangeData
unit?string

void


toNumber(): number;

Defined in: packages/engine/src/vm/Value.ts:331

number