code: function Spectrum ( entry, snap, direction, singleStep ) {
  
          this.xPct = [];
          this.xVal = [];
          this.xSteps = [ singleStep || false ];
          this.xNumSteps = [ false ];
          this.xHighestCompleteStep = [];
  
          this.snap = snap;
          this.direction = direction;
  
          var index, ordered = [ /* [0, 'min'], [1, '50%'], [2, 'max'] */ ];
  
          // Map the object keys to an array.
          for ( index in entry ) {
              if ( entry.hasOwnProperty(index) ) {
                  ordered.push([entry[index], index]);
              }
          }
  
          // Sort all entries by value (numeric sort).
          if ( ordered.length && typeof ordered[0][0] === "object" ) {
              ordered.sort(function(a, b) { return a[0][0] - b[0][0]; });
          } else {
              ordered.sort(function(a, b) { return a[0] - b[0]; });
          }
  
  
          // Convert all entries to subranges.
          for ( index = 0; index < ordered.length; index++ ) {
              handleEntryPoint(ordered[index][1], ordered[index][0], this);
          }
  
          // Store the actual step values.
          // xSteps is sorted in the same order as xPct and xVal.
          this.xNumSteps = this.xSteps.slice(0);
  
          // Convert all numeric steps to the percentage of the subrange they represent.
          for ( index = 0; index < this.xNumSteps.length; index++ ) {
              handleStepPoint(index, this.xNumSteps[index], this);
          }
      }
docs: The interface to Spectrum handles all direction-based conversions, so the above values are unaware.