А не проще тогда уж поправить hasOwnProperty
//IE9-11 Object.create bug fix
(function () {
var object = Object.create({});
object[0] = null;
return object.hasOwnProperty(0); //> false in IE9-11
}()) || new function () {
var hasOwnProperty = Object.prototype.hasOwnProperty;
Object.prototype.hasOwnProperty = function(prop) {
// если числовое свойство ищем
return +prop == prop ?
Object.getOwnPropertyNames(this).indexOf(""+prop) != -1 :
hasOwnProperty.apply(this, arguments);
};
};