Skip to content

Commit

Permalink
debugger: refactor to use internal modules
Browse files Browse the repository at this point in the history
This avoids loading the entirety of `node:util` and `node:url` and their
dependencies while only a subset is actually used by this module.
  • Loading branch information
aduh95 committed May 5, 2021
1 parent 18e4f40 commit 5e64412
Showing 1 changed file with 17 additions and 16 deletions.
33 changes: 17 additions & 16 deletions lib/internal/inspector/inspect_repl.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,11 +27,12 @@
const FS = require('fs');
const Path = require('path');
const Repl = require('repl');
const util = require('util');
const vm = require('vm');
const fileURLToPath = require('url').fileURLToPath;
const { fileURLToPath } = require('internal/url');

const debuglog = util.debuglog('inspect');
const { customInspectSymbol } = require('internal/util');
const { inspect: utilInspect } = require('internal/util/inspect');
const debuglog = require('internal/util/debuglog').debuglog('inspect');

const SHORTCUTS = {
cont: 'c',
Expand Down Expand Up @@ -169,12 +170,12 @@ class RemoteObject {
}
}

[util.inspect.custom](depth, opts) {
[customInspectSymbol](depth, opts) {
function formatProperty(prop) {
switch (prop.type) {
case 'string':
case 'undefined':
return util.inspect(prop.value, opts);
return utilInspect(prop.value, opts);

case 'number':
case 'boolean':
Expand All @@ -183,7 +184,7 @@ class RemoteObject {
case 'object':
case 'symbol':
if (prop.subtype === 'date') {
return util.inspect(new Date(prop.value), opts);
return utilInspect(new Date(prop.value), opts);
}
if (prop.subtype === 'array') {
return opts.stylize(prop.value, 'special');
Expand All @@ -199,7 +200,7 @@ class RemoteObject {
case 'number':
case 'string':
case 'undefined':
return util.inspect(this.value, opts);
return utilInspect(this.value, opts);

case 'symbol':
return opts.stylize(this.description, 'special');
Expand All @@ -213,10 +214,10 @@ class RemoteObject {
case 'object':
switch (this.subtype) {
case 'date':
return util.inspect(new Date(this.description), opts);
return utilInspect(new Date(this.description), opts);

case 'null':
return util.inspect(null, opts);
return utilInspect(null, opts);

case 'regexp':
return opts.stylize(this.description, 'regexp');
Expand Down Expand Up @@ -264,11 +265,11 @@ class ScopeSnapshot {
this.completionGroup = properties.map((prop) => prop.name);
}

[util.inspect.custom](depth, opts) {
[customInspectSymbol](depth, opts) {
const type = `${this.type[0].toUpperCase()}${this.type.slice(1)}`;
const name = this.name ? `<${this.name}>` : '';
const prefix = `${type}${name} `;
return util.inspect(this.properties, opts)
return utilInspect(this.properties, opts)
.replace(/^Map /, prefix);
}
}
Expand Down Expand Up @@ -317,7 +318,7 @@ function createRepl(inspector) {

const INSPECT_OPTIONS = { colors: inspector.stdout.isTTY };
function inspect(value) {
return util.inspect(value, INSPECT_OPTIONS);
return utilInspect(value, INSPECT_OPTIONS);
}

function print(value, addNewline = true) {
Expand Down Expand Up @@ -357,7 +358,7 @@ function createRepl(inspector) {
function listScripts(displayNatives = false) {
print(formatScripts(displayNatives));
}
listScripts[util.inspect.custom] = function listWithoutInternal() {
listScripts[customInspectSymbol] = function listWithoutInternal() {
return formatScripts();
};

Expand All @@ -373,7 +374,7 @@ function createRepl(inspector) {
return p;
}

[util.inspect.custom](depth, { stylize }) {
[customInspectSymbol](depth, { stylize }) {
const { startTime, endTime } = this.data;
return stylize(`[Profile ${endTime - startTime}μs]`, 'special');
}
Expand All @@ -393,7 +394,7 @@ function createRepl(inspector) {
this.delta = delta;
}

[util.inspect.custom](depth, options) {
[customInspectSymbol](depth, options) {
const { scriptId, lineNumber, columnNumber, delta, scriptSource } = this;
const start = Math.max(1, lineNumber - delta + 1);
const end = lineNumber + delta + 1;
Expand Down Expand Up @@ -459,7 +460,7 @@ function createRepl(inspector) {
}

class Backtrace extends Array {
[util.inspect.custom]() {
[customInspectSymbol]() {
return this.map((callFrame, idx) => {
const {
location: { scriptId, lineNumber, columnNumber },
Expand Down

0 comments on commit 5e64412

Please sign in to comment.