• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1"use strict"
2
3function addLazyProperty(object, name, initializer, enumerable) {
4  Object.defineProperty(object, name, {
5    get: function() {
6      var v = initializer.call(this)
7      Object.defineProperty(this, name, { value: v, enumerable: !!enumerable, writable: true })
8      return v
9    },
10    set: function(v) {
11      Object.defineProperty(this, name, { value: v, enumerable: !!enumerable, writable: true })
12      return v
13    },
14    enumerable: !!enumerable,
15    configurable: true
16  })
17}
18
19module.exports = addLazyProperty
20