| // Flags: --expose-internals |
| 'use strict'; |
| const common = require('../common'); |
| |
| common.skipIfInspectorDisabled(); |
| |
| const { validateSnapshotNodes } = require('../common/heap'); |
| const inspector = require('inspector'); |
| |
| const snapshotNode = { |
| children: [ |
| { node_name: 'Node / InspectorSession', edge_name: 'session' } |
| ] |
| }; |
| |
| // Starts with no JSBindingsConnection (or 1 if coverage enabled). |
| { |
| const expected = []; |
| if (process.env.NODE_V8_COVERAGE) { |
| expected.push(snapshotNode); |
| } |
| validateSnapshotNodes('Node / JSBindingsConnection', expected); |
| } |
| |
| // JSBindingsConnection should be added. |
| { |
| const session = new inspector.Session(); |
| session.connect(); |
| const expected = [ |
| { |
| children: [ |
| { node_name: 'Node / InspectorSession', edge_name: 'session' }, |
| { node_name: 'Connection', edge_name: 'wrapped' }, |
| (edge) => edge.name === 'callback' && |
| (edge.to.type === undefined || // embedded graph |
| edge.to.type === 'closure') // snapshot |
| ] |
| } |
| ]; |
| if (process.env.NODE_V8_COVERAGE) { |
| expected.push(snapshotNode); |
| } |
| validateSnapshotNodes('Node / JSBindingsConnection', expected); |
| } |