mirror of https://github.com/lukechilds/node.git
Browse Source
Original commit message: [PATCH] [debugger] Scope iterator should not visit inner function literals. R=marja@chromium.org BUG=chromium:621361 Review-Url: https://codereview.chromium.org/2185913003 Cr-Commit-Position: refs/heads/master@{#38087} Fixes: https://github.com/nodejs/node/issues/15075 PR-URL: https://github.com/nodejs/node/pull/15215 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com> Reviewed-By: Franziska Hinkelmann <franziska.hinkelmann@gmail.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>v6.x
Michaël Zasso
7 years ago
committed by
Myles Borins
3 changed files with 47 additions and 1 deletions
@ -0,0 +1,40 @@ |
|||
// 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
|
|||
|
|||
var Debug = debug.Debug; |
|||
var steps = 0; |
|||
var exception = null; |
|||
|
|||
function listener(event, execState, eventData, data) { |
|||
if (event != Debug.DebugEvent.Break) return; |
|||
try { |
|||
assertEquals([ debug.ScopeType.Local, |
|||
debug.ScopeType.Script, |
|||
debug.ScopeType.Global], |
|||
execState.frame().allScopes().map(s => s.scopeType())); |
|||
var x_value = execState.frame().evaluate("x").value(); |
|||
if (steps < 2) { |
|||
assertEquals(undefined, x_value); |
|||
execState.prepareStep(Debug.StepAction.StepIn); |
|||
} else { |
|||
assertEquals("l => l", x_value.toString()); |
|||
} |
|||
steps++; |
|||
} catch (e) { |
|||
exception = e; |
|||
} |
|||
} |
|||
|
|||
Debug.setListener(listener); |
|||
|
|||
(function() { |
|||
debugger; |
|||
var x = l => l; |
|||
})(); |
|||
|
|||
Debug.setListener(null); |
|||
assertNull(exception); |
|||
assertEquals(3, steps); |
Loading…
Reference in new issue