Layered map that supports child scopes while memoizing lookups from parent
scopes. Layers form a linked parent chain, so createChild is O(1) instead
of copying a layer array per scope. A layer's Map is only allocated on its
first own write, and lookup results are memoized into the nearest
Map-bearing layer of the walk — read-only layers (most block scopes) stay
allocation-free and share their parent's memoized entries.
new StackedMap(): StackedMap<K, V>StackedMap<K, V>Map<K, InternalCell<V>>StackedMap<K, V>numberasArray(): K[]K[]Returns the visible keys as an array after collapsing the stack.
asMap(): Map<K, Cell<V>>Returns the visible contents as a plain Map.
asPairArray(): [K, Cell<V>][][K, Cell<V>][]Returns visible key/value pairs using the external representation.
asSet(): Set<K>Set<K>Returns the visible keys as a Set after collapsing the stack.
createChild(): StackedMap<K, V>StackedMap<K, V>Creates a child StackedMap that sees the current layers as its parent
scope.
delete(item): voidKvoidDeletes a key from the current view, either by removing it outright in the root layer or by recording a tombstone in child layers.
get
get(item): Cell<V>KCell<V>Returns the visible value for a key, caching parent hits and misses in the
nearest Map-bearing layer so repeated lookups (from this layer or any
sibling below that layer) answer with a single probe.
has
has(item): booleanKbooleanChecks whether a key exists in the current scope chain, caching any parent
lookup result in the nearest Map-bearing layer.
set
set(item, value): voidStores a value in the current layer, preserving explicit undefined
values with an internal marker.
undefined | TT | typeof TOMBSTONE | typeof UNDEFINED_MARKER