'use strict'; const common = require('../common.js'); const util = require('util'); const bench = common.createBenchmark(main, { type: ['extend', 'assign'], n: [10e4], }); function main({ n, type }) { let fn; if (type === 'extend') { fn = util._extend; } else if (type === 'assign') { fn = Object.assign; } // Force-optimize the method to test so that the benchmark doesn't // get disrupted by the optimizer kicking in halfway through. for (let i = 0; i < type.length * 10; i += 1) fn({}, process.env); const obj = new Proxy({}, { set: function(a, b, c) { return true; } }); bench.start(); for (let j = 0; j < n; j += 1) fn(obj, process.env); bench.end(n); }