diff --git a/test/js-perf-test/BytecodeHandlers/LdaKeyedProperty.js b/test/js-perf-test/BytecodeHandlers/LdaKeyedProperty.js new file mode 100644 index 0000000000..b0da481a4c --- /dev/null +++ b/test/js-perf-test/BytecodeHandlers/LdaKeyedProperty.js @@ -0,0 +1,40 @@ +// Copyright 2019 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) + ]); +} + +function objectLookupStringConstant() { + const x = { 1: "foo" }; + + for (var i = 0; i < 1000; ++i) { + const p = x["1"]; + } +} + +function objectLookupIndexNumber() { + const x = { 1: "foo" }; + const a = 1; + + for (var i = 0; i < 1000; ++i) { + const p = x[a]; + } +} + +function objectLookupIndexString() { + const x = { 1: "foo" }; + const a = "1"; + + for (var i = 0; i < 1000; ++i) { + const p = x[a]; + } +} + +addBenchmark('Object-Lookup-String-Constant', objectLookupStringConstant); +addBenchmark('Object-Lookup-Index-Number', objectLookupIndexNumber); +addBenchmark('Object-Lookup-Index-String', objectLookupIndexString); diff --git a/test/js-perf-test/JSTests3.json b/test/js-perf-test/JSTests3.json index 26e03bf1ce..a664c9b8a0 100644 --- a/test/js-perf-test/JSTests3.json +++ b/test/js-perf-test/JSTests3.json @@ -359,6 +359,18 @@ {"name": "Smi-Value"}, {"name": "Prototype-Chain-Value"} ] + }, + { + "name": "LdaKeyedProperty", + "main": "run.js", + "resources": [ "LdaKeyedProperty.js" ], + "test_flags": [ "LdaKeyedProperty" ], + "results_regexp": "^%s\\-BytecodeHandler\\(Score\\): (.+)$", + "tests": [ + {"name": "Object-Lookup-String-Constant"}, + {"name": "Object-Lookup-Index-Number"}, + {"name": "Object-Lookup-Index-String"} + ] } ] },