diff options
Diffstat (limited to 'deps/v8/test/debugger/debug/es6/debug-evaluate-receiver-before-super.js')
-rw-r--r-- | deps/v8/test/debugger/debug/es6/debug-evaluate-receiver-before-super.js | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/deps/v8/test/debugger/debug/es6/debug-evaluate-receiver-before-super.js b/deps/v8/test/debugger/debug/es6/debug-evaluate-receiver-before-super.js new file mode 100644 index 0000000000..8fa8645baf --- /dev/null +++ b/deps/v8/test/debugger/debug/es6/debug-evaluate-receiver-before-super.js @@ -0,0 +1,38 @@ +// 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 property 'a' of undefined") >= 0); + super(); + debugger; + assertEquals(239, result); + } +} +new B(); + +Debug.setListener(null); |