1 const Benchmark
= require('benny')
2 const { generateRandomInteger
} = require('./benchmark-utils')
4 const size
= generateRandomInteger(500)
6 for (let i
= 0; i
< size
; i
++) {
7 testObject
[i
.toString()] = i
11 `Is empty object with ${size} keys`,
12 Benchmark
.add('Reflect keys', (obj
= testObject
) => {
13 return obj
?.constructor === Object
&& Reflect
.ownKeys(obj
).length
=== 0
15 Benchmark
.add('Keys iteration', (obj
= testObject
) => {
16 if (obj
?.constructor !== Object
) return false
17 // Iterates over the keys of an object, if
18 // any exist, return false.
19 // eslint-disable-next-line no-unreachable-loop
20 for (const _
in obj
) return false
23 Benchmark
.add('Object keys', (obj
= testObject
) => {
24 return obj
?.constructor === Object
&& Object
.keys(obj
).length
=== 0
29 file
: 'is-empty-object',
34 file
: 'is-empty-object',
39 file
: 'is-empty-object',