// 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('StringCharCodeAtConstant', [3], [ new Benchmark('StringCharCodeAtConstant', true, false, 0, StringCharCodeAtConstant), ]); new BenchmarkSuite('StringCharCodeAtNonConstant', [3], [ new Benchmark('StringCharCodeAtNonConstant', true, false, 0, StringCharCodeAtNonConstant), ]); new BenchmarkSuite('StringCharCodeAtConstantInbounds', [3], [ new Benchmark('StringCharCodeAtConstantInbounds', true, false, 0, StringCharCodeAtConstantInbounds), ]); new BenchmarkSuite('StringCharCodeAtNonConstantInbounds', [3], [ new Benchmark('StringCharCodeAtNonConstantInbounds', true, false, 0, StringCharCodeAtNonConstantInbounds), ]); const string = "qweruiplkjhgfdsazxccvbnm"; const indices = [1, 13, 32, 100, "xx"]; const indicesInbounds = [1, 7, 13, 17, "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; } function StringCharCodeAtConstantInbounds() { var sum = 0; for (var j = 0; j < indicesInbounds.length - 1; ++j) { sum += string.charCodeAt(indicesInbounds[j] | 0); } return sum; } function StringCharCodeAtNonConstantInbounds() { var sum = 0; for (var j = 0; j < indicesInbounds.length - 1; ++j) { sum += string.charCodeAt(indicesInbounds[j]); } return sum; } new BenchmarkSuite('StringCodePointAtConstant', [3], [ new Benchmark('StringCodePointAtConstant', true, false, 0, StringCodePointAtConstant), ]); new BenchmarkSuite('StringCodePointAtNonConstant', [3], [ new Benchmark('StringCodePointAtNonConstant', true, false, 0, StringCodePointAtNonConstant), ]); new BenchmarkSuite('StringCodePointAtConstantInbounds', [3], [ new Benchmark('StringCodePointAtConstantInbounds', true, false, 0, StringCodePointAtConstantInbounds), ]); new BenchmarkSuite('StringCodePointAtNonConstantInbounds', [3], [ new Benchmark('StringCodePointAtNonConstantInbounds', true, false, 0, StringCodePointAtNonConstantInbounds), ]); const unicode_string = "qweräϠ�𝌆krefdäϠ�𝌆ccäϠ�𝌆"; function StringCodePointAtConstant() { var sum = 0; for (var j = 0; j < indices.length - 1; ++j) { sum += unicode_string.codePointAt(indices[j] | 0); } return sum; } function StringCodePointAtNonConstant() { var sum = 0; for (var j = 0; j < indices.length - 1; ++j) { sum += unicode_string.codePointAt(indices[j]); } return sum; } function StringCodePointAtConstantInbounds() { var sum = 0; for (var j = 0; j < indicesInbounds.length - 1; ++j) { sum += unicode_string.codePointAt(indicesInbounds[j] | 0); } return sum; } function StringCodePointAtNonConstantInbounds() { var sum = 0; for (var j = 0; j < indicesInbounds.length - 1; ++j) { sum += unicode_string.codePointAt(indicesInbounds[j]); } return sum; }