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

3 files changed

Lines changed: 13 additions & 17 deletions

File tree

‎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
returnconstructHref(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
constctx=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
gethost(){
717715
if(!isURLThis(this))
718716
thrownewERR_INVALID_THIS('URL');
719-
returnthis[context].host;
717+
constport=this[context].port;
718+
constsuffix=port.length>0 ? `:${port}` : '';
719+
returnthis[context].hostname+suffix;
720720
}
721721

722722
sethost(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
voidParse(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)