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