@@ -7,21 +7,14 @@ const { deepEqual, deepStrictEqual, notDeepEqual, notDeepStrictEqual } =
7
7
const bench = common . createBenchmark ( main , {
8
8
n : [ 5e2 ] ,
9
9
len : [ 5e2 ] ,
10
+ strict : [ 0 , 1 ] ,
10
11
method : [
11
12
'deepEqual_primitiveOnly' ,
12
- 'deepStrictEqual_primitiveOnly' ,
13
13
'deepEqual_objectOnly' ,
14
- 'deepStrictEqual_objectOnly' ,
15
14
'deepEqual_mixed' ,
16
- 'deepStrictEqual_mixed' ,
17
- 'deepEqual_looseMatches' ,
18
15
'notDeepEqual_primitiveOnly' ,
19
- 'notDeepStrictEqual_primitiveOnly' ,
20
16
'notDeepEqual_objectOnly' ,
21
- 'notDeepStrictEqual_objectOnly' ,
22
- 'notDeepEqual_mixed' ,
23
- 'notDeepStrictEqual_mixed' ,
24
- 'notDeepEqual_looseMatches' ,
17
+ 'notDeepEqual_mixed'
25
18
]
26
19
} ) ;
27
20
@@ -37,7 +30,7 @@ function benchmark(method, n, values, values2) {
37
30
bench . end ( n ) ;
38
31
}
39
32
40
- function main ( { n, len, method } ) {
33
+ function main ( { n, len, method, strict } ) {
41
34
const array = Array ( len ) . fill ( 1 ) ;
42
35
var values , values2 ;
43
36
@@ -46,74 +39,33 @@ function main({ n, len, method }) {
46
39
// Empty string falls through to next line as default, mostly for tests.
47
40
case 'deepEqual_primitiveOnly' :
48
41
values = array . map ( ( _ , i ) => [ `str_${ i } ` , 123 ] ) ;
49
- benchmark ( deepEqual , n , values ) ;
50
- break ;
51
- case 'deepStrictEqual_primitiveOnly' :
52
- values = array . map ( ( _ , i ) => [ `str_${ i } ` , 123 ] ) ;
53
- benchmark ( deepStrictEqual , n , values ) ;
42
+ benchmark ( strict ? deepStrictEqual : deepEqual , n , values ) ;
54
43
break ;
55
44
case 'deepEqual_objectOnly' :
56
45
values = array . map ( ( _ , i ) => [ [ `str_${ i } ` , 1 ] , 123 ] ) ;
57
- benchmark ( deepEqual , n , values ) ;
58
- break ;
59
- case 'deepStrictEqual_objectOnly' :
60
- values = array . map ( ( _ , i ) => [ [ `str_${ i } ` , 1 ] , 123 ] ) ;
61
- benchmark ( deepStrictEqual , n , values ) ;
46
+ benchmark ( strict ? deepStrictEqual : deepEqual , n , values ) ;
62
47
break ;
63
48
case 'deepEqual_mixed' :
64
49
values = array . map ( ( _ , i ) => [ i % 2 ? [ `str_${ i } ` , 1 ] : `str_${ i } ` , 123 ] ) ;
65
- benchmark ( deepEqual , n , values ) ;
66
- break ;
67
- case 'deepStrictEqual_mixed' :
68
- values = array . map ( ( _ , i ) => [ i % 2 ? [ `str_${ i } ` , 1 ] : `str_${ i } ` , 123 ] ) ;
69
- benchmark ( deepStrictEqual , n , values ) ;
70
- break ;
71
- case 'deepEqual_looseMatches' :
72
- values = array . map ( ( _ , i ) => [ i , i ] ) ;
73
- values2 = values . slice ( ) . map ( ( v ) => [ String ( v [ 0 ] ) , String ( v [ 1 ] ) ] ) ;
74
- benchmark ( deepEqual , n , values , values2 ) ;
50
+ benchmark ( strict ? deepStrictEqual : deepEqual , n , values ) ;
75
51
break ;
76
52
case 'notDeepEqual_primitiveOnly' :
77
53
values = array . map ( ( _ , i ) => [ `str_${ i } ` , 123 ] ) ;
78
54
values2 = values . slice ( 0 ) ;
79
55
values2 [ Math . floor ( len / 2 ) ] = [ 'w00t' , 123 ] ;
80
- benchmark ( notDeepEqual , n , values , values2 ) ;
81
- break ;
82
- case 'notDeepStrictEqual_primitiveOnly' :
83
- values = array . map ( ( _ , i ) => [ `str_${ i } ` , 123 ] ) ;
84
- values2 = values . slice ( 0 ) ;
85
- values2 [ Math . floor ( len / 2 ) ] = [ 'w00t' , 123 ] ;
86
- benchmark ( notDeepStrictEqual , n , values , values2 ) ;
56
+ benchmark ( strict ? notDeepStrictEqual : notDeepEqual , n , values , values2 ) ;
87
57
break ;
88
58
case 'notDeepEqual_objectOnly' :
89
59
values = array . map ( ( _ , i ) => [ [ `str_${ i } ` , 1 ] , 123 ] ) ;
90
60
values2 = values . slice ( 0 ) ;
91
61
values2 [ Math . floor ( len / 2 ) ] = [ [ 'w00t' ] , 123 ] ;
92
- benchmark ( notDeepEqual , n , values , values2 ) ;
93
- break ;
94
- case 'notDeepStrictEqual_objectOnly' :
95
- values = array . map ( ( _ , i ) => [ [ `str_${ i } ` , 1 ] , 123 ] ) ;
96
- values2 = values . slice ( 0 ) ;
97
- values2 [ Math . floor ( len / 2 ) ] = [ [ 'w00t' ] , 123 ] ;
98
- benchmark ( notDeepStrictEqual , n , values , values2 ) ;
62
+ benchmark ( strict ? notDeepStrictEqual : notDeepEqual , n , values , values2 ) ;
99
63
break ;
100
64
case 'notDeepEqual_mixed' :
101
65
values = array . map ( ( _ , i ) => [ i % 2 ? [ `str_${ i } ` , 1 ] : `str_${ i } ` , 123 ] ) ;
102
66
values2 = values . slice ( 0 ) ;
103
67
values2 [ 0 ] = [ 'w00t' , 123 ] ;
104
- benchmark ( notDeepEqual , n , values , values2 ) ;
105
- break ;
106
- case 'notDeepStrictEqual_mixed' :
107
- values = array . map ( ( _ , i ) => [ i % 2 ? [ `str_${ i } ` , 1 ] : `str_${ i } ` , 123 ] ) ;
108
- values2 = values . slice ( 0 ) ;
109
- values2 [ 0 ] = [ 'w00t' , 123 ] ;
110
- benchmark ( notDeepStrictEqual , n , values , values2 ) ;
111
- break ;
112
- case 'notDeepEqual_looseMatches' :
113
- values = array . map ( ( _ , i ) => [ i , i ] ) ;
114
- values2 = values . slice ( ) . map ( ( v ) => [ String ( v [ 0 ] ) , String ( v [ 1 ] ) ] ) ;
115
- values2 [ len - 1 ] = [ String ( len + 1 ) , String ( len + 1 ) ] ;
116
- benchmark ( notDeepEqual , n , values , values2 ) ;
68
+ benchmark ( strict ? notDeepStrictEqual : notDeepEqual , n , values , values2 ) ;
117
69
break ;
118
70
default :
119
71
throw new Error ( `Unsupported method ${ method } ` ) ;
0 commit comments