Comparing version 0.4.0-alpha.7 to 0.4.0-alpha.8
@@ -20,3 +20,3 @@ interface IndexAssignment { | ||
refs: Map<unknown, number>; | ||
markedRefs: Set<number>; | ||
markedRefs: Record<number, number>; | ||
features: number; | ||
@@ -26,4 +26,5 @@ } | ||
stack: number[]; | ||
validRefs: Map<number, number>; | ||
markedRefs: Set<number>; | ||
validRefs: number[]; | ||
refSize: number; | ||
markedRefs: Record<number, number>; | ||
vars: string[]; | ||
@@ -38,3 +39,3 @@ assignments: Assignment[]; | ||
export interface SerializationOptions { | ||
markedRefs: number[] | Set<number>; | ||
markedRefs: Record<number, number>; | ||
features: number; | ||
@@ -41,0 +42,0 @@ } |
{ | ||
"name": "seroval", | ||
"type": "module", | ||
"version": "0.4.0-alpha.7", | ||
"version": "0.4.0-alpha.8", | ||
"files": [ | ||
@@ -67,3 +67,3 @@ "dist", | ||
}, | ||
"gitHead": "30e67c013299a4e75136a9a2b41945ee54d8b6b8" | ||
"gitHead": "e965d1992af3e9a86a8919de6204fe4edb7b21a2" | ||
} |
@@ -31,3 +31,3 @@ import { parseTargets } from './compat'; | ||
refs: Map<unknown, number>; | ||
markedRefs: Set<number>; | ||
markedRefs: Record<number, number>; | ||
features: number; | ||
@@ -39,5 +39,6 @@ } | ||
// Map tree refs to actual refs | ||
validRefs: Map<number, number>; | ||
validRefs: number[]; | ||
refSize: number; | ||
// Refs that are...referenced | ||
markedRefs: Set<number>; | ||
markedRefs: Record<number, number>; | ||
// Variables | ||
@@ -63,3 +64,3 @@ vars: string[]; | ||
return { | ||
markedRefs: new Set(), | ||
markedRefs: {}, | ||
refs: new Map(), | ||
@@ -71,3 +72,3 @@ features: parseTargets(result.target), | ||
export interface SerializationOptions { | ||
markedRefs: number[] | Set<number>; | ||
markedRefs: Record<number, number>; | ||
features: number; | ||
@@ -81,5 +82,6 @@ } | ||
assignments: [], | ||
validRefs: new Map(), | ||
validRefs: [], | ||
refSize: 0, | ||
features: options.features, | ||
markedRefs: new Set(options.markedRefs), | ||
markedRefs: options.markedRefs, | ||
}; | ||
@@ -92,3 +94,3 @@ } | ||
export function markRef(ctx: ParserContext | SerializationContext, current: number) { | ||
ctx.markedRefs.add(current); | ||
ctx.markedRefs[current] = 1; | ||
} | ||
@@ -106,9 +108,9 @@ | ||
) { | ||
const current = ctx.validRefs.get(index); | ||
if (current != null) { | ||
return current; | ||
const current = ctx.validRefs[index]; | ||
if (current == null) { | ||
const value = ctx.refSize++; | ||
ctx.validRefs[index] = value; | ||
return value; | ||
} | ||
const id = ctx.validRefs.size; | ||
ctx.validRefs.set(index, id); | ||
return id; | ||
return current; | ||
} | ||
@@ -115,0 +117,0 @@ |
@@ -109,3 +109,3 @@ /* eslint-disable no-await-in-loop */ | ||
feature: number, | ||
markedRefs: number[], | ||
markedRefs: Record<number, number>, | ||
]; | ||
@@ -124,3 +124,3 @@ | ||
ctx.features, | ||
[...ctx.markedRefs], | ||
ctx.markedRefs, | ||
]); | ||
@@ -140,3 +140,3 @@ } | ||
ctx.features, | ||
[...ctx.markedRefs], | ||
ctx.markedRefs, | ||
]); | ||
@@ -143,0 +143,0 @@ } |
@@ -99,3 +99,3 @@ /* eslint-disable @typescript-eslint/no-use-before-define */ | ||
) { | ||
if (ctx.markedRefs.has(index)) { | ||
if (ctx.markedRefs[index]) { | ||
return `${getRefParam(ctx, index)}=${value}`; | ||
@@ -102,0 +102,0 @@ } |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
4936
372239