11cb0ef41Sopenharmony_ci'use strict'; 21cb0ef41Sopenharmony_ciconst common = require('../common.js'); 31cb0ef41Sopenharmony_ciconst { EventEmitter } = require('events'); 41cb0ef41Sopenharmony_ci 51cb0ef41Sopenharmony_ciconst bench = common.createBenchmark(main, { 61cb0ef41Sopenharmony_ci newListener: [0, 1], 71cb0ef41Sopenharmony_ci removeListener: [0, 1], 81cb0ef41Sopenharmony_ci n: [1e6], 91cb0ef41Sopenharmony_ci}); 101cb0ef41Sopenharmony_ci 111cb0ef41Sopenharmony_cifunction main({ newListener, removeListener, n }) { 121cb0ef41Sopenharmony_ci const ee = new EventEmitter(); 131cb0ef41Sopenharmony_ci const listeners = []; 141cb0ef41Sopenharmony_ci 151cb0ef41Sopenharmony_ci for (let k = 0; k < 10; k += 1) 161cb0ef41Sopenharmony_ci listeners.push(() => {}); 171cb0ef41Sopenharmony_ci 181cb0ef41Sopenharmony_ci if (newListener === 1) 191cb0ef41Sopenharmony_ci ee.on('newListener', (event, listener) => {}); 201cb0ef41Sopenharmony_ci 211cb0ef41Sopenharmony_ci if (removeListener === 1) 221cb0ef41Sopenharmony_ci ee.on('removeListener', (event, listener) => {}); 231cb0ef41Sopenharmony_ci 241cb0ef41Sopenharmony_ci bench.start(); 251cb0ef41Sopenharmony_ci for (let i = 0; i < n; i += 1) { 261cb0ef41Sopenharmony_ci const dummy = (i % 2 === 0) ? 'dummy0' : 'dummy1'; 271cb0ef41Sopenharmony_ci for (let k = listeners.length; --k >= 0; /* empty */) { 281cb0ef41Sopenharmony_ci ee.on(dummy, listeners[k]); 291cb0ef41Sopenharmony_ci } 301cb0ef41Sopenharmony_ci for (let k = listeners.length; --k >= 0; /* empty */) { 311cb0ef41Sopenharmony_ci ee.removeListener(dummy, listeners[k]); 321cb0ef41Sopenharmony_ci } 331cb0ef41Sopenharmony_ci } 341cb0ef41Sopenharmony_ci bench.end(n); 351cb0ef41Sopenharmony_ci} 36