From: sgorsh Date: Sun, 9 Apr 2017 12:00:47 +0000 (+0200) Subject: Added isObjectEmpty benchmark. X-Git-Tag: 2.19.0~30^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1760cc242385c39acf5bf9c7f348884ce47aed59;p=thirdparty%2Fmoment.git Added isObjectEmpty benchmark. --- diff --git a/benchmarks/isObjectEmpty.js b/benchmarks/isObjectEmpty.js new file mode 100644 index 000000000..f1da1bf17 --- /dev/null +++ b/benchmarks/isObjectEmpty.js @@ -0,0 +1,67 @@ +var Benchmark = require('benchmark'), + moment = require("./../moment.js"); + +var isObjectEmpty_getOwnPropertyNames = function(obj) { + if (Object.getOwnPropertyNames) { + return (Object.getOwnPropertyNames(obj).length === 0); + } else { + var k; + for (k in obj) { + if (obj.hasOwnProperty(k)) { + return false; + } + } + return true; + } +}; + +var isObjectEmpty_keys = function(obj) { + if (Object.keys) { + return (Object.keys(obj).length === 0); + } else { + var k; + for (k in obj) { + if (obj.hasOwnProperty(k)) { + return false; + } + } + return true; + } +}; + +var isObjectEmpty_forIn = function(obj) { + var k; + for (k in obj) { + if (obj.hasOwnProperty(k)) { + return false; + } + } + return true; +}; + +module.exports = { + name: 'isObjectEmpty', + tests: { + "isObjectEmpty -> for..in": { + onComplete: function(){}, + fn: function(){ + isObjectEmpty_forIn(moment()); + }, + async: false + }, + "isObjectEmpty -> Object.keys": { + onComplete: function(){}, + fn: function(){ + isObjectEmpty_keys(moment()); + }, + async: false + }, + "isObjectEmpty -> Object.getOwnPropertyNames": { + onComplete: function(){}, + fn: function(){ + isObjectEmpty_getOwnPropertyNames(moment()); + }, + async: false + } + } +};