d5d7fd7013a1a42bb4b648ba32fa044ed66a501c
1 const Benchmark
= require('benny')
2 const { generateRandomInteger
} = require('./benchmark-utils')
4 const size
= generateRandomInteger(100000)
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 Reflect
.ownKeys(obj
).length
=== 0 && obj
?.constructor === Object
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
29 file
: 'is-empty-object',
34 file
: 'is-empty-object',
39 file
: 'is-empty-object',