| // 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. |
| |
| new BenchmarkSuite('StringIndexOfConstant', [5], [ |
| new Benchmark('StringIndexOfConstant', true, false, 0, |
| StringIndexOfConstant), |
| ]); |
| |
| new BenchmarkSuite('StringIndexOfNonConstant', [5], [ |
| new Benchmark('StringIndexOfNonConstant', true, false, 0, |
| StringIndexOfNonConstant), |
| ]); |
| |
| const subject = "aaaaaaaaaaaaaaaab"; |
| const searches = ['a', 'b', 'c']; |
| |
| function StringIndexOfConstant() { |
| var sum = 0; |
| |
| for (var j = 0; j < searches.length; ++j) { |
| sum += subject.indexOf("" + searches[j]); |
| } |
| |
| return sum; |
| } |
| |
| function StringIndexOfNonConstant() { |
| var sum = 0; |
| |
| for (var j = 0; j < searches.length; ++j) { |
| sum += subject.indexOf(searches[j]); |
| } |
| |
| return sum; |
| } |
| |
| new BenchmarkSuite('StringCharCodeAtConstant', [3], [ |
| new Benchmark('StringIndexOfConstant', true, false, 0, |
| StringCharCodeAtConstant), |
| ]); |
| |
| new BenchmarkSuite('StringCharCodeAtNonConstant', [3], [ |
| new Benchmark('StringIndexOfNonConstant', true, false, 0, |
| StringCharCodeAtNonConstant), |
| ]); |
| |
| const string = "qweruiplkjhgfdsazxccvbnm"; |
| const indices = [1, 13, 32, 100, "xx"]; |
| |
| function StringCharCodeAtConstant() { |
| var sum = 0; |
| |
| for (var j = 0; j < indices.length - 1; ++j) { |
| sum += string.charCodeAt(indices[j] | 0); |
| } |
| |
| return sum; |
| } |
| |
| function StringCharCodeAtNonConstant() { |
| var sum = 0; |
| |
| for (var j = 0; j < indices.length - 1; ++j) { |
| sum += string.charCodeAt(indices[j]); |
| } |
| |
| return sum; |
| } |