@@ -6,26 +6,42 @@ const bench = common.createBenchmark(main, {
66 encoding : [ 'utf-8' , 'windows-1252' , 'iso-8859-3' ] ,
77 ignoreBOM : [ 0 , 1 ] ,
88 fatal : [ 0 , 1 ] ,
9+ type : [ 'SharedArrayBuffer' , 'ArrayBuffer' , 'Buffer' ] ,
10+ content : [ 'ascii' , 'one-byte-string' , 'two-byte-string' ] ,
911 len : [ 256 , 1024 * 16 , 1024 * 128 ] ,
1012 n : [ 1e3 ] ,
11- type : [ 'SharedArrayBuffer' , 'ArrayBuffer' , 'Buffer' ] ,
1213} ) ;
1314
14- function main ( { encoding, len, n, ignoreBOM, type, fatal } ) {
15+ function buildContent ( content , len ) {
16+ let base ;
17+ switch ( content ) {
18+ case 'ascii' : base = 'a' ; break ;
19+ case 'one-byte-string' : base = '\xff' ; break ;
20+ case 'two-byte-string' : base = 'ğ' ; break ;
21+ }
22+ const unitBytes = Buffer . byteLength ( base , 'utf8' ) ;
23+ const copies = Math . max ( 1 , Math . floor ( len / unitBytes ) ) ;
24+ return Buffer . from ( base . repeat ( copies ) ) ;
25+ }
26+
27+ function main ( { encoding, len, n, ignoreBOM, type, fatal, content } ) {
1528 const decoder = new TextDecoder ( encoding , { ignoreBOM, fatal } ) ;
29+ const seed = buildContent ( content , len ) ;
1630 let buf ;
1731
1832 switch ( type ) {
1933 case 'SharedArrayBuffer' : {
20- buf = new SharedArrayBuffer ( len ) ;
34+ buf = new SharedArrayBuffer ( seed . length ) ;
35+ new Uint8Array ( buf ) . set ( seed ) ;
2136 break ;
2237 }
2338 case 'ArrayBuffer' : {
24- buf = new ArrayBuffer ( len ) ;
39+ buf = new ArrayBuffer ( seed . length ) ;
40+ new Uint8Array ( buf ) . set ( seed ) ;
2541 break ;
2642 }
2743 case 'Buffer' : {
28- buf = Buffer . allocUnsafe ( len ) ;
44+ buf = seed ;
2945 break ;
3046 }
3147 }
0 commit comments