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}
43 lines
889 B
JavaScript
43 lines
889 B
JavaScript
// 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.
|
|
|
|
|
|
Debug = debug.Debug
|
|
|
|
var exception = null;
|
|
function listener(event, exec_state, event_data, data) {
|
|
if (event != Debug.DebugEvent.Break) return;
|
|
try {
|
|
exec_state.frame(0).evaluate("a = 2");
|
|
exec_state.frame(0).evaluate("e = 3");
|
|
exec_state.frame(0).evaluate("bar()");
|
|
exec_state.frame(0).evaluate("a++");
|
|
exec_state.frame(0).evaluate("e++");
|
|
} catch (e) {
|
|
exception = e;
|
|
print(e + e.stack);
|
|
}
|
|
}
|
|
|
|
Debug.setListener(listener);
|
|
|
|
(function() {
|
|
"use strict";
|
|
try {
|
|
throw 1;
|
|
} catch (e) {
|
|
let a = 1;
|
|
function bar() {
|
|
a *= 2;
|
|
e *= 2;
|
|
}
|
|
debugger;
|
|
assertEquals(5, a);
|
|
assertEquals(7, e);
|
|
}
|
|
})();
|
|
|
|
Debug.setListener(null);
|
|
assertNull(exception);
|