1 import Benchmark from 'benny'
3 import { generateRandomObject } from './benchmark-utils.mjs'
5 const object = generateRandomObject()
8 `Is empty object with ${Object.keys(object).length} keys`,
9 Benchmark.add('Reflect keys', (obj = object) => {
10 return obj?.constructor === Object && Reflect.ownKeys(obj).length === 0
12 Benchmark.add('Keys iteration', (obj = object) => {
13 if (obj?.constructor !== Object) return false
14 // Iterates over the keys of an object, if
15 // any exist, return false.
16 // eslint-disable-next-line no-unreachable-loop
17 for (const _ in obj) return false
20 Benchmark.add('Object keys', (obj = object) => {
21 return obj?.constructor === Object && Object.keys(obj).length === 0
26 file: 'is-empty-object',
31 file: 'is-empty-object',
36 file: 'is-empty-object',
40 ).catch(console.error)