UNPKG

@fast-check/poisoning

Version:

Set of utilities to ease detection and revert of poisoning

46 lines (45 loc) 1.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PoisoningFreeArray = exports.SortSymbol = exports.ShiftSymbol = exports.PushSymbol = exports.MapSymbol = void 0; const safeArrayFrom = Array.from; const safeArrayMap = Array.prototype.map; const safeArrayPush = Array.prototype.push; const safeArrayShift = Array.prototype.shift; const safeArraySort = Array.prototype.sort; const safeObjectDefineProperty = Object.defineProperty; exports.MapSymbol = Symbol('safe.map'); exports.PushSymbol = Symbol('safe.push'); exports.ShiftSymbol = Symbol('safe.shift'); exports.SortSymbol = Symbol('safe.sort'); function toPoisoningFreeArray(instance) { safeObjectDefineProperty(instance, exports.MapSymbol, { value: safeArrayMap, configurable: false, enumerable: false, writable: false, }); safeObjectDefineProperty(instance, exports.PushSymbol, { value: safeArrayPush, configurable: false, enumerable: false, writable: false, }); safeObjectDefineProperty(instance, exports.ShiftSymbol, { value: safeArrayShift, configurable: false, enumerable: false, writable: false, }); safeObjectDefineProperty(instance, exports.SortSymbol, { value: safeArraySort, configurable: false, enumerable: false, writable: false, }); return instance; } exports.PoisoningFreeArray = { from(arrayLike) { return toPoisoningFreeArray(safeArrayFrom(arrayLike)); }, };