GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — url: fix definitions of `URL`/`SearchParams` methods and accessors by ExE-Boss · Pull Request #36799 · nodejs/node

Conversation

@ExE-Boss

@ExE-Boss ExE-Boss commented Jan 5, 2021 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

This ensures that:

Object.getOwnPropertyDescriptor(URL.prototype, 'href').get.name === "get name";

and that:

Object.prototype.hasOwnProperty.call(URL.prototype.toString, "prototype") === false;

The changes to URLSearchParams were done to fix the [[HomeObject]] internal slot so that it points to the URLSearchParams.prototype object, rather than the object that’s passed to defineIDLClass.


Best reviewed with the “Hide whitespace changes” flag enabled: #36799?w=1

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

RaisinTen reacted with thumbs up emoji
All reactions
  • 👍 1 reaction
@aduh95

aduh95 commented Jan 5, 2021

Copy link
Copy Markdown
Contributor

Would you kindly split this into several commits to help with code review please? GitHub UI isn't really helping to follow the moving parts here 😅

ExE-Boss reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

Flarna
Flarna reviewed Jan 5, 2021
View reviewed changes
Comment thread lib/internal/url.js Resolved

Uh oh!

There was an error while loading. Please reload this page.

Flarna
Flarna reviewed Jan 5, 2021
View reviewed changes
Comment thread lib/internal/url.js Resolved

Uh oh!

There was an error while loading. Please reload this page.

@ExE-Boss
ExE-Boss force-pushed the lib/url/fix-method-accessor-definitions branch 2 times, most recently from 076b097 to 335ae15 Compare January 6, 2021 11:26
@PoojaDurgad PoojaDurgad added the request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. label Jan 13, 2021
@nodejs-github-bot

nodejs-github-bot commented Jan 13, 2021

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/35501/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@nodejs-github-bot

nodejs-github-bot commented Jan 13, 2021

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/35505/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@nodejs-github-bot

nodejs-github-bot commented Jan 13, 2021

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/35511/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@nodejs-github-bot

nodejs-github-bot commented Jan 13, 2021

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/35516/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@aduh95 aduh95 removed the request-ci Add this label to start a Jenkins CI on a PR. Only starts once the PR has an approving review. label Jan 13, 2021
@aduh95

aduh95 commented Jan 18, 2021

Copy link
Copy Markdown
Contributor

@ExE-Boss This needs a rebase. If you have the time to split it into several commits (E.G.: one for URLSearchParams and another one for URL), that'd be nice.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ExE-Boss

ExE-Boss commented Jan 19, 2021 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor Author

@aduh95 I have split this into a move (0a49b9e) and edit (609a6eb?w=1) commit.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ExE-Boss
ExE-Boss force-pushed the lib/url/fix-method-accessor-definitions branch from 335ae15 to 23386ce Compare January 19, 2021 02:28
@aduh95

aduh95 commented Jan 19, 2021

Copy link
Copy Markdown
Contributor

Nit: upstreaming the tests to the wpt repo, so other implementers can use them, would be ideal.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ExE-Boss

ExE-Boss commented Jan 19, 2021 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor Author

@aduh95 The idlharness tests already test that: https://github.com/web-platform-tests/wpt/blob/90d8d30d6ccc96cec77aa66619e085ca4e6f11df/resources/idlharness.js#L2533-L2540 https://github.com/web-platform-tests/wpt/blob/90d8d30d6ccc96cec77aa66619e085ca4e6f11df/resources/idlharness.js#L3140-L3147 https://github.com/web-platform-tests/wpt/blob/90d8d30d6ccc96cec77aa66619e085ca4e6f11df/resources/idlharness.js#L3186-L3193

aduh95 reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ExE-Boss
ExE-Boss requested a review from Flarna January 24, 2021 07:04
@Flarna Flarna added whatwg-url Issues and PRs related to the WHATWG URL implementation. review wanted PRs that need review. labels Jan 25, 2021
@aduh95

aduh95 commented Feb 8, 2021 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

Benchmark CI: https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/940/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@aduh95

aduh95 commented Feb 9, 2021

Copy link
Copy Markdown
Contributor

@ExE-Boss this needs a rebase.

ExE-Boss reacted with thumbs up emoji
All reactions
  • 👍 1 reaction

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@ExE-Boss
ExE-Boss force-pushed the lib/url/fix-method-accessor-definitions branch from 23386ce to 609a6eb Compare February 9, 2021 03:19
@nodejs-github-bot

nodejs-github-bot commented Feb 9, 2021

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/36030/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@aduh95

aduh95 commented Feb 9, 2021

Copy link
Copy Markdown
Contributor

There are some major perf improvements and also a few regressions for the legacy API for some reason:

                                                                                                         confidence improvement accuracy (*)    (**)   (***)
url/legacy-vs-whatwg-url-get-prop.jse=1 method='legacy' type='dot'                                              ***     27.55 %       ±8.58% ±11.43% ±14.89%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='legacy' type='file'                                               *      8.62 %       ±8.49% ±11.29% ±14.70%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='legacy' type='idn'                                              ***     15.87 %       ±8.52% ±11.34% ±14.77%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='legacy' type='percent'                                           **     11.88 %       ±6.88%  ±9.15% ±11.92%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='legacy' type='short'                                            ***     17.15 %       ±8.27% ±11.00% ±14.32%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='short' withBase='false'                                *      7.52 %       ±7.07%  ±9.42% ±12.29%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='legacy' searchParam='encodefake'                  *      2.29 %       ±2.23%  ±2.98%  ±3.91%
url/legacy-vs-whatwg-url-serialize.jse=1 method='legacy' type='auth'                                            ***    -14.59 %       ±6.53%  ±8.70% ±11.35%
url/whatwg-url-idna.jsn=5000000 to='ascii' domain='some'                                                          *      4.16 %       ±3.78%  ±5.06%  ±6.64%
url/whatwg-url-properties.jsprop='password' e=1 type='wpt' withBase='false'                                       *     -7.68 %       ±6.31%  ±8.39% ±10.92%
url/whatwg-url-properties.jsprop='password' e=1 type='wpt' withBase='true'                                        *      6.17 %       ±5.91%  ±7.90% ±10.34%

WHATWG results look OK, I'm going to spawn another benchmark CI to see if the perf change on legacy API were just a flakiness.

Full benchmark results
                                                                                                         confidence improvement accuracy (*)    (**)   (***)
