mirror of
https://github.com/zebrajr/node.git
synced 2025-12-06 00:20:08 +01:00
inspector: do not hardcode Debugger.CallFrameId in tests
Debugger.CallFrameId is defined as an opaque string [1]. Some tests currently hardcode the value, relying on undocumented internal details of V8. This makes it hard for V8 to change the internal representation. We should instead use the reported call frame id from the Debugger.paused event directly. This is how every inspector client does it. [1] https://chromedevtools.github.io/devtools-protocol/tot/Debugger/#type-CallFrameId PR-URL: https://github.com/nodejs/node/pull/35570 Reviewed-By: Aleksei Koziatinskii <ak239spb@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Rich Trott <rtrott@gmail.com>
This commit is contained in:
parent
5fea51b66c
commit
a3e8829d4a
|
|
@ -130,6 +130,7 @@ class InspectorSession {
|
|||
this._unprocessedNotifications = [];
|
||||
this._notificationCallback = null;
|
||||
this._scriptsIdsByUrl = new Map();
|
||||
this._pausedDetails = null;
|
||||
|
||||
let buffer = Buffer.alloc(0);
|
||||
socket.on('data', (data) => {
|
||||
|
|
@ -179,6 +180,10 @@ class InspectorSession {
|
|||
this.mainScriptId = scriptId;
|
||||
}
|
||||
}
|
||||
if (message.method === 'Debugger.paused')
|
||||
this._pausedDetails = message.params;
|
||||
if (message.method === 'Debugger.resumed')
|
||||
this._pausedDetails = null;
|
||||
|
||||
if (this._notificationCallback) {
|
||||
// In case callback needs to install another
|
||||
|
|
@ -267,6 +272,10 @@ class InspectorSession {
|
|||
`break on ${url}:${line}`);
|
||||
}
|
||||
|
||||
pausedDetails() {
|
||||
return this._pausedDetails;
|
||||
}
|
||||
|
||||
_matchesConsoleOutputNotification(notification, type, values) {
|
||||
if (!Array.isArray(values))
|
||||
values = [ values ];
|
||||
|
|
|
|||
|
|
@ -78,7 +78,7 @@ async function testBreakpoint(session) {
|
|||
|
||||
let { result } = await session.send({
|
||||
'method': 'Debugger.evaluateOnCallFrame', 'params': {
|
||||
'callFrameId': '{"ordinal":0,"injectedScriptId":1}',
|
||||
'callFrameId': session.pausedDetails().callFrames[0].callFrameId,
|
||||
'expression': 'k + t',
|
||||
'objectGroup': 'console',
|
||||
'includeCommandLineAPI': true,
|
||||
|
|
|
|||
|
|
@ -116,7 +116,7 @@ async function testBreakpoint(session) {
|
|||
|
||||
let { result } = await session.send({
|
||||
'method': 'Debugger.evaluateOnCallFrame', 'params': {
|
||||
'callFrameId': '{"ordinal":0,"injectedScriptId":1}',
|
||||
'callFrameId': session.pausedDetails().callFrames[0].callFrameId,
|
||||
'expression': 'k + t',
|
||||
'objectGroup': 'console',
|
||||
'includeCommandLineAPI': true,
|
||||
|
|
@ -150,7 +150,7 @@ async function testI18NCharacters(session) {
|
|||
const chars = 'טֶ字и';
|
||||
session.send({
|
||||
'method': 'Debugger.evaluateOnCallFrame', 'params': {
|
||||
'callFrameId': '{"ordinal":0,"injectedScriptId":1}',
|
||||
'callFrameId': session.pausedDetails().callFrames[0].callFrameId,
|
||||
'expression': `console.log("${chars}")`,
|
||||
'objectGroup': 'console',
|
||||
'includeCommandLineAPI': true,
|
||||
|
|
@ -276,7 +276,7 @@ async function testCommandLineAPI(session) {
|
|||
result = await session.send(
|
||||
{
|
||||
'method': 'Debugger.evaluateOnCallFrame', 'params': {
|
||||
'callFrameId': '{"ordinal":0,"injectedScriptId":1}',
|
||||
'callFrameId': session.pausedDetails().callFrames[0].callFrameId,
|
||||
'expression': `(
|
||||
require(${printBModuleStr}),
|
||||
require.cache[${printBModuleStr}].parent.id
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user