code: function createGetter(target, property, subject) {
    var targetDesc = {
      enumerable: subject.propertyIsEnumerable(property),
      get: function() {
        return subject[property];
      },
      set: function(value) {
        subject[property] = value;
      }
    };
  
    Object.defineProperty(target, property, targetDesc);
  }
docs: Create getters for the underlying objects if it's not a function. NOTE: This is as slow and potentially sketchy as it looks.