Skip to content

Conversation

@BridgeAR
Copy link
Member

This makes sure that the toStringTag symbol is used, if available instead of calculating the toString() value each time, if not needed (the type checks make a brand check, so there is no need to check the toStringTag, if non is defined on the object).

This makes sure that the toStringTag symbol is used, if available
instead of calculating the toString() value each time, if not
needed (the type checks make a brand check, so there is no need to
check the toStringTag, if non is defined on the object).
@BridgeAR BridgeAR added needs-ci PRs that need a full CI run. needs-benchmark-ci PR that need a benchmark CI run. labels Dec 26, 2025
@nodejs-github-bot nodejs-github-bot added the util Issues and PRs related to the built-in util module. label Dec 26, 2025
@BridgeAR
Copy link
Member Author

Local benchmark

                                                                                                               confidence improvement accuracy (*)    (**)   (***)
assert/deepequal-buffer.js method='deepEqual' arrayBuffer=0 strict=0 len=100 n=20000                                  ***     48.99 %       ±4.18%  ±5.62%  ±7.42%
assert/deepequal-buffer.js method='deepEqual' arrayBuffer=0 strict=0 len=1000 n=20000                                 ***     45.90 %       ±1.55%  ±2.06%  ±2.69%
assert/deepequal-buffer.js method='deepEqual' arrayBuffer=0 strict=1 len=100 n=20000                                  ***     54.26 %       ±2.29%  ±3.05%  ±3.97%
assert/deepequal-buffer.js method='deepEqual' arrayBuffer=0 strict=1 len=1000 n=20000                                 ***     47.73 %       ±1.85%  ±2.47%  ±3.24%
assert/deepequal-buffer.js method='deepEqual' arrayBuffer=1 strict=0 len=100 n=20000                                  ***     42.36 %       ±2.36%  ±3.14%  ±4.09%
assert/deepequal-buffer.js method='deepEqual' arrayBuffer=1 strict=0 len=1000 n=20000                                 ***     38.90 %       ±1.57%  ±2.09%  ±2.72%
assert/deepequal-buffer.js method='deepEqual' arrayBuffer=1 strict=1 len=100 n=20000                                  ***     29.63 %       ±2.28%  ±3.03%  ±3.95%
assert/deepequal-buffer.js method='deepEqual' arrayBuffer=1 strict=1 len=1000 n=20000                                 ***     29.96 %       ±1.70%  ±2.27%  ±2.97%
assert/deepequal-buffer.js method='notDeepEqual' arrayBuffer=0 strict=1 len=100 n=20000                               ***     85.79 %       ±4.70%  ±6.31%  ±8.34%
assert/deepequal-buffer.js method='notDeepEqual' arrayBuffer=0 strict=1 len=1000 n=20000                              ***     82.80 %       ±2.61%  ±3.50%  ±4.60%
assert/deepequal-buffer.js method='notDeepEqual' arrayBuffer=1 strict=1 len=100 n=20000                               ***     41.99 %       ±2.29%  ±3.05%  ±3.98%
assert/deepequal-buffer.js method='notDeepEqual' arrayBuffer=1 strict=1 len=1000 n=20000                              ***     38.12 %       ±2.77%  ±3.69%  ±4.80%
assert/deepequal-buffer.js method='partial' arrayBuffer=0 strict=1 len=100 n=20000                                    ***     66.92 %       ±5.53%  ±7.44%  ±9.84%
assert/deepequal-buffer.js method='partial' arrayBuffer=0 strict=1 len=1000 n=20000                                   ***     57.42 %       ±1.69%  ±2.25%  ±2.95%
assert/deepequal-buffer.js method='partial' arrayBuffer=1 strict=1 len=100 n=20000                                    ***     37.02 %       ±1.48%  ±1.97%  ±2.57%
assert/deepequal-buffer.js method='partial' arrayBuffer=1 strict=1 len=1000 n=20000                                   ***     36.01 %       ±1.90%  ±2.52%  ±3.29%
assert/deepequal-buffer.js method='unequal_length' arrayBuffer=0 strict=1 len=100 n=20000                             ***    111.30 %       ±3.31%  ±4.42%  ±5.78%
assert/deepequal-buffer.js method='unequal_length' arrayBuffer=0 strict=1 len=1000 n=20000                            ***    110.24 %       ±2.73%  ±3.64%  ±4.77%
assert/deepequal-buffer.js method='unequal_length' arrayBuffer=1 strict=1 len=100 n=20000                             ***     77.52 %       ±2.90%  ±3.87%  ±5.06%
assert/deepequal-buffer.js method='unequal_length' arrayBuffer=1 strict=1 len=1000 n=20000                            ***     76.98 %       ±2.52%  ±3.37%  ±4.42%
assert/deepequal-map.js method='deepEqual_mixed' strict=0 len=500 n=2000                                              ***      7.03 %       ±3.18%  ±4.27%  ±5.66%
assert/deepequal-map.js method='deepEqual_mixed' strict=1 len=500 n=2000                                               **      5.07 %       ±3.22%  ±4.33%  ±5.73%
assert/deepequal-map.js method='deepEqual_objectOnly' strict=0 len=500 n=2000                                         ***      7.21 %       ±1.01%  ±1.34%  ±1.75%
assert/deepequal-map.js method='deepEqual_objectOnly' strict=1 len=500 n=2000                                         ***      6.18 %       ±1.48%  ±1.98%  ±2.61%
assert/deepequal-map.js method='deepEqual_primitiveOnly' strict=0 len=500 n=2000                                               1.88 %       ±3.08%  ±4.13%  ±5.44%
assert/deepequal-map.js method='deepEqual_primitiveOnly' strict=1 len=500 n=2000                                               0.86 %       ±1.60%  ±2.13%  ±2.78%
assert/deepequal-map.js method='notDeepEqual_mixed' strict=0 len=500 n=2000                                           ***      7.05 %       ±3.51%  ±4.68%  ±6.11%
assert/deepequal-map.js method='notDeepEqual_mixed' strict=1 len=500 n=2000                                           ***      6.71 %       ±3.30%  ±4.39%  ±5.72%
assert/deepequal-map.js method='notDeepEqual_objectOnly' strict=0 len=500 n=2000                                      ***      6.18 %       ±1.26%  ±1.68%  ±2.20%
assert/deepequal-map.js method='notDeepEqual_objectOnly' strict=1 len=500 n=2000                                      ***      6.41 %       ±1.43%  ±1.92%  ±2.52%
assert/deepequal-map.js method='notDeepEqual_primitiveOnly' strict=0 len=500 n=2000                                            0.98 %       ±3.05%  ±4.06%  ±5.29%
assert/deepequal-map.js method='notDeepEqual_primitiveOnly' strict=1 len=500 n=2000                                            0.31 %       ±2.38%  ±3.17%  ±4.14%
assert/deepequal-object.js method='deepEqual' size=10000 n=50                                                         ***      3.54 %       ±0.67%  ±0.89%  ±1.15%
assert/deepequal-object.js method='deepStrictEqual' size=10000 n=50                                                     *      1.20 %       ±1.12%  ±1.50%  ±1.98%
assert/deepequal-object.js method='notDeepEqual' size=10000 n=50                                                              -4.17 %       ±6.01%  ±8.00% ±10.44%
assert/deepequal-object.js method='notDeepStrictEqual' size=10000 n=50                                                  *     -7.68 %       ±6.03%  ±8.03% ±10.45%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=100000 primitive='array'                    ***     14.20 %       ±3.27%  ±4.36%  ±5.69%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=100000 primitive='boolean'                           2.41 %       ±3.58%  ±4.78%  ±6.25%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=100000 primitive='circular'                         -0.56 %       ±2.42%  ±3.23%  ±4.22%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=100000 primitive='date'                     ***     12.07 %       ±2.55%  ±3.40%  ±4.42%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=100000 primitive='empty_object'                     -0.86 %       ±3.92%  ±5.23%  ±6.85%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=100000 primitive='invalidDate'              ***     12.16 %       ±4.15%  ±5.55%  ±7.27%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=100000 primitive='null_prototype'           ***     -9.58 %       ±2.35%  ±3.12%  ±4.06%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=100000 primitive='number'                            0.55 %       ±3.61%  ±4.80%  ±6.25%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=100000 primitive='object'                            1.09 %       ±3.35%  ±4.49%  ±5.93%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=100000 primitive='regexp'                   ***     -4.55 %       ±2.41%  ±3.21%  ±4.18%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=100000 primitive='set_object'               ***     35.98 %       ±3.27%  ±4.35%  ±5.68%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=100000 primitive='set_simple'               ***     51.98 %       ±3.03%  ±4.03%  ±5.25%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=100000 primitive='string'                            1.24 %       ±3.73%  ±4.97%  ±6.48%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=100000 primitive='array'                    ***     10.68 %       ±3.37%  ±4.49%  ±5.86%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=100000 primitive='boolean'                           1.68 %       ±2.84%  ±3.78%  ±4.92%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=100000 primitive='circular'                         -0.37 %       ±3.60%  ±4.79%  ±6.25%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=100000 primitive='date'                     ***      9.28 %       ±3.30%  ±4.40%  ±5.75%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=100000 primitive='empty_object'                     -0.62 %       ±2.79%  ±3.71%  ±4.84%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=100000 primitive='invalidDate'              ***      8.13 %       ±2.58%  ±3.44%  ±4.48%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=100000 primitive='null_prototype'            **     -3.74 %       ±2.41%  ±3.21%  ±4.17%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=100000 primitive='number'                           -1.80 %       ±3.47%  ±4.61%  ±6.00%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=100000 primitive='object'                            1.56 %       ±2.79%  ±3.73%  ±4.88%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=100000 primitive='regexp'                     *     -2.76 %       ±2.39%  ±3.18%  ±4.14%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=100000 primitive='set_object'               ***     29.33 %       ±3.41%  ±4.54%  ±5.92%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=100000 primitive='set_simple'               ***     39.71 %       ±3.21%  ±4.27%  ±5.56%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=100000 primitive='string'                            1.43 %       ±3.71%  ±4.95%  ±6.47%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=100000 primitive='array'                 ***      9.66 %       ±3.34%  ±4.45%  ±5.81%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=100000 primitive='boolean'                        1.33 %       ±5.41%  ±7.25%  ±9.55%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=100000 primitive='circular'                      -0.10 %       ±3.05%  ±4.06%  ±5.29%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=100000 primitive='date'                  ***     21.58 %       ±4.38%  ±5.87%  ±7.71%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=100000 primitive='empty_object'                  -0.71 %       ±2.44%  ±3.24%  ±4.22%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=100000 primitive='invalidDate'           ***     25.14 %       ±2.52%  ±3.35%  ±4.36%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=100000 primitive='null_prototype'                 0.50 %       ±2.45%  ±3.27%  ±4.26%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=100000 primitive='number'                         1.57 %       ±3.96%  ±5.28%  ±6.89%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=100000 primitive='object'                         1.75 %       ±2.94%  ±3.93%  ±5.15%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=100000 primitive='regexp'                ***      5.29 %       ±2.16%  ±2.88%  ±3.75%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=100000 primitive='set_object'            ***     29.19 %       ±3.24%  ±4.31%  ±5.60%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=100000 primitive='set_simple'            ***     38.59 %       ±5.60%  ±7.47%  ±9.77%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=100000 primitive='string'                         1.74 %       ±4.75%  ±6.33%  ±8.26%
assert/deepequal-set.js method='deepEqual_mixed' order='insert' strict=0 len=100 n=1000                                 *      9.24 %       ±8.00% ±10.65% ±13.86%
assert/deepequal-set.js method='deepEqual_mixed' order='insert' strict=0 len=2 n=1000                                          0.60 %       ±8.65% ±11.52% ±15.00%
assert/deepequal-set.js method='deepEqual_mixed' order='insert' strict=1 len=100 n=1000                                        8.21 %       ±8.45% ±11.25% ±14.64%
assert/deepequal-set.js method='deepEqual_mixed' order='insert' strict=1 len=2 n=1000                                          8.73 %      ±10.06% ±13.38% ±17.42%
assert/deepequal-set.js method='deepEqual_mixed' order='random' strict=1 len=100 n=1000                                 *      9.16 %       ±8.16% ±10.85% ±14.13%
assert/deepequal-set.js method='deepEqual_mixed' order='random' strict=1 len=2 n=1000                                          8.22 %       ±8.32% ±11.07% ±14.41%
assert/deepequal-set.js method='deepEqual_mixed' order='reversed' strict=0 len=100 n=1000                                      6.09 %       ±9.72% ±12.93% ±16.85%
assert/deepequal-set.js method='deepEqual_mixed' order='reversed' strict=0 len=2 n=1000                                        5.23 %       ±7.93% ±10.55% ±13.74%
assert/deepequal-set.js method='deepEqual_mixed' order='reversed' strict=1 len=100 n=1000                               *      8.09 %       ±7.03%  ±9.36% ±12.19%
assert/deepequal-set.js method='deepEqual_mixed' order='reversed' strict=1 len=2 n=1000                                        4.63 %       ±8.95% ±11.91% ±15.50%
assert/deepequal-set.js method='deepEqual_objectOnly' order='insert' strict=0 len=100 n=1000                           **     11.64 %       ±8.30% ±11.04% ±14.37%
assert/deepequal-set.js method='deepEqual_objectOnly' order='insert' strict=0 len=2 n=1000                                     5.17 %       ±9.41% ±12.52% ±16.29%
assert/deepequal-set.js method='deepEqual_objectOnly' order='insert' strict=1 len=100 n=1000                           **     11.82 %       ±8.50% ±11.31% ±14.72%
assert/deepequal-set.js method='deepEqual_objectOnly' order='insert' strict=1 len=2 n=1000                                     4.01 %       ±8.16% ±10.85% ±14.13%
assert/deepequal-set.js method='deepEqual_objectOnly' order='random' strict=1 len=100 n=1000                                   5.55 %       ±8.73% ±11.62% ±15.12%
assert/deepequal-set.js method='deepEqual_objectOnly' order='random' strict=1 len=2 n=1000                                     3.54 %       ±8.83% ±11.75% ±15.30%
assert/deepequal-set.js method='deepEqual_objectOnly' order='reversed' strict=0 len=100 n=1000                          *     10.36 %       ±8.51% ±11.33% ±14.74%
assert/deepequal-set.js method='deepEqual_objectOnly' order='reversed' strict=0 len=2 n=1000                                  -0.31 %       ±7.70% ±10.26% ±13.36%
assert/deepequal-set.js method='deepEqual_objectOnly' order='reversed' strict=1 len=100 n=1000                          *      7.72 %       ±6.84%  ±9.11% ±11.85%
assert/deepequal-set.js method='deepEqual_objectOnly' order='reversed' strict=1 len=2 n=1000                                   1.91 %       ±8.22% ±10.93% ±14.23%
assert/deepequal-set.js method='deepEqual_primitiveOnly' order='insert' strict=0 len=100 n=1000                                0.42 %       ±9.06% ±12.05% ±15.69%
assert/deepequal-set.js method='deepEqual_primitiveOnly' order='insert' strict=0 len=2 n=1000                                  0.78 %       ±9.01% ±12.01% ±15.67%
assert/deepequal-set.js method='deepEqual_primitiveOnly' order='insert' strict=1 len=100 n=1000                                4.77 %       ±7.97% ±10.60% ±13.81%
assert/deepequal-set.js method='deepEqual_primitiveOnly' order='insert' strict=1 len=2 n=1000                                 -1.39 %       ±6.69%  ±8.90% ±11.58%
assert/deepequal-set.js method='deepEqual_primitiveOnly' order='random' strict=1 len=100 n=1000                                2.72 %       ±9.09% ±12.09% ±15.74%
assert/deepequal-set.js method='deepEqual_primitiveOnly' order='random' strict=1 len=2 n=1000                                  5.64 %      ±10.22% ±13.61% ±17.71%
assert/deepequal-set.js method='deepEqual_primitiveOnly' order='reversed' strict=0 len=100 n=1000                              7.42 %       ±9.68% ±12.88% ±16.79%
assert/deepequal-set.js method='deepEqual_primitiveOnly' order='reversed' strict=0 len=2 n=1000                               -0.63 %       ±9.58% ±12.75% ±16.60%
assert/deepequal-set.js method='deepEqual_primitiveOnly' order='reversed' strict=1 len=100 n=1000                              0.34 %       ±6.94%  ±9.23% ±12.01%
assert/deepequal-set.js method='deepEqual_primitiveOnly' order='reversed' strict=1 len=2 n=1000                                3.68 %       ±9.59% ±12.76% ±16.62%
assert/deepequal-set.js method='notDeepEqual_mixed' order='insert' strict=0 len=100 n=1000                             **     14.66 %       ±9.51% ±12.66% ±16.48%
assert/deepequal-set.js method='notDeepEqual_mixed' order='insert' strict=0 len=2 n=1000                              ***     44.05 %       ±9.70% ±12.94% ±16.91%
assert/deepequal-set.js method='notDeepEqual_mixed' order='insert' strict=1 len=100 n=1000                                     1.94 %       ±7.78% ±10.35% ±13.47%
assert/deepequal-set.js method='notDeepEqual_mixed' order='insert' strict=1 len=2 n=1000                                       2.15 %       ±8.01% ±10.68% ±13.92%
assert/deepequal-set.js method='notDeepEqual_mixed' order='random' strict=1 len=100 n=1000                                     2.32 %      ±15.99% ±21.27% ±27.69%
assert/deepequal-set.js method='notDeepEqual_mixed' order='random' strict=1 len=2 n=1000                                       7.07 %      ±12.73% ±16.94% ±22.06%
assert/deepequal-set.js method='notDeepEqual_mixed' order='reversed' strict=0 len=100 n=1000                                   1.15 %       ±8.12% ±10.81% ±14.07%
assert/deepequal-set.js method='notDeepEqual_mixed' order='reversed' strict=0 len=2 n=1000                                     4.08 %       ±9.55% ±12.72% ±16.56%
assert/deepequal-set.js method='notDeepEqual_mixed' order='reversed' strict=1 len=100 n=1000                                   4.35 %       ±6.73%  ±8.96% ±11.67%
assert/deepequal-set.js method='notDeepEqual_mixed' order='reversed' strict=1 len=2 n=1000                                     7.27 %       ±8.82% ±11.73% ±15.28%
assert/deepequal-set.js method='notDeepEqual_objectOnly' order='insert' strict=0 len=100 n=1000                        **     13.08 %       ±8.28% ±11.02% ±14.34%
assert/deepequal-set.js method='notDeepEqual_objectOnly' order='insert' strict=0 len=2 n=1000                                  6.65 %       ±7.62% ±10.15% ±13.23%
assert/deepequal-set.js method='notDeepEqual_objectOnly' order='insert' strict=1 len=100 n=1000                         *      8.83 %       ±8.28% ±11.02% ±14.34%
assert/deepequal-set.js method='notDeepEqual_objectOnly' order='insert' strict=1 len=2 n=1000                          **     13.25 %       ±9.45% ±12.57% ±16.36%
assert/deepequal-set.js method='notDeepEqual_objectOnly' order='reversed' strict=0 len=100 n=1000                      **     11.83 %       ±8.47% ±11.27% ±14.67%
assert/deepequal-set.js method='notDeepEqual_objectOnly' order='reversed' strict=0 len=2 n=1000                         *      9.37 %       ±8.36% ±11.13% ±14.48%
assert/deepequal-set.js method='notDeepEqual_objectOnly' order='reversed' strict=1 len=100 n=1000                      **     11.51 %       ±6.94%  ±9.25% ±12.05%
assert/deepequal-set.js method='notDeepEqual_objectOnly' order='reversed' strict=1 len=2 n=1000                                5.71 %       ±9.02% ±12.00% ±15.62%
assert/deepequal-set.js method='notDeepEqual_primitiveOnly' order='insert' strict=0 len=100 n=1000                             4.38 %       ±8.03% ±10.68% ±13.91%
assert/deepequal-set.js method='notDeepEqual_primitiveOnly' order='insert' strict=0 len=2 n=1000                               1.10 %       ±7.81% ±10.40% ±13.55%
assert/deepequal-set.js method='notDeepEqual_primitiveOnly' order='insert' strict=1 len=100 n=1000                             3.51 %       ±8.70% ±11.58% ±15.09%
assert/deepequal-set.js method='notDeepEqual_primitiveOnly' order='insert' strict=1 len=2 n=1000                               3.98 %       ±8.17% ±10.87% ±14.16%
assert/deepequal-set.js method='notDeepEqual_primitiveOnly' order='random' strict=1 len=100 n=1000                             3.55 %      ±14.40% ±19.17% ±24.97%
assert/deepequal-set.js method='notDeepEqual_primitiveOnly' order='random' strict=1 len=2 n=1000                               7.14 %       ±8.68% ±11.55% ±15.04%
assert/deepequal-set.js method='notDeepEqual_primitiveOnly' order='reversed' strict=0 len=100 n=1000                           6.17 %       ±9.88% ±13.16% ±17.13%
assert/deepequal-set.js method='notDeepEqual_primitiveOnly' order='reversed' strict=0 len=2 n=1000                    ***     39.18 %       ±9.56% ±12.73% ±16.60%
assert/deepequal-set.js method='notDeepEqual_primitiveOnly' order='reversed' strict=1 len=100 n=1000                           5.70 %       ±6.39%  ±8.50% ±11.07%
assert/deepequal-set.js method='notDeepEqual_primitiveOnly' order='reversed' strict=1 len=2 n=1000                             5.85 %       ±9.39% ±12.50% ±16.28%
assert/deepequal-simple-array-and-set.js method='deepEqual_Array' strict=1 len=10000 n=1000                                    3.63 %       ±5.07%  ±6.78%  ±8.88%
assert/deepequal-simple-array-and-set.js method='deepEqual_Set' strict=1 len=10000 n=1000                                      1.66 %       ±9.89% ±13.16% ±17.14%
assert/deepequal-simple-array-and-set.js method='deepEqual_sparseArray' strict=1 len=10000 n=1000                             -0.04 %       ±4.61%  ±6.16%  ±8.06%
assert/deepequal-simple-array-and-set.js method='notDeepEqual_Array' strict=1 len=10000 n=1000                                 1.44 %       ±4.62%  ±6.17%  ±8.06%
assert/deepequal-simple-array-and-set.js method='notDeepEqual_Set' strict=1 len=10000 n=1000                                  -0.81 %       ±7.69% ±10.23% ±13.31%
assert/deepequal-simple-array-and-set.js method='notDeepEqual_sparseArray' strict=1 len=10000 n=1000                           0.05 %       ±4.00%  ±5.34%  ±6.98%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=0 n=25000 type='Float32Array'                                3.29 %       ±5.58%  ±7.43%  ±9.68%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=0 n=25000 type='Int8Array'                          ***     46.69 %       ±5.72%  ±7.63%  ±9.97%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=0 n=25000 type='Uint32Array'                        ***     46.40 %       ±5.68%  ±7.56%  ±9.85%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=0 n=25000 type='Uint8Array'                         ***     49.20 %       ±7.23%  ±9.62% ±12.51%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=1 n=25000 type='Float32Array'                       ***     47.39 %       ±5.91%  ±7.88% ±10.28%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=1 n=25000 type='Int8Array'                          ***     52.27 %       ±7.47%  ±9.95% ±12.97%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=1 n=25000 type='Uint32Array'                        ***     48.86 %       ±5.93%  ±7.90% ±10.30%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=1 n=25000 type='Uint8Array'                         ***     52.23 %       ±7.00%  ±9.31% ±12.13%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=0 n=25000 type='Float32Array'                    ***     54.32 %       ±6.91%  ±9.22% ±12.05%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=0 n=25000 type='Int8Array'                       ***     70.14 %       ±6.84%  ±9.11% ±11.88%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=0 n=25000 type='Uint32Array'                     ***     67.19 %       ±6.18%  ±8.23% ±10.74%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=0 n=25000 type='Uint8Array'                      ***     67.63 %       ±7.60% ±10.12% ±13.19%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=1 n=25000 type='Float32Array'                    ***     65.58 %       ±8.02% ±10.71% ±14.04%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=1 n=25000 type='Int8Array'                       ***     72.38 %       ±5.75%  ±7.65%  ±9.96%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=1 n=25000 type='Uint32Array'                     ***     65.32 %       ±7.14%  ±9.55% ±12.51%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=1 n=25000 type='Uint8Array'                      ***     70.89 %       ±8.85% ±11.82% ±15.48%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=0 n=25000 type='Int8Array'                         ***     35.21 %       ±6.73%  ±8.98% ±11.76%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=0 n=25000 type='Uint32Array'                       ***     18.59 %       ±4.77%  ±6.35%  ±8.26%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=0 n=25000 type='Uint8Array'                        ***     36.38 %       ±6.76%  ±9.00% ±11.72%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=1 n=25000 type='Float32Array'                      ***     18.14 %       ±5.37%  ±7.15%  ±9.30%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=1 n=25000 type='Int8Array'                         ***     37.10 %       ±5.76%  ±7.66%  ±9.98%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=1 n=25000 type='Uint32Array'                       ***     16.94 %       ±4.94%  ±6.58%  ±8.57%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=1 n=25000 type='Uint8Array'                        ***     36.83 %       ±6.34%  ±8.43% ±10.97%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=0 n=25000 type='Int8Array'                      ***     57.09 %       ±6.04%  ±8.05% ±10.50%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=0 n=25000 type='Uint32Array'                    ***     31.51 %       ±5.16%  ±6.87%  ±8.94%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=0 n=25000 type='Uint8Array'                     ***     58.01 %       ±6.59%  ±8.76% ±11.41%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=1 n=25000 type='Float32Array'                   ***     33.02 %       ±5.69%  ±7.57%  ±9.86%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=1 n=25000 type='Int8Array'                      ***     60.98 %       ±5.49%  ±7.31%  ±9.52%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=1 n=25000 type='Uint32Array'                    ***     32.86 %       ±5.36%  ±7.14%  ±9.29%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=1 n=25000 type='Uint8Array'                     ***     58.01 %       ±6.64%  ±8.85% ±11.52%
assert/partial-deep-equal.js datasetName='array' extraProps=0 size=500 n=125                                                   0.30 %       ±5.10%  ±6.79%  ±8.83%
assert/partial-deep-equal.js datasetName='array' extraProps=1 size=500 n=125                                                  -4.08 %       ±4.47%  ±5.95%  ±7.75%
assert/partial-deep-equal.js datasetName='arrayBuffers' extraProps=0 size=500 n=125                                   ***     49.68 %       ±6.20%  ±8.25% ±10.74%
assert/partial-deep-equal.js datasetName='arrayBuffers' extraProps=1 size=500 n=125                                   ***     15.76 %       ±5.32%  ±7.11%  ±9.31%
assert/partial-deep-equal.js datasetName='circularRefs' extraProps=0 size=500 n=125                                    **      7.61 %       ±5.69%  ±7.58%  ±9.89%
assert/partial-deep-equal.js datasetName='circularRefs' extraProps=1 size=500 n=125                                            5.09 %       ±5.17%  ±6.88%  ±8.97%
assert/partial-deep-equal.js datasetName='dataViewArrayBuffers' extraProps=0 size=500 n=125                           ***     81.07 %       ±6.25%  ±8.33% ±10.85%
assert/partial-deep-equal.js datasetName='dataViewArrayBuffers' extraProps=1 size=500 n=125                           ***     18.15 %       ±4.91%  ±6.56%  ±8.58%
assert/partial-deep-equal.js datasetName='maps' extraProps=0 size=500 n=125                                           ***     21.90 %       ±6.14%  ±8.17% ±10.64%
assert/partial-deep-equal.js datasetName='maps' extraProps=1 size=500 n=125                                           ***     19.32 %       ±6.11%  ±8.13% ±10.60%
assert/partial-deep-equal.js datasetName='objects' extraProps=0 size=500 n=125                                         **      8.35 %       ±5.11%  ±6.80%  ±8.87%
assert/partial-deep-equal.js datasetName='objects' extraProps=1 size=500 n=125                                                 5.15 %       ±5.25%  ±7.00%  ±9.12%
assert/partial-deep-equal.js datasetName='sets' extraProps=0 size=500 n=125                                           ***     25.19 %      ±10.13% ±13.50% ±17.59%
assert/partial-deep-equal.js datasetName='sets' extraProps=1 size=500 n=125                                           ***     22.04 %       ±5.80%  ±7.72% ±10.04%
assert/partial-deep-equal.js datasetName='setsWithObjects' extraProps=0 size=500 n=125                                ***     20.56 %       ±5.94%  ±7.90% ±10.29%
assert/partial-deep-equal.js datasetName='setsWithObjects' extraProps=1 size=500 n=125                                ***     20.51 %       ±5.67%  ±7.55%  ±9.83%
assert/partial-deep-equal.js datasetName='typedArrays' extraProps=0 size=500 n=125                                    ***     72.64 %       ±6.43%  ±8.56% ±11.15%
assert/partial-deep-equal.js datasetName='typedArrays' extraProps=1 size=500 n=125                                    ***     58.24 %       ±6.98%  ±9.33% ±12.25%