url/legacy-vs-whatwg-url-get-prop.jse=1 method='legacy' type='auth'                                                     -1.30 %       ±6.87%  ±9.14% ±11.91%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='legacy' type='dot'                                              ***     27.55 %       ±8.58% ±11.43% ±14.89%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='legacy' type='file'                                               *      8.62 %       ±8.49% ±11.29% ±14.70%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='legacy' type='idn'                                              ***     15.87 %       ±8.52% ±11.34% ±14.77%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='legacy' type='javascript'                                               -0.35 %       ±6.76%  ±9.00% ±11.72%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='legacy' type='long'                                                      1.40 %      ±10.27% ±13.67% ±17.79%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='legacy' type='percent'                                           **     11.88 %       ±6.88%  ±9.15% ±11.92%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='legacy' type='short'                                            ***     17.15 %       ±8.27% ±11.00% ±14.32%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='legacy' type='wpt'                                                       1.45 %       ±9.59% ±12.76% ±16.63%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='legacy' type='ws'                                                       -7.72 %       ±8.30% ±11.05% ±14.38%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='whatwg' type='auth'                                                      1.69 %       ±6.99%  ±9.31% ±12.13%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='whatwg' type='dot'                                                      -3.91 %       ±6.41%  ±8.53% ±11.10%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='whatwg' type='file'                                                     -4.77 %       ±8.79% ±11.71% ±15.28%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='whatwg' type='idn'                                                       0.01 %       ±6.54%  ±8.71% ±11.34%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='whatwg' type='javascript'                                                1.61 %       ±7.89% ±10.49% ±13.66%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='whatwg' type='long'                                                      4.67 %       ±9.23% ±12.31% ±16.06%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='whatwg' type='percent'                                                   1.69 %       ±7.07%  ±9.41% ±12.24%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='whatwg' type='short'                                                    -7.02 %      ±11.15% ±14.90% ±19.53%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='whatwg' type='wpt'                                                      -0.32 %       ±8.12% ±10.81% ±14.08%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='whatwg' type='ws'                                                       -7.57 %      ±11.21% ±15.03% ±19.80%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='auth' withBase='false'                                        3.17 %       ±4.01%  ±5.33%  ±6.94%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='auth' withBase='true'                                         2.58 %       ±5.84%  ±7.77% ±10.12%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='dot' withBase='false'                                         3.32 %       ±7.14%  ±9.52% ±12.43%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='dot' withBase='true'                                          0.60 %       ±4.53%  ±6.02%  ±7.84%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='file' withBase='false'                                        5.79 %       ±7.68% ±10.27% ±13.47%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='file' withBase='true'                                        -0.54 %       ±5.77%  ±7.68% ±10.00%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='idn' withBase='false'                                         1.05 %       ±6.13%  ±8.16% ±10.64%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='idn' withBase='true'                                          1.89 %       ±4.51%  ±6.01%  ±7.83%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='javascript' withBase='false'                                 -0.46 %       ±6.48%  ±8.62% ±11.23%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='javascript' withBase='true'                                  -2.37 %       ±7.43%  ±9.89% ±12.87%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='long' withBase='false'                                        3.74 %       ±3.84%  ±5.12%  ±6.69%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='long' withBase='true'                                         4.61 %       ±4.97%  ±6.64%  ±8.72%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='percent' withBase='false'                                     0.21 %       ±6.58%  ±8.79% ±11.52%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='percent' withBase='true'                                      2.13 %       ±5.79%  ±7.72% ±10.08%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='short' withBase='false'                                       0.63 %       ±5.62%  ±7.49%  ±9.75%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='short' withBase='true'                                        0.16 %       ±5.60%  ±7.47%  ±9.75%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='wpt' withBase='false'                                        -0.17 %       ±5.76%  ±7.66%  ±9.97%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='wpt' withBase='true'                                          2.14 %       ±4.99%  ±6.64%  ±8.66%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='ws' withBase='false'                                          0.86 %       ±6.11%  ±8.13% ±10.58%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='ws' withBase='true'                                           1.38 %       ±5.18%  ±6.91%  ±9.04%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='auth' withBase='false'                                        5.14 %       ±6.76%  ±9.00% ±11.71%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='auth' withBase='true'                                         0.09 %       ±6.30%  ±8.38% ±10.91%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='dot' withBase='false'                                         0.19 %       ±8.41% ±11.19% ±14.58%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='dot' withBase='true'                                          3.01 %       ±6.55%  ±8.73% ±11.39%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='file' withBase='false'                                        5.20 %       ±7.50% ±10.02% ±13.14%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='file' withBase='true'                                         1.69 %       ±5.39%  ±7.17%  ±9.33%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='idn' withBase='false'                                         5.78 %       ±6.41%  ±8.54% ±11.16%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='idn' withBase='true'                                         -0.76 %       ±5.94%  ±7.91% ±10.29%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='javascript' withBase='false'                                  3.47 %       ±6.85%  ±9.12% ±11.89%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='javascript' withBase='true'                                   0.26 %       ±4.78%  ±6.35%  ±8.27%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='long' withBase='false'                                        0.78 %       ±4.62%  ±6.15%  ±8.00%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='long' withBase='true'                                         3.12 %       ±3.54%  ±4.71%  ±6.13%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='percent' withBase='false'                                     0.67 %       ±7.91% ±10.56% ±13.81%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='percent' withBase='true'                                      4.05 %       ±6.03%  ±8.03% ±10.46%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='short' withBase='false'                                *      7.52 %       ±7.07%  ±9.42% ±12.29%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='short' withBase='true'                                        3.17 %       ±4.91%  ±6.54%  ±8.53%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='wpt' withBase='false'                                         5.23 %       ±5.92%  ±7.92% ±10.39%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='wpt' withBase='true'                                          4.80 %       ±5.93%  ±7.92% ±10.36%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='ws' withBase='false'                                          4.17 %       ±6.60%  ±8.78% ±11.42%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='ws' withBase='true'                                          -0.00 %       ±6.05%  ±8.06% ±10.51%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='legacy' searchParam='altspaces'                         -1.54 %       ±2.82%  ±3.77%  ±4.95%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='legacy' searchParam='encodefake'                  *      2.29 %       ±2.23%  ±2.98%  ±3.91%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='legacy' searchParam='encodelast'                         0.91 %       ±5.06%  ±6.74%  ±8.77%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='legacy' searchParam='encodemany'                        -0.82 %       ±1.75%  ±2.33%  ±3.04%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='legacy' searchParam='manyblankpairs'                     2.37 %       ±5.74%  ±7.67% ±10.03%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='legacy' searchParam='manypairs'                          0.55 %       ±1.52%  ±2.03%  ±2.67%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='legacy' searchParam='multicharsep'                      -3.88 %       ±4.12%  ±5.54%  ±7.33%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='legacy' searchParam='multivalue'                        -2.02 %       ±2.99%  ±3.98%  ±5.18%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='legacy' searchParam='multivaluemany'                     0.46 %       ±1.26%  ±1.68%  ±2.18%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='legacy' searchParam='noencode'                          -1.97 %       ±5.15%  ±6.85%  ±8.93%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='whatwg' searchParam='altspaces'                          1.42 %       ±3.23%  ±4.30%  ±5.60%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='whatwg' searchParam='encodefake'                         1.35 %       ±2.96%  ±3.98%  ±5.27%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='whatwg' searchParam='encodelast'                         2.45 %       ±4.45%  ±5.95%  ±7.79%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='whatwg' searchParam='encodemany'                         3.27 %       ±4.51%  ±6.00%  ±7.81%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='whatwg' searchParam='manyblankpairs'                     0.45 %       ±2.47%  ±3.29%  ±4.29%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='whatwg' searchParam='manypairs'                         -0.25 %       ±3.69%  ±4.92%  ±6.41%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='whatwg' searchParam='multicharsep'                       0.13 %       ±0.82%  ±1.09%  ±1.43%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='whatwg' searchParam='multivalue'                         1.01 %       ±3.78%  ±5.08%  ±6.73%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='whatwg' searchParam='multivaluemany'                    -0.67 %       ±3.13%  ±4.17%  ±5.43%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='whatwg' searchParam='noencode'                          -3.67 %       ±7.92% ±10.56% ±13.79%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='legacy' searchParam='altspaces'                      0.12 %       ±1.71%  ±2.28%  ±2.96%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='legacy' searchParam='encodefake'                     0.40 %       ±1.13%  ±1.50%  ±1.95%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='legacy' searchParam='encodelast'                     1.15 %       ±3.18%  ±4.23%  ±5.51%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='legacy' searchParam='encodemany'                     0.49 %       ±2.24%  ±2.98%  ±3.89%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='legacy' searchParam='manyblankpairs'                -4.49 %       ±8.03% ±10.78% ±14.20%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='legacy' searchParam='manypairs'                     -0.87 %       ±2.20%  ±2.93%  ±3.82%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='legacy' searchParam='multicharsep'                  -0.03 %       ±1.77%  ±2.36%  ±3.08%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='legacy' searchParam='multivalue'                     0.93 %       ±1.53%  ±2.03%  ±2.64%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='legacy' searchParam='multivaluemany'                 1.07 %       ±2.69%  ±3.58%  ±4.67%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='legacy' searchParam='noencode'                       1.15 %       ±3.38%  ±4.51%  ±5.90%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='whatwg' searchParam='altspaces'                     -0.24 %       ±6.58%  ±8.77% ±11.43%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='whatwg' searchParam='encodefake'                    -4.04 %       ±5.13%  ±6.90%  ±9.13%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='whatwg' searchParam='encodelast'                     2.87 %       ±5.17%  ±6.96%  ±9.22%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='whatwg' searchParam='encodemany'                    -0.98 %       ±4.09%  ±5.50%  ±7.27%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='whatwg' searchParam='manyblankpairs'                 0.83 %      ±12.64% ±16.81% ±21.88%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='whatwg' searchParam='manypairs'                     -0.94 %       ±2.33%  ±3.13%  ±4.13%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='whatwg' searchParam='multicharsep'                  -0.52 %       ±4.36%  ±5.87%  ±7.79%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='whatwg' searchParam='multivalue'                     1.52 %       ±3.84%  ±5.17%  ±6.85%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='whatwg' searchParam='multivaluemany'                -2.06 %       ±3.59%  ±4.83%  ±6.39%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='whatwg' searchParam='noencode'                       0.08 %       ±1.09%  ±1.45%  ±1.89%
url/legacy-vs-whatwg-url-serialize.jse=1 method='legacy' type='auth'                                            ***    -14.59 %       ±6.53%  ±8.70% ±11.35%
url/legacy-vs-whatwg-url-serialize.jse=1 method='legacy' type='dot'                                                     -7.80 %      ±10.88% ±14.58% ±19.19%
url/legacy-vs-whatwg-url-serialize.jse=1 method='legacy' type='file'                                                    -5.65 %      ±10.82% ±14.51% ±19.12%
url/legacy-vs-whatwg-url-serialize.jse=1 method='legacy' type='idn'                                                      0.98 %       ±7.23%  ±9.62% ±12.53%
url/legacy-vs-whatwg-url-serialize.jse=1 method='legacy' type='javascript'                                               0.37 %       ±5.55%  ±7.39%  ±9.64%
url/legacy-vs-whatwg-url-serialize.jse=1 method='legacy' type='long'                                                     9.43 %      ±11.68% ±15.70% ±20.75%
url/legacy-vs-whatwg-url-serialize.jse=1 method='legacy' type='percent'                                                 -7.60 %       ±9.36% ±12.54% ±16.50%
url/legacy-vs-whatwg-url-serialize.jse=1 method='legacy' type='short'                                                   -5.36 %       ±5.85%  ±7.79% ±10.15%
url/legacy-vs-whatwg-url-serialize.jse=1 method='legacy' type='wpt'                                                     -8.83 %      ±10.36% ±13.91% ±18.36%
url/legacy-vs-whatwg-url-serialize.jse=1 method='legacy' type='ws'                                                      -6.36 %      ±11.12% ±14.91% ±19.63%
url/legacy-vs-whatwg-url-serialize.jse=1 method='whatwg' type='auth'                                                    -2.67 %      ±10.91% ±14.63% ±19.27%
url/legacy-vs-whatwg-url-serialize.jse=1 method='whatwg' type='dot'                                                     -6.72 %      ±10.37% ±13.92% ±18.35%
url/legacy-vs-whatwg-url-serialize.jse=1 method='whatwg' type='file'                                                    -1.98 %      ±12.09% ±16.20% ±21.31%
url/legacy-vs-whatwg-url-serialize.jse=1 method='whatwg' type='idn'                                                     -0.58 %       ±8.17% ±10.87% ±14.14%
url/legacy-vs-whatwg-url-serialize.jse=1 method='whatwg' type='javascript'                                              -2.09 %       ±6.09%  ±8.14% ±10.66%
url/legacy-vs-whatwg-url-serialize.jse=1 method='whatwg' type='long'                                                    11.55 %      ±11.91% ±16.00% ±21.16%
url/legacy-vs-whatwg-url-serialize.jse=1 method='whatwg' type='percent'                                                 -8.76 %       ±9.96% ±13.38% ±17.68%
url/legacy-vs-whatwg-url-serialize.jse=1 method='whatwg' type='short'                                                    1.43 %       ±7.88% ±10.49% ±13.66%
url/legacy-vs-whatwg-url-serialize.jse=1 method='whatwg' type='wpt'                                                      0.03 %       ±6.01%  ±8.01% ±10.45%
url/legacy-vs-whatwg-url-serialize.jse=1 method='whatwg' type='ws'                                                      -3.90 %      ±10.74% ±14.41% ±19.02%
url/whatwg-url-idna.jsn=5000000 to='ascii' domain='all'                                                                 -0.17 %       ±2.38%  ±3.16%  ±4.12%
url/whatwg-url-idna.jsn=5000000 to='ascii' domain='empty'                                                               -2.58 %       ±6.00%  ±8.00% ±10.44%
url/whatwg-url-idna.jsn=5000000 to='ascii' domain='none'                                                                -0.82 %       ±1.53%  ±2.03%  ±2.64%
url/whatwg-url-idna.jsn=5000000 to='ascii' domain='nonstring'                                                            1.42 %       ±2.99%  ±4.01%  ±5.28%
url/whatwg-url-idna.jsn=5000000 to='ascii' domain='some'                                                          *      4.16 %       ±3.78%  ±5.06%  ±6.64%
url/whatwg-url-idna.jsn=5000000 to='unicode' domain='all'                                                                0.70 %       ±1.51%  ±2.00%  ±2.61%
url/whatwg-url-idna.jsn=5000000 to='unicode' domain='empty'                                                             -0.96 %       ±4.93%  ±6.62%  ±8.74%
url/whatwg-url-idna.jsn=5000000 to='unicode' domain='none'                                                               0.66 %       ±1.99%  ±2.65%  ±3.44%
url/whatwg-url-idna.jsn=5000000 to='unicode' domain='nonstring'                                                         -0.71 %       ±5.37%  ±7.14%  ±9.30%
url/whatwg-url-idna.jsn=5000000 to='unicode' domain='some'                                                               2.18 %       ±2.39%  ±3.20%  ±4.20%
url/whatwg-url-properties.jsprop='hash' e=1 type='wpt' withBase='false'                                                 -2.55 %       ±5.79%  ±7.71% ±10.03%
url/whatwg-url-properties.jsprop='hash' e=1 type='wpt' withBase='true'                                                  -1.05 %       ±6.93%  ±9.22% ±12.01%
url/whatwg-url-properties.jsprop='host' e=1 type='wpt' withBase='false'                                                  4.19 %       ±6.59%  ±8.77% ±11.42%
url/whatwg-url-properties.jsprop='host' e=1 type='wpt' withBase='true'                                                  -4.30 %       ±6.44%  ±8.61% ±11.29%
url/whatwg-url-properties.jsprop='hostname' e=1 type='wpt' withBase='false'                                              0.99 %       ±7.14%  ±9.51% ±12.40%
url/whatwg-url-properties.jsprop='hostname' e=1 type='wpt' withBase='true'                                               1.15 %       ±5.00%  ±6.65%  ±8.65%
url/whatwg-url-properties.jsprop='href' e=1 type='wpt' withBase='false'                                                  0.63 %      ±10.54% ±14.04% ±18.31%
url/whatwg-url-properties.jsprop='href' e=1 type='wpt' withBase='true'                                                  -2.19 %       ±6.28%  ±8.36% ±10.88%
url/whatwg-url-properties.jsprop='origin' e=1 type='wpt' withBase='false'                                                2.98 %       ±5.58%  ±7.45%  ±9.73%
url/whatwg-url-properties.jsprop='origin' e=1 type='wpt' withBase='true'                                                 6.35 %       ±6.61%  ±8.82% ±11.52%
url/whatwg-url-properties.jsprop='password' e=1 type='wpt' withBase='false'                                       *     -7.68 %       ±6.31%  ±8.39% ±10.92%
url/whatwg-url-properties.jsprop='password' e=1 type='wpt' withBase='true'                                        *      6.17 %       ±5.91%  ±7.90% ±10.34%
url/whatwg-url-properties.jsprop='pathname' e=1 type='wpt' withBase='false'                                              4.08 %       ±6.55%  ±8.71% ±11.35%
url/whatwg-url-properties.jsprop='pathname' e=1 type='wpt' withBase='true'                                               4.44 %       ±6.12%  ±8.15% ±10.63%
url/whatwg-url-properties.jsprop='port' e=1 type='wpt' withBase='false'                                                 -1.39 %       ±5.35%  ±7.12%  ±9.28%
url/whatwg-url-properties.jsprop='port' e=1 type='wpt' withBase='true'                                                  -4.74 %       ±7.03%  ±9.40% ±12.31%
url/whatwg-url-properties.jsprop='protocol' e=1 type='wpt' withBase='false'                                             -0.53 %       ±6.38%  ±8.49% ±11.06%
url/whatwg-url-properties.jsprop='protocol' e=1 type='wpt' withBase='true'                                              -1.52 %       ±3.99%  ±5.30%  ±6.91%
url/whatwg-url-properties.jsprop='search' e=1 type='wpt' withBase='false'                                                4.47 %       ±7.74% ±10.35% ±13.57%
url/whatwg-url-properties.jsprop='search' e=1 type='wpt' withBase='true'                                                -1.51 %       ±6.99%  ±9.31% ±12.12%
url/whatwg-url-properties.jsprop='searchParams' e=1 type='wpt' withBase='false'                                         -3.27 %       ±6.62%  ±8.81% ±11.46%
url/whatwg-url-properties.jsprop='searchParams' e=1 type='wpt' withBase='true'                                          -2.95 %       ±4.96%  ±6.61%  ±8.61%
url/whatwg-url-properties.jsprop='username' e=1 type='wpt' withBase='false'                                             -0.30 %       ±5.53%  ±7.36%  ±9.58%
url/whatwg-url-properties.jsprop='username' e=1 type='wpt' withBase='true'                                              -0.44 %       ±7.24%  ±9.64% ±12.55%

