// 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';

class Base {
  m() {
    return 42;
  }
}

class Derived extends Base {
  m() {
    return super.m();
  }
  evalM() {
    return eval('super.m()');
  }
}

assertEquals(42, new Derived().m());
assertEquals(42, new Derived().evalM());


class LazyDerived extends Base {
  constructor() {
    eval('super()');
  }
}
assertInstanceof(new LazyDerived(), LazyDerived);
assertInstanceof(new LazyDerived(), Base);