11'use strict' ;
2- var common = require ( '../common.js' ) ;
3- var assert = require ( 'assert' ) ;
2+ const common = require ( '../common.js' ) ;
3+ const assert = require ( 'assert' ) ;
44
55const primValues = {
66 'null' : null ,
@@ -13,29 +13,43 @@ const primValues = {
1313 'new-array' : new Array ( [ 1 , 2 , 3 ] )
1414} ;
1515
16- var bench = common . createBenchmark ( main , {
16+ const bench = common . createBenchmark ( main , {
1717 prim : Object . keys ( primValues ) ,
18- n : [ 25 ]
18+ n : [ 25 ] ,
19+ len : [ 1e5 ] ,
20+ method : [ 'strict' , 'nonstrict' ]
1921} ) ;
2022
2123function main ( conf ) {
22- var prim = primValues [ conf . prim ] ;
23- var n = + conf . n ;
24- var primArray ;
25- var primArrayCompare ;
26- var x ;
24+ const prim = primValues [ conf . prim ] ;
25+ const n = + conf . n ;
26+ const len = + conf . len ;
27+ const actual = [ ] ;
28+ const expected = [ ] ;
29+ var i ;
2730
28- primArray = new Array ( ) ;
29- primArrayCompare = new Array ( ) ;
30- for ( x = 0 ; x < ( 1e5 ) ; x ++ ) {
31- primArray . push ( prim ) ;
32- primArrayCompare . push ( prim ) ;
31+ for ( var x = 0 ; x < len ; x ++ ) {
32+ actual . push ( prim ) ;
33+ expected . push ( prim ) ;
3334 }
3435
35- bench . start ( ) ;
36- for ( x = 0 ; x < n ; x ++ ) {
37- // eslint-disable-next-line no-restricted-properties
38- assert . deepEqual ( primArray , primArrayCompare ) ;
36+ switch ( conf . method ) {
37+ case 'strict' :
38+ bench . start ( ) ;
39+ for ( i = 0 ; i < n ; ++ i ) {
40+ // eslint-disable-next-line no-restricted-properties
41+ assert . deepEqual ( actual , expected ) ;
42+ }
43+ bench . end ( n ) ;
44+ break ;
45+ case 'nonstrict' :
46+ bench . start ( ) ;
47+ for ( i = 0 ; i < n ; ++ i ) {
48+ assert . deepStrictEqual ( actual , expected ) ;
49+ }
50+ bench . end ( n ) ;
51+ break ;
52+ default :
53+ throw new Error ( 'Unsupported method' ) ;
3954 }
40- bench . end ( n ) ;
4155}
0 commit comments