UNPKG

can-define-lazy-value

Version:

Define properties with lazy values using Object.defineProperty

28 lines 975 B
/*can-define-lazy-value@1.1.0#define-lazy-value*/ define('can-define-lazy-value', function (require, exports, module) { 'use strict'; module.exports = function defineLazyValue(obj, prop, initializer, writable) { Object.defineProperty(obj, prop, { configurable: true, get: function () { Object.defineProperty(this, prop, { value: undefined, writable: true }); var value = initializer.call(this, obj, prop); Object.defineProperty(this, prop, { value: value, writable: !!writable }); return value; }, set: function (value) { Object.defineProperty(this, prop, { value: value, writable: !!writable }); return value; } }); }; });