UNPKG

@fast-check/poisoning

Version:

Set of utilities to ease detection and revert of poisoning

30 lines (29 loc) 902 B
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PoisoningFreeSet = exports.HasSymbol = exports.AddSymbol = void 0; const SSet = Set; const safeSetAdd = Set.prototype.add; const safeSetHas = Set.prototype.has; const safeObjectDefineProperty = Object.defineProperty; exports.AddSymbol = Symbol('safe.add'); exports.HasSymbol = Symbol('safe.has'); function toPoisoningFreeSet(instance) { safeObjectDefineProperty(instance, exports.AddSymbol, { value: safeSetAdd, configurable: false, enumerable: false, writable: false, }); safeObjectDefineProperty(instance, exports.HasSymbol, { value: safeSetHas, configurable: false, enumerable: false, writable: false, }); return instance; } exports.PoisoningFreeSet = { from(ins) { return toPoisoningFreeSet(new SSet(ins)); }, };