b32ee40de8
This CL adds support for: * conditional breaks in setBreakpoint, * locals in frame.local{Count,Name,Value}, * evaluation on a frame in frame.evaluate, * and more detailed scope information in scopeObject. Uses of several functions that are not covered by the inspector protocol and are only used in tests have been removed. Local handling has been modified to also include arguments as locals. Inspector differs in this regard from our FrameDetails in that arguments are always shown as locals. Argument-related functions were removed. BUG=v8:5530 Review-Url: https://codereview.chromium.org/2491543002 Cr-Commit-Position: refs/heads/master@{#40917}
52 lines
1.3 KiB
JavaScript
52 lines
1.3 KiB
JavaScript
// Copyright 2014 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.
|
|
|
|
|
|
Debug = debug.Debug
|
|
|
|
var debug_step = 0;
|
|
var failure = null;
|
|
|
|
function listener(event, exec_state, event_data, data) {
|
|
if (event != Debug.DebugEvent.Break) return;
|
|
try {
|
|
if (debug_step == 0) {
|
|
assertEquals(1, exec_state.frame(0).evaluate('a').value());
|
|
assertEquals(3, exec_state.frame(0).evaluate('b').value());
|
|
exec_state.frame(0).evaluate("a = 4").value();
|
|
debug_step++;
|
|
} else {
|
|
assertEquals(4, exec_state.frame(0).evaluate('a').value());
|
|
assertEquals(3, exec_state.frame(0).evaluate('b').value());
|
|
exec_state.frame(0).evaluate("set_a_to_5()");
|
|
exec_state.frame(0).evaluate("b = 5").value();
|
|
}
|
|
} catch (e) {
|
|
failure = e;
|
|
}
|
|
}
|
|
|
|
Debug.setListener(listener);
|
|
|
|
function* generator(a, b) {
|
|
function set_a_to_5() { a = 5 }
|
|
var b = 3; // Shadows a parameter.
|
|
debugger;
|
|
yield a;
|
|
yield b;
|
|
debugger;
|
|
yield a;
|
|
return b;
|
|
}
|
|
|
|
var foo = generator(1, 2);
|
|
|
|
assertEquals(4, foo.next().value);
|
|
assertEquals(3, foo.next().value);
|
|
assertEquals(5, foo.next().value);
|
|
assertEquals(5, foo.next().value);
|
|
assertNull(failure);
|
|
|
|
Debug.setListener(null);
|