@@ -430,16 +430,15 @@ function keysEqual(leftHandOperand, rightHandOperand, keys, options) {
430
430
* @return {Boolean } result
431
431
*/
432
432
function 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 ) ;
438
437
leftHandKeys = leftHandKeys . concat ( leftHandSymbols ) ;
439
438
rightHandKeys = rightHandKeys . concat ( rightHandSymbols ) ;
440
439
441
440
if ( leftHandKeys . length && leftHandKeys . length === rightHandKeys . length ) {
442
- if ( iterableEqual ( leftHandKeys , rightHandKeys ) === false ) {
441
+ if ( iterableEqual ( mapSymbols ( leftHandKeys ) . sort ( ) , mapSymbols ( rightHandKeys ) . sort ( ) ) === false ) {
443
442
return false ;
444
443
}
445
444
return keysEqual ( leftHandOperand , rightHandOperand , leftHandKeys , options ) ;
@@ -475,3 +474,13 @@ function objectEqual(leftHandOperand, rightHandOperand, options) {
475
474
function isPrimitive ( value ) {
476
475
return value === null || typeof value !== 'object' ;
477
476
}
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