function lazy(object, property, callback) { Object.defineProperty(object, property, { get() { let value = callback(); Object.defineProperty(object, property, { value }); return value; }, configurable: true, }); }