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

lib: remove duplicated code #19076

Closed
wants to merge 2 commits into from
Closed

Conversation

daynin
Copy link
Contributor

@daynin daynin commented Mar 1, 2018

Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • tests and/or benchmarks are included
  • documentation is changed or added
  • commit message follows commit guidelines
Affected core subsystem(s)

url, querystring, internal/url, internal/querystring

@nodejs-github-bot nodejs-github-bot added the lib / src Issues and PRs related to general changes in the lib or src directory. label Mar 1, 2018
@daynin daynin changed the title querystring: remove duplicated code lib: remove duplicated code Mar 1, 2018
const firstEncodedParam = encodeStr(array[0], noEscape, paramHexTable);
const firstEncodedValue = encodeStr(array[1], noEscape, paramHexTable);
let output =
`${firstEncodedParam}=${firstEncodedValue}`;
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why the line break here?

if (lastPos < str.length)
return out + str.slice(lastPos);
return out;
return encodeStr(str, noEscape, hexTable, {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you benchmark this change?

Copy link
Contributor

@starkwang starkwang left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This change might have some negative effects on performance. Could you run a benchmark for this ?

@@ -3,7 +3,8 @@
const util = require('util');
const {
hexTable,
isHexTable
isHexTable,
encodeStr,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unexpected trailing comma. Remember to run lint before commit: make lint

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@starkwang I did it. And everything was ok:

2018-03-02-1112-dubakqz7sa

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@starkwang we had this rule for trailing comma

'comma-dangle': ['error', 'only-multiline']

It allows using trailing comma. But maybe we should fix this rule. What do you think?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh sorry, I misunderstood the meaning of 'only-multiline'. Just ignore it.

@@ -36,7 +36,7 @@ const {
URLSearchParams,
domainToASCII,
domainToUnicode,
formatSymbol
formatSymbol,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unnecessary comma

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@starkwang I'll fix it

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Trailing commas are fine and if we didn't have so much code that lacked them, we would probably even have a lint rule to enforce them. Anything that cleans up git diffs in the long-term is a positive.

@daynin
Copy link
Contributor Author

daynin commented Mar 2, 2018

@mscdex @starkwang I'm running benchmarks now, so I'll attach the results as soon as possible

Copy link
Member

@apapirovski apapirovski left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code seems fine but this should have benchmark results.

@@ -36,7 +36,7 @@ const {
URLSearchParams,
domainToASCII,
domainToUnicode,
formatSymbol
formatSymbol,
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Trailing commas are fine and if we didn't have so much code that lacked them, we would probably even have a lint rule to enforce them. Anything that cleans up git diffs in the long-term is a positive.

if (lastPos < str.length)
return out + str.slice(lastPos);
return out;
return encodeStr(str, noEscape, hexTable, {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you predeclare the error type somewhere at the top scope? There's no need to create this object on the run each time.

@daynin
Copy link
Contributor Author

daynin commented Mar 2, 2018

@mscdex @starkwang you were right about "querystring" module. There is performance reduction in this change:

                                                                                                                                       confidence improvement accuracy (*)   (**)  (***)
 querystring/querystring-parse.js n=1000000 type='altspaces'                                                                                           0.53 %       ±0.95% ±1.26% ±1.63%
 querystring/querystring-parse.js n=1000000 type='encodefake'                                                                                         -0.62 %       ±0.86% ±1.14% ±1.47%
 querystring/querystring-parse.js n=1000000 type='encodelast'                                                                                          0.13 %       ±0.89% ±1.18% ±1.52%
 querystring/querystring-parse.js n=1000000 type='encodemany'                                                                                         -0.19 %       ±0.82% ±1.09% ±1.41%
 querystring/querystring-parse.js n=1000000 type='manyblankpairs'                                                                               *      0.50 %       ±0.40% ±0.53% ±0.68%
 querystring/querystring-parse.js n=1000000 type='manypairs'                                                                                          -0.25 %       ±1.00% ±1.32% ±1.70%
 querystring/querystring-parse.js n=1000000 type='multicharsep'                                                                                        0.19 %       ±0.72% ±0.96% ±1.24%
 querystring/querystring-parse.js n=1000000 type='multivalue'                                                                                          0.38 %       ±0.76% ±1.00% ±1.30%
 querystring/querystring-parse.js n=1000000 type='multivaluemany'                                                                                     -0.16 %       ±0.83% ±1.10% ±1.43%
 querystring/querystring-parse.js n=1000000 type='noencode'                                                                                           -0.85 %       ±2.11% ±2.80% ±3.63%
 querystring/querystring-stringify.js n=10000000 type='encodelast'                                                                            ***    -10.25 %       ±0.31% ±0.41% ±0.53%
 querystring/querystring-stringify.js n=10000000 type='encodemany'                                                                            ***     -8.24 %       ±0.43% ±0.57% ±0.74%
 querystring/querystring-stringify.js n=10000000 type='noencode'                                                                              ***    -12.37 %       ±0.53% ±0.70% ±0.90%
 querystring/querystring-unescapebuffer.js n=10000000 input='%20%21%22%23%24%25%26%27%28%29%2A%2B%2C%2D%2E%2F%30%31%32%33%34%35%36%37'                -0.04 %       ±0.30% ±0.40% ±0.51%
 querystring/querystring-unescapebuffer.js n=10000000 input='there is nothing to unescape here'                                                        0.04 %       ±0.20% ±0.27% ±0.34%
 querystring/querystring-unescapebuffer.js n=10000000 input='there%20are%20several%20spaces%20that%20need%20to%20be%20unescaped'                      -0.35 %       ±0.39% ±0.52% ±0.68%
 querystring/querystring-unescapebuffer.js n=10000000 input='there%2Qare%0-fake%escaped values in%%%%this%9Hstring'                                   -0.30 %       ±0.56% ±0.74% ±0.95%

I'll revert changes for "querystring" and run benchmarks for "url"

@daynin daynin changed the title lib: remove duplicated code [WIP] lib: remove duplicated code Mar 3, 2018
@daynin
Copy link
Contributor Author

daynin commented Mar 3, 2018

I reverted changes for "querystring" module and ran benchmarks for "url" module only. Results:

                                                                                                   confidence improvement accuracy (*)   (**)  (***)
 url/legacy-vs-whatwg-url-get-prop.js n=100000 method='legacy' type='auth'                                          1.25 %       ±2.04% ±2.73% ±3.58%
 url/legacy-vs-whatwg-url-get-prop.js n=100000 method='legacy' type='dot'                                           1.02 %       ±1.75% ±2.33% ±3.04%
 url/legacy-vs-whatwg-url-get-prop.js n=100000 method='legacy' type='file'                                         -0.60 %       ±1.78% ±2.37% ±3.09%
 url/legacy-vs-whatwg-url-get-prop.js n=100000 method='legacy' type='idn'                                           1.51 %       ±1.84% ±2.45% ±3.20%
 url/legacy-vs-whatwg-url-get-prop.js n=100000 method='legacy' type='javascript'                                    0.30 %       ±1.49% ±1.98% ±2.57%
 url/legacy-vs-whatwg-url-get-prop.js n=100000 method='legacy' type='long'                                         -0.33 %       ±1.51% ±2.01% ±2.61%
 url/legacy-vs-whatwg-url-get-prop.js n=100000 method='legacy' type='percent'                                       0.98 %       ±1.68% ±2.24% ±2.91%
 url/legacy-vs-whatwg-url-get-prop.js n=100000 method='legacy' type='short'                                        -0.47 %       ±1.86% ±2.47% ±3.22%
 url/legacy-vs-whatwg-url-get-prop.js n=100000 method='legacy' type='ws'                                           -0.24 %       ±1.23% ±1.64% ±2.13%
 url/legacy-vs-whatwg-url-get-prop.js n=100000 method='whatwg' type='auth'                                          0.33 %       ±0.93% ±1.24% ±1.61%
 url/legacy-vs-whatwg-url-get-prop.js n=100000 method='whatwg' type='dot'                                           0.61 %       ±0.74% ±0.99% ±1.29%
 url/legacy-vs-whatwg-url-get-prop.js n=100000 method='whatwg' type='file'                                          0.68 %       ±1.04% ±1.39% ±1.81%
 url/legacy-vs-whatwg-url-get-prop.js n=100000 method='whatwg' type='idn'                                          -1.14 %       ±1.45% ±1.93% ±2.51%
 url/legacy-vs-whatwg-url-get-prop.js n=100000 method='whatwg' type='javascript'                             *      0.95 %       ±0.85% ±1.14% ±1.49%
 url/legacy-vs-whatwg-url-get-prop.js n=100000 method='whatwg' type='long'                                          0.18 %       ±0.65% ±0.86% ±1.12%
 url/legacy-vs-whatwg-url-get-prop.js n=100000 method='whatwg' type='percent'                                       0.71 %       ±1.32% ±1.75% ±2.28%
 url/legacy-vs-whatwg-url-get-prop.js n=100000 method='whatwg' type='short'                                        -0.66 %       ±1.11% ±1.48% ±1.93%
 url/legacy-vs-whatwg-url-get-prop.js n=100000 method='whatwg' type='ws'                                           -0.53 %       ±1.87% ±2.50% ±3.27%
 url/legacy-vs-whatwg-url-parse.js n=100000 method='legacy' type='auth'                                            -0.39 %       ±1.30% ±1.73% ±2.26%
 url/legacy-vs-whatwg-url-parse.js n=100000 method='legacy' type='dot'                                             -0.47 %       ±1.14% ±1.51% ±1.97%
 url/legacy-vs-whatwg-url-parse.js n=100000 method='legacy' type='file'                                             0.77 %       ±1.97% ±2.62% ±3.42%
 url/legacy-vs-whatwg-url-parse.js n=100000 method='legacy' type='idn'                                              0.02 %       ±2.45% ±3.26% ±4.25%
 url/legacy-vs-whatwg-url-parse.js n=100000 method='legacy' type='javascript'                                       0.07 %       ±0.35% ±0.46% ±0.60%
 url/legacy-vs-whatwg-url-parse.js n=100000 method='legacy' type='long'                                            -0.06 %       ±0.99% ±1.32% ±1.72%
 url/legacy-vs-whatwg-url-parse.js n=100000 method='legacy' type='percent'                                         -1.03 %       ±1.94% ±2.59% ±3.37%
 url/legacy-vs-whatwg-url-parse.js n=100000 method='legacy' type='short'                                           -1.07 %       ±1.65% ±2.20% ±2.87%
 url/legacy-vs-whatwg-url-parse.js n=100000 method='legacy' type='ws'                                              -0.45 %       ±1.44% ±1.92% ±2.50%
 url/legacy-vs-whatwg-url-parse.js n=100000 method='whatwg' type='auth'                                            -0.07 %       ±1.01% ±1.35% ±1.75%
 url/legacy-vs-whatwg-url-parse.js n=100000 method='whatwg' type='dot'                                             -0.62 %       ±1.28% ±1.71% ±2.25%
 url/legacy-vs-whatwg-url-parse.js n=100000 method='whatwg' type='file'                                            -0.37 %       ±0.73% ±0.97% ±1.27%
 url/legacy-vs-whatwg-url-parse.js n=100000 method='whatwg' type='idn'                                              0.83 %       ±0.98% ±1.31% ±1.72%
 url/legacy-vs-whatwg-url-parse.js n=100000 method='whatwg' type='javascript'                                *     -0.91 %       ±0.85% ±1.13% ±1.48%
 url/legacy-vs-whatwg-url-parse.js n=100000 method='whatwg' type='long'                                             0.17 %       ±0.60% ±0.80% ±1.05%
 url/legacy-vs-whatwg-url-parse.js n=100000 method='whatwg' type='percent'                                          1.70 %       ±1.99% ±2.66% ±3.49%
 url/legacy-vs-whatwg-url-parse.js n=100000 method='whatwg' type='short'                                           -0.14 %       ±1.00% ±1.34% ±1.75%
 url/legacy-vs-whatwg-url-parse.js n=100000 method='whatwg' type='ws'                                               0.40 %       ±0.98% ±1.30% ±1.70%
 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='legacy' type='altspaces'                         -0.10 %       ±0.97% ±1.29% ±1.68%
 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='legacy' type='encodefake'                        -0.39 %       ±1.39% ±1.85% ±2.41%
 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='legacy' type='encodelast'                        -0.42 %       ±1.01% ±1.34% ±1.74%
 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='legacy' type='encodemany'                         0.20 %       ±1.30% ±1.74% ±2.29%
 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='legacy' type='manyblankpairs'                    -0.11 %       ±0.63% ±0.84% ±1.09%
 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='legacy' type='manypairs'                          0.32 %       ±1.22% ±1.62% ±2.11%
 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='legacy' type='multicharsep'                       0.22 %       ±0.75% ±1.00% ±1.30%
 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='legacy' type='multivalue'                        -0.11 %       ±0.89% ±1.19% ±1.55%
 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='legacy' type='multivaluemany'                     0.13 %       ±1.22% ±1.63% ±2.12%
 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='legacy' type='noencode'                           0.38 %       ±0.76% ±1.01% ±1.32%
 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='whatwg' type='altspaces'                          0.61 %       ±1.15% ±1.55% ±2.05%
 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='whatwg' type='encodefake'                        -0.02 %       ±0.48% ±0.64% ±0.83%
 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='whatwg' type='encodelast'                         0.40 %       ±1.22% ±1.63% ±2.15%
 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='whatwg' type='encodemany'                        -0.02 %       ±0.79% ±1.05% ±1.38%
 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='whatwg' type='manyblankpairs'                     0.16 %       ±0.45% ±0.59% ±0.77%
 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='whatwg' type='manypairs'                          0.04 %       ±0.43% ±0.58% ±0.75%
 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='whatwg' type='multicharsep'                      -0.10 %       ±0.27% ±0.35% ±0.46%
 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='whatwg' type='multivalue'                        -0.28 %       ±0.41% ±0.54% ±0.71%
 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='whatwg' type='multivaluemany'                    -0.31 %       ±0.31% ±0.41% ±0.54%
 url/legacy-vs-whatwg-url-searchparams-parse.js n=1000000 method='whatwg' type='noencode'                          -0.01 %       ±0.38% ±0.50% ±0.65%
 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='legacy' type='altspaces'                     -0.09 %       ±0.58% ±0.77% ±1.00%
 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='legacy' type='encodefake'                     0.14 %       ±0.63% ±0.84% ±1.09%
 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='legacy' type='encodelast'                    -0.55 %       ±1.48% ±1.98% ±2.62%
 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='legacy' type='encodemany'                    -0.57 %       ±1.27% ±1.70% ±2.23%
 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='legacy' type='manyblankpairs'                 0.36 %       ±0.66% ±0.88% ±1.14%
 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='legacy' type='manypairs'                      0.34 %       ±0.82% ±1.09% ±1.43%
 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='legacy' type='multicharsep'                   0.08 %       ±0.47% ±0.63% ±0.83%
 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='legacy' type='multivalue'                    -0.28 %       ±0.92% ±1.23% ±1.60%
 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='legacy' type='multivaluemany'                 0.06 %       ±0.81% ±1.08% ±1.41%
 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='legacy' type='noencode'                       0.52 %       ±1.05% ±1.40% ±1.84%
 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='whatwg' type='altspaces'             ***      0.94 %       ±0.49% ±0.65% ±0.84%
 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='whatwg' type='encodefake'                     0.25 %       ±0.53% ±0.71% ±0.92%
 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='whatwg' type='encodelast'            ***     -2.00 %       ±0.69% ±0.92% ±1.21%
 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='whatwg' type='encodemany'            ***     -1.38 %       ±0.58% ±0.78% ±1.01%
 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='whatwg' type='manyblankpairs'                -0.24 %       ±1.40% ±1.87% ±2.43%
 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='whatwg' type='manypairs'             ***     -4.87 %       ±0.29% ±0.38% ±0.50%
 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='whatwg' type='multicharsep'          ***     -1.82 %       ±0.71% ±0.95% ±1.24%
 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='whatwg' type='multivalue'            ***     -2.51 %       ±0.85% ±1.13% ±1.46%
 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='whatwg' type='multivaluemany'        ***     -2.02 %       ±0.43% ±0.57% ±0.74%
 url/legacy-vs-whatwg-url-searchparams-serialize.js n=1000000 method='whatwg' type='noencode'              ***     -1.91 %       ±0.60% ±0.80% ±1.05%
 url/legacy-vs-whatwg-url-serialize.js n=100000 method='legacy' type='auth'                                 **      1.55 %       ±0.95% ±1.26% ±1.65%
 url/legacy-vs-whatwg-url-serialize.js n=100000 method='legacy' type='dot'                                         -0.59 %       ±0.66% ±0.88% ±1.15%
 url/legacy-vs-whatwg-url-serialize.js n=100000 method='legacy' type='file'                                        -0.14 %       ±0.45% ±0.60% ±0.78%
 url/legacy-vs-whatwg-url-serialize.js n=100000 method='legacy' type='idn'                                   *     -0.96 %       ±0.91% ±1.21% ±1.57%
 url/legacy-vs-whatwg-url-serialize.js n=100000 method='legacy' type='javascript'                                   0.16 %       ±0.44% ±0.58% ±0.75%
 url/legacy-vs-whatwg-url-serialize.js n=100000 method='legacy' type='long'                                        -0.04 %       ±0.26% ±0.35% ±0.45%
 url/legacy-vs-whatwg-url-serialize.js n=100000 method='legacy' type='percent'                                     -0.66 %       ±0.84% ±1.12% ±1.45%
 url/legacy-vs-whatwg-url-serialize.js n=100000 method='legacy' type='short'                                        0.80 %       ±0.95% ±1.27% ±1.65%
 url/legacy-vs-whatwg-url-serialize.js n=100000 method='legacy' type='ws'                                          -0.13 %       ±0.50% ±0.67% ±0.87%
 url/legacy-vs-whatwg-url-serialize.js n=100000 method='whatwg' type='auth'                                         0.52 %       ±1.30% ±1.73% ±2.26%
 url/legacy-vs-whatwg-url-serialize.js n=100000 method='whatwg' type='dot'                                         -0.45 %       ±1.17% ±1.56% ±2.05%
 url/legacy-vs-whatwg-url-serialize.js n=100000 method='whatwg' type='file'                                         0.17 %       ±0.82% ±1.09% ±1.43%
 url/legacy-vs-whatwg-url-serialize.js n=100000 method='whatwg' type='idn'                                         -0.17 %       ±1.01% ±1.35% ±1.76%
 url/legacy-vs-whatwg-url-serialize.js n=100000 method='whatwg' type='javascript'                                  -1.14 %       ±1.37% ±1.82% ±2.37%
 url/legacy-vs-whatwg-url-serialize.js n=100000 method='whatwg' type='long'                                        -0.32 %       ±0.75% ±1.00% ±1.31%
 url/legacy-vs-whatwg-url-serialize.js n=100000 method='whatwg' type='percent'                                     -0.24 %       ±1.57% ±2.09% ±2.72%
 url/legacy-vs-whatwg-url-serialize.js n=100000 method='whatwg' type='short'                                       -0.40 %       ±1.04% ±1.39% ±1.82%
 url/legacy-vs-whatwg-url-serialize.js n=100000 method='whatwg' type='ws'                                           0.29 %       ±1.10% ±1.47% ±1.91%
 url/url-format.js n=25000000 type='file'                                                                           0.08 %       ±0.21% ±0.28% ±0.37%
 url/url-format.js n=25000000 type='slashes'                                                                       -0.06 %       ±0.14% ±0.19% ±0.25%
 url/url-parse.js n=10000000 type='escaped'                                                                         1.10 %       ±1.53% ±2.05% ±2.69%
 url/url-parse.js n=10000000 type='normal'                                                                          1.47 %       ±1.86% ±2.48% ±3.23%
 url/url-resolve.js n=100000 path='down' href='auth'                                                               -0.70 %       ±1.97% ±2.62% ±3.42%
 url/url-resolve.js n=100000 path='down' href='dot'                                                                -0.93 %       ±1.42% ±1.90% ±2.47%
 url/url-resolve.js n=100000 path='down' href='file'                                                                0.66 %       ±1.31% ±1.74% ±2.27%
 url/url-resolve.js n=100000 path='down' href='idn'                                                                 2.12 %       ±2.16% ±2.88% ±3.75%
 url/url-resolve.js n=100000 path='down' href='javascript'                                                   *      1.15 %       ±0.90% ±1.20% ±1.57%
 url/url-resolve.js n=100000 path='down' href='long'                                                               -0.61 %       ±1.20% ±1.61% ±2.10%
 url/url-resolve.js n=100000 path='down' href='noscheme'                                                            0.27 %       ±0.77% ±1.03% ±1.34%
 url/url-resolve.js n=100000 path='down' href='percent'                                                            -0.84 %       ±1.69% ±2.25% ±2.92%
 url/url-resolve.js n=100000 path='down' href='short'                                                              -0.21 %       ±1.83% ±2.43% ±3.17%
 url/url-resolve.js n=100000 path='down' href='ws'                                                                  0.21 %       ±1.76% ±2.35% ±3.05%
 url/url-resolve.js n=100000 path='foo/bar' href='auth'                                                            -0.33 %       ±1.93% ±2.57% ±3.35%
 url/url-resolve.js n=100000 path='foo/bar' href='dot'                                                             -0.89 %       ±1.87% ±2.49% ±3.25%
 url/url-resolve.js n=100000 path='foo/bar' href='file'                                                             0.07 %       ±1.18% ±1.56% ±2.04%
 url/url-resolve.js n=100000 path='foo/bar' href='idn'                                                              0.44 %       ±1.66% ±2.21% ±2.88%
 url/url-resolve.js n=100000 path='foo/bar' href='javascript'                                                       0.25 %       ±1.28% ±1.70% ±2.21%
 url/url-resolve.js n=100000 path='foo/bar' href='long'                                                             0.11 %       ±1.10% ±1.47% ±1.92%
 url/url-resolve.js n=100000 path='foo/bar' href='noscheme'                                                        -0.02 %       ±1.22% ±1.63% ±2.12%
 url/url-resolve.js n=100000 path='foo/bar' href='percent'                                                         -1.08 %       ±1.38% ±1.84% ±2.40%
 url/url-resolve.js n=100000 path='foo/bar' href='short'                                                            0.23 %       ±1.82% ±2.43% ±3.16%
 url/url-resolve.js n=100000 path='foo/bar' href='ws'                                                               0.48 %       ±1.80% ±2.40% ±3.14%
 url/url-resolve.js n=100000 path='sibling' href='auth'                                                            -0.51 %       ±1.76% ±2.34% ±3.05%
 url/url-resolve.js n=100000 path='sibling' href='dot'                                                              0.60 %       ±1.98% ±2.65% ±3.46%
 url/url-resolve.js n=100000 path='sibling' href='file'                                                             0.32 %       ±1.41% ±1.88% ±2.44%
 url/url-resolve.js n=100000 path='sibling' href='idn'                                                             -0.93 %       ±2.47% ±3.29% ±4.31%
 url/url-resolve.js n=100000 path='sibling' href='javascript'                                                       0.54 %       ±1.54% ±2.05% ±2.67%
 url/url-resolve.js n=100000 path='sibling' href='long'                                                             0.85 %       ±1.37% ±1.83% ±2.39%
 url/url-resolve.js n=100000 path='sibling' href='noscheme'                                                         0.03 %       ±1.07% ±1.43% ±1.86%
 url/url-resolve.js n=100000 path='sibling' href='percent'                                                         -0.89 %       ±1.39% ±1.85% ±2.41%
 url/url-resolve.js n=100000 path='sibling' href='short'                                                           -2.07 %       ±2.19% ±2.92% ±3.82%
 url/url-resolve.js n=100000 path='sibling' href='ws'                                                              -0.76 %       ±1.59% ±2.12% ±2.77%
 url/url-resolve.js n=100000 path='up' href='auth'                                                                 -0.59 %       ±1.97% ±2.63% ±3.42%
 url/url-resolve.js n=100000 path='up' href='dot'                                                                   0.39 %       ±1.86% ±2.48% ±3.24%
 url/url-resolve.js n=100000 path='up' href='file'                                                           *     -1.99 %       ±1.79% ±2.40% ±3.16%
 url/url-resolve.js n=100000 path='up' href='idn'                                                            *     -2.35 %       ±1.79% ±2.38% ±3.10%
 url/url-resolve.js n=100000 path='up' href='javascript'                                                            0.26 %       ±1.30% ±1.73% ±2.25%
 url/url-resolve.js n=100000 path='up' href='long'                                                                 -0.51 %       ±0.99% ±1.32% ±1.71%
 url/url-resolve.js n=100000 path='up' href='noscheme'                                                             -0.30 %       ±1.16% ±1.55% ±2.03%
 url/url-resolve.js n=100000 path='up' href='percent'                                                               0.86 %       ±1.76% ±2.34% ±3.06%
 url/url-resolve.js n=100000 path='up' href='short'                                                                 1.99 %       ±2.16% ±2.88% ±3.76%
 url/url-resolve.js n=100000 path='up' href='ws'                                                                    0.28 %       ±1.14% ±1.52% ±1.98%
 url/url-resolve.js n=100000 path='withscheme' href='auth'                                                         -1.07 %       ±1.71% ±2.27% ±2.96%
 url/url-resolve.js n=100000 path='withscheme' href='dot'                                                           0.15 %       ±1.60% ±2.13% ±2.77%
 url/url-resolve.js n=100000 path='withscheme' href='file'                                                          0.67 %       ±1.84% ±2.46% ±3.22%
 url/url-resolve.js n=100000 path='withscheme' href='idn'                                                           0.63 %       ±2.08% ±2.78% ±3.62%
 url/url-resolve.js n=100000 path='withscheme' href='javascript'                                                    0.50 %       ±1.32% ±1.76% ±2.30%
 url/url-resolve.js n=100000 path='withscheme' href='long'                                                          0.09 %       ±1.07% ±1.43% ±1.86%
 url/url-resolve.js n=100000 path='withscheme' href='noscheme'                                                     -0.41 %       ±0.85% ±1.12% ±1.46%
 url/url-resolve.js n=100000 path='withscheme' href='percent'                                                      -0.18 %       ±2.04% ±2.72% ±3.54%
 url/url-resolve.js n=100000 path='withscheme' href='short'                                                         0.06 %       ±1.65% ±2.20% ±2.87%
 url/url-resolve.js n=100000 path='withscheme' href='ws'                                                           -0.18 %       ±1.00% ±1.33% ±1.73%
 url/url-searchparams-iteration.js n=1000000 method='forEach'                                                       0.05 %       ±0.37% ±0.49% ±0.64%
 url/url-searchparams-iteration.js n=1000000 method='iterator'                                                     -1.34 %       ±2.16% ±2.87% ±3.73%
 url/url-searchparams-read.js n=20000000 param='nonexistent' method='get'                                          -0.04 %       ±0.17% ±0.23% ±0.30%
 url/url-searchparams-read.js n=20000000 param='nonexistent' method='getAll'                                        0.15 %       ±1.01% ±1.35% ±1.75%
 url/url-searchparams-read.js n=20000000 param='nonexistent' method='has'                                           0.02 %       ±0.14% ±0.19% ±0.24%
 url/url-searchparams-read.js n=20000000 param='one' method='get'                                                  -0.08 %       ±0.18% ±0.23% ±0.31%
 url/url-searchparams-read.js n=20000000 param='one' method='getAll'                                               -0.04 %       ±0.38% ±0.51% ±0.66%
 url/url-searchparams-read.js n=20000000 param='one' method='has'                                                  -0.10 %       ±0.15% ±0.20% ±0.26%
 url/url-searchparams-read.js n=20000000 param='three' method='get'                                                 0.18 %       ±0.21% ±0.28% ±0.36%
 url/url-searchparams-read.js n=20000000 param='three' method='getAll'                                              0.14 %       ±0.41% ±0.54% ±0.70%
 url/url-searchparams-read.js n=20000000 param='three' method='has'                                                 0.05 %       ±0.26% ±0.35% ±0.46%
 url/url-searchparams-read.js n=20000000 param='two' method='get'                                                  -0.02 %       ±0.23% ±0.30% ±0.40%
 url/url-searchparams-read.js n=20000000 param='two' method='getAll'                                                0.22 %       ±0.43% ±0.57% ±0.75%
 url/url-searchparams-read.js n=20000000 param='two' method='has'                                                   0.16 %       ±0.22% ±0.29% ±0.37%
 url/url-searchparams-sort.js n=1000000 type='almostsorted'                                                         0.46 %       ±1.15% ±1.53% ±1.99%
 url/url-searchparams-sort.js n=1000000 type='empty'                                                                0.34 %       ±1.67% ±2.22% ±2.90%
 url/url-searchparams-sort.js n=1000000 type='long'                                                                 0.11 %       ±0.25% ±0.33% ±0.43%
 url/url-searchparams-sort.js n=1000000 type='random'                                                              -0.11 %       ±0.15% ±0.20% ±0.26%
 url/url-searchparams-sort.js n=1000000 type='reversed'                                                             0.11 %       ±0.21% ±0.28% ±0.37%
 url/url-searchparams-sort.js n=1000000 type='short'                                                         *      0.61 %       ±0.51% ±0.68% ±0.89%
 url/url-searchparams-sort.js n=1000000 type='sorted'                                                               0.24 %       ±0.98% ±1.31% ±1.71%
 url/usvstring.js n=50000000 input='allinvalid'                                                                     0.50 %       ±1.08% ±1.45% ±1.93%
 url/usvstring.js n=50000000 input='nonstring'                                                                      0.26 %       ±3.47% ±4.62% ±6.01%
 url/usvstring.js n=50000000 input='someinvalid'                                                                    0.15 %       ±1.31% ±1.75% ±2.28%
 url/usvstring.js n=50000000 input='valid'                                                                          0.04 %       ±0.13% ±0.17% ±0.22%
 url/usvstring.js n=50000000 input='validsurr'                                                                      0.00 %       ±0.11% ±0.14% ±0.18%
 url/whatwg-url-idna.js n=5000000 to='ascii' input='all'                                                           -0.02 %       ±0.35% ±0.47% ±0.61%
 url/whatwg-url-idna.js n=5000000 to='ascii' input='empty'                                                         -0.06 %       ±0.32% ±0.43% ±0.56%
 url/whatwg-url-idna.js n=5000000 to='ascii' input='none'                                                           0.16 %       ±0.46% ±0.61% ±0.80%
 url/whatwg-url-idna.js n=5000000 to='ascii' input='nonstring'                                                     -0.20 %       ±0.36% ±0.49% ±0.64%
 url/whatwg-url-idna.js n=5000000 to='ascii' input='some'                                                          -0.45 %       ±0.46% ±0.62% ±0.81%
 url/whatwg-url-idna.js n=5000000 to='unicode' input='all'                                                         -0.01 %       ±0.21% ±0.28% ±0.37%
 url/whatwg-url-idna.js n=5000000 to='unicode' input='empty'                                                        0.23 %       ±0.34% ±0.45% ±0.58%
 url/whatwg-url-idna.js n=5000000 to='unicode' input='none'                                                        -0.07 %       ±0.30% ±0.40% ±0.51%
 url/whatwg-url-idna.js n=5000000 to='unicode' input='nonstring'                                                    0.31 %       ±0.48% ±0.65% ±0.85%
 url/whatwg-url-idna.js n=5000000 to='unicode' input='some'                                                         0.23 %       ±0.41% ±0.55% ±0.71%
 url/whatwg-url-properties.js n=300000 prop='hash' input='auth'                                                    -0.61 %       ±1.43% ±1.90% ±2.47%
 url/whatwg-url-properties.js n=300000 prop='hash' input='dot'                                                      0.02 %       ±1.43% ±1.90% ±2.47%
 url/whatwg-url-properties.js n=300000 prop='hash' input='file'                                                    -0.72 %       ±1.80% ±2.40% ±3.13%
 url/whatwg-url-properties.js n=300000 prop='hash' input='idn'                                                     -0.08 %       ±1.43% ±1.90% ±2.47%
 url/whatwg-url-properties.js n=300000 prop='hash' input='javascript'                                              -0.45 %       ±1.40% ±1.86% ±2.43%
 url/whatwg-url-properties.js n=300000 prop='hash' input='long'                                                     0.19 %       ±1.11% ±1.48% ±1.93%
 url/whatwg-url-properties.js n=300000 prop='hash' input='percent'                                                 -0.32 %       ±1.48% ±1.97% ±2.56%
 url/whatwg-url-properties.js n=300000 prop='hash' input='short'                                                    0.59 %       ±1.35% ±1.79% ±2.33%
 url/whatwg-url-properties.js n=300000 prop='hash' input='ws'                                                       0.35 %       ±1.52% ±2.02% ±2.63%
 url/whatwg-url-properties.js n=300000 prop='host' input='auth'                                                    -0.16 %       ±1.41% ±1.88% ±2.45%
 url/whatwg-url-properties.js n=300000 prop='host' input='dot'                                                     -0.10 %       ±1.18% ±1.58% ±2.06%
 url/whatwg-url-properties.js n=300000 prop='host' input='file'                                                     0.09 %       ±0.94% ±1.26% ±1.64%
 url/whatwg-url-properties.js n=300000 prop='host' input='idn'                                                     -0.95 %       ±1.10% ±1.46% ±1.91%
 url/whatwg-url-properties.js n=300000 prop='host' input='javascript'                                              -0.83 %       ±1.84% ±2.45% ±3.20%
 url/whatwg-url-properties.js n=300000 prop='host' input='long'                                                     0.25 %       ±1.42% ±1.89% ±2.46%
 url/whatwg-url-properties.js n=300000 prop='host' input='percent'                                                 -0.15 %       ±1.47% ±1.96% ±2.55%
 url/whatwg-url-properties.js n=300000 prop='host' input='short'                                                   -0.74 %       ±1.20% ±1.59% ±2.08%
 url/whatwg-url-properties.js n=300000 prop='host' input='ws'                                                      -0.71 %       ±1.15% ±1.54% ±2.00%
 url/whatwg-url-properties.js n=300000 prop='hostname' input='auth'                                                -0.56 %       ±1.28% ±1.70% ±2.22%
 url/whatwg-url-properties.js n=300000 prop='hostname' input='dot'                                                  0.36 %       ±1.04% ±1.39% ±1.80%
 url/whatwg-url-properties.js n=300000 prop='hostname' input='file'                                          *     -1.09 %       ±0.89% ±1.19% ±1.54%
 url/whatwg-url-properties.js n=300000 prop='hostname' input='idn'                                                  0.60 %       ±1.08% ±1.44% ±1.87%
 url/whatwg-url-properties.js n=300000 prop='hostname' input='javascript'                                          -0.08 %       ±1.73% ±2.30% ±2.99%
 url/whatwg-url-properties.js n=300000 prop='hostname' input='long'                                                -0.88 %       ±1.16% ±1.54% ±2.01%
 url/whatwg-url-properties.js n=300000 prop='hostname' input='percent'                                             -0.17 %       ±1.22% ±1.62% ±2.11%
 url/whatwg-url-properties.js n=300000 prop='hostname' input='short'                                               -0.87 %       ±1.27% ±1.69% ±2.20%
 url/whatwg-url-properties.js n=300000 prop='hostname' input='ws'                                                   0.75 %       ±1.26% ±1.68% ±2.19%
 url/whatwg-url-properties.js n=300000 prop='href' input='auth'                                                     0.33 %       ±1.56% ±2.08% ±2.71%
 url/whatwg-url-properties.js n=300000 prop='href' input='dot'                                                     -1.39 %       ±1.93% ±2.57% ±3.35%
 url/whatwg-url-properties.js n=300000 prop='href' input='file'                                                    -0.46 %       ±1.38% ±1.84% ±2.39%
 url/whatwg-url-properties.js n=300000 prop='href' input='idn'                                                      0.03 %       ±1.06% ±1.42% ±1.84%
 url/whatwg-url-properties.js n=300000 prop='href' input='javascript'                                              -0.51 %       ±1.36% ±1.81% ±2.36%
 url/whatwg-url-properties.js n=300000 prop='href' input='long'                                                     0.88 %       ±1.51% ±2.01% ±2.62%
 url/whatwg-url-properties.js n=300000 prop='href' input='percent'                                                 -0.64 %       ±2.30% ±3.06% ±4.00%
 url/whatwg-url-properties.js n=300000 prop='href' input='short'                                                   -0.80 %       ±1.65% ±2.20% ±2.86%
 url/whatwg-url-properties.js n=300000 prop='href' input='ws'                                                      -0.83 %       ±1.66% ±2.21% ±2.89%
 url/whatwg-url-properties.js n=300000 prop='origin' input='auth'                                                  -0.51 %       ±0.92% ±1.22% ±1.59%
 url/whatwg-url-properties.js n=300000 prop='origin' input='dot'                                                   -0.27 %       ±1.14% ±1.52% ±1.98%
 url/whatwg-url-properties.js n=300000 prop='origin' input='file'                                                  -0.24 %       ±0.81% ±1.08% ±1.40%
 url/whatwg-url-properties.js n=300000 prop='origin' input='idn'                                                   -0.47 %       ±1.06% ±1.41% ±1.84%
 url/whatwg-url-properties.js n=300000 prop='origin' input='javascript'                                             1.01 %       ±1.12% ±1.49% ±1.94%
 url/whatwg-url-properties.js n=300000 prop='origin' input='long'                                                   0.00 %       ±0.86% ±1.14% ±1.49%
 url/whatwg-url-properties.js n=300000 prop='origin' input='percent'                                                0.40 %       ±1.33% ±1.78% ±2.32%
 url/whatwg-url-properties.js n=300000 prop='origin' input='short'                                                 -0.50 %       ±1.12% ±1.49% ±1.94%
 url/whatwg-url-properties.js n=300000 prop='origin' input='ws'                                                     0.26 %       ±1.10% ±1.47% ±1.91%
 url/whatwg-url-properties.js n=300000 prop='password' input='auth'                                                -0.77 %       ±1.59% ±2.12% ±2.76%
 url/whatwg-url-properties.js n=300000 prop='password' input='dot'                                                 -1.77 %       ±2.05% ±2.74% ±3.57%
 url/whatwg-url-properties.js n=300000 prop='password' input='file'                                                 0.81 %       ±1.19% ±1.58% ±2.06%
 url/whatwg-url-properties.js n=300000 prop='password' input='idn'                                                  0.90 %       ±1.41% ±1.89% ±2.48%
 url/whatwg-url-properties.js n=300000 prop='password' input='javascript'                                          -0.18 %       ±1.37% ±1.83% ±2.38%
 url/whatwg-url-properties.js n=300000 prop='password' input='long'                                                -0.31 %       ±1.30% ±1.74% ±2.26%
 url/whatwg-url-properties.js n=300000 prop='password' input='percent'                                             -0.09 %       ±1.59% ±2.12% ±2.78%
 url/whatwg-url-properties.js n=300000 prop='password' input='short'                                               -1.77 %       ±3.63% ±4.86% ±6.41%
 url/whatwg-url-properties.js n=300000 prop='password' input='ws'                                            *     -1.40 %       ±1.23% ±1.64% ±2.13%
 url/whatwg-url-properties.js n=300000 prop='pathname' input='auth'                                                 0.86 %       ±1.30% ±1.73% ±2.25%
 url/whatwg-url-properties.js n=300000 prop='pathname' input='dot'                                                 -1.19 %       ±1.55% ±2.06% ±2.69%
 url/whatwg-url-properties.js n=300000 prop='pathname' input='file'                                                -0.18 %       ±1.21% ±1.61% ±2.09%
 url/whatwg-url-properties.js n=300000 prop='pathname' input='idn'                                                 -1.19 %       ±1.64% ±2.19% ±2.86%
 url/whatwg-url-properties.js n=300000 prop='pathname' input='javascript'                                          -0.83 %       ±2.18% ±2.90% ±3.77%
 url/whatwg-url-properties.js n=300000 prop='pathname' input='long'                                                -0.12 %       ±1.16% ±1.54% ±2.00%
 url/whatwg-url-properties.js n=300000 prop='pathname' input='percent'                                              0.46 %       ±1.14% ±1.52% ±1.98%
 url/whatwg-url-properties.js n=300000 prop='pathname' input='short'                                               -0.66 %       ±1.60% ±2.13% ±2.77%
 url/whatwg-url-properties.js n=300000 prop='pathname' input='ws'                                                  -0.27 %       ±1.32% ±1.76% ±2.29%
 url/whatwg-url-properties.js n=300000 prop='port' input='auth'                                                    -0.02 %       ±1.14% ±1.51% ±1.97%
 url/whatwg-url-properties.js n=300000 prop='port' input='dot'                                                      0.77 %       ±1.56% ±2.08% ±2.72%
 url/whatwg-url-properties.js n=300000 prop='port' input='file'                                                     0.96 %       ±1.74% ±2.32% ±3.02%
 url/whatwg-url-properties.js n=300000 prop='port' input='idn'                                                      0.18 %       ±1.53% ±2.04% ±2.66%
 url/whatwg-url-properties.js n=300000 prop='port' input='javascript'                                        *     -2.18 %       ±1.97% ±2.64% ±3.46%
 url/whatwg-url-properties.js n=300000 prop='port' input='long'                                                     0.98 %       ±1.25% ±1.66% ±2.16%
 url/whatwg-url-properties.js n=300000 prop='port' input='percent'                                                 -1.43 %       ±1.87% ±2.50% ±3.27%
 url/whatwg-url-properties.js n=300000 prop='port' input='short'                                                   -0.62 %       ±1.86% ±2.49% ±3.27%
 url/whatwg-url-properties.js n=300000 prop='port' input='ws'                                                       0.94 %       ±1.46% ±1.94% ±2.53%
 url/whatwg-url-properties.js n=300000 prop='protocol' input='auth'                                                 0.43 %       ±1.16% ±1.54% ±2.01%
 url/whatwg-url-properties.js n=300000 prop='protocol' input='dot'                                                  0.13 %       ±1.48% ±1.97% ±2.56%
 url/whatwg-url-properties.js n=300000 prop='protocol' input='file'                                                 0.91 %       ±2.42% ±3.22% ±4.21%
 url/whatwg-url-properties.js n=300000 prop='protocol' input='idn'                                                  0.24 %       ±1.32% ±1.76% ±2.30%
 url/whatwg-url-properties.js n=300000 prop='protocol' input='javascript'                                           0.33 %       ±1.42% ±1.89% ±2.46%
 url/whatwg-url-properties.js n=300000 prop='protocol' input='long'                                                 0.16 %       ±1.52% ±2.02% ±2.64%
 url/whatwg-url-properties.js n=300000 prop='protocol' input='percent'                                             -0.11 %       ±1.17% ±1.55% ±2.02%
 url/whatwg-url-properties.js n=300000 prop='protocol' input='short'                                                0.39 %       ±1.10% ±1.46% ±1.90%
 url/whatwg-url-properties.js n=300000 prop='protocol' input='ws'                                                  -0.19 %       ±1.70% ±2.27% ±2.95%
 url/whatwg-url-properties.js n=300000 prop='search' input='auth'                                          ***     -2.30 %       ±1.13% ±1.51% ±1.98%
 url/whatwg-url-properties.js n=300000 prop='search' input='dot'                                                   -0.57 %       ±1.43% ±1.90% ±2.48%
 url/whatwg-url-properties.js n=300000 prop='search' input='file'                                                  -0.37 %       ±1.55% ±2.06% ±2.69%
 url/whatwg-url-properties.js n=300000 prop='search' input='idn'                                                   -0.85 %       ±1.39% ±1.85% ±2.41%
 url/whatwg-url-properties.js n=300000 prop='search' input='javascript'                                            -0.48 %       ±1.34% ±1.78% ±2.32%
 url/whatwg-url-properties.js n=300000 prop='search' input='long'                                                   0.26 %       ±1.29% ±1.72% ±2.24%
 url/whatwg-url-properties.js n=300000 prop='search' input='percent'                                                0.79 %       ±1.77% ±2.37% ±3.09%
 url/whatwg-url-properties.js n=300000 prop='search' input='short'                                                  1.09 %       ±1.45% ±1.94% ±2.53%
 url/whatwg-url-properties.js n=300000 prop='search' input='ws'                                                     0.36 %       ±1.51% ±2.01% ±2.62%
 url/whatwg-url-properties.js n=300000 prop='searchParams' input='auth'                                             1.06 %       ±1.39% ±1.85% ±2.41%
 url/whatwg-url-properties.js n=300000 prop='searchParams' input='dot'                                       *      1.77 %       ±1.46% ±1.95% ±2.55%
 url/whatwg-url-properties.js n=300000 prop='searchParams' input='file'                                            -0.81 %       ±2.22% ±2.96% ±3.86%
 url/whatwg-url-properties.js n=300000 prop='searchParams' input='idn'                                              1.57 %       ±1.75% ±2.32% ±3.03%
 url/whatwg-url-properties.js n=300000 prop='searchParams' input='javascript'                                      -0.23 %       ±1.32% ±1.75% ±2.28%
 url/whatwg-url-properties.js n=300000 prop='searchParams' input='long'                                            -0.25 %       ±1.40% ±1.86% ±2.42%
 url/whatwg-url-properties.js n=300000 prop='searchParams' input='percent'                                         -0.16 %       ±1.68% ±2.24% ±2.93%
 url/whatwg-url-properties.js n=300000 prop='searchParams' input='short'                                            0.25 %       ±1.47% ±1.95% ±2.54%
 url/whatwg-url-properties.js n=300000 prop='searchParams' input='ws'                                              -0.69 %       ±1.63% ±2.17% ±2.84%
 url/whatwg-url-properties.js n=300000 prop='username' input='auth'                                                 1.33 %       ±2.75% ±3.67% ±4.80%
 url/whatwg-url-properties.js n=300000 prop='username' input='dot'                                                  0.48 %       ±1.00% ±1.33% ±1.73%
 url/whatwg-url-properties.js n=300000 prop='username' input='file'                                                -0.88 %       ±1.32% ±1.76% ±2.30%
 url/whatwg-url-properties.js n=300000 prop='username' input='idn'                                                  0.22 %       ±1.67% ±2.22% ±2.91%
 url/whatwg-url-properties.js n=300000 prop='username' input='javascript'                                           0.74 %       ±1.73% ±2.31% ±3.02%
 url/whatwg-url-properties.js n=300000 prop='username' input='long'                                          *      1.91 %       ±1.59% ±2.12% ±2.76%
 url/whatwg-url-properties.js n=300000 prop='username' input='percent'                                             -0.82 %       ±1.40% ±1.87% ±2.46%
 url/whatwg-url-properties.js n=300000 prop='username' input='short'                                                0.10 %       ±1.07% ±1.43% ±1.86%
 url/whatwg-url-properties.js n=300000 prop='username' input='ws'                                                   1.41 %       ±1.57% ±2.09% ±2.74%

Looks like these changes make the code a little bit slower, what do you think about it?

@daynin daynin changed the title [WIP] lib: remove duplicated code lib: remove duplicated code Mar 3, 2018
@BridgeAR
Copy link
Member

BridgeAR commented Mar 6, 2018

@BridgeAR BridgeAR added the author ready PRs that have at least one approval, no pending requests for changes, and a CI started. label Mar 6, 2018
@addaleax
Copy link
Member

@daynin Do you have an opinion on whether this PR should land, given your benchmark results? If yes, this could land as it is, I think.

@daynin
Copy link
Contributor Author

daynin commented Mar 11, 2018

@addaleax yeah, I think it should land if nobody has any objections

@addaleax
Copy link
Member

Landed in f32796f, 38bae5d 🎉

@addaleax addaleax closed this Mar 23, 2018
@addaleax addaleax removed the author ready PRs that have at least one approval, no pending requests for changes, and a CI started. label Mar 23, 2018
addaleax pushed a commit that referenced this pull request Mar 23, 2018
PR-URL: #19076
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
addaleax pushed a commit that referenced this pull request Mar 23, 2018
PR-URL: #19076
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
targos pushed a commit that referenced this pull request Mar 30, 2018
PR-URL: #19076
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
targos pushed a commit that referenced this pull request Mar 30, 2018
PR-URL: #19076
Reviewed-By: Ruben Bridgewater <ruben@bridgewater.de>
@targos targos mentioned this pull request Apr 4, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
lib / src Issues and PRs related to general changes in the lib or src directory.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants