diff options
Diffstat (limited to 'deps/v8/test/debugger/debug/es6/default-parameters-debug.js')
-rw-r--r-- | deps/v8/test/debugger/debug/es6/default-parameters-debug.js | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/deps/v8/test/debugger/debug/es6/default-parameters-debug.js b/deps/v8/test/debugger/debug/es6/default-parameters-debug.js new file mode 100644 index 0000000000..87ff386b83 --- /dev/null +++ b/deps/v8/test/debugger/debug/es6/default-parameters-debug.js @@ -0,0 +1,54 @@ +// Copyright 2015 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: --noanalyze-environment-liveness + + +Debug = debug.Debug + +listenerComplete = false; +breakPointCount = 0; +exception = null; + +function listener(event, exec_state, event_data, data) { + if (event != Debug.DebugEvent.Break) return; + try { + breakPointCount++; + if (breakPointCount == 1) { + // Break point in initializer for parameter `a`, invoked by + // initializer for parameter `b` + assertEquals('default', exec_state.frame(0).evaluate('mode').value()); + assertTrue(exec_state.frame(1).evaluate('b').isUndefined()); + assertTrue(exec_state.frame(1).evaluate('c').isUndefined()); + } else if (breakPointCount == 2) { + // Break point in IIFE initializer for parameter `c` + assertEquals('modeFn', exec_state.frame(1).evaluate('a.name').value()); + assertEquals('default', exec_state.frame(1).evaluate('b').value()); + assertTrue(exec_state.frame(1).evaluate('c').isUndefined()); + } else if (breakPointCount == 3) { + // Break point in function body --- `c` parameter is shadowed + assertEquals('modeFn', exec_state.frame(0).evaluate('a.name').value()); + assertEquals('default', exec_state.frame(0).evaluate('b').value()); + assertEquals('local', exec_state.frame(0).evaluate('d').value()); + } + } catch (e) { + exception = e; + } +}; + +// Add the debug event listener. +Debug.setListener(listener); + +function f(a = function modeFn(mode) { debugger; return mode; }, + b = a("default"), + c = (function() { debugger; })()) { + var d = 'local'; + debugger; +}; + +f(); + +// Make sure that the debug event listener vas invoked. +assertEquals(3, breakPointCount); +assertNull(exception); |