{"aliases":["es5","modernizr:es5object","default","blissfuljs"],"browsers":{"ie":"6 - 8","safari":"4","chrome":"<5","opera":"<12","firefox":"<4","firefox_mob":"<4"},"author":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys","license":"CC0","docs":"https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys","baseDir":"Object/keys","hasTests":true,"rawSource":"\n// Object.keys\nObject.keys = (function() {\n\t'use strict';\n\tvar hasOwnProperty = Object.prototype.hasOwnProperty,\n\thasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString'),\n\tdontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t],\n\tdontEnumsLength = dontEnums.length;\n\n\treturn function(obj) {\n\t\tif (typeof obj !== 'object' && (typeof obj !== 'function' || obj === null)) {\n\t\t\tthrow new TypeError('Object.keys called on non-object');\n\t\t}\n\n\t\tvar result = [], prop, i;\n\n\t\tfor (prop in obj) {\n\t\t\tif (hasOwnProperty.call(obj, prop)) {\n\t\t\t\tresult.push(prop);\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tfor (i = 0; i < dontEnumsLength; i++) {\n\t\t\t\tif (hasOwnProperty.call(obj, dontEnums[i])) {\n\t\t\t\t\tresult.push(dontEnums[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t};\n}());\n","minSource":"Object.keys=function(){\"use strict\";var t=Object.prototype.hasOwnProperty,r=!{toString:null}.propertyIsEnumerable(\"toString\"),e=[\"toString\",\"toLocaleString\",\"valueOf\",\"hasOwnProperty\",\"isPrototypeOf\",\"propertyIsEnumerable\",\"constructor\"],o=e.length;return function(n){if(\"object\"!=typeof n&&(\"function\"!=typeof n||null===n))throw new TypeError(\"Object.keys called on non-object\");var c,l,p=[];for(c in n)t.call(n,c)&&p.push(c);if(r)for(l=0;o>l;l++)t.call(n,e[l])&&p.push(e[l]);return p}}();","detectSource":"'keys' in Object"}