Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

url: disallow percent in hosts for url.parse() #45219

Closed
wants to merge 2 commits into from

Conversation

Trott
Copy link
Member

@Trott Trott commented Oct 28, 2022

Emulate WHATWG URL by throwing if there is a % character that is not part of a valid percent-encoding in the hostname. Otherwise, return punycode representation of encoded characters (also aligned with WHATWG URL).

Emulate WHATWG URL by throwing if there is a % character that is not
part of a valid percent-encoding in the hostname. Otherwise, return
punycode representation of encoded characters (also aligned with WHATWG
URL).
@nodejs-github-bot nodejs-github-bot added needs-ci PRs that need a full CI run. url Issues and PRs related to the legacy built-in url module. labels Oct 28, 2022
@mscdex mscdex added the needs-citgm PRs that need a CITGM CI run. label Oct 28, 2022
@Trott Trott added the commit-queue-squash Add this label to instruct the Commit Queue to squash all the PR commits into the first one. label Oct 28, 2022
@Trott
Copy link
Member Author

Trott commented Oct 29, 2022

@anonrig anonrig added the request-ci Add this label to start a Jenkins CI on a PR. label Oct 31, 2022
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Oct 31, 2022
@nodejs-github-bot
Copy link
Collaborator

@Trott
Copy link
Member Author

Trott commented Oct 31, 2022

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

The benchmark results are mostly not great...

