code: function () /* target, method, args */{
        if (!this.currentInstance) {
          return this.run.apply(this, arguments);
        }
  
        var length = arguments.length;
        var method, target;
  
        if (length === 1) {
          method = arguments[0];
          target = null;
        } else {
          target = arguments[0];
          method = arguments[1];
        }
  
        if (_backburnerUtils.isString(method)) {
          method = target[method];
        }
  
        if (length === 1) {
          return method();
        } else if (length === 2) {
          return method.call(target);
        } else {
          var args = new Array(length - 2);
          for (var i = 0, l = length - 2; i < l; i++) {
            args[i] = arguments[i + 2];
          }
          return method.apply(target, args);
        }
      }
docs: /*
  Join the passed method with an existing queue and execute immediately,
  if there isn't one use `Backburner#run`.
  The join method is like the run method except that it will schedule into
  an existing queue if one already exists. In either case, the join method will
  immediately execute the passed in function and return its result.
  @method join
  @param {Object} target
  @param {Function} method The method to be executed
  @param {any} args The method arguments
  @return method result