code: function compare( x, y ) {
          var a, b,
              xc = x.c,
              yc = y.c,
              i = x.s,
              j = y.s,
              k = x.e,
              l = y.e;
  
          // Either NaN?
          if ( !i || !j ) return null;
  
          a = xc && !xc[0];
          b = yc && !yc[0];
  
          // Either zero?
          if ( a || b ) return a ? b ? 0 : -j : i;
  
          // Signs differ?
          if ( i != j ) return i;
  
          a = i < 0;
          b = k == l;
  
          // Either Infinity?
          if ( !xc || !yc ) return b ? 0 : !xc ^ a ? 1 : -1;
  
          // Compare exponents.
          if ( !b ) return k > l ^ a ? 1 : -1;
  
          j = ( k = xc.length ) < ( l = yc.length ) ? k : l;
  
          // Compare digit by digit.
          for ( i = 0; i < j; i++ ) if ( xc[i] != yc[i] ) return xc[i] > yc[i] ^ a ? 1 : -1;
  
          // Compare lengths.
          return k == l ? 0 : k > l ^ a ? 1 : -1;
      }
docs: Compare the value of BigNumbers x and y.