@@ -9430,10 +9430,10 @@ function FakeMap() {
9430
9430
}
9431
9431
9432
9432
FakeMap . prototype = {
9433
- get : function getMap ( key ) {
9433
+ get : function get ( key ) {
9434
9434
return key [ this . _key ] ;
9435
9435
} ,
9436
- set : function setMap ( key , value ) {
9436
+ set : function set ( key , value ) {
9437
9437
if ( Object . isExtensible ( key ) ) {
9438
9438
Object . defineProperty ( key , this . _key , {
9439
9439
value : value ,
@@ -9625,8 +9625,9 @@ function extensiveDeepEqualByType(leftHandOperand, rightHandOperand, leftHandTyp
9625
9625
case 'function' :
9626
9626
case 'WeakMap' :
9627
9627
case 'WeakSet' :
9628
- case 'Error' :
9629
9628
return leftHandOperand === rightHandOperand ;
9629
+ case 'Error' :
9630
+ return keysEqual ( leftHandOperand , rightHandOperand , [ 'name' , 'message' , 'code' ] , options ) ;
9630
9631
case 'Arguments' :
9631
9632
case 'Int8Array' :
9632
9633
case 'Uint8Array' :
@@ -9651,6 +9652,19 @@ function extensiveDeepEqualByType(leftHandOperand, rightHandOperand, leftHandTyp
9651
9652
return entriesEqual ( leftHandOperand , rightHandOperand , options ) ;
9652
9653
case 'Map' :
9653
9654
return entriesEqual ( leftHandOperand , rightHandOperand , options ) ;
9655
+ case 'Temporal.PlainDate' :
9656
+ case 'Temporal.PlainTime' :
9657
+ case 'Temporal.PlainDateTime' :
9658
+ case 'Temporal.Instant' :
9659
+ case 'Temporal.ZonedDateTime' :
9660
+ case 'Temporal.PlainYearMonth' :
9661
+ case 'Temporal.PlainMonthDay' :
9662
+ return leftHandOperand . equals ( rightHandOperand ) ;
9663
+ case 'Temporal.Duration' :
9664
+ return leftHandOperand . total ( 'nanoseconds' ) === rightHandOperand . total ( 'nanoseconds' ) ;
9665
+ case 'Temporal.TimeZone' :
9666
+ case 'Temporal.Calendar' :
9667
+ return leftHandOperand . toString ( ) === rightHandOperand . toString ( ) ;
9654
9668
default :
9655
9669
return objectEqual ( leftHandOperand , rightHandOperand , options ) ;
9656
9670
}
@@ -9796,6 +9810,11 @@ function getEnumerableKeys(target) {
9796
9810
return keys ;
9797
9811
}
9798
9812
9813
+ function getNonEnumerableSymbols ( target ) {
9814
+ var keys = Object . getOwnPropertySymbols ( target ) ;
9815
+ return keys ;
9816
+ }
9817
+
9799
9818
/*!
9800
9819
* Determines if two objects have matching values, given a set of keys. Defers to deepEqual for the equality check of
9801
9820
* each key. If any value of the given key is not equal, the function will return false (early).
@@ -9828,14 +9847,16 @@ function keysEqual(leftHandOperand, rightHandOperand, keys, options) {
9828
9847
* @param {Object } [options] (Optional)
9829
9848
* @return {Boolean } result
9830
9849
*/
9831
-
9832
9850
function objectEqual ( leftHandOperand , rightHandOperand , options ) {
9833
9851
var leftHandKeys = getEnumerableKeys ( leftHandOperand ) ;
9834
9852
var rightHandKeys = getEnumerableKeys ( rightHandOperand ) ;
9853
+ var leftHandSymbols = getNonEnumerableSymbols ( leftHandOperand ) ;
9854
+ var rightHandSymbols = getNonEnumerableSymbols ( rightHandOperand ) ;
9855
+ leftHandKeys = leftHandKeys . concat ( leftHandSymbols ) ;
9856
+ rightHandKeys = rightHandKeys . concat ( rightHandSymbols ) ;
9857
+
9835
9858
if ( leftHandKeys . length && leftHandKeys . length === rightHandKeys . length ) {
9836
- leftHandKeys . sort ( ) ;
9837
- rightHandKeys . sort ( ) ;
9838
- if ( iterableEqual ( leftHandKeys , rightHandKeys ) === false ) {
9859
+ if ( iterableEqual ( mapSymbols ( leftHandKeys ) . sort ( ) , mapSymbols ( rightHandKeys ) . sort ( ) ) === false ) {
9839
9860
return false ;
9840
9861
}
9841
9862
return keysEqual ( leftHandOperand , rightHandOperand , leftHandKeys , options ) ;
@@ -9872,6 +9893,16 @@ function isPrimitive(value) {
9872
9893
return value === null || typeof value !== 'object' ;
9873
9894
}
9874
9895
9896
+ function mapSymbols ( arr ) {
9897
+ return arr . map ( function mapSymbol ( entry ) {
9898
+ if ( typeof entry === 'symbol' ) {
9899
+ return entry . toString ( ) ;
9900
+ }
9901
+
9902
+ return entry ;
9903
+ } ) ;
9904
+ }
9905
+
9875
9906
} , { "type-detect" :39 } ] , 36 :[ function ( require , module , exports ) {
9876
9907
'use strict' ;
9877
9908
0 commit comments