code: function lazyDefinePropertyValue(propertyName, loader) {
    return function() {
      var value = loader.apply(this, arguments);
  
      Object.defineProperty(this, propertyName, {
        value: value,
        enumerable: true,
        configurable: true,
      });
  
      return value;
    };
  }
docs: Returns a function that:
  1. Calls fiven **loader** on first call,
  2. Defines a property of given **propertyName** with value returned from loader.