Expand description
The 8-byte NaN-boxed Value and the heap identifiers it carries.
Any bit pattern below 0xFFF9_0000_0000_0000 is an f64. The boxed range is
the quiet-NaN space with the sign bit set: the top 16 bits select the kind
and the low 32 bits carry the payload.
| Top 16 bits | Kind | Payload |
|---|---|---|
0xFFF9 | Int32 | i32 |
0xFFFA | Bool, Undefined, Null, Empty | bits 0–1: 0 Bool, 1 Undefined, 2 Null, 3 Empty; bit 2: the boolean |
0xFFFB | Object | u32 object index |
0xFFFC | String | u32 string index |
0xFFFD | Symbol | u32 symbol index |
0xFFFE | BigInt | u32 BigInt index |
0xFFFF | reserved |
Structs§
- BigInt
Id - Index of a BigInt record.
- Bytecode
Id - Index of a
FunctionBytecoderecord: the heap side of one published code unit. - Object
Id - Index of an
ObjectHeader. - ScopeId
- An object of kind
Scope; the same index space asObjectId. - ShapeId
- Index of a shape.
- String
Id - Index of a string record.
- Symbol
Id - Index of a symbol record.
- Validity
Cell Id - Index of a validity cell.
- Value
- A JavaScript value, or the internal hole marker
Value::EMPTY.
Enums§
Constants§
- CANONICAL_
NAN - The NaN a NaN in the boxed range is rewritten to.