1'use strict'; 2 3const common = require('../common.js'); 4 5const bench = common.createBenchmark(main, { 6 encoding: ['utf-8', 'latin1', 'iso-8859-3'], 7 ignoreBOM: [0, 1], 8 fatal: [0, 1], 9 len: [256, 1024 * 16, 1024 * 512], 10 n: [1e2], 11 type: ['SharedArrayBuffer', 'ArrayBuffer', 'Buffer'], 12}); 13 14function main({ encoding, len, n, ignoreBOM, type, fatal }) { 15 const decoder = new TextDecoder(encoding, { ignoreBOM, fatal }); 16 let buf; 17 18 switch (type) { 19 case 'SharedArrayBuffer': { 20 buf = new SharedArrayBuffer(len); 21 break; 22 } 23 case 'ArrayBuffer': { 24 buf = new ArrayBuffer(len); 25 break; 26 } 27 case 'Buffer': { 28 buf = Buffer.allocUnsafe(len); 29 break; 30 } 31 } 32 33 bench.start(); 34 for (let i = 0; i < n; i++) { 35 try { 36 decoder.decode(buf); 37 } catch { 38 // eslint-disable no-empty 39 } 40 } 41 bench.end(n); 42} 43