Skip to content

Commit

Permalink
updated initial data and initial next data
Browse files Browse the repository at this point in the history
  • Loading branch information
overthemike committed Oct 12, 2024
1 parent c64e9a0 commit 01f8d05
Showing 1 changed file with 7 additions and 8 deletions.
15 changes: 7 additions & 8 deletions src/vanilla/utils/proxyMap-indexMap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,14 @@ const isProxy = (x: any) => proxyStateMap.has(x)
type InternalProxyObject<K, V> = Map<K, V> & {
data: Array<[K, V | undefined]>
nextIndex: number
size: number
toJSON: () => Map<K, V>
}

export function proxyMap<K, V>(entries?: Iterable<[K, V]> | undefined | null) {
const data: Array<[K, V]> = []
const initialData: Array<[K, V]> = []
const indexMap = new Map<K, number>()
const emptyIndexes: number[] = []
let nextIndex = 0
let initialNextIndex = 0

if (entries !== null && typeof entries !== 'undefined') {
if (typeof entries[Symbol.iterator] !== 'function') {
Expand All @@ -25,14 +24,14 @@ export function proxyMap<K, V>(entries?: Iterable<[K, V]> | undefined | null) {
for (const [k, v] of entries) {
const key = maybeProxify(k)
const value = maybeProxify(v)
indexMap.set(key, data.length)
data[nextIndex++] = [key, value]
indexMap.set(key, initialData.length)
initialData[initialNextIndex++] = [key, value]
}
}

const vObject: InternalProxyObject<K, V> = {
data,
nextIndex,
data: initialData,
nextIndex: initialNextIndex,
get size() {
return indexMap.size
},
Expand Down Expand Up @@ -66,7 +65,7 @@ export function proxyMap<K, V>(entries?: Iterable<[K, V]> | undefined | null) {
const v = maybeProxify(value)
let index = indexMap.get(k)
if (index === undefined) {
index = emptyIndexes.length ? emptyIndexes.pop()! : nextIndex++
index = emptyIndexes.length ? emptyIndexes.pop()! : this.nextIndex++
indexMap.set(k, index)
}
const pair = this.data[index]
Expand Down

0 comments on commit 01f8d05

Please sign in to comment.