v8/test/mjsunit/es6/debug-evaluate-receiver-before-super.js

40 lines
855 B
JavaScript
Raw Normal View History

// 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.
// Flags: --expose-debug-as debug
// 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;
assertEquals("Cannot read property 'a' of undefined", result);
super();
debugger;
assertEquals(239, result);
}
}
new B();
Debug.setListener(null);