TreasureTrails/node_modules/fast-check/lib/esm/arbitrary/memo.js

16 lines
519 B
JavaScript
Raw Normal View History

2026-03-18 09:02:21 -05:00
import { safeHasOwnProperty } from '../utils/globals.js';
let contextRemainingDepth = 10;
export function memo(builder) {
const previous = {};
return ((maxDepth) => {
const n = maxDepth !== undefined ? maxDepth : contextRemainingDepth;
if (!safeHasOwnProperty(previous, n)) {
const prev = contextRemainingDepth;
contextRemainingDepth = n - 1;
previous[n] = builder(n);
contextRemainingDepth = prev;
}
return previous[n];
});
}