diff --git a/src/Schema.ts b/src/Schema.ts index 9777dd27..091a0abb 100644 --- a/src/Schema.ts +++ b/src/Schema.ts @@ -538,7 +538,7 @@ export abstract class Schema { bytes: number[] = [], useFilters: boolean = false, ) { - const refIdsVisited = new Set(); + const refIdsVisited = new WeakSet(); const changeTrees: ChangeTree[] = [this.$changes]; let numChangeTrees = 1; @@ -552,7 +552,7 @@ export abstract class Schema { changeTree.ensureRefId(); // mark this ChangeTree as visited. - refIdsVisited.add(changeTree.refId); + refIdsVisited.add(changeTree); // console.log("SWITCH_TO_STRUCTURE (ENCODE)", { // ref: ref.constructor.name, @@ -780,9 +780,6 @@ export abstract class Schema { const refIdsDissallowed = new Set(); const refIdsAllowed = new Set([0]); - // sort by refId, from lower to higher. - const refIdsVisited = new Set(); - const changeTrees = [this.$changes]; let numChangeTrees = 1;