// 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. function addBenchmark(name, test) { new BenchmarkSuite(name, [1000], [ new Benchmark(name, false, false, 0, test) ]); } addBenchmark('ShortString-StringConcat-2', ShortStringConcat2); addBenchmark('ShortString-StringConcat-3', ShortStringConcat3); addBenchmark('ShortString-StringConcat-5', ShortStringConcat5); addBenchmark('ShortString-StringConcat-10', ShortStringConcat10); addBenchmark('LongString-StringConcat-2', LongStringConcat2); addBenchmark('LongString-StringConcat-3', LongStringConcat3); addBenchmark('LongString-StringConcat-5', LongStringConcat5); addBenchmark('LongString-StringConcat-10', LongStringConcat10); addBenchmark('NumberString-StringConcat-2', NumberStringConcat2); addBenchmark('NumberString-StringConcat-3', NumberStringConcat3); addBenchmark('NumberString-StringConcat-5', NumberStringConcat5); addBenchmark('NumberString-StringConcat-10', NumberStringConcat10); function stringConcat2(a) { for (var i = 0; i < 100; ++i) { "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; "s" + a; } } function stringConcat3(a, b) { for (var i = 0; i < 100; ++i) { "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; "s" + a + b; } } function stringConcat5(a, b, c, d) { for (var i = 0; i < 100; ++i) { "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; "s" + a + b + c + d; } } function stringConcat10(a, b, c, d, e, f, g, h, i) { for (var j = 0; j < 100; ++j) { "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; "s" + a + b + c + d + e + f + g + h + i; } } function ShortStringConcat2() { stringConcat2("a"); } function ShortStringConcat3() { stringConcat3("a", "b"); } function ShortStringConcat5() { stringConcat5("a", "b", "c", "d"); } function ShortStringConcat10() { stringConcat10("a", "b", "c", "d", "e", "f", "g", "h", "i"); } function LongStringConcat2() { stringConcat2("long string over consmin"); } function LongStringConcat3() { stringConcat3("long string ", "over consmin"); } function LongStringConcat5() { stringConcat5("long ", "string ", "over ", "consmin"); } function LongStringConcat10() { stringConcat10("long ", "string ", "over ", "consmin ", "long ", "string ", "over ", "consmin", "done"); } function NumberStringConcat2() { stringConcat2(123.456); } function NumberStringConcat3() { stringConcat3(1, 0.2345); } function NumberStringConcat5() { stringConcat5(1, 2, 3, 4.5, 5.6); } function NumberStringConcat10() { stringConcat10(10, 2345, 5e10, 3.14, 987654321, 21.56789, 2, 3, 4); }