Be aware that when doing many comparisons the risk of a false-positive
result increases. In this case, there are 154 comparisons, you can thus
expect the following amount of false-positive results:
  7.70 false positives, when considering a   5% risk acceptance (*, **, ***),
  1.54 false positives, when considering a   1% risk acceptance (**, ***),
  0.15 false positives, when considering a 0.1% risk acceptance (***)
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@aduh95

aduh95 commented Feb 9, 2021 •
edited
Loading

Uh oh!

There was an error while loading. Please reload this page.

Copy link
Copy Markdown
Contributor

Benchmark CI: https://ci.nodejs.org/view/Node.js%20benchmark/job/benchmark-node-micro-benchmarks/941/

EDIT: it got similar results 🤷‍♂️

                                                                                                         confidence improvement accuracy (*)    (**)   (***)
url/legacy-vs-whatwg-url-get-prop.jse=1 method='legacy' type='dot'                                               **     10.04 %       ±5.83%  ±7.77% ±10.11%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='legacy' type='file'                                             ***     16.91 %       ±8.60% ±11.44% ±14.88%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='legacy' type='idn'                                              ***     12.16 %       ±4.88%  ±6.50%  ±8.46%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='legacy' type='percent'                                          ***     13.43 %       ±7.62% ±10.13% ±13.19%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='whatwg' type='short'                                              *     -6.24 %       ±6.04%  ±8.06% ±10.56%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='javascript' withBase='false'                           *      6.25 %       ±6.24%  ±8.32% ±10.85%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='auth' withBase='false'                                **     10.62 %       ±7.32%  ±9.78% ±12.81%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='percent' withBase='false'                             **      8.04 %       ±5.92%  ±7.91% ±10.37%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='percent' withBase='true'                               *      6.58 %       ±5.11%  ±6.81%  ±8.88%
url/legacy-vs-whatwg-url-serialize.jse=1 method='legacy' type='auth'                                             **    -11.00 %       ±7.64% ±10.16% ±13.23%
url/url-resolve.jsn=100000 path='foo/bar' href='long'                                                             *     -4.48 %       ±4.45%  ±5.93%  ±7.74%
url/url-resolve.jsn=100000 path='up' href='file'                                                                  *     -5.01 %       ±4.89%  ±6.52%  ±8.49%
url/url-resolve.jsn=100000 path='up' href='idn'                                                                   *     -4.81 %       ±4.12%  ±5.51%  ±7.21%
url/url-resolve.jsn=100000 path='up' href='percent'                                                              **      7.46 %       ±4.85%  ±6.48%  ±8.51%
url/url-searchparams-sort.jsn=1000000 type='sorted'                                                               *      1.00 %       ±0.91%  ±1.21%  ±1.58%
url/usvstring.jsn=50000000 input='valid'                                                                          *     -2.23 %       ±1.81%  ±2.41%  ±3.17%
url/whatwg-url-properties.jsprop='host' e=1 type='wpt' withBase='false'                                           *     -7.14 %       ±6.03%  ±8.04% ±10.49%
url/whatwg-url-properties.jsprop='password' e=1 type='wpt' withBase='true'                                        *     -5.80 %       ±4.63%  ±6.18%  ±8.08%
url/whatwg-url-properties.jsprop='pathname' e=1 type='wpt' withBase='false'                                       *     -7.58 %       ±6.62%  ±8.84% ±11.58%
url/whatwg-url-properties.jsprop='username' e=1 type='wpt' withBase='true'                                        *     -6.39 %       ±5.68%  ±7.56%  ±9.86%
Details
                                                                                                         confidence improvement accuracy (*)    (**)   (***)
