1'use strict'; 2 3const common = require('../common.js'); 4const assert = require('assert'); 5 6const groupedInputs = { 7 group_common: ['undefined', 'utf8', 'utf-8', 'base64', 8 'binary', 'latin1', 'ucs2'], 9 group_upper: ['UTF-8', 'UTF8', 'UCS2', 10 'UTF16LE', 'BASE64', 'UCS2'], 11 group_uncommon: ['foo'], 12 group_misc: ['', 'utf16le', 'hex', 'HEX', 'BINARY'], 13}; 14 15const inputs = [ 16 '', 'utf8', 'utf-8', 'UTF-8', 'UTF8', 'Utf8', 17 'ucs2', 'UCS2', 'utf16le', 'UTF16LE', 18 'binary', 'BINARY', 'latin1', 'base64', 'BASE64', 19 'hex', 'HEX', 'foo', 'undefined', 20]; 21 22const bench = common.createBenchmark(main, { 23 input: inputs.concat(Object.keys(groupedInputs)), 24 n: [1e5], 25}, { 26 flags: '--expose-internals', 27}); 28 29function getInput(input) { 30 switch (input) { 31 case 'group_common': 32 return groupedInputs.group_common; 33 case 'group_upper': 34 return groupedInputs.group_upper; 35 case 'group_uncommon': 36 return groupedInputs.group_uncommon; 37 case 'group_misc': 38 return groupedInputs.group_misc; 39 case 'undefined': 40 return [undefined]; 41 default: 42 return [input]; 43 } 44} 45 46function main({ input, n }) { 47 const { normalizeEncoding } = require('internal/util'); 48 const inputs = getInput(input); 49 let noDead = ''; 50 51 bench.start(); 52 for (let i = 0; i < n; ++i) { 53 for (let j = 0; j < inputs.length; ++j) { 54 noDead = normalizeEncoding(inputs[j]); 55 } 56 } 57 bench.end(n); 58 assert.ok(noDead === undefined || noDead.length > 0); 59} 60