@@ -430,16 +430,15 @@ function keysEqual(leftHandOperand, rightHandOperand, keys, options) {
430430 * @return {Boolean } result
431431 */
432432function objectEqual ( leftHandOperand , rightHandOperand , options ) {
433- var leftHandKeys = getEnumerableKeys ( leftHandOperand ) . sort ( ) ;
434- var rightHandKeys = getEnumerableKeys ( rightHandOperand ) . sort ( ) ;
435- var leftHandSymbols = getNonEnumerableSymbols ( leftHandOperand ) . sort ( ) ;
436- var rightHandSymbols = getNonEnumerableSymbols ( rightHandOperand ) . sort ( ) ;
437-
433+ var leftHandKeys = getEnumerableKeys ( leftHandOperand ) ;
434+ var rightHandKeys = getEnumerableKeys ( rightHandOperand ) ;
435+ var leftHandSymbols = getNonEnumerableSymbols ( leftHandOperand ) ;
436+ var rightHandSymbols = getNonEnumerableSymbols ( rightHandOperand ) ;
438437 leftHandKeys = leftHandKeys . concat ( leftHandSymbols ) ;
439438 rightHandKeys = rightHandKeys . concat ( rightHandSymbols ) ;
440439
441440 if ( leftHandKeys . length && leftHandKeys . length === rightHandKeys . length ) {
442- if ( iterableEqual ( leftHandKeys , rightHandKeys ) === false ) {
441+ if ( iterableEqual ( mapSymbols ( leftHandKeys ) . sort ( ) , mapSymbols ( rightHandKeys ) . sort ( ) ) === false ) {
443442 return false ;
444443 }
445444 return keysEqual ( leftHandOperand , rightHandOperand , leftHandKeys , options ) ;
@@ -475,3 +474,13 @@ function objectEqual(leftHandOperand, rightHandOperand, options) {
475474function isPrimitive ( value ) {
476475 return value === null || typeof value !== 'object' ;
477476}
477+
478+ function mapSymbols ( arr ) {
479+ return arr . map ( function mapSymbol ( entry ) {
480+ if ( typeof entry === 'symbol' ) {
481+ return entry . toString ( ) ;
482+ }
483+
484+ return entry ;
485+ } ) ;
486+ }
0 commit comments