code: function(deferred, description) {
  
        // The results from the previous steps are given as additional arguments to this method.
        // If the result is a single `StepArgs` object (such as returned by `#success`),
        // the multiple results it contains are spread over the arguments of the next step's function.
        // This is what allows a step to pass multiple results to the next step even though
        // a promise can only be resolved with one value.
        var results = slice.call(arguments, 2);
        if (results.length == 1 && results[0] instanceof StepArgs) {
          results = results[0].args;
        }
  
        if (this.stepSkipped) {
          // **EVENT:** the `step:skip` event is emitted if the step was skipped.
          // The first argument is the step description object, the second argument
          // is the skip message, and remaining arguments are the results that will be
          // passed to the next step.
          this.emit.apply(this, [ 'step:skip', description, this.skipMessage ].concat(results));
        } else {
          // **EVENT:** the `step:done` event is emitted otherwise.
          // The first argument is the step description object, and remaining arguments
          // are the results that will be passed to the next step.
          this.emit.apply(this, [ 'step:done', description ].concat(results));
        }
  
        var nextStep = this.getNextStep();
  
        // The scenario is stopped if there are no more steps to run or if it was marked as completed.
        if (!nextStep || this.completed) {
  
          // **EVENT:** the `scenario:end` event is emitted when the scenario has finished running.
          this.emit('scenario:end');
  
          return deferred.resolve();
        }
  
        // The next step is run with the results from the previous step as arguments.
        this.runStep.apply(this, [ nextStep, deferred ].concat(results));
      }
docs: ### #handleStepResult(deferred, description, previousStepResults...) Executes the next step or completes the scenario.