New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
lib: refactor to use primordials in lib/assert.js
#41702
Conversation
I think we should wait for nodejs/TSC#1104 to get resolved before doing anything related to primordials at this point.
|
In particular I think a safe guideline can be:
|
There were no significant perf regressions in the last benchmark run but the link takes me to a 404 page now, so I'll run the assert benchmarks again:
https://ci.nodejs.org/job/benchmark-node-micro-benchmarks/1100/
confidence improvement accuracy (*) (**) (***)
assert/deepequal-buffer.js method='deepEqual' strict=0 len=1000 n=20000 -5.17 % ±6.27% ±8.36% ±10.92%
assert/deepequal-buffer.js method='deepEqual' strict=0 len=100 n=20000 2.07 % ±6.40% ±8.51% ±11.08%
assert/deepequal-buffer.js method='deepEqual' strict=1 len=1000 n=20000 2.55 % ±6.40% ±8.51% ±11.08%
assert/deepequal-buffer.js method='deepEqual' strict=1 len=100 n=20000 -1.37 % ±5.85% ±7.79% ±10.16%
assert/deepequal-buffer.js method='notDeepEqual' strict=0 len=1000 n=20000 -0.07 % ±6.08% ±8.08% ±10.53%
assert/deepequal-buffer.js method='notDeepEqual' strict=0 len=100 n=20000 0.01 % ±6.66% ±8.87% ±11.56%
assert/deepequal-buffer.js method='notDeepEqual' strict=1 len=1000 n=20000 * 6.55 % ±6.41% ±8.58% ±11.25%
assert/deepequal-buffer.js method='notDeepEqual' strict=1 len=100 n=20000 -0.19 % ±7.25% ±9.64% ±12.55%
assert/deepequal-map.js method='deepEqual_mixed' strict=0 len=500 n=500 -1.03 % ±2.13% ±2.83% ±3.69%
assert/deepequal-map.js method='deepEqual_mixed' strict=1 len=500 n=500 -0.47 % ±2.10% ±2.79% ±3.64%
assert/deepequal-map.js method='deepEqual_objectOnly' strict=0 len=500 n=500 1.09 % ±1.44% ±1.91% ±2.49%
assert/deepequal-map.js method='deepEqual_objectOnly' strict=1 len=500 n=500 -0.79 % ±1.34% ±1.79% ±2.33%
assert/deepequal-map.js method='deepEqual_primitiveOnly' strict=0 len=500 n=500 2.07 % ±6.43% ±8.56% ±11.15%
assert/deepequal-map.js method='deepEqual_primitiveOnly' strict=1 len=500 n=500 -0.73 % ±6.39% ±8.52% ±11.11%
assert/deepequal-map.js method='notDeepEqual_mixed' strict=0 len=500 n=500 -3.25 % ±7.07% ±9.41% ±12.25%
assert/deepequal-map.js method='notDeepEqual_mixed' strict=1 len=500 n=500 -1.52 % ±5.27% ±7.02% ±9.16%
assert/deepequal-map.js method='notDeepEqual_objectOnly' strict=0 len=500 n=500 0.75 % ±2.37% ±3.15% ±4.11%
assert/deepequal-map.js method='notDeepEqual_objectOnly' strict=1 len=500 n=500 0.80 % ±2.65% ±3.53% ±4.59%
assert/deepequal-map.js method='notDeepEqual_primitiveOnly' strict=0 len=500 n=500 0.07 % ±5.32% ±7.08% ±9.21%
assert/deepequal-map.js method='notDeepEqual_primitiveOnly' strict=1 len=500 n=500 0.12 % ±4.74% ±6.31% ±8.21%
assert/deepequal-object.js method='deepEqual' strict=0 size=1000 n=5000 0.69 % ±5.34% ±7.10% ±9.25%
assert/deepequal-object.js method='deepEqual' strict=0 size=100 n=5000 0.23 % ±4.92% ±6.55% ±8.53%
assert/deepequal-object.js method='deepEqual' strict=0 size=50000 n=5000 0.52 % ±1.79% ±2.39% ±3.11%
assert/deepequal-object.js method='deepEqual' strict=1 size=1000 n=5000 3.55 % ±6.79% ±9.03% ±11.77%
assert/deepequal-object.js method='deepEqual' strict=1 size=100 n=5000 -3.88 % ±6.03% ±8.04% ±10.50%
assert/deepequal-object.js method='deepEqual' strict=1 size=50000 n=5000 -1.50 % ±1.80% ±2.41% ±3.15%
assert/deepequal-object.js method='notDeepEqual' strict=0 size=1000 n=5000 2.18 % ±9.84% ±13.09% ±17.04%
assert/deepequal-object.js method='notDeepEqual' strict=0 size=100 n=5000 6.81 % ±10.26% ±13.73% ±18.02%
assert/deepequal-object.js method='notDeepEqual' strict=0 size=50000 n=5000 -3.39 % ±8.01% ±10.66% ±13.88%
assert/deepequal-object.js method='notDeepEqual' strict=1 size=1000 n=5000 2.89 % ±7.47% ±9.94% ±12.95%
assert/deepequal-object.js method='notDeepEqual' strict=1 size=100 n=5000 -1.94 % ±6.40% ±8.52% ±11.11%
assert/deepequal-object.js method='notDeepEqual' strict=1 size=50000 n=5000 2.96 % ±8.08% ±10.75% ±13.99%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Array' strict=0 len=20000 n=25 primitive='array' 0.63 % ±5.75% ±7.65% ±9.95%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Array' strict=0 len=20000 n=25 primitive='number' -0.50 % ±4.62% ±6.17% ±8.06%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Array' strict=0 len=20000 n=25 primitive='object' 0.38 % ±5.13% ±6.82% ±8.88%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Array' strict=0 len=20000 n=25 primitive='string' 2.58 % ±5.66% ±7.53% ±9.81%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Array' strict=1 len=20000 n=25 primitive='array' -1.09 % ±4.80% ±6.39% ±8.32%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Array' strict=1 len=20000 n=25 primitive='number' -0.41 % ±4.86% ±6.46% ±8.41%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Array' strict=1 len=20000 n=25 primitive='object' -4.82 % ±6.82% ±9.08% ±11.82%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Array' strict=1 len=20000 n=25 primitive='string' 0.44 % ±4.85% ±6.45% ±8.40%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Set' strict=0 len=20000 n=25 primitive='array' -3.19 % ±6.62% ±8.83% ±11.53%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Set' strict=0 len=20000 n=25 primitive='number' 1.62 % ±6.21% ±8.27% ±10.76%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Set' strict=0 len=20000 n=25 primitive='object' 4.46 % ±6.24% ±8.32% ±10.88%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Set' strict=0 len=20000 n=25 primitive='string' 0.10 % ±4.63% ±6.16% ±8.01%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Set' strict=1 len=20000 n=25 primitive='array' 1.95 % ±6.23% ±8.30% ±10.83%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Set' strict=1 len=20000 n=25 primitive='number' -1.93 % ±5.94% ±7.91% ±10.29%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Set' strict=1 len=20000 n=25 primitive='object' 1.69 % ±7.67% ±10.20% ±13.28%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Set' strict=1 len=20000 n=25 primitive='string' 2.49 % ±5.45% ±7.26% ±9.45%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Array' strict=0 len=20000 n=25 primitive='array' 1.32 % ±5.41% ±7.20% ±9.37%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Array' strict=0 len=20000 n=25 primitive='number' -2.92 % ±4.16% ±5.53% ±7.20%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Array' strict=0 len=20000 n=25 primitive='object' 0.60 % ±6.40% ±8.52% ±11.08%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Array' strict=0 len=20000 n=25 primitive='string' -0.08 % ±5.13% ±6.84% ±8.92%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Array' strict=1 len=20000 n=25 primitive='array' -0.57 % ±5.33% ±7.10% ±9.26%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Array' strict=1 len=20000 n=25 primitive='number' -0.23 % ±5.78% ±7.70% ±10.02%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Array' strict=1 len=20000 n=25 primitive='object' -0.99 % ±5.24% ±6.97% ±9.07%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Array' strict=1 len=20000 n=25 primitive='string' * -5.44 % ±4.39% ±5.85% ±7.65%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Set' strict=0 len=20000 n=25 primitive='array' 2.01 % ±6.33% ±8.42% ±10.98%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Set' strict=0 len=20000 n=25 primitive='number' 2.82 % ±6.05% ±8.05% ±10.47%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Set' strict=0 len=20000 n=25 primitive='object' -3.63 % ±7.17% ±9.55% ±12.46%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Set' strict=0 len=20000 n=25 primitive='string' -0.05 % ±6.85% ±9.13% ±11.90%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Set' strict=1 len=20000 n=25 primitive='array' -1.70 % ±7.93% ±10.56% ±13.75%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Set' strict=1 len=20000 n=25 primitive='number' -1.98 % ±6.95% ±9.25% ±12.03%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Set' strict=1 len=20000 n=25 primitive='object' -5.90 % ±6.91% ±9.22% ±12.03%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Set' strict=1 len=20000 n=25 primitive='string' -2.40 % ±5.82% ±7.75% ±10.09%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=20000 primitive='array' 2.92 % ±7.23% ±9.64% ±12.59%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=20000 primitive='number' -1.55 % ±5.57% ±7.41% ±9.65%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=20000 primitive='object' 0.61 % ±6.43% ±8.56% ±11.15%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=20000 primitive='string' 2.77 % ±4.99% ±6.64% ±8.65%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=20000 primitive='array' -3.61 % ±6.16% ±8.20% ±10.70%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=20000 primitive='number' -0.42 % ±5.69% ±7.58% ±9.90%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=20000 primitive='object' 3.57 % ±6.75% ±8.99% ±11.71%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=20000 primitive='string' -0.72 % ±6.25% ±8.31% ±10.82%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=0 n=20000 primitive='array' 3.02 % ±5.88% ±7.84% ±10.23%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=0 n=20000 primitive='number' 3.09 % ±6.53% ±8.68% ±11.30%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=0 n=20000 primitive='object' -0.96 % ±5.81% ±7.78% ±10.23%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=0 n=20000 primitive='string' -2.37 % ±6.22% ±8.28% ±10.78%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=20000 primitive='array' -0.62 % ±5.00% ±6.65% ±8.65%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=20000 primitive='number' 1.94 % ±6.05% ±8.05% ±10.48%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=20000 primitive='object' 6.24 % ±7.17% ±9.55% ±12.46%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=20000 primitive='string' 0.90 % ±6.19% ±8.24% ±10.73%
assert/deepequal-set.js method='deepEqual_mixed' strict=0 len=500 n=500 -0.20 % ±2.16% ±2.87% ±3.74%
assert/deepequal-set.js method='deepEqual_mixed' strict=1 len=500 n=500 0.64 % ±2.30% ±3.07% ±4.00%
assert/deepequal-set.js method='deepEqual_objectOnly' strict=0 len=500 n=500 0.16 % ±1.35% ±1.79% ±2.34%
assert/deepequal-set.js method='deepEqual_objectOnly' strict=1 len=500 n=500 0.76 % ±1.43% ±1.90% ±2.47%
assert/deepequal-set.js method='deepEqual_primitiveOnly' strict=0 len=500 n=500 -0.41 % ±5.29% ±7.04% ±9.16%
assert/deepequal-set.js method='deepEqual_primitiveOnly' strict=1 len=500 n=500 -1.05 % ±5.42% ±7.22% ±9.40%
assert/deepequal-set.js method='notDeepEqual_mixed' strict=0 len=500 n=500 1.82 % ±4.77% ±6.36% ±8.29%
assert/deepequal-set.js method='notDeepEqual_mixed' strict=1 len=500 n=500 -0.47 % ±4.41% ±5.88% ±7.66%
assert/deepequal-set.js method='notDeepEqual_objectOnly' strict=0 len=500 n=500 0.27 % ±2.50% ±3.32% ±4.32%
assert/deepequal-set.js method='notDeepEqual_objectOnly' strict=1 len=500 n=500 -0.44 % ±1.68% ±2.23% ±2.91%
assert/deepequal-set.js method='notDeepEqual_primitiveOnly' strict=0 len=500 n=500 -3.01 % ±3.82% ±5.09% ±6.66%
assert/deepequal-set.js method='notDeepEqual_primitiveOnly' strict=1 len=500 n=500 -2.88 % ±4.35% ±5.79% ±7.53%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=0 n=500 type='Float32Array' -3.57 % ±5.94% ±7.91% ±10.29%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=0 n=500 type='Float64Array' 4.79 % ±9.05% ±12.08% ±15.78%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=0 n=500 type='Int8Array' -2.43 % ±5.65% ±7.52% ±9.78%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=0 n=500 type='Uint8Array' 3.98 % ±5.93% ±7.91% ±10.32%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=0 n=500 type='Uint8ClampedArray' 3.29 % ±7.79% ±10.42% ±13.65%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=1 n=500 type='Float32Array' 0.26 % ±5.98% ±7.98% ±10.43%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=1 n=500 type='Float64Array' 3.69 % ±10.25% ±13.72% ±18.03%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=1 n=500 type='Int8Array' -0.44 % ±6.20% ±8.25% ±10.75%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=1 n=500 type='Uint8Array' 0.18 % ±6.08% ±8.09% ±10.53%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=1 n=500 type='Uint8ClampedArray' 6.39 % ±7.19% ±9.63% ±12.67%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=0 n=500 type='Float32Array' 1.11 % ±5.16% ±6.88% ±9.00%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=0 n=500 type='Float64Array' 0.20 % ±6.19% ±8.25% ±10.74%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=0 n=500 type='Int8Array' -3.25 % ±6.11% ±8.15% ±10.62%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=0 n=500 type='Uint8Array' -2.06 % ±6.34% ±8.44% ±10.98%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=0 n=500 type='Uint8ClampedArray' * 10.01 % ±8.38% ±11.17% ±14.58%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=1 n=500 type='Float32Array' -2.58 % ±8.05% ±10.72% ±13.96%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=1 n=500 type='Float64Array' -2.56 % ±9.27% ±12.33% ±16.05%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=1 n=500 type='Int8Array' -0.10 % ±5.61% ±7.47% ±9.75%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=1 n=500 type='Uint8Array' -5.74 % ±6.62% ±8.82% ±11.49%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=1 n=500 type='Uint8ClampedArray' -4.73 % ±7.13% ±9.48% ±12.34%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=0 n=500 type='Float32Array' 3.64 % ±4.43% ±5.89% ±7.67%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=0 n=500 type='Float64Array' -0.34 % ±2.81% ±3.75% ±4.89%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=0 n=500 type='Int8Array' 1.77 % ±4.90% ±6.52% ±8.49%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=0 n=500 type='Uint8Array' -6.60 % ±7.15% ±9.52% ±12.40%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=0 n=500 type='Uint8ClampedArray' ** 12.54 % ±8.92% ±11.93% ±15.65%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=1 n=500 type='Float32Array' 2.93 % ±7.49% ±10.00% ±13.06%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=1 n=500 type='Float64Array' * 7.86 % ±7.47% ±9.95% ±12.97%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=1 n=500 type='Int8Array' -3.07 % ±5.02% ±6.70% ±8.76%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=1 n=500 type='Uint8Array' 0.20 % ±6.25% ±8.32% ±10.85%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=1 n=500 type='Uint8ClampedArray' -2.13 % ±7.21% ±9.60% ±12.52%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=0 n=500 type='Float32Array' 3.52 % ±4.87% ±6.50% ±8.50%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=0 n=500 type='Float64Array' 1.90 % ±5.76% ±7.67% ±9.98%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=0 n=500 type='Int8Array' 2.76 % ±6.66% ±8.87% ±11.57%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=0 n=500 type='Uint8Array' -2.17 % ±7.12% ±9.47% ±12.34%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=0 n=500 type='Uint8ClampedArray' -1.92 % ±6.68% ±8.89% ±11.58%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=1 n=500 type='Float32Array' -1.77 % ±7.42% ±9.88% ±12.86%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=1 n=500 type='Float64Array' -4.01 % ±7.51% ±9.99% ±13.02%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=1 n=500 type='Int8Array' 3.14 % ±6.64% ±8.84% ±11.50%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=1 n=500 type='Uint8Array' 3.16 % ±7.07% ±9.40% ±12.24%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=1 n=500 type='Uint8ClampedArray' * 7.24 % ±7.03% ±9.38% ±12.26%
assert/ok.js n=100000 -3.11 % ±4.15% ±5.53% ±7.23%
assert/throws.js method='doesNotThrow' n=10000 -3.47 % ±6.61% ±8.79% ±11.45%
assert/throws.js method='throws_RegExp' n=10000 * -4.39 % ±3.85% ±5.13% ±6.69%
assert/throws.js method='throws_TypeError' n=10000 0.65 % ±4.71% ±6.27% ±8.16%
Be aware that when doing many comparisons the risk of a false-positive
result increases. In this case, there are 136 comparisons, you can thus
expect the following amount of false-positive results:
6.80 false positives, when considering a 5% risk acceptance (*, **, ***),
1.36 false positives, when considering a 1% risk acceptance (**, ***),
0.14 false positives, when considering a 0.1% risk acceptance (***)
regressions with at least one *:
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Array' strict=1 len=20000 n=25 primitive='string' * -5.44 % ±4.39% ±5.85% ±7.65%
assert/throws.js method='throws_RegExp' n=10000 * -4.39 % ±3.85% ±5.13% ±6.69%
will rerun CI to check if those are flaky:
https://ci.nodejs.org/job/benchmark-node-micro-benchmarks/1101/
confidence improvement accuracy (*) (**) (***)
assert/deepequal-buffer.js method='deepEqual' strict=0 len=1000 n=20000 -2.52 % ±4.88% ±6.50% ±8.46%
assert/deepequal-buffer.js method='deepEqual' strict=0 len=100 n=20000 -0.85 % ±5.29% ±7.05% ±9.18%
assert/deepequal-buffer.js method='deepEqual' strict=1 len=1000 n=20000 2.29 % ±6.73% ±8.95% ±11.66%
assert/deepequal-buffer.js method='deepEqual' strict=1 len=100 n=20000 -3.90 % ±5.36% ±7.15% ±9.35%
assert/deepequal-buffer.js method='notDeepEqual' strict=0 len=1000 n=20000 4.95 % ±7.33% ±9.76% ±12.70%
assert/deepequal-buffer.js method='notDeepEqual' strict=0 len=100 n=20000 -1.06 % ±6.51% ±8.67% ±11.30%
assert/deepequal-buffer.js method='notDeepEqual' strict=1 len=1000 n=20000 -1.66 % ±6.38% ±8.49% ±11.06%
assert/deepequal-buffer.js method='notDeepEqual' strict=1 len=100 n=20000 -0.63 % ±6.40% ±8.52% ±11.10%
assert/deepequal-map.js method='deepEqual_mixed' strict=0 len=500 n=500 0.44 % ±1.90% ±2.53% ±3.30%
assert/deepequal-map.js method='deepEqual_mixed' strict=1 len=500 n=500 0.87 % ±1.63% ±2.17% ±2.83%
assert/deepequal-map.js method='deepEqual_objectOnly' strict=0 len=500 n=500 1.26 % ±1.65% ±2.20% ±2.88%
assert/deepequal-map.js method='deepEqual_objectOnly' strict=1 len=500 n=500 -0.69 % ±1.42% ±1.88% ±2.45%
assert/deepequal-map.js method='deepEqual_primitiveOnly' strict=0 len=500 n=500 -1.70 % ±5.15% ±6.86% ±8.94%
assert/deepequal-map.js method='deepEqual_primitiveOnly' strict=1 len=500 n=500 -1.95 % ±6.05% ±8.07% ±10.53%
assert/deepequal-map.js method='notDeepEqual_mixed' strict=0 len=500 n=500 2.95 % ±7.92% ±10.55% ±13.75%
assert/deepequal-map.js method='notDeepEqual_mixed' strict=1 len=500 n=500 3.34 % ±5.02% ±6.68% ±8.70%
assert/deepequal-map.js method='notDeepEqual_objectOnly' strict=0 len=500 n=500 -2.25 % ±2.30% ±3.06% ±3.99%
assert/deepequal-map.js method='notDeepEqual_objectOnly' strict=1 len=500 n=500 -0.47 % ±1.92% ±2.55% ±3.32%
assert/deepequal-map.js method='notDeepEqual_primitiveOnly' strict=0 len=500 n=500 -4.34 % ±6.12% ±8.14% ±10.61%
assert/deepequal-map.js method='notDeepEqual_primitiveOnly' strict=1 len=500 n=500 -0.77 % ±4.01% ±5.35% ±7.01%
assert/deepequal-object.js method='deepEqual' strict=0 size=1000 n=5000 -2.10 % ±4.64% ±6.19% ±8.08%
assert/deepequal-object.js method='deepEqual' strict=0 size=100 n=5000 0.19 % ±6.70% ±8.92% ±11.62%
assert/deepequal-object.js method='deepEqual' strict=0 size=50000 n=5000 2.06 % ±2.35% ±3.13% ±4.09%
assert/deepequal-object.js method='deepEqual' strict=1 size=1000 n=5000 * 5.90 % ±4.81% ±6.42% ±8.39%
assert/deepequal-object.js method='deepEqual' strict=1 size=100 n=5000 1.40 % ±6.05% ±8.06% ±10.50%
assert/deepequal-object.js method='deepEqual' strict=1 size=50000 n=5000 -0.42 % ±1.70% ±2.26% ±2.94%
assert/deepequal-object.js method='notDeepEqual' strict=0 size=1000 n=5000 4.05 % ±6.81% ±9.06% ±11.79%
assert/deepequal-object.js method='notDeepEqual' strict=0 size=100 n=5000 3.18 % ±6.01% ±7.99% ±10.41%
assert/deepequal-object.js method='notDeepEqual' strict=0 size=50000 n=5000 1.96 % ±7.41% ±9.85% ±12.83%
assert/deepequal-object.js method='notDeepEqual' strict=1 size=1000 n=5000 -1.66 % ±7.41% ±9.86% ±12.84%
assert/deepequal-object.js method='notDeepEqual' strict=1 size=100 n=5000 3.65 % ±6.64% ±8.83% ±11.50%
assert/deepequal-object.js method='notDeepEqual' strict=1 size=50000 n=5000 -1.64 % ±6.62% ±8.83% ±11.55%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Array' strict=0 len=20000 n=25 primitive='array' -0.72 % ±4.97% ±6.62% ±8.62%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Array' strict=0 len=20000 n=25 primitive='number' 1.64 % ±4.75% ±6.32% ±8.22%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Array' strict=0 len=20000 n=25 primitive='object' 0.95 % ±4.42% ±5.89% ±7.69%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Array' strict=0 len=20000 n=25 primitive='string' -3.25 % ±8.03% ±10.73% ±14.06%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Array' strict=1 len=20000 n=25 primitive='array' 1.02 % ±5.04% ±6.71% ±8.74%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Array' strict=1 len=20000 n=25 primitive='number' -0.46 % ±5.24% ±6.99% ±9.14%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Array' strict=1 len=20000 n=25 primitive='object' * -5.54 % ±5.03% ±6.69% ±8.71%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Array' strict=1 len=20000 n=25 primitive='string' -0.03 % ±4.09% ±5.45% ±7.11%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Set' strict=0 len=20000 n=25 primitive='array' 1.06 % ±6.07% ±8.07% ±10.52%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Set' strict=0 len=20000 n=25 primitive='number' -0.05 % ±5.66% ±7.55% ±9.87%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Set' strict=0 len=20000 n=25 primitive='object' -0.20 % ±7.02% ±9.36% ±12.22%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Set' strict=0 len=20000 n=25 primitive='string' 1.32 % ±5.61% ±7.47% ±9.72%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Set' strict=1 len=20000 n=25 primitive='array' 4.98 % ±7.85% ±10.46% ±13.63%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Set' strict=1 len=20000 n=25 primitive='number' 1.34 % ±6.20% ±8.25% ±10.75%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Set' strict=1 len=20000 n=25 primitive='object' 2.49 % ±6.49% ±8.63% ±11.24%
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Set' strict=1 len=20000 n=25 primitive='string' -2.30 % ±8.79% ±11.69% ±15.22%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Array' strict=0 len=20000 n=25 primitive='array' -5.31 % ±5.39% ±7.18% ±9.35%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Array' strict=0 len=20000 n=25 primitive='number' -1.28 % ±5.08% ±6.75% ±8.79%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Array' strict=0 len=20000 n=25 primitive='object' 1.39 % ±4.20% ±5.59% ±7.29%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Array' strict=0 len=20000 n=25 primitive='string' -1.00 % ±4.78% ±6.37% ±8.29%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Array' strict=1 len=20000 n=25 primitive='array' 2.64 % ±6.49% ±8.63% ±11.25%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Array' strict=1 len=20000 n=25 primitive='number' 0.49 % ±4.35% ±5.79% ±7.54%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Array' strict=1 len=20000 n=25 primitive='object' -1.34 % ±5.51% ±7.33% ±9.55%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Array' strict=1 len=20000 n=25 primitive='string' 0.16 % ±5.37% ±7.14% ±9.30%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Set' strict=0 len=20000 n=25 primitive='array' -1.19 % ±7.73% ±10.28% ±13.39%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Set' strict=0 len=20000 n=25 primitive='number' -1.51 % ±5.80% ±7.72% ±10.05%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Set' strict=0 len=20000 n=25 primitive='object' -0.28 % ±6.60% ±8.78% ±11.43%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Set' strict=0 len=20000 n=25 primitive='string' -0.42 % ±5.80% ±7.72% ±10.06%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Set' strict=1 len=20000 n=25 primitive='array' -0.18 % ±6.86% ±9.14% ±11.91%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Set' strict=1 len=20000 n=25 primitive='number' -1.08 % ±5.91% ±7.86% ±10.24%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Set' strict=1 len=20000 n=25 primitive='object' 1.49 % ±7.05% ±9.38% ±12.21%
assert/deepequal-prims-and-objs-big-array-set.js method='notDeepEqual_Set' strict=1 len=20000 n=25 primitive='string' -1.90 % ±6.40% ±8.52% ±11.10%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=20000 primitive='array' -0.82 % ±7.10% ±9.45% ±12.30%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=20000 primitive='number' -0.44 % ±6.34% ±8.44% ±11.00%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=20000 primitive='object' 0.11 % ±9.61% ±12.83% ±16.77%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=0 n=20000 primitive='string' -2.82 % ±5.48% ±7.29% ±9.49%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=20000 primitive='array' -0.52 % ±5.59% ±7.44% ±9.68%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=20000 primitive='number' 1.19 % ±6.56% ±8.73% ±11.37%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=20000 primitive='object' 1.85 % ±6.31% ±8.40% ±10.93%
assert/deepequal-prims-and-objs-big-loop.js method='deepEqual' strict=1 n=20000 primitive='string' 2.15 % ±6.26% ±8.34% ±10.88%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=0 n=20000 primitive='array' -4.32 % ±6.12% ±8.18% ±10.71%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=0 n=20000 primitive='number' 0.61 % ±7.48% ±9.95% ±12.96%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=0 n=20000 primitive='object' 4.22 % ±6.25% ±8.34% ±10.88%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=0 n=20000 primitive='string' -0.11 % ±5.02% ±6.68% ±8.70%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=20000 primitive='array' -2.15 % ±5.54% ±7.39% ±9.65%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=20000 primitive='number' 1.27 % ±6.19% ±8.24% ±10.73%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=20000 primitive='object' -2.89 % ±5.02% ±6.70% ±8.74%
assert/deepequal-prims-and-objs-big-loop.js method='notDeepEqual' strict=1 n=20000 primitive='string' -4.09 % ±5.81% ±7.73% ±10.08%
assert/deepequal-set.js method='deepEqual_mixed' strict=0 len=500 n=500 0.56 % ±2.29% ±3.05% ±3.97%
assert/deepequal-set.js method='deepEqual_mixed' strict=1 len=500 n=500 0.11 % ±2.37% ±3.15% ±4.10%
assert/deepequal-set.js method='deepEqual_objectOnly' strict=0 len=500 n=500 0.35 % ±1.80% ±2.40% ±3.13%
assert/deepequal-set.js method='deepEqual_objectOnly' strict=1 len=500 n=500 0.44 % ±1.09% ±1.45% ±1.89%
assert/deepequal-set.js method='deepEqual_primitiveOnly' strict=0 len=500 n=500 0.03 % ±6.09% ±8.10% ±10.55%
assert/deepequal-set.js method='deepEqual_primitiveOnly' strict=1 len=500 n=500 4.63 % ±6.04% ±8.04% ±10.47%
assert/deepequal-set.js method='notDeepEqual_mixed' strict=0 len=500 n=500 -2.63 % ±5.16% ±6.93% ±9.12%
assert/deepequal-set.js method='notDeepEqual_mixed' strict=1 len=500 n=500 -1.07 % ±5.03% ±6.69% ±8.73%
assert/deepequal-set.js method='notDeepEqual_objectOnly' strict=0 len=500 n=500 -1.06 % ±2.56% ±3.41% ±4.44%
assert/deepequal-set.js method='notDeepEqual_objectOnly' strict=1 len=500 n=500 -0.94 % ±4.75% ±6.36% ±8.36%
assert/deepequal-set.js method='notDeepEqual_primitiveOnly' strict=0 len=500 n=500 -0.26 % ±3.79% ±5.04% ±6.56%
assert/deepequal-set.js method='notDeepEqual_primitiveOnly' strict=1 len=500 n=500 -2.24 % ±3.85% ±5.13% ±6.68%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=0 n=500 type='Float32Array' -3.91 % ±5.32% ±7.08% ±9.23%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=0 n=500 type='Float64Array' 1.53 % ±4.90% ±6.53% ±8.54%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=0 n=500 type='Int8Array' -0.92 % ±5.51% ±7.33% ±9.54%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=0 n=500 type='Uint8Array' -3.31 % ±5.67% ±7.55% ±9.82%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=0 n=500 type='Uint8ClampedArray' 1.37 % ±5.65% ±7.52% ±9.79%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=1 n=500 type='Float32Array' -4.18 % ±6.29% ±8.39% ±10.96%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=1 n=500 type='Float64Array' 4.73 % ±5.74% ±7.66% ±10.01%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=1 n=500 type='Int8Array' 4.04 % ±6.76% ±9.00% ±11.71%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=1 n=500 type='Uint8Array' -3.49 % ±6.16% ±8.21% ±10.69%
assert/deepequal-typedarrays.js len=100 method='deepEqual' strict=1 n=500 type='Uint8ClampedArray' -1.74 % ±6.14% ±8.17% ±10.64%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=0 n=500 type='Float32Array' -3.47 % ±4.74% ±6.32% ±8.26%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=0 n=500 type='Float64Array' 2.73 % ±4.83% ±6.46% ±8.48%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=0 n=500 type='Int8Array' 1.97 % ±7.17% ±9.55% ±12.43%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=0 n=500 type='Uint8Array' 3.58 % ±4.70% ±6.26% ±8.16%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=0 n=500 type='Uint8ClampedArray' -1.73 % ±5.77% ±7.68% ±9.99%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=1 n=500 type='Float32Array' 3.93 % ±6.91% ±9.21% ±12.01%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=1 n=500 type='Float64Array' 5.56 % ±7.68% ±10.25% ±13.39%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=1 n=500 type='Int8Array' 4.36 % ±6.97% ±9.29% ±12.13%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=1 n=500 type='Uint8Array' 4.47 % ±7.75% ±10.33% ±13.47%
assert/deepequal-typedarrays.js len=100 method='notDeepEqual' strict=1 n=500 type='Uint8ClampedArray' * 7.22 % ±5.94% ±7.90% ±10.29%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=0 n=500 type='Float32Array' -3.12 % ±4.57% ±6.09% ±7.92%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=0 n=500 type='Float64Array' -1.21 % ±2.76% ±3.67% ±4.78%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=0 n=500 type='Int8Array' -3.33 % ±5.29% ±7.07% ±9.26%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=0 n=500 type='Uint8Array' -0.97 % ±4.91% ±6.54% ±8.51%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=0 n=500 type='Uint8ClampedArray' 3.45 % ±5.81% ±7.75% ±10.13%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=1 n=500 type='Float32Array' -3.03 % ±5.49% ±7.32% ±9.55%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=1 n=500 type='Float64Array' 0.69 % ±7.43% ±9.89% ±12.87%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=1 n=500 type='Int8Array' -0.61 % ±6.17% ±8.21% ±10.69%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=1 n=500 type='Uint8Array' 1.64 % ±6.91% ±9.20% ±11.98%
assert/deepequal-typedarrays.js len=5000 method='deepEqual' strict=1 n=500 type='Uint8ClampedArray' 5.51 % ±6.94% ±9.25% ±12.05%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=0 n=500 type='Float32Array' -3.24 % ±5.48% ±7.29% ±9.48%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=0 n=500 type='Float64Array' -1.59 % ±4.56% ±6.08% ±7.93%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=0 n=500 type='Int8Array' -3.76 % ±4.82% ±6.43% ±8.40%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=0 n=500 type='Uint8Array' -0.44 % ±5.14% ±6.84% ±8.91%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=0 n=500 type='Uint8ClampedArray' 0.31 % ±6.19% ±8.23% ±10.72%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=1 n=500 type='Float32Array' -5.61 % ±5.73% ±7.64% ±9.96%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=1 n=500 type='Float64Array' -1.10 % ±7.11% ±9.49% ±12.39%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=1 n=500 type='Int8Array' 2.47 % ±6.23% ±8.29% ±10.81%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=1 n=500 type='Uint8Array' -3.47 % ±6.53% ±8.68% ±11.31%
assert/deepequal-typedarrays.js len=5000 method='notDeepEqual' strict=1 n=500 type='Uint8ClampedArray' -1.26 % ±6.00% ±7.99% ±10.39%
assert/ok.js n=100000 1.78 % ±5.04% ±6.71% ±8.74%
assert/throws.js method='doesNotThrow' n=10000 2.19 % ±6.50% ±8.67% ±11.31%
assert/throws.js method='throws_RegExp' n=10000 -0.11 % ±3.93% ±5.24% ±6.82%
assert/throws.js method='throws_TypeError' n=10000 3.42 % ±4.06% ±5.41% ±7.04%
Be aware that when doing many comparisons the risk of a false-positive
result increases. In this case, there are 136 comparisons, you can thus
expect the following amount of false-positive results:
6.80 false positives, when considering a 5% risk acceptance (*, **, ***),
1.36 false positives, when considering a 1% risk acceptance (**, ***),
0.14 false positives, when considering a 0.1% risk acceptance (***)
the only regression with at least 1 * appears to be different from the ones above, so definitely flaky:
assert/deepequal-prims-and-objs-big-array-set.js method='deepEqual_Array' strict=1 len=20000 n=25 primitive='object' * -5.54 % ±5.03% ±6.69% ±8.71%
Approving because in nodejs/TSC#1158, most people who commented / reacted with
|
Landed in 6f8c983 |
PR-URL: #41702 Reviewed-By: Darshan Sen <raisinten@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Mestery <mestery@protonmail.com>
PR-URL: nodejs#41702 Reviewed-By: Darshan Sen <raisinten@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Mestery <mestery@protonmail.com>
PR-URL: #41702 Reviewed-By: Darshan Sen <raisinten@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Mestery <mestery@protonmail.com>
PR-URL: #41702 Reviewed-By: Darshan Sen <raisinten@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Mestery <mestery@protonmail.com>
PR-URL: #41702 Reviewed-By: Darshan Sen <raisinten@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Mestery <mestery@protonmail.com>
PR-URL: nodejs#41702 Reviewed-By: Darshan Sen <raisinten@gmail.com> Reviewed-By: Antoine du Hamel <duhamelantoine1995@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Mestery <mestery@protonmail.com>


Use
StringPrototypeIndexOfandStringPrototypeSlice