UNPKG

@fast-check/poisoning

Version:

Set of utilities to ease detection and revert of poisoning

27 lines (26 loc) 749 B
const SSet = Set; const safeSetAdd = Set.prototype.add; const safeSetHas = Set.prototype.has; const safeObjectDefineProperty = Object.defineProperty; export const AddSymbol = Symbol('safe.add'); export const HasSymbol = Symbol('safe.has'); function toPoisoningFreeSet(instance) { safeObjectDefineProperty(instance, AddSymbol, { value: safeSetAdd, configurable: false, enumerable: false, writable: false, }); safeObjectDefineProperty(instance, HasSymbol, { value: safeSetHas, configurable: false, enumerable: false, writable: false, }); return instance; } export const PoisoningFreeSet = { from(ins) { return toPoisoningFreeSet(new SSet(ins)); }, };