UNPKG

@sentry/utils

Version:
44 lines (40 loc) 908 B
Object.defineProperty(exports, '__esModule', { value: true }); /** * Helper to decycle json objects */ function memoBuilder() { var hasWeakSet = typeof WeakSet === 'function'; var inner = hasWeakSet ? new WeakSet() : []; function memoize(obj) { if (hasWeakSet) { if (inner.has(obj)) { return true; } inner.add(obj); return false; } for (let i = 0; i < inner.length; i++) { var value = inner[i]; if (value === obj) { return true; } } inner.push(obj); return false; } function unmemoize(obj) { if (hasWeakSet) { inner.delete(obj); } else { for (let i = 0; i < inner.length; i++) { if (inner[i] === obj) { inner.splice(i, 1); break; } } } } return [memoize, unmemoize]; } exports.memoBuilder = memoBuilder; //# sourceMappingURL=memo.js.map