@codecov
Copy link

codecov bot commented Dec 26, 2025

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 88.52%. Comparing base (5e677d6) to head (1e76b29).
⚠️ Report is 9 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main   #61176   +/-   ##
=======================================
  Coverage   88.52%   88.52%           
=======================================
  Files         703      703           
  Lines      208585   208612   +27     
  Branches    40225    40240   +15     
=======================================
+ Hits       184650   184674   +24     
- Misses      15953    15957    +4     
+ Partials     7982     7981    -1     
Files with missing lines Coverage Δ
lib/internal/util/comparisons.js 99.71% <100.00%> (+<0.01%) ⬆️

... and 39 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@BridgeAR BridgeAR marked this pull request as draft December 26, 2025 14:43
This is a workaround for errors recreated by error serdes.
@BridgeAR BridgeAR marked this pull request as ready for review December 27, 2025 05:56
@aduh95
Copy link
Contributor

aduh95 commented Dec 27, 2025

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

Results
                                                                                                               confidence improvement accuracy (*)    (**)   (***)
assert/assertion-error.js size=2 n=200                                                                                        -2.44 %       ±8.20% ±10.93% ±14.25%
assert/assertion-error.js size=75 n=200                                                                                       -0.59 %       ±1.33%  ±1.76%  ±2.30%
assert/deepequal-buffer.js method='deepEqual' arrayBuffer=0 strict=0 len=100 n=20000                                  ***     77.48 %      ±10.21% ±13.61% ±17.76%
assert/deepequal-buffer.js method='deepEqual' arrayBuffer=0 strict=0 len=1000 n=20000                                 ***     86.31 %      ±10.89% ±14.49% ±18.86%
assert/deepequal-buffer.js method='deepEqual' arrayBuffer=0 strict=1 len=100 n=20000                                  ***     77.33 %      ±11.37% ±15.15% ±19.77%
assert/deepequal-buffer.js method='deepEqual' arrayBuffer=0 strict=1 len=1000 n=20000                                 ***     95.30 %      ±15.24% ±20.31% ±26.50%
assert/deepequal-buffer.js method='deepEqual' arrayBuffer=1 strict=0 len=100 n=20000                                  ***     43.76 %      ±16.77% ±22.35% ±29.16%
assert/deepequal-buffer.js method='deepEqual' arrayBuffer=1 strict=0 len=1000 n=20000                                          5.51 %       ±9.85% ±13.10% ±17.05%
assert/deepequal-buffer.js method='deepEqual' arrayBuffer=1 strict=1 len=100 n=20000                                          10.38 %      ±10.81% ±14.41% ±18.80%
assert/deepequal-buffer.js method='deepEqual' arrayBuffer=1 strict=1 len=1000 n=20000                                  **     17.78 %      ±11.12% ±14.80% ±19.29%
assert/deepequal-buffer.js method='notDeepEqual' arrayBuffer=0 strict=1 len=100 n=20000                               ***     92.45 %      ±13.33% ±17.88% ±23.55%
assert/deepequal-buffer.js method='notDeepEqual' arrayBuffer=0 strict=1 len=1000 n=20000                              ***    120.55 %      ±11.24% ±14.96% ±19.47%
assert/deepequal-buffer.js method='notDeepEqual' arrayBuffer=1 strict=1 len=100 n=20000                               ***     49.60 %      ±15.86% ±21.23% ±27.88%
assert/deepequal-buffer.js method='notDeepEqual' arrayBuffer=1 strict=1 len=1000 n=20000                              ***     40.92 %      ±17.34% ±23.14% ±30.25%
assert/deepequal-buffer.js method='partial' arrayBuffer=0 strict=1 len=100 n=20000                                    ***     96.08 %      ±12.22% ±16.29% ±21.28%
assert/deepequal-buffer.js method='partial' arrayBuffer=0 strict=1 len=1000 n=20000                                   ***     76.90 %      ±18.15% ±24.24% ±31.74%
assert/deepequal-buffer.js method='partial' arrayBuffer=1 strict=1 len=100 n=20000                                    ***     66.13 %      ±15.43% ±20.62% ±27.02%
assert/deepequal-buffer.js method='partial' arrayBuffer=1 strict=1 len=1000 n=20000                                   ***     43.70 %      ±14.89% ±19.94% ±26.20%
assert/deepequal-buffer.js method='unequal_length' arrayBuffer=0 strict=1 len=100 n=20000                             ***    106.68 %      ±18.40% ±24.73% ±32.68%
assert/deepequal-buffer.js method='unequal_length' arrayBuffer=0 strict=1 len=1000 n=20000                            ***    172.40 %      ±16.83% ±22.46% ±29.37%
assert/deepequal-buffer.js method='unequal_length' arrayBuffer=1 strict=1 len=100 n=20000                             ***     91.59 %      ±15.42% ±20.62% ±27.07%
assert/deepequal-buffer.js method='unequal_length' arrayBuffer=1 strict=1 len=1000 n=20000                            ***    127.56 %      ±15.59% ±20.75% ±27.03%
assert/deepequal-map.js method='deepEqual_mixed' strict=0 len=500 n=2000                                              ***      5.41 %       ±1.46%  ±1.94%  ±2.52%
assert/deepequal-map.js method='deepEqual_mixed' strict=1 len=500 n=2000                                              ***      6.32 %       ±1.71%  ±2.27%  ±2.95%
assert/deepequal-map.js method='deepEqual_objectOnly' strict=0 len=500 n=2000                                         ***      7.96 %       ±0.81%  ±1.08%  ±1.41%
assert/deepequal-map.js method='deepEqual_objectOnly' strict=1 len=500 n=2000                                         ***      5.95 %       ±1.06%  ±1.41%  ±1.84%
assert/deepequal-map.js method='deepEqual_primitiveOnly' strict=0 len=500 n=2000                                              -1.35 %       ±5.48%  ±7.29%  ±9.49%
assert/deepequal-map.js method='deepEqual_primitiveOnly' strict=1 len=500 n=2000                                               5.80 %       ±6.77%  ±9.01% ±11.72%
assert/deepequal-map.js method='notDeepEqual_mixed' strict=0 len=500 n=2000                                             *     26.30 %      ±23.10% ±30.74% ±40.03%
assert/deepequal-map.js method='notDeepEqual_mixed' strict=1 len=500 n=2000                                                  -10.52 %      ±19.85% ±26.41% ±34.38%
assert/deepequal-map.js method='notDeepEqual_objectOnly' strict=0 len=500 n=2000                                      ***      8.25 %       ±0.91%  ±1.21%  ±1.58%
assert/deepequal-map.js method='notDeepEqual_objectOnly' strict=1 len=500 n=2000                                      ***      8.92 %       ±1.27%  ±1.69%  ±2.20%
assert/deepequal-map.js method='notDeepEqual_primitiveOnly' strict=0 len=500 n=2000                                           -3.60 %      ±10.72% ±14.26% ±18.57%
assert/deepequal-map.js method='notDeepEqual_primitiveOnly' strict=1 len=500 n=2000                                            2.76 %      ±10.67% ±14.21% ±18.50%
assert/deepequal-object.js method='deepEqual' size=10000 n=50                                                         ***      4.18 %       ±0.54%  ±0.71%  ±0.93%
assert/deepequal-object.js method='deepStrictEqual' size=10000 n=50                                                   ***      3.02 %       ±0.49%  ±0.65%  ±0.85%
assert/deepequal-object.js method='notDeepEqual' size=10000 n=50                                                       **     -9.33 %       ±6.54%  ±8.71% ±11.35%
assert/deepequal-object.js method='notDeepStrictEqual' size=10000 n=50                                                        -1.76 %      ±10.07% ±13.40% ±17.44%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=100000 primitive='array'                    ***     12.85 %       ±6.41%  ±8.57% ±11.24%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=100000 primitive='boolean'                          -9.72 %      ±17.00% ±22.62% ±29.45%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=100000 primitive='circular'                          5.50 %       ±8.83% ±11.74% ±15.29%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=100000 primitive='date'                              6.21 %      ±10.05% ±13.37% ±17.41%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=100000 primitive='empty_object'              **    -17.08 %      ±11.34% ±15.09% ±19.64%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=100000 primitive='invalidDate'                       1.74 %      ±10.10% ±13.44% ±17.50%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=100000 primitive='null_prototype'           ***    -14.14 %       ±6.03%  ±8.03% ±10.47%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=100000 primitive='number'                           -9.25 %      ±16.19% ±21.54% ±28.04%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=100000 primitive='object'                            1.72 %      ±11.35% ±15.10% ±19.65%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=100000 primitive='regexp'                           -9.96 %      ±10.56% ±14.05% ±18.28%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=100000 primitive='set_object'               ***     37.51 %       ±6.11%  ±8.15% ±10.65%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=100000 primitive='set_simple'               ***     55.78 %      ±12.46% ±16.68% ±21.93%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=100000 primitive='string'                           -5.24 %      ±12.47% ±16.59% ±21.60%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=100000 primitive='array'                     **     12.00 %       ±7.16%  ±9.55% ±12.49%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=100000 primitive='boolean'                           0.75 %      ±16.29% ±21.67% ±28.21%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=100000 primitive='circular'                          0.47 %       ±5.54%  ±7.37%  ±9.59%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=100000 primitive='date'                      **     11.61 %       ±7.87% ±10.48% ±13.65%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=100000 primitive='empty_object'                     -3.22 %       ±8.85% ±11.79% ±15.35%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=100000 primitive='invalidDate'              ***     19.08 %       ±7.13%  ±9.49% ±12.35%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=100000 primitive='null_prototype'            **     -6.96 %       ±4.10%  ±5.47%  ±7.14%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=100000 primitive='number'                           -3.49 %      ±21.23% ±28.25% ±36.76%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=100000 primitive='object'                           -1.52 %       ±7.01%  ±9.33% ±12.15%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=100000 primitive='regexp'                           -5.24 %       ±5.42%  ±7.21%  ±9.39%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=100000 primitive='set_object'               ***     36.25 %       ±3.58%  ±4.77%  ±6.24%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=100000 primitive='set_simple'               ***     38.69 %       ±9.08% ±12.13% ±15.90%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=100000 primitive='string'                          -11.23 %      ±13.48% ±17.94% ±23.36%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=100000 primitive='array'                 ***     11.19 %       ±5.49%  ±7.32%  ±9.55%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=100000 primitive='boolean'                       -7.80 %      ±20.34% ±27.07% ±35.25%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=100000 primitive='circular'                      -2.24 %       ±4.69%  ±6.24%  ±8.12%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=100000 primitive='date'                   **     15.33 %       ±9.43% ±12.56% ±16.37%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=100000 primitive='empty_object'                  -2.09 %      ±16.79% ±22.35% ±29.08%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=100000 primitive='invalidDate'                    7.71 %       ±9.17% ±12.25% ±16.05%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=100000 primitive='null_prototype'                 5.52 %       ±9.59% ±12.77% ±16.63%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=100000 primitive='number'                       -15.73 %      ±19.58% ±26.09% ±34.05%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=100000 primitive='object'                 **     -8.70 %       ±6.17%  ±8.20% ±10.68%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=100000 primitive='regexp'                         0.69 %       ±8.82% ±11.74% ±15.29%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=100000 primitive='set_object'            ***     37.42 %       ±4.16%  ±5.54%  ±7.22%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=100000 primitive='set_simple'            ***     40.15 %       ±9.00% ±12.03% ±15.77%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=100000 primitive='string'                         4.82 %      ±22.19% ±29.52% ±38.42%
assert/deepequal-set.js method='deepEqual_mixed' order='insert' strict=0 len=100 n=1000                               ***     17.11 %       ±7.36%  ±9.81% ±12.81%
assert/deepequal-set.js method='deepEqual_mixed' order='insert' strict=0 len=2 n=1000                                          2.49 %      ±20.30% ±27.02% ±35.17%
assert/deepequal-set.js method='deepEqual_mixed' order='insert' strict=1 len=100 n=1000                                 *      8.72 %       ±8.01% ±10.66% ±13.89%
assert/deepequal-set.js method='deepEqual_mixed' order='insert' strict=1 len=2 n=1000                                         -7.51 %      ±11.70% ±15.66% ±20.59%
assert/deepequal-set.js method='deepEqual_mixed' order='random' strict=1 len=100 n=1000                               ***      9.36 %       ±5.30%  ±7.05%  ±9.18%
assert/deepequal-set.js method='deepEqual_mixed' order='random' strict=1 len=2 n=1000                                          0.37 %      ±13.32% ±17.75% ±23.14%
assert/deepequal-set.js method='deepEqual_mixed' order='reversed' strict=0 len=100 n=1000                               *      7.75 %       ±7.24%  ±9.64% ±12.56%
assert/deepequal-set.js method='deepEqual_mixed' order='reversed' strict=0 len=2 n=1000                                      -12.65 %      ±20.66% ±27.50% ±35.83%
assert/deepequal-set.js method='deepEqual_mixed' order='reversed' strict=1 len=100 n=1000                               *      8.72 %       ±6.57%  ±8.76% ±11.42%
assert/deepequal-set.js method='deepEqual_mixed' order='reversed' strict=1 len=2 n=1000                                      -11.40 %      ±13.41% ±17.91% ±23.46%
assert/deepequal-set.js method='deepEqual_objectOnly' order='insert' strict=0 len=100 n=1000                                   0.52 %       ±5.20%  ±6.96%  ±9.13%
assert/deepequal-set.js method='deepEqual_objectOnly' order='insert' strict=0 len=2 n=1000                                     1.35 %       ±9.53% ±12.69% ±16.53%
assert/deepequal-set.js method='deepEqual_objectOnly' order='insert' strict=1 len=100 n=1000                           **      8.30 %       ±5.06%  ±6.74%  ±8.78%
assert/deepequal-set.js method='deepEqual_objectOnly' order='insert' strict=1 len=2 n=1000                                    -4.84 %      ±11.26% ±15.03% ±19.65%
assert/deepequal-set.js method='deepEqual_objectOnly' order='random' strict=1 len=100 n=1000                           **      6.17 %       ±4.19%  ±5.58%  ±7.27%
assert/deepequal-set.js method='deepEqual_objectOnly' order='random' strict=1 len=2 n=1000                              *      5.09 %       ±4.56%  ±6.10%  ±8.00%
assert/deepequal-set.js method='deepEqual_objectOnly' order='reversed' strict=0 len=100 n=1000                         **      8.64 %       ±5.73%  ±7.63%  ±9.94%
assert/deepequal-set.js method='deepEqual_objectOnly' order='reversed' strict=0 len=2 n=1000                                   6.86 %       ±7.27%  ±9.68% ±12.62%
assert/deepequal-set.js method='deepEqual_objectOnly' order='reversed' strict=1 len=100 n=1000                         **      8.82 %       ±5.81%  ±7.74% ±10.09%
assert/deepequal-set.js method='deepEqual_objectOnly' order='reversed' strict=1 len=2 n=1000                                   6.03 %      ±11.33% ±15.08% ±19.64%
assert/deepequal-set.js method='deepEqual_primitiveOnly' order='insert' strict=0 len=100 n=1000                                4.47 %      ±16.50% ±21.95% ±28.57%
assert/deepequal-set.js method='deepEqual_primitiveOnly' order='insert' strict=0 len=2 n=1000                                 -7.65 %      ±19.13% ±25.48% ±33.22%
assert/deepequal-set.js method='deepEqual_primitiveOnly' order='insert' strict=1 len=100 n=1000                               18.98 %      ±21.27% ±28.31% ±36.85%
assert/deepequal-set.js method='deepEqual_primitiveOnly' order='insert' strict=1 len=2 n=1000                                -10.80 %      ±24.24% ±32.26% ±42.00%
assert/deepequal-set.js method='deepEqual_primitiveOnly' order='random' strict=1 len=100 n=1000                                5.94 %      ±19.89% ±26.46% ±34.44%
assert/deepequal-set.js method='deepEqual_primitiveOnly' order='random' strict=1 len=2 n=1000                           *     41.24 %      ±35.33% ±47.04% ±61.29%
assert/deepequal-set.js method='deepEqual_primitiveOnly' order='reversed' strict=0 len=100 n=1000                              8.01 %      ±20.86% ±27.76% ±36.13%
assert/deepequal-set.js method='deepEqual_primitiveOnly' order='reversed' strict=0 len=2 n=1000                               -4.21 %      ±20.31% ±27.05% ±35.25%
assert/deepequal-set.js method='deepEqual_primitiveOnly' order='reversed' strict=1 len=100 n=1000                             -6.17 %      ±19.33% ±25.72% ±33.47%
assert/deepequal-set.js method='deepEqual_primitiveOnly' order='reversed' strict=1 len=2 n=1000                               21.68 %      ±32.86% ±43.72% ±56.92%
assert/deepequal-set.js method='notDeepEqual_mixed' order='insert' strict=0 len=100 n=1000                            ***     68.30 %      ±13.48% ±18.17% ±24.12%
assert/deepequal-set.js method='notDeepEqual_mixed' order='insert' strict=0 len=2 n=1000                              ***     53.14 %      ±10.12% ±13.63% ±18.09%
assert/deepequal-set.js method='notDeepEqual_mixed' order='insert' strict=1 len=100 n=1000                              *     26.35 %      ±24.22% ±32.22% ±41.94%
assert/deepequal-set.js method='notDeepEqual_mixed' order='insert' strict=1 len=2 n=1000                              ***     51.49 %      ±27.36% ±36.41% ±47.40%
assert/deepequal-set.js method='notDeepEqual_mixed' order='random' strict=1 len=100 n=1000                                    -2.62 %      ±25.90% ±34.48% ±44.92%
assert/deepequal-set.js method='notDeepEqual_mixed' order='random' strict=1 len=2 n=1000                                       6.50 %      ±22.60% ±30.11% ±39.28%
assert/deepequal-set.js method='notDeepEqual_mixed' order='reversed' strict=0 len=100 n=1000                            *    -17.10 %      ±16.33% ±21.74% ±28.33%
assert/deepequal-set.js method='notDeepEqual_mixed' order='reversed' strict=0 len=2 n=1000                                   -11.76 %      ±15.08% ±20.12% ±26.31%
assert/deepequal-set.js method='notDeepEqual_mixed' order='reversed' strict=1 len=100 n=1000                                 -16.01 %      ±16.64% ±22.19% ±28.99%
assert/deepequal-set.js method='notDeepEqual_mixed' order='reversed' strict=1 len=2 n=1000                                     0.28 %       ±9.73% ±13.02% ±17.07%
assert/deepequal-set.js method='notDeepEqual_objectOnly' order='insert' strict=0 len=100 n=1000                       ***     12.87 %       ±4.38%  ±5.83%  ±7.59%
assert/deepequal-set.js method='notDeepEqual_objectOnly' order='insert' strict=0 len=2 n=1000                                  9.80 %      ±10.27% ±13.67% ±17.80%
assert/deepequal-set.js method='notDeepEqual_objectOnly' order='insert' strict=1 len=100 n=1000                       ***     13.06 %       ±5.41%  ±7.22%  ±9.45%
assert/deepequal-set.js method='notDeepEqual_objectOnly' order='insert' strict=1 len=2 n=1000                                  9.93 %      ±17.31% ±23.03% ±29.97%
assert/deepequal-set.js method='notDeepEqual_objectOnly' order='reversed' strict=0 len=100 n=1000                     ***      9.79 %       ±4.58%  ±6.10%  ±7.96%
assert/deepequal-set.js method='notDeepEqual_objectOnly' order='reversed' strict=0 len=2 n=1000                                6.75 %      ±19.74% ±26.28% ±34.22%
assert/deepequal-set.js method='notDeepEqual_objectOnly' order='reversed' strict=1 len=100 n=1000                     ***     14.22 %       ±5.34%  ±7.11%  ±9.26%
assert/deepequal-set.js method='notDeepEqual_objectOnly' order='reversed' strict=1 len=2 n=1000                        **      7.44 %       ±4.99%  ±6.72%  ±8.90%
assert/deepequal-set.js method='notDeepEqual_primitiveOnly' order='insert' strict=0 len=100 n=1000                             0.34 %      ±20.08% ±26.72% ±34.78%
assert/deepequal-set.js method='notDeepEqual_primitiveOnly' order='insert' strict=0 len=2 n=1000                       **     30.30 %      ±19.37% ±25.81% ±33.67%
assert/deepequal-set.js method='notDeepEqual_primitiveOnly' order='insert' strict=1 len=100 n=1000                            -6.39 %      ±18.46% ±24.56% ±31.97%
assert/deepequal-set.js method='notDeepEqual_primitiveOnly' order='insert' strict=1 len=2 n=1000                               4.96 %      ±24.89% ±33.11% ±43.10%
assert/deepequal-set.js method='notDeepEqual_primitiveOnly' order='random' strict=1 len=100 n=1000                            -4.29 %      ±22.46% ±29.88% ±38.89%
assert/deepequal-set.js method='notDeepEqual_primitiveOnly' order='random' strict=1 len=2 n=1000                        *     26.84 %      ±25.63% ±34.11% ±44.39%
assert/deepequal-set.js method='notDeepEqual_primitiveOnly' order='reversed' strict=0 len=100 n=1000                           0.69 %      ±19.32% ±25.70% ±33.46%
assert/deepequal-set.js method='notDeepEqual_primitiveOnly' order='reversed' strict=0 len=2 n=1000                    ***     63.35 %      ±12.48% ±16.81% ±22.30%
assert/deepequal-set.js method='notDeepEqual_primitiveOnly' order='reversed' strict=1 len=100 n=1000                           7.82 %      ±19.94% ±26.53% ±34.53%
assert/deepequal-set.js method='notDeepEqual_primitiveOnly' order='reversed' strict=1 len=2 n=1000                    ***     81.35 %      ±28.10% ±37.41% ±48.73%
assert/deepequal-simple-array-and-set.js method='deepEqual_Array' strict=1 len=10000 n=1000                                   -2.85 %       ±3.24%  ±4.32%  ±5.62%
assert/deepequal-simple-array-and-set.js method='deepEqual_Set' strict=1 len=10000 n=1000                                     -0.75 %       ±2.26%  ±3.01%  ±3.92%
assert/deepequal-simple-array-and-set.js method='deepEqual_sparseArray' strict=1 len=10000 n=1000                             -0.46 %       ±0.72%  ±0.96%  ±1.25%
assert/deepequal-simple-array-and-set.js method='notDeepEqual_Array' strict=1 len=10000 n=1000                         **      5.71 %       ±4.19%  ±5.57%  ±7.26%
assert/deepequal-simple-array-and-set.js method='notDeepEqual_Set' strict=1 len=10000 n=1000                                  -0.28 %       ±1.95%  ±2.59%  ±3.38%
assert/deepequal-simple-array-and-set.js method='notDeepEqual_sparseArray' strict=1 len=10000 n=1000                           0.35 %       ±0.79%  ±1.06%  ±1.38%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=0 n=25000 type='Float32Array'                       ***     12.58 %       ±2.31%  ±3.10%  ±4.07%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=0 n=25000 type='Int8Array'                          ***     68.63 %       ±7.27%  ±9.69% ±12.62%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=0 n=25000 type='Uint32Array'                        ***     67.60 %      ±12.69% ±16.91% ±22.07%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=0 n=25000 type='Uint8Array'                         ***     67.90 %      ±10.25% ±13.69% ±17.91%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=1 n=25000 type='Float32Array'                       ***     56.94 %      ±12.49% ±16.72% ±21.96%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=1 n=25000 type='Int8Array'                          ***     67.14 %      ±11.42% ±15.27% ±20.03%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=1 n=25000 type='Uint32Array'                        ***     55.73 %      ±10.52% ±14.10% ±18.56%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=1 n=25000 type='Uint8Array'                         ***     52.36 %      ±12.38% ±16.59% ±21.82%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=0 n=25000 type='Float32Array'                    ***     51.64 %      ±14.25% ±19.09% ±25.13%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=0 n=25000 type='Int8Array'                       ***     66.44 %      ±13.73% ±18.45% ±24.38%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=0 n=25000 type='Uint32Array'                     ***     73.28 %      ±13.14% ±17.64% ±23.26%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=0 n=25000 type='Uint8Array'                      ***     79.53 %      ±12.48% ±16.69% ±21.89%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=1 n=25000 type='Float32Array'                    ***     76.32 %      ±13.09% ±17.56% ±23.15%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=1 n=25000 type='Int8Array'                       ***     79.06 %      ±13.21% ±17.72% ±23.34%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=1 n=25000 type='Uint32Array'                     ***     86.02 %      ±12.16% ±16.27% ±21.38%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=1 n=25000 type='Uint8Array'                      ***     78.65 %      ±14.12% ±18.97% ±25.06%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=0 n=25000 type='Int8Array'                         ***     54.48 %       ±7.22%  ±9.63% ±12.57%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=0 n=25000 type='Uint32Array'                       ***     30.69 %       ±6.23%  ±8.35% ±10.99%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=0 n=25000 type='Uint8Array'                        ***     54.96 %       ±7.90% ±10.56% ±13.84%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=1 n=25000 type='Float32Array'                      ***     26.38 %       ±8.06% ±10.81% ±14.26%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=1 n=25000 type='Int8Array'                         ***     44.10 %      ±10.36% ±13.87% ±18.23%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=1 n=25000 type='Uint32Array'                       ***     35.10 %       ±5.50%  ±7.37%  ±9.68%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=1 n=25000 type='Uint8Array'                        ***     47.78 %       ±7.45%  ±9.98% ±13.12%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=0 n=25000 type='Int8Array'                      ***     79.21 %      ±11.25% ±15.08% ±19.86%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=0 n=25000 type='Uint32Array'                    ***     55.03 %       ±8.21% ±10.97% ±14.39%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=0 n=25000 type='Uint8Array'                     ***     85.25 %      ±12.10% ±16.18% ±21.22%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=1 n=25000 type='Float32Array'                   ***     59.96 %      ±10.24% ±13.73% ±18.07%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=1 n=25000 type='Int8Array'                      ***     80.55 %       ±8.93% ±11.98% ±15.77%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=1 n=25000 type='Uint32Array'                    ***     54.74 %       ±8.79% ±11.80% ±15.57%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=1 n=25000 type='Uint8Array'                     ***     77.87 %      ±13.42% ±17.97% ±23.62%
assert/partial-deep-equal.js datasetName='array' extraProps=0 size=500 n=125                                                  -1.39 %       ±1.98%  ±2.64%  ±3.45%
assert/partial-deep-equal.js datasetName='array' extraProps=1 size=500 n=125                                                   0.54 %       ±1.28%  ±1.70%  ±2.22%
assert/partial-deep-equal.js datasetName='arrayBuffers' extraProps=0 size=500 n=125                                   ***     68.26 %       ±6.13%  ±8.21% ±10.79%
assert/partial-deep-equal.js datasetName='arrayBuffers' extraProps=1 size=500 n=125                                   ***     25.49 %       ±1.83%  ±2.44%  ±3.18%
assert/partial-deep-equal.js datasetName='circularRefs' extraProps=0 size=500 n=125                                   ***      3.33 %       ±0.66%  ±0.88%  ±1.15%
assert/partial-deep-equal.js datasetName='circularRefs' extraProps=1 size=500 n=125                                   ***      3.27 %       ±0.81%  ±1.07%  ±1.40%
assert/partial-deep-equal.js datasetName='dataViewArrayBuffers' extraProps=0 size=500 n=125                           ***     84.18 %       ±6.06%  ±8.14% ±10.74%
assert/partial-deep-equal.js datasetName='dataViewArrayBuffers' extraProps=1 size=500 n=125                           ***     28.63 %       ±1.53%  ±2.03%  ±2.65%
assert/partial-deep-equal.js datasetName='maps' extraProps=0 size=500 n=125                                           ***     22.62 %       ±0.81%  ±1.07%  ±1.39%
assert/partial-deep-equal.js datasetName='maps' extraProps=1 size=500 n=125                                           ***     20.16 %       ±0.79%  ±1.06%  ±1.38%
assert/partial-deep-equal.js datasetName='objects' extraProps=0 size=500 n=125                                        ***      2.44 %       ±1.06%  ±1.41%  ±1.84%
assert/partial-deep-equal.js datasetName='objects' extraProps=1 size=500 n=125                                        ***      2.51 %       ±1.14%  ±1.52%  ±1.99%
assert/partial-deep-equal.js datasetName='sets' extraProps=0 size=500 n=125                                           ***     23.31 %       ±0.78%  ±1.05%  ±1.38%
assert/partial-deep-equal.js datasetName='sets' extraProps=1 size=500 n=125                                           ***     20.58 %       ±1.02%  ±1.37%  ±1.79%
assert/partial-deep-equal.js datasetName='setsWithObjects' extraProps=0 size=500 n=125                                ***     17.65 %       ±2.30%  ±3.07%  ±4.01%
assert/partial-deep-equal.js datasetName='setsWithObjects' extraProps=1 size=500 n=125                                ***     14.20 %       ±1.94%  ±2.59%  ±3.38%
assert/partial-deep-equal.js datasetName='typedArrays' extraProps=0 size=500 n=125                                    ***     73.47 %       ±1.35%  ±1.81%  ±2.37%
assert/partial-deep-equal.js datasetName='typedArrays' extraProps=1 size=500 n=125                                    ***     59.92 %       ±1.86%  ±2.50%  ±3.30%

}
} else if (mode === kLoose &&
(isFloat32Array(val1) || isFloat64Array(val1) || isFloat16Array(val1))) {
(isFloat32Array(val1) || isFloat64Array(val1) || isFloat16Array(val1))) {
Copy link
Contributor

Choose a reason for hiding this comment

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

unrelated change (we should probably have the linter enforce one or the other)

Suggested change
(isFloat32Array(val1) || isFloat64Array(val1) || isFloat16Array(val1))) {
(isFloat32Array(val1) || isFloat64Array(val1) || isFloat16Array(val1))) {

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-benchmark-ci PR that need a benchmark CI run. needs-ci PRs that need a full CI run. util Issues and PRs related to the built-in util module.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants