1'use strict'; 2const common = require('../common.js'); 3const url = require('url'); 4const URL = url.URL; 5const assert = require('assert'); 6 7const bench = common.createBenchmark(main, { 8 withBase: ['true', 'false'], 9 type: common.urlDataTypes, 10 e: [1], 11}); 12 13function useWHATWGWithBase(data) { 14 const len = data.length; 15 let result = new URL(data[0][0], data[0][1]); // Avoid dead code elimination 16 bench.start(); 17 for (let i = 0; i < len; ++i) { 18 const item = data[i]; 19 result = new URL(item[0], item[1]); 20 } 21 bench.end(len); 22 return result; 23} 24 25function useWHATWGWithoutBase(data) { 26 const len = data.length; 27 let result = new URL(data[0]); // Avoid dead code elimination 28 bench.start(); 29 for (let i = 0; i < len; ++i) { 30 result = new URL(data[i]); 31 } 32 bench.end(len); 33 return result; 34} 35 36function main({ e, type, withBase }) { 37 withBase = withBase === 'true'; 38 const data = common.bakeUrlData(type, e, withBase, false); 39 const noDead = withBase ? useWHATWGWithBase(data) : useWHATWGWithoutBase(data); 40 41 assert.ok(noDead); 42} 43