Run details:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36
Chrome 53
Mac OS X 10.10.5
Other
8 years ago
Test name Executions per second
getOwnPropertyNames 0.0 Ops/sec
Cached property names 2581982.0 Ops/sec
for in 4346397.5 Ops/sec
Script Preparation code:
AخA
 
var obj = {
  $names : ['a','b','c'],
  a:1,
  b:2,
  c:3
}
Tests:
  • getOwnPropertyNames

     
    var ks = Object.getOwnPropertyNames(obj);
    var n = 0;
    for (var i = 0; i < ks.length; i++) {
      var k = obj[ks[i]];
      if (k.charAt(0) == '$') continue;
      n++;
    }
  • Cached property names

     
    var ks = obj['$names'];
    var n = 0;
    for (var i = 0; i < ks.length; i++) {
      var k = obj[ks[i]];
      n++;
    }
  • for in

     
    var n = 0;
    for (var k in obj) {
      if (k.charAt(0) == '$') continue;
      n++;
    }