Script Preparation code:
x
 
var emptyObject = {};
var usedObject = {hi: 'hello', bye: 'goodbye', ping: 'pong'};
function isEmptyLoop(object) {
    for(var prop in object) return false;
    return true;
};
Tests:
  • Object.keys

     
    console.log(!Object.keys(emptyObject).length);
    console.log(!Object.keys(usedObject).length);
  • Loop

     
    console.log(isEmptyLoop(emptyObject));
    console.log(isEmptyLoop(usedObject));
  • JSON.stringify

     
    console.log(JSON.stringify(emptyObject) == '{}');
    console.log(JSON.stringify(usedObject) == '{}');
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    Object.keys
    Loop
    JSON.stringify

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: 3 years ago)
Mozilla/5.0 (iPhone; CPU iPhone OS 15_3_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.3 Mobile/15E148 Safari/604.1
Mobile Safari 15 on iOS 15.3.1
View result in a separate tab
Test name Executions per second
Object.keys 415317.7 Ops/sec
Loop 438644.2 Ops/sec
JSON.stringify 327007.0 Ops/sec