summaryrefslogtreecommitdiff
path: root/deps/v8/test/js-perf-test/BytecodeHandlers/LdaKeyedProperty.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/test/js-perf-test/BytecodeHandlers/LdaKeyedProperty.js')
-rw-r--r--deps/v8/test/js-perf-test/BytecodeHandlers/LdaKeyedProperty.js40
1 files changed, 40 insertions, 0 deletions
diff --git a/deps/v8/test/js-perf-test/BytecodeHandlers/LdaKeyedProperty.js b/deps/v8/test/js-perf-test/BytecodeHandlers/LdaKeyedProperty.js
new file mode 100644
index 0000000000..b0da481a4c
--- /dev/null
+++ b/deps/v8/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);