for in vs Object.getOwnPropertyNames (v5)

Revision 5 of this benchmark created on


Setup

var isE1 = function(obj) {
      for (var key in obj) return false; return true;
  }
  var isE2 = function(obj) {
      return Object.getOwnPropertyNames(obj).length === 0;
  }
  
  var isE3 = function(obj) {
      return Object.keys(obj).length === 0;
  }
  
  var o1 = {}, 
      o2 = {a: 1, b: 2, c: 3, d: 4, e: 5},
      o3 = {a: 1, b: 2, c: 3, d: 4, e: 5, tools:[
          {
              type:'refresh', tooltip: 'Refresh form Data', hidden:true,
              handler: function(event, toolEl, panel){ }
          },
          {
              type:'help', tooltip: 'Get Help',
              handler: function(event, toolEl, panel){ }
          }
      ], 
      type:'help',
      tooltip: 'Get Help',
      handler: function(event, toolEl, panel){ },
  };

Test runner

Ready to run.

Testing in
TestOps/sec
for in empty
var a = isE1(o1);
ready
Object.... empty
var a = isE2(o1);
ready
for in small
var a = isE1(o2);
ready
Object.... small
var a = isE2(o2);
ready
for in std
var a = isE1(o3);
ready
Object.... std
var a = isE2(o3);
ready
1
var a = isE3(o1);
ready
2
var a = isE3(o2);
ready
3
var a = isE3(o3);
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.