code: function defineAttributes(object, attributes) {
      if (object instanceof Parse.Object) {
        if (!(attributes instanceof Array)) attributes = Array.prototype.slice.call(arguments, 1);
        attributes.forEach(function (attribute) {
          Object.defineProperty(object, attribute, {
            get: function () {
              return this.get(attribute);
            },
            set: function (value) {
              this.set(attribute, value);
            },
            configurable: true,
            enumerable: true
          });
        });
      } else if (typeof object == 'function') {
        return defineAttributes(object.prototype, attributes)
      } else {
        if (object instanceof Array) attributes = object;
        else attributes = Array.prototype.slice.call(arguments, 0);
        return function defineAttributesDecorator(target) {
          defineAttributes(target, attributes);
        }
      }
    }
docs: Defines getters and setters for the attributes
  of the given object or function prototype.
  Or create a decorator that defines getters
  and setters for the subclass Parse.Object.
  
  @param {Object|Function|String|String[]} object
  @param {...String|String[]=} attributes
  @returns {*}