X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=is-empty-object.js;h=394555bd1810a3e933cfa5b5928fd8f03b6caec5;hb=02266ea6dc5408587ba111ef3a472b1d900a20bf;hp=b27dc104d89ed3a1ec0abf892ff9483ab18431a7;hpb=bb578730a26e9d1ba7da2b40c084b5f70fa8f0c6;p=benchmarks-js.git diff --git a/is-empty-object.js b/is-empty-object.js index b27dc10..394555b 100644 --- a/is-empty-object.js +++ b/is-empty-object.js @@ -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(),