| // Copyright 2020 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. |
| |
| const DETERMINISTIC_RUNS = 10000; |
| new BenchmarkSuite(BENCHMARK_NAME, [1000], [ |
| new Benchmark(BENCHMARK_NAME, false, false, DETERMINISTIC_RUNS, |
| runBenchmark) |
| ]); |
| |
| function createSubclass() { |
| class A { |
| get super_prop() { |
| return 10; |
| } |
| }; |
| class B extends A { |
| test() { |
| return super.super_prop; |
| } |
| }; |
| return B; |
| } |
| |
| const b1 = createSubclass(); |
| const b2 = createSubclass(); |
| |
| const objects = [ |
| new b1(), |
| new b2() |
| ]; |
| |
| let ix = 0; |
| const EXPECTED_VALUE = 10; |
| |
| function runBenchmark() { |
| const r = objects[ix].test(); |
| if (r != EXPECTED_VALUE) { |
| throw new Error("Test error"); |
| } |
| if (++ix == objects.length) { |
| ix = 0; |
| } |
| } |