All files / near-membrane-shared/src WeakSet.ts

36.36% Statements 4/11
100% Branches 0/0
0% Functions 0/1
36.36% Lines 4/11

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25      14x   14x   14x           14x                      
import { ReflectSetPrototypeOf } from './Reflect';
import { SymbolToStringTag } from './Symbol';
 
export const WeakSetCtor = WeakSet;
 
const { prototype: WeakSetProto } = WeakSetCtor;
 
export const { has: WeakSetProtoHas } = WeakSetProto;
 
const {
    add: WeakSetProtoAdd,
    delete: WeakSetProtoDelete,
    [SymbolToStringTag]: WeakSetProtoSymbolToStringTag,
} = WeakSetProto as any;
 
export function toSafeWeakSet<T extends WeakSet<any>>(weakSet: T): T {
    ReflectSetPrototypeOf(weakSet, null);
    weakSet.add = WeakSetProtoAdd;
    weakSet.delete = WeakSetProtoDelete;
    weakSet.has = WeakSetProtoHas;
    (weakSet as any)[SymbolToStringTag] = WeakSetProtoSymbolToStringTag;
    ReflectSetPrototypeOf(weakSet, WeakSetProto);
    return weakSet;
}