// Copyright 2017 the V8 project authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // running on old version takes approximately 50 seconds, so 50,000 milliseconds new BenchmarkSuite('Big-Switch', [50000], [ new Benchmark('Big-Switch', false, false, 0, BigSwitch), ]); function BigSwitch() { "use strict"; const n = 100000; const c = (a, b) => Array(a).fill().map((a, c) => b(c)); Function('n, c', ` const a = c(n, a => a); let ctr = 0; for(let i = 0; i !== (1+n); i++){ switch(i){ ${c(n, a => `case ${a}: ctr += i; break;`).join('\n')} default: ctr += i; break; } } return ctr; `)(n,c); }