Skip to content

Commit a524055

Browse files
anonrigtargos
authored andcommitted
url: improve performance by removing host
PR-URL: #46547 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Filip Skokan <panva.ip@gmail.com> Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com> Reviewed-By: Rich Trott <rtrott@gmail.com>
1 parent 9d55a5e commit a524055

File tree

3 files changed

+13
-17
lines changed

3 files changed

+13
-17
lines changed

lib/internal/url.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,6 @@ class URLContext {
143143
href = '';
144144
origin = '';
145145
protocol = '';
146-
host = '';
147146
hostname = '';
148147
pathname = '';
149148
search = '';
@@ -626,14 +625,13 @@ class URL {
626625
return constructHref(this[context], options);
627626
}
628627

629-
#onParseComplete = (href, origin, protocol, host, hostname, pathname,
628+
#onParseComplete = (href, origin, protocol, hostname, pathname,
630629
search, username, password, port, hash, hasHost,
631630
hasOpaquePath) => {
632631
const ctx = this[context];
633632
ctx.href = href;
634633
ctx.origin = origin;
635634
ctx.protocol = protocol;
636-
ctx.host = host;
637635
ctx.hostname = hostname;
638636
ctx.pathname = pathname;
639637
ctx.search = search;
@@ -716,7 +714,9 @@ class URL {
716714
get host() {
717715
if (!isURLThis(this))
718716
throw new ERR_INVALID_THIS('URL');
719-
return this[context].host;
717+
const port = this[context].port;
718+
const suffix = port.length > 0 ? `:${port}` : '';
719+
return this[context].hostname + suffix;
720720
}
721721

722722
set host(value) {

src/node_url.cc

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -52,16 +52,15 @@ void SetArgs(Environment* env, Local<Value> argv[12], const ada::result& url) {
5252
argv[0] = Utf8String(isolate, url->get_href());
5353
argv[1] = Utf8String(isolate, url->get_origin());
5454
argv[2] = Utf8String(isolate, url->get_protocol());
55-
argv[3] = Utf8String(isolate, url->get_host());
56-
argv[4] = Utf8String(isolate, url->get_hostname());
57-
argv[5] = Utf8String(isolate, url->get_pathname());
58-
argv[6] = Utf8String(isolate, url->get_search());
59-
argv[7] = Utf8String(isolate, url->get_username());
60-
argv[8] = Utf8String(isolate, url->get_password());
61-
argv[9] = Utf8String(isolate, url->get_port());
62-
argv[10] = Utf8String(isolate, url->get_hash());
63-
argv[11] = Boolean::New(isolate, url->host.has_value());
64-
argv[12] = Boolean::New(isolate, url->has_opaque_path);
55+
argv[3] = Utf8String(isolate, url->get_hostname());
56+
argv[4] = Utf8String(isolate, url->get_pathname());
57+
argv[5] = Utf8String(isolate, url->get_search());
58+
argv[6] = Utf8String(isolate, url->get_username());
59+
argv[7] = Utf8String(isolate, url->get_password());
60+
argv[8] = Utf8String(isolate, url->get_port());
61+
argv[9] = Utf8String(isolate, url->get_hash());
62+
argv[10] = Boolean::New(isolate, url->host.has_value());
63+
argv[11] = Boolean::New(isolate, url->has_opaque_path);
6564
}
6665

6766
void Parse(const FunctionCallbackInfo<Value>& args) {
@@ -108,7 +107,6 @@ void Parse(const FunctionCallbackInfo<Value>& args) {
108107
undef,
109108
undef,
110109
undef,
111-
undef,
112110
};
113111
SetArgs(env, argv, out);
114112
USE(success_callback_->Call(
@@ -259,7 +257,6 @@ void UpdateUrl(const FunctionCallbackInfo<Value>& args) {
259257
undef,
260258
undef,
261259
undef,
262-
undef,
263260
};
264261
SetArgs(env, argv, out);
265262
USE(success_callback_->Call(

test/parallel/test-whatwg-url-custom-inspect.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ assert.strictEqual(
4949
href: 'https://username:password@host.name:8080/path/name/?que=ry#hash',
5050
origin: 'https://host.name:8080',
5151
protocol: 'https:',
52-
host: 'host.name:8080',
5352
hostname: 'host.name',
5453
pathname: '/path/name/',
5554
search: '?que=ry',

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy