Skip to content

util.inspect shouldn’t format objects with the [[IsHTMLDDA]] internal slot as undefined #31889

Description

@ExE-Boss
  • Version: v13.9.0
  • Platform: Windows 10 v1903 build 18362.657 64‑bit
  • Subsystem: util

What steps will reproduce the bug?

Run node --allow-natives-syntax -p 'util.inspect(%GetUndetectable())'

What is the expected behavior?

> node --allow-natives-syntax -p 'util.inspect(%GetUndetectable())'
[Function (anonymous)]

What do you see instead?

> node --allow-natives-syntax -p 'util.inspect(%GetUndetectable())'
undefined

Additional information

This is because the type check in util.inspect doesn’t account for objects with the [[IsHTMLDDA]] internal slot:

function formatValue(ctx, value, recurseTimes, typedArray) {
// Primitive types cannot have properties.
if (typeof value !== 'object' && typeof value !== 'function') {
return formatPrimitive(ctx.stylize, value, ctx);
}
if (value === null) {
return ctx.stylize('null', 'null');
}

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    utilIssues and PRs related to the built-in util module.v8 engineIssues and PRs related to the V8 dependency.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions