| // Copyright 2014 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. |
| 'use strict'; |
| |
| var SuperBenchmark = new BenchmarkSuite('Super', [100], [ |
| new Benchmark('SuperMethodCall', false, false, 0, SuperMethodCall), |
| new Benchmark('SuperGetterCall', false, false, 0, SuperGetterCall), |
| new Benchmark('SuperSetterCall', false, false, 0, SuperSetterCall), |
| ]); |
| |
| |
| class Base { |
| constructor() {} |
| get x() { |
| return this._x++; |
| } |
| set x(v) { |
| this._x += v; |
| return this._x; |
| } |
| f() { |
| return this._x++; |
| } |
| } |
| |
| |
| class Derived extends Base { |
| constructor() { |
| super(); |
| this._x = 1; |
| } |
| SuperCall() { |
| return super.f(); |
| } |
| GetterCall() { |
| return super.x; |
| } |
| SetterCall() { |
| return super.x = 5; |
| } |
| } |
| |
| |
| var derived = new Derived(); |
| |
| function SuperMethodCall() { |
| return derived.SuperCall(); |
| } |
| |
| function SuperGetterCall() { |
| return derived.GetterCall(); |
| } |
| |
| function SuperSetterCall() { |
| return derived.SetterCall(); |
| } |