function proxyMethod(selector) {
        return function () {
          for (var _len4 = arguments.length, args = Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
            args[_key4] = arguments[_key4];
          }

          self.registerUndo.apply(self, [target, selector].concat(args));
        };
      }
Returns a proxy object based on target that will register undo/redo actions
by calling methods on the proxy.

@example
    setSize(size) {
      this.undoManager.proxyFor(this).setSize(this._size);
      this._size = size;
    }

@param {Object} target call `selector` on this object
@returns {Object}