url/legacy-vs-whatwg-url-get-prop.jse=1 method='legacy' type='auth'                                                     -3.82 %       ±7.80% ±10.38% ±13.52%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='legacy' type='dot'                                               **     10.04 %       ±5.83%  ±7.77% ±10.11%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='legacy' type='file'                                             ***     16.91 %       ±8.60% ±11.44% ±14.88%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='legacy' type='idn'                                              ***     12.16 %       ±4.88%  ±6.50%  ±8.46%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='legacy' type='javascript'                                               -3.99 %       ±5.87%  ±7.81% ±10.18%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='legacy' type='long'                                                      0.39 %       ±8.17% ±10.87% ±14.15%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='legacy' type='percent'                                          ***     13.43 %       ±7.62% ±10.13% ±13.19%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='legacy' type='short'                                                     5.57 %       ±6.63%  ±8.82% ±11.49%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='legacy' type='wpt'                                                      -2.61 %       ±6.77%  ±9.02% ±11.76%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='legacy' type='ws'                                                        1.57 %       ±7.95% ±10.58% ±13.78%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='whatwg' type='auth'                                                     -1.31 %       ±5.19%  ±6.90%  ±8.98%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='whatwg' type='dot'                                                      -2.50 %       ±6.32%  ±8.42% ±10.97%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='whatwg' type='file'                                                      3.60 %       ±6.13%  ±8.17% ±10.67%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='whatwg' type='idn'                                                      -1.23 %       ±4.74%  ±6.30%  ±8.21%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='whatwg' type='javascript'                                                0.77 %       ±6.13%  ±8.19% ±10.72%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='whatwg' type='long'                                                     -1.55 %       ±5.84%  ±7.77% ±10.11%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='whatwg' type='percent'                                                   2.70 %       ±5.91%  ±7.87% ±10.27%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='whatwg' type='short'                                              *     -6.24 %       ±6.04%  ±8.06% ±10.56%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='whatwg' type='wpt'                                                      -1.21 %       ±6.94%  ±9.24% ±12.04%
url/legacy-vs-whatwg-url-get-prop.jse=1 method='whatwg' type='ws'                                                       -2.01 %       ±6.38%  ±8.50% ±11.06%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='auth' withBase='false'                                        3.27 %       ±5.19%  ±6.93%  ±9.06%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='auth' withBase='true'                                        -2.35 %       ±5.22%  ±6.94%  ±9.04%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='dot' withBase='false'                                         0.84 %       ±5.70%  ±7.60%  ±9.93%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='dot' withBase='true'                                         -0.23 %       ±7.49%  ±9.96% ±12.97%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='file' withBase='false'                                        1.68 %       ±7.71% ±10.27% ±13.37%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='file' withBase='true'                                         0.58 %       ±6.60%  ±8.79% ±11.48%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='idn' withBase='false'                                         5.19 %       ±6.53%  ±8.73% ±11.43%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='idn' withBase='true'                                          0.14 %       ±6.39%  ±8.50% ±11.07%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='javascript' withBase='false'                           *      6.25 %       ±6.24%  ±8.32% ±10.85%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='javascript' withBase='true'                                   6.85 %       ±6.87%  ±9.19% ±12.06%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='long' withBase='false'                                       -0.67 %       ±2.99%  ±3.99%  ±5.22%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='long' withBase='true'                                         2.92 %       ±3.74%  ±4.99%  ±6.54%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='percent' withBase='false'                                    -1.43 %       ±6.24%  ±8.31% ±10.81%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='percent' withBase='true'                                     -0.27 %       ±5.26%  ±7.01%  ±9.14%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='short' withBase='false'                                       4.27 %       ±4.68%  ±6.23%  ±8.11%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='short' withBase='true'                                        2.16 %       ±5.68%  ±7.57%  ±9.89%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='wpt' withBase='false'                                         3.15 %       ±6.11%  ±8.14% ±10.61%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='wpt' withBase='true'                                          3.49 %       ±4.84%  ±6.45%  ±8.40%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='ws' withBase='false'                                         -1.12 %       ±4.54%  ±6.05%  ±7.89%
url/legacy-vs-whatwg-url-parse.jsmethod='legacy' e=1 type='ws' withBase='true'                                           1.14 %       ±5.65%  ±7.52%  ±9.79%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='auth' withBase='false'                                **     10.62 %       ±7.32%  ±9.78% ±12.81%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='auth' withBase='true'                                         1.03 %       ±5.21%  ±6.94%  ±9.04%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='dot' withBase='false'                                        -3.68 %       ±6.06%  ±8.06% ±10.49%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='dot' withBase='true'                                          2.21 %       ±5.69%  ±7.58%  ±9.87%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='file' withBase='false'                                        3.30 %       ±4.47%  ±5.96%  ±7.76%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='file' withBase='true'                                         0.22 %       ±5.80%  ±7.72% ±10.05%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='idn' withBase='false'                                         5.10 %       ±5.12%  ±6.82%  ±8.87%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='idn' withBase='true'                                          4.05 %       ±5.02%  ±6.69%  ±8.71%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='javascript' withBase='false'                                 -0.88 %       ±6.01%  ±8.02% ±10.48%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='javascript' withBase='true'                                   2.96 %       ±6.42%  ±8.56% ±11.18%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='long' withBase='false'                                       -2.78 %       ±6.06%  ±8.06% ±10.49%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='long' withBase='true'                                         1.82 %       ±5.64%  ±7.51%  ±9.78%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='percent' withBase='false'                             **      8.04 %       ±5.92%  ±7.91% ±10.37%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='percent' withBase='true'                               *      6.58 %       ±5.11%  ±6.81%  ±8.88%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='short' withBase='false'                                       3.81 %       ±7.22%  ±9.63% ±12.58%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='short' withBase='true'                                        1.42 %       ±3.77%  ±5.01%  ±6.53%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='wpt' withBase='false'                                        -4.21 %       ±4.35%  ±5.79%  ±7.53%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='wpt' withBase='true'                                          0.46 %       ±4.86%  ±6.47%  ±8.43%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='ws' withBase='false'                                          4.56 %       ±7.90% ±10.51% ±13.69%
url/legacy-vs-whatwg-url-parse.jsmethod='whatwg' e=1 type='ws' withBase='true'                                          -0.65 %       ±5.95%  ±7.92% ±10.31%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='legacy' searchParam='altspaces'                          3.53 %       ±3.64%  ±4.84%  ±6.31%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='legacy' searchParam='encodefake'                         2.08 %       ±3.29%  ±4.38%  ±5.70%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='legacy' searchParam='encodelast'                        -0.23 %       ±2.61%  ±3.47%  ±4.52%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='legacy' searchParam='encodemany'                        -2.58 %       ±3.01%  ±4.03%  ±5.30%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='legacy' searchParam='manyblankpairs'                    -1.58 %       ±4.97%  ±6.67%  ±8.78%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='legacy' searchParam='manypairs'                          0.71 %       ±1.74%  ±2.32%  ±3.04%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='legacy' searchParam='multicharsep'                       1.05 %       ±1.72%  ±2.29%  ±2.98%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='legacy' searchParam='multivalue'                         2.64 %       ±3.07%  ±4.12%  ±5.44%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='legacy' searchParam='multivaluemany'                     0.74 %       ±1.97%  ±2.62%  ±3.41%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='legacy' searchParam='noencode'                           2.99 %       ±3.20%  ±4.28%  ±5.62%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='whatwg' searchParam='altspaces'                         -2.14 %       ±3.21%  ±4.31%  ±5.68%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='whatwg' searchParam='encodefake'                        -1.87 %       ±6.79%  ±9.05% ±11.83%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='whatwg' searchParam='encodelast'                        -3.09 %       ±4.80%  ±6.46%  ±8.53%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='whatwg' searchParam='encodemany'                         2.76 %       ±5.05%  ±6.73%  ±8.77%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='whatwg' searchParam='manyblankpairs'                     0.36 %       ±3.22%  ±4.29%  ±5.59%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='whatwg' searchParam='manypairs'                         -0.81 %       ±4.67%  ±6.22%  ±8.10%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='whatwg' searchParam='multicharsep'                      -1.08 %       ±5.20%  ±6.97%  ±9.18%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='whatwg' searchParam='multivalue'                         1.32 %       ±6.02%  ±8.01% ±10.44%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='whatwg' searchParam='multivaluemany'                     2.82 %       ±3.80%  ±5.05%  ±6.58%
url/legacy-vs-whatwg-url-searchparams-parse.jsn=1000000 method='whatwg' searchParam='noencode'                           1.49 %       ±7.54% ±10.07% ±13.18%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='legacy' searchParam='altspaces'                      2.10 %       ±2.88%  ±3.84%  ±5.02%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='legacy' searchParam='encodefake'                    -0.40 %       ±1.48%  ±1.97%  ±2.56%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='legacy' searchParam='encodelast'                     0.13 %       ±1.69%  ±2.26%  ±2.94%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='legacy' searchParam='encodemany'                     2.60 %       ±5.97%  ±8.02% ±10.61%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='legacy' searchParam='manyblankpairs'                -0.07 %       ±3.62%  ±4.82%  ±6.27%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='legacy' searchParam='manypairs'                     -0.88 %       ±1.81%  ±2.41%  ±3.14%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='legacy' searchParam='multicharsep'                   1.87 %       ±2.26%  ±3.03%  ±3.98%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='legacy' searchParam='multivalue'                    -0.62 %       ±1.32%  ±1.76%  ±2.29%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='legacy' searchParam='multivaluemany'                 1.17 %       ±2.97%  ±3.98%  ±5.22%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='legacy' searchParam='noencode'                      -1.55 %       ±5.88%  ±7.90% ±10.43%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='whatwg' searchParam='altspaces'                     -1.66 %       ±3.46%  ±4.64%  ±6.12%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='whatwg' searchParam='encodefake'                     2.74 %       ±4.79%  ±6.43%  ±8.50%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='whatwg' searchParam='encodelast'                     1.77 %       ±3.44%  ±4.63%  ±6.12%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='whatwg' searchParam='encodemany'                     0.89 %       ±4.39%  ±5.85%  ±7.63%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='whatwg' searchParam='manyblankpairs'                -3.34 %       ±4.39%  ±5.85%  ±7.62%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='whatwg' searchParam='manypairs'                      1.05 %       ±1.83%  ±2.45%  ±3.23%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='whatwg' searchParam='multicharsep'                   2.40 %       ±3.49%  ±4.65%  ±6.07%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='whatwg' searchParam='multivalue'                     0.55 %       ±4.05%  ±5.39%  ±7.01%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='whatwg' searchParam='multivaluemany'                -0.80 %       ±2.27%  ±3.04%  ±4.01%
url/legacy-vs-whatwg-url-searchparams-serialize.jsn=1000000 method='whatwg' searchParam='noencode'                      -2.28 %       ±3.67%  ±4.93%  ±6.52%
url/legacy-vs-whatwg-url-serialize.jse=1 method='legacy' type='auth'                                             **    -11.00 %       ±7.64% ±10.16% ±13.23%
url/legacy-vs-whatwg-url-serialize.jse=1 method='legacy' type='dot'                                                     -1.98 %       ±6.37%  ±8.47% ±11.04%
url/legacy-vs-whatwg-url-serialize.jse=1 method='legacy' type='file'                                                    -4.07 %      ±11.78% ±15.75% ±20.67%
url/legacy-vs-whatwg-url-serialize.jse=1 method='legacy' type='idn'                                                     -2.46 %      ±10.78% ±14.42% ±18.91%
url/legacy-vs-whatwg-url-serialize.jse=1 method='legacy' type='javascript'                                               4.36 %       ±7.47%  ±9.94% ±12.94%
url/legacy-vs-whatwg-url-serialize.jse=1 method='legacy' type='long'                                                     3.57 %       ±8.37% ±11.14% ±14.50%
url/legacy-vs-whatwg-url-serialize.jse=1 method='legacy' type='percent'                                                 -0.05 %       ±7.37%  ±9.82% ±12.81%
url/legacy-vs-whatwg-url-serialize.jse=1 method='legacy' type='short'                                                   -4.11 %       ±7.61% ±10.12% ±13.19%
url/legacy-vs-whatwg-url-serialize.jse=1 method='legacy' type='wpt'                                                      3.73 %       ±8.01% ±10.66% ±13.87%
url/legacy-vs-whatwg-url-serialize.jse=1 method='legacy' type='ws'                                                       0.96 %       ±7.20%  ±9.58% ±12.47%
url/legacy-vs-whatwg-url-serialize.jse=1 method='whatwg' type='auth'                                                     1.63 %       ±6.64%  ±8.84% ±11.52%
url/legacy-vs-whatwg-url-serialize.jse=1 method='whatwg' type='dot'                                                      1.36 %       ±6.65%  ±8.86% ±11.56%
url/legacy-vs-whatwg-url-serialize.jse=1 method='whatwg' type='file'                                                     1.55 %       ±8.24% ±10.97% ±14.28%
url/legacy-vs-whatwg-url-serialize.jse=1 method='whatwg' type='idn'                                                      3.14 %       ±8.14% ±10.83% ±14.09%
url/legacy-vs-whatwg-url-serialize.jse=1 method='whatwg' type='javascript'                                               7.03 %       ±7.44%  ±9.92% ±12.94%
url/legacy-vs-whatwg-url-serialize.jse=1 method='whatwg' type='long'                                                     1.51 %       ±6.52%  ±8.68% ±11.29%
url/legacy-vs-whatwg-url-serialize.jse=1 method='whatwg' type='percent'                                                 -0.43 %       ±7.54% ±10.04% ±13.08%
url/legacy-vs-whatwg-url-serialize.jse=1 method='whatwg' type='short'                                                   -2.21 %      ±10.71% ±14.30% ±18.74%
url/legacy-vs-whatwg-url-serialize.jse=1 method='whatwg' type='wpt'                                                     -5.17 %       ±7.53% ±10.02% ±13.04%
url/legacy-vs-whatwg-url-serialize.jse=1 method='whatwg' type='ws'                                                       3.20 %       ±6.41%  ±8.55% ±11.15%
url/url-format.jsn=25000000 type='file'                                                                                  1.12 %       ±1.98%  ±2.65%  ±3.48%
url/url-format.jsn=25000000 type='slashes'                                                                               1.01 %       ±1.44%  ±1.93%  ±2.55%
url/url-parse.jsn=10000000 type='escaped'                                                                                0.67 %       ±2.48%  ±3.31%  ±4.30%
url/url-parse.jsn=10000000 type='normal'                                                                                -0.33 %       ±2.65%  ±3.53%  ±4.59%
url/url-resolve.jsn=100000 path='down' href='auth'                                                                       3.51 %       ±5.55%  ±7.42%  ±9.71%
url/url-resolve.jsn=100000 path='down' href='dot'                                                                        3.38 %       ±3.96%  ±5.27%  ±6.86%
url/url-resolve.jsn=100000 path='down' href='file'                                                                       0.42 %       ±2.42%  ±3.22%  ±4.19%
url/url-resolve.jsn=100000 path='down' href='idn'                                                                       -0.59 %       ±2.73%  ±3.63%  ±4.73%
url/url-resolve.jsn=100000 path='down' href='javascript'                                                                -0.25 %       ±3.56%  ±4.77%  ±6.29%
url/url-resolve.jsn=100000 path='down' href='long'                                                                       0.67 %       ±4.16%  ±5.54%  ±7.21%
url/url-resolve.jsn=100000 path='down' href='noscheme'                                                                   0.33 %       ±1.47%  ±1.96%  ±2.56%
url/url-resolve.jsn=100000 path='down' href='percent'                                                                    0.56 %       ±2.41%  ±3.22%  ±4.20%
url/url-resolve.jsn=100000 path='down' href='short'                                                                     -1.25 %       ±2.76%  ±3.67%  ±4.79%
url/url-resolve.jsn=100000 path='down' href='ws'                                                                        -1.25 %       ±2.61%  ±3.48%  ±4.53%
url/url-resolve.jsn=100000 path='foo/bar' href='auth'                                                                    0.55 %       ±4.50%  ±5.98%  ±7.79%
url/url-resolve.jsn=100000 path='foo/bar' href='dot'                                                                     0.82 %       ±5.14%  ±6.85%  ±8.92%
url/url-resolve.jsn=100000 path='foo/bar' href='file'                                                                    2.33 %       ±3.92%  ±5.23%  ±6.84%
url/url-resolve.jsn=100000 path='foo/bar' href='idn'                                                                     4.11 %       ±5.70%  ±7.66% ±10.12%
url/url-resolve.jsn=100000 path='foo/bar' href='javascript'                                                             -0.92 %       ±1.57%  ±2.11%  ±2.77%
url/url-resolve.jsn=100000 path='foo/bar' href='long'                                                             *     -4.48 %       ±4.45%  ±5.93%  ±7.74%
url/url-resolve.jsn=100000 path='foo/bar' href='noscheme'                                                                2.00 %       ±4.06%  ±5.42%  ±7.08%
url/url-resolve.jsn=100000 path='foo/bar' href='percent'                                                                -0.50 %       ±6.03%  ±8.03% ±10.47%
url/url-resolve.jsn=100000 path='foo/bar' href='short'                                                                  -0.89 %       ±3.82%  ±5.10%  ±6.67%
url/url-resolve.jsn=100000 path='foo/bar' href='ws'                                                                      3.12 %       ±5.68%  ±7.56%  ±9.85%
url/url-resolve.jsn=100000 path='sibling' href='auth'                                                                    2.99 %       ±6.18%  ±8.22% ±10.71%
url/url-resolve.jsn=100000 path='sibling' href='dot'                                                                     0.73 %       ±4.66%  ±6.20%  ±8.07%
url/url-resolve.jsn=100000 path='sibling' href='file'                                                                    1.73 %       ±5.63%  ±7.51%  ±9.81%
url/url-resolve.jsn=100000 path='sibling' href='idn'                                                                    -2.15 %       ±5.80%  ±7.72% ±10.05%
url/url-resolve.jsn=100000 path='sibling' href='javascript'                                                              0.52 %       ±2.13%  ±2.85%  ±3.74%
url/url-resolve.jsn=100000 path='sibling' href='long'                                                                   -0.87 %       ±2.81%  ±3.74%  ±4.89%
url/url-resolve.jsn=100000 path='sibling' href='noscheme'                                                                2.96 %       ±4.10%  ±5.49%  ±7.22%
url/url-resolve.jsn=100000 path='sibling' href='percent'                                                                 3.29 %       ±5.61%  ±7.53%  ±9.93%
url/url-resolve.jsn=100000 path='sibling' href='short'                                                                  -0.28 %       ±4.62%  ±6.15%  ±8.01%
url/url-resolve.jsn=100000 path='sibling' href='ws'                                                                      3.36 %       ±5.53%  ±7.36%  ±9.59%
url/url-resolve.jsn=100000 path='up' href='auth'                                                                         3.05 %       ±4.29%  ±5.73%  ±7.52%
url/url-resolve.jsn=100000 path='up' href='dot'                                                                          3.09 %       ±4.60%  ±6.16%  ±8.11%
url/url-resolve.jsn=100000 path='up' href='file'                                                                  *     -5.01 %       ±4.89%  ±6.52%  ±8.49%
url/url-resolve.jsn=100000 path='up' href='idn'                                                                   *     -4.81 %       ±4.12%  ±5.51%  ±7.21%
url/url-resolve.jsn=100000 path='up' href='javascript'                                                                   3.47 %       ±5.99%  ±8.03% ±10.57%
url/url-resolve.jsn=100000 path='up' href='long'                                                                         1.22 %       ±2.24%  ±2.99%  ±3.89%
url/url-resolve.jsn=100000 path='up' href='noscheme'                                                                     1.02 %       ±1.76%  ±2.34%  ±3.05%
url/url-resolve.jsn=100000 path='up' href='percent'                                                              **      7.46 %       ±4.85%  ±6.48%  ±8.51%
url/url-resolve.jsn=100000 path='up' href='short'                                                                       -0.48 %       ±5.63%  ±7.52%  ±9.84%
url/url-resolve.jsn=100000 path='up' href='ws'                                                                           1.45 %       ±4.40%  ±5.87%  ±7.67%
url/url-resolve.jsn=100000 path='withscheme' href='auth'                                                                 3.53 %       ±5.03%  ±6.76%  ±8.92%
url/url-resolve.jsn=100000 path='withscheme' href='dot'                                                                  1.25 %       ±6.38%  ±8.48% ±11.04%
url/url-resolve.jsn=100000 path='withscheme' href='file'                                                                 1.05 %       ±1.72%  ±2.29%  ±2.98%
url/url-resolve.jsn=100000 path='withscheme' href='idn'                                                                 -0.86 %       ±5.90%  ±7.92% ±10.45%
url/url-resolve.jsn=100000 path='withscheme' href='javascript'                                                           0.58 %       ±2.66%  ±3.57%  ±4.70%
url/url-resolve.jsn=100000 path='withscheme' href='long'                                                                 0.57 %       ±2.89%  ±3.86%  ±5.06%
url/url-resolve.jsn=100000 path='withscheme' href='noscheme'                                                            -1.62 %       ±3.32%  ±4.45%  ±5.86%
url/url-resolve.jsn=100000 path='withscheme' href='percent'                                                              1.46 %       ±6.53%  ±8.70% ±11.35%
url/url-resolve.jsn=100000 path='withscheme' href='short'                                                                0.66 %       ±1.92%  ±2.56%  ±3.33%
url/url-resolve.jsn=100000 path='withscheme' href='ws'                                                                  -3.03 %       ±4.76%  ±6.39%  ±8.44%
url/url-searchparams-iteration.jsn=1000000 loopMethod='forEach'                                                         -2.24 %       ±2.53%  ±3.38%  ±4.40%
url/url-searchparams-iteration.jsn=1000000 loopMethod='iterator'                                                         0.00 %       ±2.79%  ±3.73%  ±4.87%
url/url-searchparams-read.jsn=20000000 param='nonexistent' accessMethod='get'                                            3.71 %       ±5.08%  ±6.77%  ±8.83%
url/url-searchparams-read.jsn=20000000 param='nonexistent' accessMethod='getAll'                                         0.99 %       ±2.97%  ±3.95%  ±5.16%
url/url-searchparams-read.jsn=20000000 param='nonexistent' accessMethod='has'                                            2.43 %       ±5.15%  ±6.87%  ±8.98%
url/url-searchparams-read.jsn=20000000 param='one' accessMethod='get'                                                    0.36 %       ±2.94%  ±3.93%  ±5.15%
url/url-searchparams-read.jsn=20000000 param='one' accessMethod='getAll'                                                -1.45 %       ±1.61%  ±2.15%  ±2.82%
url/url-searchparams-read.jsn=20000000 param='one' accessMethod='has'                                                    1.12 %       ±5.89%  ±7.86% ±10.28%
url/url-searchparams-read.jsn=20000000 param='three' accessMethod='get'                                                 -1.60 %       ±6.77%  ±9.04% ±11.82%
url/url-searchparams-read.jsn=20000000 param='three' accessMethod='getAll'                                              -1.10 %       ±3.72%  ±5.01%  ±6.65%
url/url-searchparams-read.jsn=20000000 param='three' accessMethod='has'                                                  2.91 %       ±4.88%  ±6.50%  ±8.47%
url/url-searchparams-read.jsn=20000000 param='two' accessMethod='get'                                                    0.76 %       ±3.74%  ±5.02%  ±6.62%
url/url-searchparams-read.jsn=20000000 param='two' accessMethod='getAll'                                                -1.57 %       ±3.92%  ±5.22%  ±6.80%
url/url-searchparams-read.jsn=20000000 param='two' accessMethod='has'                                                    0.87 %       ±4.52%  ±6.01%  ±7.84%
url/url-searchparams-sort.jsn=1000000 type='almostsorted'                                                                0.84 %       ±2.68%  ±3.61%  ±4.76%
url/url-searchparams-sort.jsn=1000000 type='empty'                                                                      -2.23 %       ±5.14%  ±6.85%  ±8.92%
url/url-searchparams-sort.jsn=1000000 type='long'                                                                        0.45 %       ±1.52%  ±2.02%  ±2.65%
url/url-searchparams-sort.jsn=1000000 type='random'                                                                     -1.05 %       ±2.13%  ±2.86%  ±3.77%
url/url-searchparams-sort.jsn=1000000 type='reversed'                                                                    0.48 %       ±1.64%  ±2.18%  ±2.86%
url/url-searchparams-sort.jsn=1000000 type='short'                                                                      -2.53 %       ±5.89%  ±7.86% ±10.25%
url/url-searchparams-sort.jsn=1000000 type='sorted'                                                               *      1.00 %       ±0.91%  ±1.21%  ±1.58%
url/url-searchparams-sort.jsn=1000000 type='wpt'                                                                         3.85 %       ±6.07%  ±8.09% ±10.54%
url/usvstring.jsn=50000000 input='allinvalid'                                                                           -1.33 %       ±1.97%  ±2.63%  ±3.43%
url/usvstring.jsn=50000000 input='nonstring'                                                                            -0.64 %       ±2.40%  ±3.24%  ±4.29%
url/usvstring.jsn=50000000 input='someinvalid'                                                                           0.06 %       ±1.75%  ±2.34%  ±3.05%
url/usvstring.jsn=50000000 input='valid'                                                                          *     -2.23 %       ±1.81%  ±2.41%  ±3.17%
url/usvstring.jsn=50000000 input='validsurr'                                                                            -1.75 %       ±2.11%  ±2.83%  ±3.72%
url/whatwg-url-idna.jsn=5000000 to='ascii' domain='all'                                                                  0.81 %       ±2.25%  ±3.00%  ±3.90%
url/whatwg-url-idna.jsn=5000000 to='ascii' domain='empty'                                                               -3.75 %       ±7.50% ±10.00% ±13.05%
url/whatwg-url-idna.jsn=5000000 to='ascii' domain='none'                                                                 0.59 %       ±2.36%  ±3.14%  ±4.09%
url/whatwg-url-idna.jsn=5000000 to='ascii' domain='nonstring'                                                            0.76 %       ±5.75%  ±7.66%  ±9.98%
url/whatwg-url-idna.jsn=5000000 to='ascii' domain='some'                                                                 2.40 %       ±2.70%  ±3.60%  ±4.71%
url/whatwg-url-idna.jsn=5000000 to='unicode' domain='all'                                                                1.16 %       ±2.78%  ±3.70%  ±4.82%
url/whatwg-url-idna.jsn=5000000 to='unicode' domain='empty'                                                             -5.10 %       ±6.13%  ±8.24% ±10.90%
url/whatwg-url-idna.jsn=5000000 to='unicode' domain='none'                                                              -1.13 %       ±1.79%  ±2.39%  ±3.13%
url/whatwg-url-idna.jsn=5000000 to='unicode' domain='nonstring'                                                         -0.54 %       ±5.49%  ±7.30%  ±9.50%
url/whatwg-url-idna.jsn=5000000 to='unicode' domain='some'                                                              -0.57 %       ±1.95%  ±2.60%  ±3.39%
url/whatwg-url-properties.jsprop='hash' e=1 type='wpt' withBase='false'                                                  1.69 %       ±6.20%  ±8.25% ±10.75%
url/whatwg-url-properties.jsprop='hash' e=1 type='wpt' withBase='true'                                                   0.69 %       ±8.66% ±11.52% ±15.00%
url/whatwg-url-properties.jsprop='host' e=1 type='wpt' withBase='false'                                           *     -7.14 %       ±6.03%  ±8.04% ±10.49%
url/whatwg-url-properties.jsprop='host' e=1 type='wpt' withBase='true'                                                   0.59 %       ±6.37%  ±8.49% ±11.07%
url/whatwg-url-properties.jsprop='hostname' e=1 type='wpt' withBase='false'                                             -2.23 %       ±7.22%  ±9.61% ±12.51%
url/whatwg-url-properties.jsprop='hostname' e=1 type='wpt' withBase='true'                                               2.86 %       ±6.10%  ±8.12% ±10.57%
url/whatwg-url-properties.jsprop='href' e=1 type='wpt' withBase='false'                                                 -6.24 %       ±9.16% ±12.21% ±15.91%
url/whatwg-url-properties.jsprop='href' e=1 type='wpt' withBase='true'                                                  -0.18 %       ±6.09%  ±8.10% ±10.55%
url/whatwg-url-properties.jsprop='origin' e=1 type='wpt' withBase='false'                                                2.46 %       ±6.85%  ±9.11% ±11.87%
url/whatwg-url-properties.jsprop='origin' e=1 type='wpt' withBase='true'                                                -2.84 %       ±5.56%  ±7.41%  ±9.69%
url/whatwg-url-properties.jsprop='password' e=1 type='wpt' withBase='false'                                              1.39 %       ±7.68% ±10.22% ±13.31%
url/whatwg-url-properties.jsprop='password' e=1 type='wpt' withBase='true'                                        *     -5.80 %       ±4.63%  ±6.18%  ±8.08%
url/whatwg-url-properties.jsprop='pathname' e=1 type='wpt' withBase='false'                                       *     -7.58 %       ±6.62%  ±8.84% ±11.58%
url/whatwg-url-properties.jsprop='pathname' e=1 type='wpt' withBase='true'                                               5.28 %       ±6.32%  ±8.44% ±11.04%
url/whatwg-url-properties.jsprop='port' e=1 type='wpt' withBase='false'                                                 -5.92 %       ±6.07%  ±8.10% ±10.58%
url/whatwg-url-properties.jsprop='port' e=1 type='wpt' withBase='true'                                                  -0.65 %       ±5.65%  ±7.53%  ±9.81%
url/whatwg-url-properties.jsprop='protocol' e=1 type='wpt' withBase='false'                                              1.70 %       ±7.18%  ±9.56% ±12.45%
url/whatwg-url-properties.jsprop='protocol' e=1 type='wpt' withBase='true'                                              -1.79 %       ±5.23%  ±6.96%  ±9.07%
url/whatwg-url-properties.jsprop='search' e=1 type='wpt' withBase='false'                                               -1.70 %       ±6.83%  ±9.08% ±11.82%
url/whatwg-url-properties.jsprop='search' e=1 type='wpt' withBase='true'                                                -2.17 %       ±5.46%  ±7.27%  ±9.49%
url/whatwg-url-properties.jsprop='searchParams' e=1 type='wpt' withBase='false'                                          1.00 %       ±6.40%  ±8.52% ±11.09%
url/whatwg-url-properties.jsprop='searchParams' e=1 type='wpt' withBase='true'                                          -0.75 %       ±5.99%  ±7.98% ±10.39%
url/whatwg-url-properties.jsprop='username' e=1 type='wpt' withBase='false'                                             -2.09 %       ±5.27%  ±7.02%  ±9.15%
url/whatwg-url-properties.jsprop='username' e=1 type='wpt' withBase='true'                                        *     -6.39 %       ±5.68%  ±7.56%  ±9.86%

