mirror of https://github.com/nodejs/node.git
20 lines
532 B
JavaScript
20 lines
532 B
JavaScript
"use strict"
|
|
|
|
function addLazyProperty(object, name, initializer, enumerable) {
|
|
Object.defineProperty(object, name, {
|
|
get: function() {
|
|
var v = initializer.call(this)
|
|
Object.defineProperty(this, name, { value: v, enumerable: !!enumerable, writable: true })
|
|
return v
|
|
},
|
|
set: function(v) {
|
|
Object.defineProperty(this, name, { value: v, enumerable: !!enumerable, writable: true })
|
|
return v
|
|
},
|
|
enumerable: !!enumerable,
|
|
configurable: true
|
|
})
|
|
}
|
|
|
|
module.exports = addLazyProperty
|