build(deps-dev): apply updates
[benchmarks-js.git] / is-empty-object.js
index b27dc104d89ed3a1ec0abf892ff9483ab18431a7..02c3a29c809d00f4d9ab70083688a94c7ad21eb9 100644 (file)
@@ -1,27 +1,23 @@
 const Benchmark = require('benny')
-const { generateRandomInteger } = require('./benchmark-utils')
+const { generateRandomObject } = require('./benchmark-utils')
 
-const size = generateRandomInteger(100000)
-const testObject = {}
-for (let i = 0; i < size; i++) {
-  testObject[i.toString()] = i
-}
+const object = generateRandomObject()
 
 Benchmark.suite(
-  `Is empty object with ${size} keys`,
-  Benchmark.add('Reflect keys', (obj = testObject) => {
-    return Reflect.ownKeys(obj).length === 0 && obj.constructor === Object
+  `Is empty object with ${Object.keys(object).length} keys`,
+  Benchmark.add('Reflect keys', (obj = object) => {
+    return obj?.constructor === Object && Reflect.ownKeys(obj).length === 0
   }),
-  Benchmark.add('Keys iteration ', (obj = testObject) => {
-    if (obj.constructor !== Object) return false
+  Benchmark.add('Keys iteration', (obj = object) => {
+    if (obj?.constructor !== Object) return false
     // Iterates over the keys of an object, if
     // any exist, return false.
     // eslint-disable-next-line no-unreachable-loop
     for (const _ in obj) return false
     return true
   }),
-  Benchmark.add('Object keys', (obj = testObject) => {
-    return obj.constructor === Object && !Object.keys(obj).length
+  Benchmark.add('Object keys', (obj = object) => {
+    return obj?.constructor === Object && Object.keys(obj).length === 0
   }),
   Benchmark.cycle(),
   Benchmark.complete(),
@@ -40,4 +36,6 @@ Benchmark.suite(
     format: 'table.html',
     details: true
   })
-)
+).catch(err => {
+  console.error(err)
+})