// Copyright 2016 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.
// Test that debug-evaluate doesn't crash when this is used before super() call
// in constructor.
Debug = debug.Debug
var result;
function listener(event, exec_state, event_data, data)
{
try {
if (event == Debug.DebugEvent.Break) {
result = exec_state.frame(0).evaluate("this.a").value();
}
} catch (e) {
result = e.message;
Debug.setListener(listener);
class A { constructor () { this.a = 239; } }
class B extends A {
constructor () {
debugger;
assertTrue(result.indexOf("Cannot read properties of undefined (reading 'a')") >= 0);
super();
assertEquals(239, result);
new B();
Debug.setListener(null);