Results
confidence improvement accuracy (*)    (**)   (***)
02:26:21 url/legacy-vs-whatwg-url-get-prop.js e=1 method='legacy' type='auth'                                                     -7.84 %       ±8.60% ±11.44% ±14.89%
02:26:21 url/legacy-vs-whatwg-url-get-prop.js e=1 method='legacy' type='dot'                                                      -3.66 %       ±9.38% ±12.51% ±16.33%
02:26:21 url/legacy-vs-whatwg-url-get-prop.js e=1 method='legacy' type='file'                                                     -7.48 %       ±8.57% ±11.40% ±14.84%
02:26:21 url/legacy-vs-whatwg-url-get-prop.js e=1 method='legacy' type='idn'                                                      -7.28 %       ±7.92% ±10.55% ±13.73%
02:26:21 url/legacy-vs-whatwg-url-get-prop.js e=1 method='legacy' type='javascript'                                               -6.43 %       ±8.92% ±11.91% ±15.58%
02:26:21 url/legacy-vs-whatwg-url-get-prop.js e=1 method='legacy' type='long'                                              **     -9.52 %       ±6.84%  ±9.10% ±11.85%
02:26:21 url/legacy-vs-whatwg-url-get-prop.js e=1 method='legacy' type='percent'                                          ***     47.90 %      ±12.33% ±16.43% ±21.45%
02:26:21 url/legacy-vs-whatwg-url-get-prop.js e=1 method='legacy' type='short'                                                    -3.45 %       ±7.99% ±10.64% ±13.86%
02:26:21 url/legacy-vs-whatwg-url-get-prop.js e=1 method='legacy' type='wpt'                                                      -7.11 %       ±8.48% ±11.31% ±14.76%
02:26:21 url/legacy-vs-whatwg-url-get-prop.js e=1 method='legacy' type='ws'                                                        1.37 %       ±7.26%  ±9.66% ±12.57%
02:26:21 url/legacy-vs-whatwg-url-get-prop.js e=1 method='whatwg' type='auth'                                                      1.23 %       ±8.38% ±11.15% ±14.52%
02:26:21 url/legacy-vs-whatwg-url-get-prop.js e=1 method='whatwg' type='dot'                                                      -1.77 %       ±7.27%  ±9.67% ±12.59%
02:26:21 url/legacy-vs-whatwg-url-get-prop.js e=1 method='whatwg' type='file'                                                     -1.30 %       ±5.57%  ±7.41%  ±9.64%
02:26:21 url/legacy-vs-whatwg-url-get-prop.js e=1 method='whatwg' type='idn'                                                       2.02 %       ±6.58%  ±8.77% ±11.43%
02:26:21 url/legacy-vs-whatwg-url-get-prop.js e=1 method='whatwg' type='javascript'                                               -0.45 %       ±5.58%  ±7.43%  ±9.68%
02:26:21 url/legacy-vs-whatwg-url-get-prop.js e=1 method='whatwg' type='long'                                                     -4.19 %       ±7.75% ±10.33% ±13.47%
02:26:21 url/legacy-vs-whatwg-url-get-prop.js e=1 method='whatwg' type='percent'                                                  -2.14 %       ±6.87%  ±9.16% ±11.94%
02:26:21 url/legacy-vs-whatwg-url-get-prop.js e=1 method='whatwg' type='short'                                                    -0.51 %       ±6.82%  ±9.08% ±11.82%
02:26:21 url/legacy-vs-whatwg-url-get-prop.js e=1 method='whatwg' type='wpt'                                                       4.39 %       ±7.31%  ±9.73% ±12.67%
02:26:21 url/legacy-vs-whatwg-url-get-prop.js e=1 method='whatwg' type='ws'                                                       -1.96 %       ±5.73%  ±7.63%  ±9.95%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='auth' withBase='false'                               ***    -11.36 %       ±5.35%  ±7.12%  ±9.28%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='auth' withBase='true'                                  *     -7.81 %       ±6.79%  ±9.03% ±11.76%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='dot' withBase='false'                                 **     -9.92 %       ±6.80%  ±9.06% ±11.82%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='dot' withBase='true'                                         -5.98 %       ±6.64%  ±8.86% ±11.56%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='file' withBase='false'                                       -3.89 %       ±6.49%  ±8.64% ±11.27%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='file' withBase='true'                                         5.67 %       ±6.67%  ±8.87% ±11.56%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='idn' withBase='false'                                ***    -13.28 %       ±6.20%  ±8.26% ±10.77%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='idn' withBase='true'                                 ***    -16.14 %       ±7.30%  ±9.73% ±12.68%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='javascript' withBase='false'                                 -4.02 %       ±6.48%  ±8.64% ±11.26%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='javascript' withBase='true'                                  -1.15 %       ±6.01%  ±8.01% ±10.44%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='long' withBase='false'                                        1.69 %       ±6.40%  ±8.55% ±11.18%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='long' withBase='true'                                        -4.07 %       ±5.10%  ±6.79%  ±8.85%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='percent' withBase='false'                            ***    -25.35 %       ±6.25%  ±8.32% ±10.84%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='percent' withBase='true'                             ***    -18.09 %       ±6.23%  ±8.29% ±10.79%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='short' withBase='false'                                      -0.82 %       ±7.97% ±10.62% ±13.86%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='short' withBase='true'                                 *    -11.80 %      ±10.70% ±14.36% ±18.95%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='wpt' withBase='false'                                        -6.33 %       ±6.38%  ±8.48% ±11.04%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='wpt' withBase='true'                                   *     -6.63 %       ±6.46%  ±8.59% ±11.18%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='ws' withBase='false'                                         -2.26 %       ±7.44%  ±9.90% ±12.89%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='legacy' e=1 type='ws' withBase='true'                                          -4.03 %       ±6.78%  ±9.04% ±11.81%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='auth' withBase='false'                                        4.45 %       ±6.84%  ±9.10% ±11.85%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='auth' withBase='true'                                        -0.24 %      ±10.08% ±13.45% ±17.59%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='dot' withBase='false'                                        -0.24 %       ±6.13%  ±8.15% ±10.62%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='dot' withBase='true'                                          5.46 %       ±5.65%  ±7.53%  ±9.84%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='file' withBase='false'                                        1.33 %       ±7.94% ±10.57% ±13.77%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='file' withBase='true'                                         1.84 %       ±5.89%  ±7.83% ±10.19%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='idn' withBase='false'                                         3.48 %       ±7.39%  ±9.84% ±12.83%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='idn' withBase='true'                                          1.24 %       ±7.23%  ±9.63% ±12.54%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='javascript' withBase='false'                           *      7.79 %       ±7.00%  ±9.33% ±12.17%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='javascript' withBase='true'                                   3.08 %       ±7.04%  ±9.37% ±12.22%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='long' withBase='false'                                 *     10.02 %       ±7.62% ±10.19% ±13.36%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='long' withBase='true'                                         2.79 %       ±7.47%  ±9.95% ±12.97%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='percent' withBase='false'                                    -0.89 %       ±7.05%  ±9.39% ±12.22%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='percent' withBase='true'                                     -1.67 %       ±5.99%  ±7.98% ±10.41%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='short' withBase='false'                                       2.67 %       ±6.64%  ±8.84% ±11.52%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='short' withBase='true'                                        3.85 %       ±5.55%  ±7.38%  ±9.60%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='wpt' withBase='false'                                         0.17 %       ±5.51%  ±7.35%  ±9.58%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='wpt' withBase='true'                                          4.88 %       ±7.95% ±10.57% ±13.76%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='ws' withBase='false'                                          3.63 %       ±8.78% ±11.70% ±15.25%
02:26:21 url/legacy-vs-whatwg-url-parse.js method='whatwg' e=1 type='ws' withBase='true'                                    *      8.21 %       ±6.68%  ±8.89% ±11.60%
02:26:21 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='legacy' searchParam='altspaces'                          2.63 %       ±4.46%  ±5.94%  ±7.73%
02:26:21 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='legacy' searchParam='encodefake'                         0.99 %       ±5.63%  ±7.54%  ±9.93%
02:26:21 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='legacy' searchParam='encodelast'                         1.15 %       ±3.82%  ±5.09%  ±6.62%
02:26:21 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='legacy' searchParam='encodemany'                  *      1.77 %       ±1.53%  ±2.04%  ±2.66%
02:26:21 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='legacy' searchParam='manyblankpairs'                     0.47 %       ±4.15%  ±5.54%  ±7.28%
02:26:21 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='legacy' searchParam='manypairs'                          1.38 %       ±2.09%  ±2.79%  ±3.64%
02:26:21 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='legacy' searchParam='multicharsep'                       0.26 %       ±2.61%  ±3.47%  ±4.52%
02:26:21 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='legacy' searchParam='multivalue'                        -1.94 %       ±3.68%  ±4.90%  ±6.39%
02:26:21 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='legacy' searchParam='multivaluemany'                     0.73 %       ±1.66%  ±2.22%  ±2.90%
02:26:21 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='legacy' searchParam='noencode'                           1.33 %       ±4.78%  ±6.36%  ±8.28%
02:26:21 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='whatwg' searchParam='altspaces'                          0.83 %       ±5.51%  ±7.34%  ±9.57%
02:26:21 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='whatwg' searchParam='encodefake'                         1.73 %       ±6.66%  ±8.87% ±11.55%
02:26:21 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='whatwg' searchParam='encodelast'                         2.51 %       ±3.59%  ±4.80%  ±6.28%
02:26:21 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='whatwg' searchParam='encodemany'                        -0.83 %       ±2.23%  ±2.98%  ±3.91%
02:26:21 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='whatwg' searchParam='manyblankpairs'                    -2.55 %       ±5.87%  ±7.88% ±10.39%
02:26:21 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='whatwg' searchParam='manypairs'                         -4.53 %       ±4.63%  ±6.22%  ±8.19%
02:26:21 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='whatwg' searchParam='multicharsep'                       6.07 %       ±7.63% ±10.19% ±13.34%
02:26:21 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='whatwg' searchParam='multivalue'                         2.97 %       ±6.93%  ±9.27% ±12.17%
02:26:21 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='whatwg' searchParam='multivaluemany'                    -1.29 %       ±3.58%  ±4.77%  ±6.22%
02:26:21 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='whatwg' searchParam='noencode'                          -1.82 %      ±10.04% ±13.37% ±17.41%
02:26:21 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='legacy' searchParam='altspaces'                     -1.88 %       ±2.93%  ±3.91%  ±5.11%
02:26:21 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='legacy' searchParam='encodefake'                     0.01 %       ±1.68%  ±2.24%  ±2.91%
02:26:21 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='legacy' searchParam='encodelast'                    -0.33 %       ±1.99%  ±2.65%  ±3.45%
02:26:21 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='legacy' searchParam='encodemany'                     1.02 %       ±5.87%  ±7.81% ±10.17%
02:26:21 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='legacy' searchParam='manyblankpairs'                 1.62 %       ±9.37% ±12.46% ±16.22%
02:26:21 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='legacy' searchParam='manypairs'                     -0.86 %       ±1.86%  ±2.49%  ±3.27%
02:26:21 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='legacy' searchParam='multicharsep'                   2.39 %       ±4.99%  ±6.71%  ±8.87%
02:26:21 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='legacy' searchParam='multivalue'                    -0.02 %       ±1.97%  ±2.62%  ±3.41%
02:26:21 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='legacy' searchParam='multivaluemany'                 0.38 %       ±2.13%  ±2.83%  ±3.70%
02:26:21 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='legacy' searchParam='noencode'                       1.11 %       ±7.55% ±10.04% ±13.07%
02:26:21 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='whatwg' searchParam='altspaces'                      0.25 %       ±4.47%  ±5.95%  ±7.77%
02:26:21 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='whatwg' searchParam='encodefake'                     0.16 %       ±1.31%  ±1.75%  ±2.28%
02:26:21 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='whatwg' searchParam='encodelast'                    -1.62 %       ±8.41% ±11.20% ±14.60%
02:26:21 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='whatwg' searchParam='encodemany'                    -3.71 %       ±5.29%  ±7.12%  ±9.43%
02:26:21 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='whatwg' searchParam='manyblankpairs'         **     -7.64 %       ±4.85%  ±6.47%  ±8.46%
02:26:21 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='whatwg' searchParam='manypairs'                     -0.13 %       ±1.83%  ±2.44%  ±3.19%
02:26:21 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='whatwg' searchParam='multicharsep'                  -3.69 %       ±6.41%  ±8.63% ±11.43%
02:26:21 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='whatwg' searchParam='multivalue'                    -1.93 %       ±4.84%  ±6.51%  ±8.63%
02:26:21 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='whatwg' searchParam='multivaluemany'                -0.77 %       ±2.84%  ±3.78%  ±4.92%
02:26:21 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='whatwg' searchParam='noencode'                       1.04 %       ±5.29%  ±7.08%  ±9.29%
02:26:21 url/legacy-vs-whatwg-url-serialize.js e=1 method='legacy' type='auth'                                                    -2.46 %       ±6.75%  ±9.00% ±11.73%
02:26:21 url/legacy-vs-whatwg-url-serialize.js e=1 method='legacy' type='dot'                                                      1.05 %       ±8.70% ±11.57% ±15.07%
02:26:21 url/legacy-vs-whatwg-url-serialize.js e=1 method='legacy' type='file'                                                    -5.66 %       ±6.43%  ±8.57% ±11.19%
02:26:21 url/legacy-vs-whatwg-url-serialize.js e=1 method='legacy' type='idn'                                                     -4.13 %       ±7.49%  ±9.97% ±12.98%
02:26:21 url/legacy-vs-whatwg-url-serialize.js e=1 method='legacy' type='javascript'                                              -1.25 %       ±7.18%  ±9.57% ±12.49%
02:26:21 url/legacy-vs-whatwg-url-serialize.js e=1 method='legacy' type='long'                                                     4.64 %       ±6.39%  ±8.51% ±11.11%
02:26:21 url/legacy-vs-whatwg-url-serialize.js e=1 method='legacy' type='percent'                                                  0.68 %       ±7.85% ±10.46% ±13.63%
02:26:21 url/legacy-vs-whatwg-url-serialize.js e=1 method='legacy' type='short'                                                    0.91 %       ±6.42%  ±8.55% ±11.15%
02:26:21 url/legacy-vs-whatwg-url-serialize.js e=1 method='legacy' type='wpt'                                                      4.02 %       ±6.74%  ±8.99% ±11.75%
02:26:21 url/legacy-vs-whatwg-url-serialize.js e=1 method='legacy' type='ws'                                                      -0.53 %       ±7.05%  ±9.40% ±12.26%
02:26:21 url/legacy-vs-whatwg-url-serialize.js e=1 method='whatwg' type='auth'                                                    -1.94 %       ±6.00%  ±7.98% ±10.40%
02:26:21 url/legacy-vs-whatwg-url-serialize.js e=1 method='whatwg' type='dot'                                                     -1.87 %       ±5.02%  ±6.69%  ±8.71%
02:26:21 url/legacy-vs-whatwg-url-serialize.js e=1 method='whatwg' type='file'                                                    -3.70 %       ±6.79%  ±9.04% ±11.77%
02:26:21 url/legacy-vs-whatwg-url-serialize.js e=1 method='whatwg' type='idn'                                                      1.61 %       ±7.49%  ±9.96% ±12.97%
02:26:21 url/legacy-vs-whatwg-url-serialize.js e=1 method='whatwg' type='javascript'                                              -3.16 %       ±7.40%  ±9.86% ±12.84%
02:26:21 url/legacy-vs-whatwg-url-serialize.js e=1 method='whatwg' type='long'                                                     2.63 %       ±6.03%  ±8.03% ±10.46%
02:26:21 url/legacy-vs-whatwg-url-serialize.js e=1 method='whatwg' type='percent'                                                  1.82 %       ±6.33%  ±8.43% ±10.97%
02:26:21 url/legacy-vs-whatwg-url-serialize.js e=1 method='whatwg' type='short'                                                    0.39 %       ±6.78%  ±9.02% ±11.74%
02:26:21 url/legacy-vs-whatwg-url-serialize.js e=1 method='whatwg' type='wpt'                                                     -2.38 %       ±5.59%  ±7.44%  ±9.69%
02:26:21 url/legacy-vs-whatwg-url-serialize.js e=1 method='whatwg' type='ws'                                                      -6.78 %       ±7.78% ±10.39% ±13.60%
02:26:21 url/url-format.js n=25000000 type='file'                                                                                 -0.35 %       ±1.68%  ±2.24%  ±2.92%
02:26:21 url/url-format.js n=25000000 type='slashes'                                                                              -0.89 %       ±1.51%  ±2.02%  ±2.67%
02:26:21 url/url-parse.js n=10000000 type='escaped'                                                                       ***    -31.12 %       ±2.34%  ±3.12%  ±4.06%
02:26:21 url/url-parse.js n=10000000 type='normal'                                                                        ***    -37.68 %       ±1.70%  ±2.26%  ±2.96%
02:26:21 url/url-resolve.js n=100000 path='down' href='auth'                                                               **     -9.33 %       ±6.22%  ±8.27% ±10.76%
02:26:21 url/url-resolve.js n=100000 path='down' href='dot'                                                               ***     -8.38 %       ±2.50%  ±3.33%  ±4.35%
02:26:21 url/url-resolve.js n=100000 path='down' href='file'                                                                       3.15 %       ±3.50%  ±4.68%  ±6.15%
02:26:21 url/url-resolve.js n=100000 path='down' href='idn'                                                               ***    -10.28 %       ±3.99%  ±5.32%  ±6.94%
02:26:21 url/url-resolve.js n=100000 path='down' href='javascript'                                                                -0.79 %       ±2.31%  ±3.10%  ±4.06%
02:26:21 url/url-resolve.js n=100000 path='down' href='long'                                                              ***     -8.21 %       ±2.56%  ±3.40%  ±4.43%
02:26:21 url/url-resolve.js n=100000 path='down' href='noscheme'                                                            *     -6.32 %       ±6.24%  ±8.39% ±11.10%
02:26:21 url/url-resolve.js n=100000 path='down' href='percent'                                                           ***    -21.82 %       ±5.58%  ±7.46%  ±9.78%
02:26:21 url/url-resolve.js n=100000 path='down' href='short'                                                             ***    -10.46 %       ±5.04%  ±6.70%  ±8.73%
02:26:21 url/url-resolve.js n=100000 path='down' href='ws'                                                                        -4.04 %       ±4.12%  ±5.52%  ±7.24%
02:26:21 url/url-resolve.js n=100000 path='foo/bar' href='auth'                                                            **     -7.98 %       ±6.00%  ±7.98% ±10.38%
02:26:21 url/url-resolve.js n=100000 path='foo/bar' href='dot'                                                            ***     -9.44 %       ±5.12%  ±6.84%  ±8.94%
02:26:21 url/url-resolve.js n=100000 path='foo/bar' href='file'                                                                    3.61 %       ±5.26%  ±7.07%  ±9.36%
02:26:21 url/url-resolve.js n=100000 path='foo/bar' href='idn'                                                            ***    -12.14 %       ±6.48%  ±8.63% ±11.25%
02:26:21 url/url-resolve.js n=100000 path='foo/bar' href='javascript'                                                       *     -4.47 %       ±3.73%  ±4.97%  ±6.50%
02:26:21 url/url-resolve.js n=100000 path='foo/bar' href='long'                                                           ***     -7.68 %       ±2.77%  ±3.69%  ±4.82%
02:26:21 url/url-resolve.js n=100000 path='foo/bar' href='noscheme'                                                                0.51 %       ±4.54%  ±6.04%  ±7.86%
02:26:21 url/url-resolve.js n=100000 path='foo/bar' href='percent'                                                        ***    -24.68 %       ±5.15%  ±6.87%  ±8.97%
02:26:21 url/url-resolve.js n=100000 path='foo/bar' href='short'                                                          ***    -13.92 %       ±4.98%  ±6.63%  ±8.63%
02:26:21 url/url-resolve.js n=100000 path='foo/bar' href='ws'                                                               *     -6.68 %       ±5.69%  ±7.58%  ±9.89%
02:26:21 url/url-resolve.js n=100000 path='sibling' href='auth'                                                             *     -4.70 %       ±4.28%  ±5.74%  ±7.56%
02:26:21 url/url-resolve.js n=100000 path='sibling' href='dot'                                                              *     -6.10 %       ±6.06%  ±8.08% ±10.53%
02:26:21 url/url-resolve.js n=100000 path='sibling' href='file'                                                                    0.02 %       ±4.38%  ±5.85%  ±7.68%
02:26:21 url/url-resolve.js n=100000 path='sibling' href='idn'                                                            ***     -9.62 %       ±4.66%  ±6.21%  ±8.08%
02:26:21 url/url-resolve.js n=100000 path='sibling' href='javascript'                                                             -1.89 %       ±3.09%  ±4.12%  ±5.37%
02:26:21 url/url-resolve.js n=100000 path='sibling' href='long'                                                           ***     -6.17 %       ±3.35%  ±4.48%  ±5.86%
02:26:21 url/url-resolve.js n=100000 path='sibling' href='noscheme'                                                                0.05 %       ±5.89%  ±7.84% ±10.20%
02:26:21 url/url-resolve.js n=100000 path='sibling' href='percent'                                                        ***    -24.58 %       ±5.15%  ±6.87%  ±8.96%
02:26:21 url/url-resolve.js n=100000 path='sibling' href='short'                                                          ***    -10.50 %       ±4.96%  ±6.60%  ±8.59%
02:26:21 url/url-resolve.js n=100000 path='sibling' href='ws'                                                                     -3.10 %       ±6.18%  ±8.24% ±10.76%
02:26:21 url/url-resolve.js n=100000 path='up' href='auth'                                                                ***     -8.90 %       ±3.69%  ±4.91%  ±6.40%
02:26:21 url/url-resolve.js n=100000 path='up' href='dot'                                                                 ***    -11.26 %       ±5.65%  ±7.53%  ±9.82%
02:26:21 url/url-resolve.js n=100000 path='up' href='file'                                                                        -3.25 %       ±4.91%  ±6.58%  ±8.66%
02:26:21 url/url-resolve.js n=100000 path='up' href='idn'                                                                 ***    -16.24 %       ±5.65%  ±7.59% ±10.03%
02:26:21 url/url-resolve.js n=100000 path='up' href='javascript'                                                                   0.41 %       ±7.44%  ±9.89% ±12.88%
02:26:21 url/url-resolve.js n=100000 path='up' href='long'                                                                ***     -8.29 %       ±1.61%  ±2.14%  ±2.78%
02:26:21 url/url-resolve.js n=100000 path='up' href='noscheme'                                                                     0.61 %       ±5.17%  ±6.89%  ±8.98%
02:26:21 url/url-resolve.js n=100000 path='up' href='percent'                                                             ***    -20.54 %       ±4.62%  ±6.18%  ±8.11%
02:26:21 url/url-resolve.js n=100000 path='up' href='short'                                                               ***     -8.32 %       ±4.19%  ±5.59%  ±7.32%
02:26:21 url/url-resolve.js n=100000 path='up' href='ws'                                                                  ***    -10.63 %       ±5.65%  ±7.52%  ±9.79%
02:26:21 url/url-resolve.js n=100000 path='withscheme' href='auth'                                                        ***    -17.72 %       ±2.08%  ±2.77%  ±3.61%
02:26:21 url/url-resolve.js n=100000 path='withscheme' href='dot'                                                         ***    -19.50 %       ±4.71%  ±6.33%  ±8.38%
02:26:21 url/url-resolve.js n=100000 path='withscheme' href='file'                                                        ***    -19.05 %       ±4.37%  ±5.87%  ±7.74%
02:26:21 url/url-resolve.js n=100000 path='withscheme' href='idn'                                                         ***    -22.27 %       ±6.36%  ±8.50% ±11.15%
02:26:21 url/url-resolve.js n=100000 path='withscheme' href='javascript'                                                  ***    -17.52 %       ±1.36%  ±1.81%  ±2.36%
02:26:21 url/url-resolve.js n=100000 path='withscheme' href='long'                                                        ***    -11.52 %       ±3.67%  ±4.89%  ±6.36%
02:26:21 url/url-resolve.js n=100000 path='withscheme' href='noscheme'                                                    ***    -18.49 %       ±1.62%  ±2.17%  ±2.83%
02:26:21 url/url-resolve.js n=100000 path='withscheme' href='percent'                                                     ***    -31.34 %       ±3.43%  ±4.60%  ±6.06%
02:26:21 url/url-resolve.js n=100000 path='withscheme' href='short'                                                       ***    -24.25 %       ±1.68%  ±2.24%  ±2.91%
02:26:21 url/url-resolve.js n=100000 path='withscheme' href='ws'                                                          ***    -17.64 %       ±4.27%  ±5.71%  ±7.52%
02:26:21 url/url-searchparams-iteration.js n=1000000 loopMethod='forEach'                                                          1.73 %       ±3.03%  ±4.04%  ±5.26%
02:26:21 url/url-searchparams-iteration.js n=1000000 loopMethod='iterator'                                                         0.02 %       ±1.73%  ±2.30%  ±3.00%
02:26:21 url/url-searchparams-read.js n=20000000 param='nonexistent' accessMethod='get'                                            0.26 %       ±1.24%  ±1.65%  ±2.15%
02:26:21 url/url-searchparams-read.js n=20000000 param='nonexistent' accessMethod='getAll'                                        -0.60 %       ±4.58%  ±6.09%  ±7.93%
02:26:21 url/url-searchparams-read.js n=20000000 param='nonexistent' accessMethod='has'                                           -0.57 %       ±4.52%  ±6.01%  ±7.82%
02:26:21 url/url-searchparams-read.js n=20000000 param='one' accessMethod='get'                                                    0.10 %       ±3.67%  ±4.89%  ±6.37%
02:26:21 url/url-searchparams-read.js n=20000000 param='one' accessMethod='getAll'                                                -0.68 %       ±1.98%  ±2.63%  ±3.44%
02:26:21 url/url-searchparams-read.js n=20000000 param='one' accessMethod='has'                                                   -1.20 %       ±2.98%  ±3.99%  ±5.24%
02:26:21 url/url-searchparams-read.js n=20000000 param='three' accessMethod='get'                                                 -2.14 %       ±3.89%  ±5.18%  ±6.74%
02:26:21 url/url-searchparams-read.js n=20000000 param='three' accessMethod='getAll'                                               0.95 %       ±1.05%  ±1.40%  ±1.83%
02:26:21 url/url-searchparams-read.js n=20000000 param='three' accessMethod='has'                                                 -0.46 %       ±3.86%  ±5.15%  ±6.71%
02:26:21 url/url-searchparams-read.js n=20000000 param='two' accessMethod='get'                                                   -3.32 %       ±4.03%  ±5.39%  ±7.08%
02:26:21 url/url-searchparams-read.js n=20000000 param='two' accessMethod='getAll'                                          *     -2.48 %       ±2.25%  ±3.02%  ±3.99%
02:26:21 url/url-searchparams-read.js n=20000000 param='two' accessMethod='has'                                                    0.35 %       ±3.78%  ±5.02%  ±6.54%
02:26:21 url/url-searchparams-sort.js n=1000000 type='almostsorted'                                                               -2.80 %       ±4.75%  ±6.39%  ±8.48%
02:26:21 url/url-searchparams-sort.js n=1000000 type='empty'                                                                      -0.45 %       ±5.16%  ±6.87%  ±8.95%
02:26:21 url/url-searchparams-sort.js n=1000000 type='long'                                                                        2.11 %       ±4.76%  ±6.34%  ±8.26%
02:26:21 url/url-searchparams-sort.js n=1000000 type='random'                                                                     -0.61 %       ±2.45%  ±3.26%  ±4.26%
02:26:21 url/url-searchparams-sort.js n=1000000 type='reversed'                                                                    0.47 %       ±0.94%  ±1.25%  ±1.64%
02:26:21 url/url-searchparams-sort.js n=1000000 type='short'                                                                       2.68 %       ±5.71%  ±7.61%  ±9.94%
02:26:21 url/url-searchparams-sort.js n=1000000 type='sorted'                                                                     -0.78 %       ±5.29%  ±7.04%  ±9.16%
02:26:21 url/url-searchparams-sort.js n=1000000 type='wpt'                                                                        -2.36 %      ±10.39% ±13.91% ±18.30%
02:26:21 url/usvstring.js n=50000000 input='allinvalid'                                                                           -0.03 %       ±1.57%  ±2.09%  ±2.73%
02:26:21 url/usvstring.js n=50000000 input='nonstring'                                                                             0.74 %       ±3.53%  ±4.70%  ±6.12%
02:26:21 url/usvstring.js n=50000000 input='someinvalid'                                                                    *      0.41 %       ±0.38%  ±0.50%  ±0.66%
02:26:21 url/usvstring.js n=50000000 input='valid'                                                                                 1.21 %       ±3.93%  ±5.25%  ±6.88%
02:26:21 url/usvstring.js n=50000000 input='validsurr'                                                                             0.29 %       ±0.96%  ±1.27%  ±1.66%
02:26:21 url/whatwg-url-idna.js n=5000000 to='ascii' domain='all'                                                                  1.01 %       ±1.83%  ±2.43%  ±3.18%
02:26:21 url/whatwg-url-idna.js n=5000000 to='ascii' domain='empty'                                                                1.29 %       ±2.02%  ±2.70%  ±3.52%
02:26:21 url/whatwg-url-idna.js n=5000000 to='ascii' domain='none'                                                                 1.69 %       ±1.80%  ±2.40%  ±3.12%
02:26:21 url/whatwg-url-idna.js n=5000000 to='ascii' domain='nonstring'                                                            4.08 %       ±6.41%  ±8.58% ±11.25%
02:26:21 url/whatwg-url-idna.js n=5000000 to='ascii' domain='some'                                                                 0.58 %       ±2.69%  ±3.58%  ±4.66%
02:26:21 url/whatwg-url-idna.js n=5000000 to='unicode' domain='all'                                                                0.60 %       ±1.80%  ±2.41%  ±3.16%
02:26:21 url/whatwg-url-idna.js n=5000000 to='unicode' domain='empty'                                                             -0.00 %       ±3.84%  ±5.14%  ±6.76%
02:26:21 url/whatwg-url-idna.js n=5000000 to='unicode' domain='none'                                                              -0.78 %       ±1.98%  ±2.63%  ±3.43%
02:26:21 url/whatwg-url-idna.js n=5000000 to='unicode' domain='nonstring'                                                         -5.35 %       ±5.75%  ±7.73% ±10.23%
02:26:21 url/whatwg-url-idna.js n=5000000 to='unicode' domain='some'                                                              -0.37 %       ±1.41%  ±1.88%  ±2.45%
02:26:21 url/whatwg-url-properties.js prop='hash' e=1 type='wpt' withBase='false'                                                  3.83 %       ±9.24% ±12.30% ±16.01%
02:26:21 url/whatwg-url-properties.js prop='hash' e=1 type='wpt' withBase='true'                                                   3.97 %       ±5.69%  ±7.57%  ±9.86%
02:26:21 url/whatwg-url-properties.js prop='host' e=1 type='wpt' withBase='false'                                                 -1.02 %       ±8.93% ±11.88% ±15.46%
02:26:21 url/whatwg-url-properties.js prop='host' e=1 type='wpt' withBase='true'                                                   2.84 %       ±6.75%  ±8.99% ±11.72%
02:26:21 url/whatwg-url-properties.js prop='hostname' e=1 type='wpt' withBase='false'                                       *      8.16 %       ±8.15% ±10.91% ±14.35%
02:26:21 url/whatwg-url-properties.js prop='hostname' e=1 type='wpt' withBase='true'                                              -6.09 %       ±6.34%  ±8.45% ±11.01%
02:26:21 url/whatwg-url-properties.js prop='href' e=1 type='wpt' withBase='false'                                                  0.78 %       ±6.97%  ±9.28% ±12.08%
02:26:21 url/whatwg-url-properties.js prop='href' e=1 type='wpt' withBase='true'                                                   0.17 %       ±6.60%  ±8.80% ±11.46%
02:26:21 url/whatwg-url-properties.js prop='origin' e=1 type='wpt' withBase='false'                                                0.26 %       ±9.07% ±12.07% ±15.72%
02:26:21 url/whatwg-url-properties.js prop='origin' e=1 type='wpt' withBase='true'                                                -2.90 %       ±7.86% ±10.46% ±13.61%
02:26:21 url/whatwg-url-properties.js prop='password' e=1 type='wpt' withBase='false'                                              4.28 %      ±10.02% ±13.33% ±17.35%
02:26:21 url/whatwg-url-properties.js prop='password' e=1 type='wpt' withBase='true'                                               4.55 %       ±6.35%  ±8.47% ±11.07%
02:26:21 url/whatwg-url-properties.js prop='pathname' e=1 type='wpt' withBase='false'                                             -0.01 %       ±8.45% ±11.25% ±14.65%
02:26:21 url/whatwg-url-properties.js prop='pathname' e=1 type='wpt' withBase='true'                                              -2.29 %       ±6.90%  ±9.19% ±12.00%
02:26:21 url/whatwg-url-properties.js prop='port' e=1 type='wpt' withBase='false'                                                 -1.05 %       ±6.78%  ±9.03% ±11.78%
02:26:21 url/whatwg-url-properties.js prop='port' e=1 type='wpt' withBase='true'                                                   5.16 %       ±6.99%  ±9.33% ±12.19%
02:26:21 url/whatwg-url-properties.js prop='protocol' e=1 type='wpt' withBase='false'                                             -2.68 %       ±7.84% ±10.44% ±13.62%
02:26:21 url/whatwg-url-properties.js prop='protocol' e=1 type='wpt' withBase='true'                                              -2.76 %       ±7.80% ±10.39% ±13.54%
02:26:21 url/whatwg-url-properties.js prop='search' e=1 type='wpt' withBase='false'                                               -0.55 %       ±7.77% ±10.34% ±13.45%
02:26:21 url/whatwg-url-properties.js prop='search' e=1 type='wpt' withBase='true'                                                 1.91 %       ±8.96% ±11.92% ±15.51%
02:26:21 url/whatwg-url-properties.js prop='searchParams' e=1 type='wpt' withBase='false'                                          3.82 %       ±9.24% ±12.29% ±16.00%
02:26:21 url/whatwg-url-properties.js prop='searchParams' e=1 type='wpt' withBase='true'                                          -4.85 %      ±10.71% ±14.29% ±18.67%
02:26:21 url/whatwg-url-properties.js prop='username' e=1 type='wpt' withBase='false'                                              3.87 %      ±12.74% ±17.09% ±22.51%
02:26:21 url/whatwg-url-properties.js prop='username' e=1 type='wpt' withBase='true'                                               1.39 %       ±4.91%  ±6.55%  ±8.54%
02:26:21 
02:26:21 Be aware that when doing many comparisons the risk of a false-positive
02:26:21 result increases. In this case, there are 235 comparisons, you can thus
02:26:21 expect the following amount of false-positive results:
02:26:21   11.75 false positives, when considering a   5% risk acceptance (*, **, ***),
02:26:21   2.35 false positives, when considering a   1% risk acceptance (**, ***),
02:26:21   0.24 false positives, when considering a 0.1% risk acceptance (***)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
commit-queue-squash Add this label to instruct the Commit Queue to squash all the PR commits into the first one. needs-ci PRs that need a full CI run. needs-citgm PRs that need a CITGM CI run. url Issues and PRs related to the legacy built-in url module.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants