| // 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(); | |
| } |