О это хорошо, теперь фикс ничем не помешает.
Я думаю, можно не выполнять никаких проверок, кроме наличия properties:
//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 create = Object.create;
Object.create = function (prototype, properties) {
var object;
if (properties) {
//Object.defineProperties fixes a bug
object = create(prototype, properties);
}
else {
//numeric key fixes a bug,
//it can be removed after,
//unlike alphabetic key
object = create(prototype, {
"0": {
configurable: true
}
});
delete object[0];
}
return object;
};
};