Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | 31x 31x 31x 31x 31x 31x 31x 31x 31x 31x 31x 888x 888x 888x 888x 888x 888x 888x 888x 888x 888x 888x 888x 31x 31x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 3x 31x 31x 1242x 1242x 1242x 28566x 28566x 28566x 28566x 23598x 23598x 23598x 23598x 23598x 23598x 23598x 23598x 23598x 23598x 28566x 4968x 4968x 4968x 28566x 1242x 31x 31x 31x 31x 31x 31x | 'use strict'; const { ArrayPrototypeConcat, FunctionPrototypeBind, ObjectDefineProperty, ObjectKeys, ObjectPrototypeHasOwnProperty, } = primordials; let session; function sendInspectorCommand(cb, onError) { const { hasInspector } = internalBinding('config'); if (!hasInspector) return onError(); const inspector = require('inspector'); if (session === undefined) session = new inspector.Session(); session.connect(); try { return cb(session); } finally { session.disconnect(); } } // Create a special require function for the inspector command line API function installConsoleExtensions(commandLineApi) { if (commandLineApi.require) { return; } const { tryGetCwd } = require('internal/process/execution'); const CJSModule = require('internal/modules/cjs/loader').Module; const { makeRequireFunction } = require('internal/modules/cjs/helpers'); const consoleAPIModule = new CJSModule('<inspector console>'); const cwd = tryGetCwd(); consoleAPIModule.paths = ArrayPrototypeConcat( CJSModule._nodeModulePaths(cwd), CJSModule.globalPaths ); commandLineApi.require = makeRequireFunction(consoleAPIModule); } // Wrap a console implemented by Node.js with features from the VM inspector function wrapConsole(consoleFromNode) { const { consoleCall, console: consoleFromVM } = internalBinding('inspector'); for (const key of ObjectKeys(consoleFromVM)) { // If global console has the same method as inspector console, // then wrap these two methods into one. Native wrapper will preserve // the original stack. if (ObjectPrototypeHasOwnProperty(consoleFromNode, key)) { consoleFromNode[key] = FunctionPrototypeBind( consoleCall, consoleFromNode, consoleFromVM[key], consoleFromNode[key] ); ObjectDefineProperty(consoleFromNode[key], 'name', { __proto__: null, value: key }); } else { // Add additional console APIs from the inspector consoleFromNode[key] = consoleFromVM[key]; } } } module.exports = { installConsoleExtensions, sendInspectorCommand, wrapConsole, }; |