@@ -11,63 +11,59 @@ const bench = common.createBenchmark(main, {
11
11
millions : [ 1 ]
12
12
} ) ;
13
13
14
- function runObject ( n ) {
14
+ function runObject ( millions ) {
15
15
const m = { } ;
16
- var i = 0 ;
17
16
bench . start ( ) ;
18
- for ( ; i < n ; i ++ ) {
17
+ for ( var i = 0 ; i < millions * 1e6 ; i ++ ) {
19
18
m [ `i${ i } ` ] = i ;
20
19
m [ `s${ i } ` ] = String ( i ) ;
21
20
assert . strictEqual ( String ( m [ `i${ i } ` ] ) , m [ `s${ i } ` ] ) ;
22
21
m [ `i${ i } ` ] = undefined ;
23
22
m [ `s${ i } ` ] = undefined ;
24
23
}
25
- bench . end ( n / 1e6 ) ;
24
+ bench . end ( millions ) ;
26
25
}
27
26
28
- function runNullProtoObject ( n ) {
27
+ function runNullProtoObject ( millions ) {
29
28
const m = Object . create ( null ) ;
30
- var i = 0 ;
31
29
bench . start ( ) ;
32
- for ( ; i < n ; i ++ ) {
30
+ for ( var i = 0 ; i < millions * 1e6 ; i ++ ) {
33
31
m [ `i${ i } ` ] = i ;
34
32
m [ `s${ i } ` ] = String ( i ) ;
35
33
assert . strictEqual ( String ( m [ `i${ i } ` ] ) , m [ `s${ i } ` ] ) ;
36
34
m [ `i${ i } ` ] = undefined ;
37
35
m [ `s${ i } ` ] = undefined ;
38
36
}
39
- bench . end ( n / 1e6 ) ;
37
+ bench . end ( millions ) ;
40
38
}
41
39
42
- function runNullProtoLiteralObject ( n ) {
40
+ function runNullProtoLiteralObject ( millions ) {
43
41
const m = { __proto__ : null } ;
44
- var i = 0 ;
45
42
bench . start ( ) ;
46
- for ( ; i < n ; i ++ ) {
43
+ for ( var i = 0 ; i < millions * 1e6 ; i ++ ) {
47
44
m [ `i${ i } ` ] = i ;
48
45
m [ `s${ i } ` ] = String ( i ) ;
49
46
assert . strictEqual ( String ( m [ `i${ i } ` ] ) , m [ `s${ i } ` ] ) ;
50
47
m [ `i${ i } ` ] = undefined ;
51
48
m [ `s${ i } ` ] = undefined ;
52
49
}
53
- bench . end ( n / 1e6 ) ;
50
+ bench . end ( millions ) ;
54
51
}
55
52
56
53
function StorageObject ( ) { }
57
54
StorageObject . prototype = Object . create ( null ) ;
58
55
59
- function runStorageObject ( n ) {
56
+ function runStorageObject ( millions ) {
60
57
const m = new StorageObject ( ) ;
61
- var i = 0 ;
62
58
bench . start ( ) ;
63
- for ( ; i < n ; i ++ ) {
59
+ for ( var i = 0 ; i < millions * 1e6 ; i ++ ) {
64
60
m [ `i${ i } ` ] = i ;
65
61
m [ `s${ i } ` ] = String ( i ) ;
66
62
assert . strictEqual ( String ( m [ `i${ i } ` ] ) , m [ `s${ i } ` ] ) ;
67
63
m [ `i${ i } ` ] = undefined ;
68
64
m [ `s${ i } ` ] = undefined ;
69
65
}
70
- bench . end ( n / 1e6 ) ;
66
+ bench . end ( millions ) ;
71
67
}
72
68
73
69
function fakeMap ( ) {
@@ -80,59 +76,55 @@ function fakeMap() {
80
76
} ;
81
77
}
82
78
83
- function runFakeMap ( n ) {
79
+ function runFakeMap ( millions ) {
84
80
const m = fakeMap ( ) ;
85
- var i = 0 ;
86
81
bench . start ( ) ;
87
- for ( ; i < n ; i ++ ) {
82
+ for ( var i = 0 ; i < millions * 1e6 ; i ++ ) {
88
83
m . set ( `i${ i } ` , i ) ;
89
84
m . set ( `s${ i } ` , String ( i ) ) ;
90
85
assert . strictEqual ( String ( m . get ( `i${ i } ` ) ) , m . get ( `s${ i } ` ) ) ;
91
86
m . set ( `i${ i } ` , undefined ) ;
92
87
m . set ( `s${ i } ` , undefined ) ;
93
88
}
94
- bench . end ( n / 1e6 ) ;
89
+ bench . end ( millions ) ;
95
90
}
96
91
97
- function runMap ( n ) {
92
+ function runMap ( millions ) {
98
93
const m = new Map ( ) ;
99
- var i = 0 ;
100
94
bench . start ( ) ;
101
- for ( ; i < n ; i ++ ) {
95
+ for ( var i = 0 ; i < millions * 1e6 ; i ++ ) {
102
96
m . set ( `i${ i } ` , i ) ;
103
97
m . set ( `s${ i } ` , String ( i ) ) ;
104
98
assert . strictEqual ( String ( m . get ( `i${ i } ` ) ) , m . get ( `s${ i } ` ) ) ;
105
99
m . set ( `i${ i } ` , undefined ) ;
106
100
m . set ( `s${ i } ` , undefined ) ;
107
101
}
108
- bench . end ( n / 1e6 ) ;
102
+ bench . end ( millions ) ;
109
103
}
110
104
111
105
function main ( { millions, method } ) {
112
- const n = millions * 1e6 ;
113
-
114
106
switch ( method ) {
115
107
case '' :
116
108
// Empty string falls through to next line as default, mostly for tests.
117
109
case 'object' :
118
- runObject ( n ) ;
110
+ runObject ( millions ) ;
119
111
break ;
120
112
case 'nullProtoObject' :
121
- runNullProtoObject ( n ) ;
113
+ runNullProtoObject ( millions ) ;
122
114
break ;
123
115
case 'nullProtoLiteralObject' :
124
- runNullProtoLiteralObject ( n ) ;
116
+ runNullProtoLiteralObject ( millions ) ;
125
117
break ;
126
118
case 'storageObject' :
127
- runStorageObject ( n ) ;
119
+ runStorageObject ( millions ) ;
128
120
break ;
129
121
case 'fakeMap' :
130
- runFakeMap ( n ) ;
122
+ runFakeMap ( millions ) ;
131
123
break ;
132
124
case 'map' :
133
- runMap ( n ) ;
125
+ runMap ( millions ) ;
134
126
break ;
135
127
default :
136
- throw new Error ( ' Unexpected method' ) ;
128
+ throw new Error ( ` Unexpected method " ${ method } "` ) ;
137
129
}
138
130
}
0 commit comments