Skip to content

Commit

Permalink
fixup! test(lib/es2021): Add test for generic FinalizationRegistry
Browse files Browse the repository at this point in the history
  • Loading branch information
ExE-Boss committed Jan 16, 2021
1 parent b84ccbe commit 3502962
Show file tree
Hide file tree
Showing 4 changed files with 23 additions and 68 deletions.
11 changes: 2 additions & 9 deletions tests/baselines/reference/esNextWeakRefs_IterableWeakMap.js
Original file line number Diff line number Diff line change
Expand Up @@ -65,11 +65,7 @@ export class IterableWeakMap<K extends object, V> implements WeakMap<K, V> {
*entries(): Generator<[key: K, value: V], void> {
for (const ref of this.#refSet) {
const key = ref.deref();
if (key === undefined) {
this.#refSet.delete(ref);
this.#finalizationGroup.unregister(ref);
continue;
}
if (key === undefined) continue;
const { value } = this.#weakMap.get(key)!;
yield [key, value];
}
Expand Down Expand Up @@ -160,11 +156,8 @@ export class IterableWeakMap {
*entries() {
for (const ref of this.#refSet) {
const key = ref.deref();
if (key === undefined) {
this.#refSet.delete(ref);
this.#finalizationGroup.unregister(ref);
if (key === undefined)
continue;
}
const { value } = this.#weakMap.get(key);
yield [key, value];
}
Expand Down
54 changes: 19 additions & 35 deletions tests/baselines/reference/esNextWeakRefs_IterableWeakMap.symbols
Original file line number Diff line number Diff line change
Expand Up @@ -252,28 +252,12 @@ export class IterableWeakMap<K extends object, V> implements WeakMap<K, V> {
>ref : Symbol(ref, Decl(esNextWeakRefs_IterableWeakMap.ts, 64, 18))
>deref : Symbol(WeakRef.deref, Decl(lib.esnext.weakref.d.ts, --, --))

if (key === undefined) {
if (key === undefined) continue;
>key : Symbol(key, Decl(esNextWeakRefs_IterableWeakMap.ts, 65, 17))
>undefined : Symbol(undefined)

this.#refSet.delete(ref);
>this.#refSet.delete : Symbol(Set.delete, Decl(lib.es2015.collection.d.ts, --, --))
>this.#refSet : Symbol(IterableWeakMap.#refSet, Decl(esNextWeakRefs_IterableWeakMap.ts, 12, 72))
>this : Symbol(IterableWeakMap, Decl(esNextWeakRefs_IterableWeakMap.ts, 6, 2))
>delete : Symbol(Set.delete, Decl(lib.es2015.collection.d.ts, --, --))
>ref : Symbol(ref, Decl(esNextWeakRefs_IterableWeakMap.ts, 64, 18))

this.#finalizationGroup.unregister(ref);
>this.#finalizationGroup.unregister : Symbol(FinalizationRegistry.unregister, Decl(lib.esnext.weakref.d.ts, --, --))
>this.#finalizationGroup : Symbol(IterableWeakMap.#finalizationGroup, Decl(esNextWeakRefs_IterableWeakMap.ts, 13, 36))
>this : Symbol(IterableWeakMap, Decl(esNextWeakRefs_IterableWeakMap.ts, 6, 2))
>unregister : Symbol(FinalizationRegistry.unregister, Decl(lib.esnext.weakref.d.ts, --, --))
>ref : Symbol(ref, Decl(esNextWeakRefs_IterableWeakMap.ts, 64, 18))

continue;
}
const { value } = this.#weakMap.get(key)!;
>value : Symbol(value, Decl(esNextWeakRefs_IterableWeakMap.ts, 71, 19))
>value : Symbol(value, Decl(esNextWeakRefs_IterableWeakMap.ts, 67, 19))
>this.#weakMap.get : Symbol(WeakMap.get, Decl(lib.es2015.collection.d.ts, --, --))
>this.#weakMap : Symbol(IterableWeakMap.#weakMap, Decl(esNextWeakRefs_IterableWeakMap.ts, 10, 61))
>this : Symbol(IterableWeakMap, Decl(esNextWeakRefs_IterableWeakMap.ts, 6, 2))
Expand All @@ -282,31 +266,31 @@ export class IterableWeakMap<K extends object, V> implements WeakMap<K, V> {

yield [key, value];
>key : Symbol(key, Decl(esNextWeakRefs_IterableWeakMap.ts, 65, 17))
>value : Symbol(value, Decl(esNextWeakRefs_IterableWeakMap.ts, 71, 19))
>value : Symbol(value, Decl(esNextWeakRefs_IterableWeakMap.ts, 67, 19))
}
}

*keys() {
>keys : Symbol(IterableWeakMap.keys, Decl(esNextWeakRefs_IterableWeakMap.ts, 74, 5))
>keys : Symbol(IterableWeakMap.keys, Decl(esNextWeakRefs_IterableWeakMap.ts, 70, 5))

for (const { 0: key } of this) {
>key : Symbol(key, Decl(esNextWeakRefs_IterableWeakMap.ts, 77, 20))
>key : Symbol(key, Decl(esNextWeakRefs_IterableWeakMap.ts, 73, 20))
>this : Symbol(IterableWeakMap, Decl(esNextWeakRefs_IterableWeakMap.ts, 6, 2))

yield key;
>key : Symbol(key, Decl(esNextWeakRefs_IterableWeakMap.ts, 77, 20))
>key : Symbol(key, Decl(esNextWeakRefs_IterableWeakMap.ts, 73, 20))
}
}

*values() {
>values : Symbol(IterableWeakMap.values, Decl(esNextWeakRefs_IterableWeakMap.ts, 80, 5))
>values : Symbol(IterableWeakMap.values, Decl(esNextWeakRefs_IterableWeakMap.ts, 76, 5))

for (const { 1: value } of this) {
>value : Symbol(value, Decl(esNextWeakRefs_IterableWeakMap.ts, 83, 20))
>value : Symbol(value, Decl(esNextWeakRefs_IterableWeakMap.ts, 79, 20))
>this : Symbol(IterableWeakMap, Decl(esNextWeakRefs_IterableWeakMap.ts, 6, 2))

yield value;
>value : Symbol(value, Decl(esNextWeakRefs_IterableWeakMap.ts, 83, 20))
>value : Symbol(value, Decl(esNextWeakRefs_IterableWeakMap.ts, 79, 20))
}
}
}
Expand All @@ -320,22 +304,22 @@ Object.defineProperties(IterableWeakMap.prototype, {
>prototype : Symbol(IterableWeakMap.prototype)

[Symbol.iterator]: {
>[Symbol.iterator] : Symbol([Symbol.iterator], Decl(esNextWeakRefs_IterableWeakMap.ts, 89, 52))
>[Symbol.iterator] : Symbol([Symbol.iterator], Decl(esNextWeakRefs_IterableWeakMap.ts, 85, 52))
>Symbol.iterator : Symbol(SymbolConstructor.iterator, Decl(lib.es2015.iterable.d.ts, --, --))
>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2019.symbol.d.ts, --, --))
>iterator : Symbol(SymbolConstructor.iterator, Decl(lib.es2015.iterable.d.ts, --, --))

configurable: true,
>configurable : Symbol(configurable, Decl(esNextWeakRefs_IterableWeakMap.ts, 90, 24))
>configurable : Symbol(configurable, Decl(esNextWeakRefs_IterableWeakMap.ts, 86, 24))

enumerable: false,
>enumerable : Symbol(enumerable, Decl(esNextWeakRefs_IterableWeakMap.ts, 91, 27))
>enumerable : Symbol(enumerable, Decl(esNextWeakRefs_IterableWeakMap.ts, 87, 27))

writable: true,
>writable : Symbol(writable, Decl(esNextWeakRefs_IterableWeakMap.ts, 92, 26))
>writable : Symbol(writable, Decl(esNextWeakRefs_IterableWeakMap.ts, 88, 26))

value: Object.getOwnPropertyDescriptor(
>value : Symbol(value, Decl(esNextWeakRefs_IterableWeakMap.ts, 93, 23))
>value : Symbol(value, Decl(esNextWeakRefs_IterableWeakMap.ts, 89, 23))
>Object.getOwnPropertyDescriptor( IterableWeakMap.prototype, "entries", )!.value : Symbol(PropertyDescriptor.value, Decl(lib.es5.d.ts, --, --))
>Object.getOwnPropertyDescriptor : Symbol(ObjectConstructor.getOwnPropertyDescriptor, Decl(lib.es5.d.ts, --, --))
>Object : Symbol(Object, Decl(lib.es5.d.ts, --, --), Decl(lib.es5.d.ts, --, --))
Expand All @@ -352,22 +336,22 @@ Object.defineProperties(IterableWeakMap.prototype, {

},
[Symbol.toStringTag]: {
>[Symbol.toStringTag] : Symbol([Symbol.toStringTag], Decl(esNextWeakRefs_IterableWeakMap.ts, 98, 6))
>[Symbol.toStringTag] : Symbol([Symbol.toStringTag], Decl(esNextWeakRefs_IterableWeakMap.ts, 94, 6))
>Symbol.toStringTag : Symbol(SymbolConstructor.toStringTag, Decl(lib.es2015.symbol.wellknown.d.ts, --, --))
>Symbol : Symbol(Symbol, Decl(lib.es5.d.ts, --, --), Decl(lib.es2015.symbol.d.ts, --, --), Decl(lib.es2015.symbol.wellknown.d.ts, --, --), Decl(lib.es2019.symbol.d.ts, --, --))
>toStringTag : Symbol(SymbolConstructor.toStringTag, Decl(lib.es2015.symbol.wellknown.d.ts, --, --))

configurable: true,
>configurable : Symbol(configurable, Decl(esNextWeakRefs_IterableWeakMap.ts, 99, 27))
>configurable : Symbol(configurable, Decl(esNextWeakRefs_IterableWeakMap.ts, 95, 27))

enumerable: false,
>enumerable : Symbol(enumerable, Decl(esNextWeakRefs_IterableWeakMap.ts, 100, 27))
>enumerable : Symbol(enumerable, Decl(esNextWeakRefs_IterableWeakMap.ts, 96, 27))

writable: false,
>writable : Symbol(writable, Decl(esNextWeakRefs_IterableWeakMap.ts, 101, 26))
>writable : Symbol(writable, Decl(esNextWeakRefs_IterableWeakMap.ts, 97, 26))

value: "IterableWeakMap",
>value : Symbol(value, Decl(esNextWeakRefs_IterableWeakMap.ts, 102, 24))
>value : Symbol(value, Decl(esNextWeakRefs_IterableWeakMap.ts, 98, 24))

},
});
Expand Down
20 changes: 1 addition & 19 deletions tests/baselines/reference/esNextWeakRefs_IterableWeakMap.types
Original file line number Diff line number Diff line change
Expand Up @@ -255,29 +255,11 @@ export class IterableWeakMap<K extends object, V> implements WeakMap<K, V> {
>ref : WeakRef<K>
>deref : () => K | undefined

if (key === undefined) {
if (key === undefined) continue;
>key === undefined : boolean
>key : K | undefined
>undefined : undefined

this.#refSet.delete(ref);
>this.#refSet.delete(ref) : boolean
>this.#refSet.delete : (value: WeakRef<K>) => boolean
>this.#refSet : Set<WeakRef<K>>
>this : this
>delete : (value: WeakRef<K>) => boolean
>ref : WeakRef<K>

this.#finalizationGroup.unregister(ref);
>this.#finalizationGroup.unregister(ref) : void
>this.#finalizationGroup.unregister : (unregisterToken: object) => void
>this.#finalizationGroup : FinalizationRegistry<{ readonly ref: WeakRef<object>; readonly set: Set<WeakRef<object>>; }>
>this : this
>unregister : (unregisterToken: object) => void
>ref : WeakRef<K>

continue;
}
const { value } = this.#weakMap.get(key)!;
>value : V
>this.#weakMap.get(key)! : { readonly ref: WeakRef<K>; value: V; }
Expand Down
6 changes: 1 addition & 5 deletions tests/cases/compiler/esNextWeakRefs_IterableWeakMap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -69,11 +69,7 @@ export class IterableWeakMap<K extends object, V> implements WeakMap<K, V> {
*entries(): Generator<[key: K, value: V], void> {
for (const ref of this.#refSet) {
const key = ref.deref();
if (key === undefined) {
this.#refSet.delete(ref);
this.#finalizationGroup.unregister(ref);
continue;
}
if (key === undefined) continue;
const { value } = this.#weakMap.get(key)!;
yield [key, value];
}
Expand Down

0 comments on commit 3502962

Please sign in to comment.