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).
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new Value( type, value, unit?): Value;Defined in: packages/engine/src/vm/Value.ts:266
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
type | ValueType |
value | | string | number | bigint | boolean | SymbolicNode | MatrixData | RangeData |
unit? | string |
Returns
Section titled “Returns”Value
Properties
Section titled “Properties”timedOut?
Section titled “timedOut?”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
Methods
Section titled “Methods”isBigInt()
Section titled “isBigInt()”isBigInt(): this is Value & { value: bigint };Defined in: packages/engine/src/vm/Value.ts:304
Returns
Section titled “Returns”this is Value & { value: bigint }
isHex()
Section titled “isHex()”isHex(): this is Value & { value: number };Defined in: packages/engine/src/vm/Value.ts:300
Returns
Section titled “Returns”this is Value & { value: number }
isMatrix()
Section titled “isMatrix()”isMatrix(): this is Value & { value: MatrixData };Defined in: packages/engine/src/vm/Value.ts:312
Returns
Section titled “Returns”this is Value & { value: MatrixData }
isNaN()
Section titled “isNaN()”isNaN(): boolean;Defined in: packages/engine/src/vm/Value.ts:375
Returns
Section titled “Returns”boolean
isNumber()
Section titled “isNumber()”isNumber(): this is Value & { value: number };Defined in: packages/engine/src/vm/Value.ts:296
Returns
Section titled “Returns”this is Value & { value: number }
isRange()
Section titled “isRange()”isRange(): this is Value & { value: RangeData };Defined in: packages/engine/src/vm/Value.ts:323
Returns
Section titled “Returns”this is Value & { value: RangeData }
isString()
Section titled “isString()”isString(): this is Value & { value: string };Defined in: packages/engine/src/vm/Value.ts:308
Returns
Section titled “Returns”this is Value & { value: string }
isSymbolic()
Section titled “isSymbolic()”isSymbolic(): this is Value & { value: SymbolicNode };Defined in: packages/engine/src/vm/Value.ts:327
Returns
Section titled “Returns”this is Value & { value: SymbolicNode }
isVectorShape()
Section titled “isVectorShape()”isVectorShape(): boolean;Defined in: packages/engine/src/vm/Value.ts:317
A Matrix shaped like a vector, 1×N (row) or N×1 (column).
Returns
Section titled “Returns”boolean
recycle()
Section titled “recycle()”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.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
type | ValueType |
value | | string | number | bigint | boolean | SymbolicNode | MatrixData | RangeData |
unit? | string |
Returns
Section titled “Returns”void
toNumber()
Section titled “toNumber()”toNumber(): number;Defined in: packages/engine/src/vm/Value.ts:331
Returns
Section titled “Returns”number