Be aware that when doing many comparisons the risk of a false-positive
result increases. In this case, there are 235 comparisons, you can thus
expect the following amount of false-positive results:
  11.75 false positives, when considering a   5% risk acceptance (*, **, ***),
  2.35 false positives, when considering a   1% risk acceptance (**, ***),
  0.24 false positives, when considering a 0.1% risk acceptance (***)
All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@nodejs-github-bot

nodejs-github-bot commented Feb 9, 2021

Copy link
Copy Markdown
Collaborator

CI: https://ci.nodejs.org/job/node-test-pull-request/36042/

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

aduh95
aduh95 approved these changes Feb 9, 2021
View reviewed changes
@aduh95 aduh95 added the author ready PRs with CI started, the required approvals, and no outstanding review comments. label Feb 9, 2021
@ExE-Boss

ExE-Boss commented Feb 10, 2021

Copy link
Copy Markdown
Contributor Author

There are some major perf improvements

I’m guessing that’s because V8 is able to better optimise classes when the methods are defined in the class declaration, rather than using Object.defineProperties.

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@RaisinTen

RaisinTen commented Feb 10, 2021

Copy link
Copy Markdown
Member

cc @nodejs/url

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@aduh95

aduh95 commented Feb 10, 2021

Copy link
Copy Markdown
Contributor

