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.53%. Comparing base (5e677d6) to head (7fc5aa0).
⚠️ Report is 5 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main   #61176      +/-   ##
==========================================
+ Coverage   88.52%   88.53%   +0.01%     
==========================================
  Files         703      703              
  Lines      208585   208599      +14     
  Branches    40225    40232       +7     
==========================================
+ Hits       184650   184692      +42     
+ Misses      15953    15915      -38     
- Partials     7982     7992      +10     
Files with missing lines Coverage Δ
lib/internal/util/comparisons.js 99.71% <100.00%> (+<0.01%) ⬆️

... and 41 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
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.

2 participants