UNPKG

@fast-check/poisoning

Version:

Set of utilities to ease detection and revert of poisoning

46 lines (45 loc) 1.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PoisoningFreeMap = exports.SetSymbol = exports.EntriesSymbol = exports.HasSymbol = exports.GetSymbol = void 0; const SMap = Map; const safeMapGet = Map.prototype.get; const safeMapHas = Map.prototype.has; const safeMapEntries = Map.prototype.entries; const safeMapSet = Map.prototype.set; const safeObjectDefineProperty = Object.defineProperty; exports.GetSymbol = Symbol('safe.get'); exports.HasSymbol = Symbol('safe.has'); exports.EntriesSymbol = Symbol('safe.entries'); exports.SetSymbol = Symbol('safe.set'); function toPoisoningFreeMap(instance) { safeObjectDefineProperty(instance, exports.GetSymbol, { value: safeMapGet, configurable: false, enumerable: false, writable: false, }); safeObjectDefineProperty(instance, exports.HasSymbol, { value: safeMapHas, configurable: false, enumerable: false, writable: false, }); safeObjectDefineProperty(instance, exports.EntriesSymbol, { value: safeMapEntries, configurable: false, enumerable: false, writable: false, }); safeObjectDefineProperty(instance, exports.SetSymbol, { value: safeMapSet, configurable: false, enumerable: false, writable: false, }); return instance; } exports.PoisoningFreeMap = { from(ins) { return toPoisoningFreeMap(new SMap(ins)); }, };