I’m guessing that’s because V8 is able to better optimise classes when the methods are defined in the class declaration, rather than using Object.defineProperties.

OK but do you understand how does this affect the legacy API?

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

TimothyGu
TimothyGu approved these changes Feb 10, 2021
View reviewed changes
ExE-Boss added 2 commits February 13, 2021 17:57
@ExE-Boss @aduh95
url: move URLSearchParams method definitions
dd5b48a
PR-URL: nodejs#36799
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Tiancheng "Timothy" Gu <[email protected]>
@ExE-Boss @aduh95
url: fix definitions of URL/SearchParams methods and accessors
0dfc0f5
This fixes getter and setter names for the WHATWG URL classes, and fixes
a few other inconsistencies with browsers implementations.

Co-authored-by: Gerhard Stöbich <[email protected]>

PR-URL: nodejs#36799
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Tiancheng "Timothy" Gu <[email protected]>
@aduh95
aduh95 force-pushed the lib/url/fix-method-accessor-definitions branch from 609a6eb to 0dfc0f5 Compare February 13, 2021 17:05
@aduh95

aduh95 commented Feb 13, 2021

Copy link
Copy Markdown
Contributor

Landed in 7d5806e...0dfc0f5

All reactions

Sorry, something went wrong.

Uh oh!

