promise.js
function SameValue ( x, y ) {
    if ( typeof x !== typeof y ) {
      return false;
    }
    if ( Type(x) === 'undefined' ) {
      return true;
    }
    if ( Type(x) === 'number' ) {
      if ( x !== x && y !== y ) {
        return true;
      }
      if ( x === 0 ) {
        return 1 / x === 1 / y;
      }
    }
    return x === y;
  }
function SameValue ( x, y ) {
    if ( typeof x !== typeof y ) {
      return false;
    }
    if ( Type(x) === 'undefined' ) {
      return true;
    }
    if ( Type(x) === 'number' ) {
      if ( x !== x && y !== y ) {
        return true;
      }
      if ( x === 0 ) {
        return 1 / x === 1 / y;
      }
    }
    return x === y;
  }
function SameValue ( x , y ) { if ( typeof x !== typeof y ) { return false ; } if ( Type ( x ) === 'undefined' ) { return true ; } if ( Type ( x ) === 'number' ) { if ( x !== x && y !== y ) { return true ; } if ( x === 0 ) { return 1 / x === 1 / y ; } } return x === y ; }
7.2.3 SameValue( x, y )
7 . 2 . 3 SameValue ( x y )