diff --git a/lib/internal/url.js b/lib/internal/url.js index 1d5220df0b9..cff94e6b7d2 100644 --- a/lib/internal/url.js +++ b/lib/internal/url.js @@ -1314,7 +1314,9 @@ function domainToUnicode(domain) { function urlToOptions(url) { var options = { protocol: url.protocol, - hostname: url.hostname, + hostname: url.hostname.startsWith('[') ? + url.hostname.slice(1, -1) : + url.hostname, hash: url.hash, search: url.search, pathname: url.pathname, diff --git a/test/parallel/test-whatwg-url-properties.js b/test/parallel/test-whatwg-url-properties.js index d6caae511ae..230315a70ef 100644 --- a/test/parallel/test-whatwg-url-properties.js +++ b/test/parallel/test-whatwg-url-properties.js @@ -143,6 +143,9 @@ assert.strictEqual(url.searchParams, oldParams); assert.strictEqual(opts.pathname, '/aaa/zzz'); assert.strictEqual(opts.search, '?l=24'); assert.strictEqual(opts.hash, '#test'); + + const { hostname } = urlToOptions(new URL('http://[::1]:21')); + assert.strictEqual(hostname, '::1'); } // Test special origins