There was an error while loading. Please reload this page.

@aduh95
aduh95 merged commit 0dfc0f5 into nodejs:master Feb 13, 2021
@ExE-Boss
ExE-Boss deleted the lib/url/fix-method-accessor-definitions branch February 13, 2021 22:23
danielleadams pushed a commit that referenced this pull request Feb 16, 2021
@ExE-Boss @danielleadams
url: move URLSearchParams method definitions
fbcab10
PR-URL: #36799
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Tiancheng "Timothy" Gu <[email protected]>
danielleadams pushed a commit that referenced this pull request Feb 16, 2021
@ExE-Boss @danielleadams
url: fix definitions of URL/SearchParams methods and accessors
676f696
This fixes getter and setter names for the WHATWG URL classes, and fixes
a few other inconsistencies with browsers implementations.

Co-authored-by: Gerhard Stöbich <[email protected]>

PR-URL: #36799
Reviewed-By: Antoine du Hamel <[email protected]>
Reviewed-By: Tiancheng "Timothy" Gu <[email protected]>
This was referenced Feb 16, 2021
v15.9.0 proposal #37405
Closed
v15.9.0 proposal #37406
Merged
@targos targos added the backport-blocked-v14.x label May 27, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Reviewers

@aduh95 aduh95 aduh95 approved these changes
@Flarna Flarna Awaiting requested review from Flarna
+1 more reviewer
@TimothyGu TimothyGu TimothyGu approved these changes
Reviewers whose approvals may not affect merge requirements

Uh oh!

There was an error while loading. Please reload this page.

Assignees

No one assigned

Labels

author ready PRs with CI started, the required approvals, and no outstanding review comments. review wanted PRs that need review. whatwg-url Issues and PRs related to the WHATWG URL implementation.

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

Uh oh!

There was an error while loading. Please reload this page.

8 participants

@ExE-Boss @aduh95 @nodejs-github-bot @RaisinTen @TimothyGu @Flarna @targos @PoojaDurgad
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
You are visitor 01402520 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.