docs: function () {
        var opts = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
  
        var action = opts.action || _emberMetalProperty_get.get(this, 'action');
        var target = opts.target || _emberMetalProperty_get.get(this, 'targetObject');
        var actionContext = opts.actionContext;
  
        function args(options, actionName) {
          var ret = [];
          if (actionName) {
            ret.push(actionName);
          }
  
          return ret.concat(options);
        }
  
        if (typeof actionContext === 'undefined') {
          actionContext = _emberMetalProperty_get.get(this, 'actionContextObject') || this;
        }
  
        if (target && action) {
          var ret;
  
          if (target.send) {
            ret = target.send.apply(target, args(actionContext, action));
          } else {
            _emberMetalDebug.assert('The action \'' + action + '\' did not exist on ' + target, typeof target[action] === 'function');
            ret = target[action].apply(target, args(actionContext));
          }
  
          if (ret !== false) {
            ret = true;
          }
  
          return ret;
        } else {
          return false;
        }
      }