Agregar prueba de transformaci贸n 3D CSS para Modernizr

Actualizaci贸n : escrib铆 una soluci贸n mejor y m谩s general para todas las pruebas de soporte de valor css. Puedes leer sobre esto aqu铆. .

Recientemente descubr铆 que IE10 admite el estilo de transformaci贸n CSS, PERO no reconoce el valor preserve-3d.
As铆 que decid铆 verificar esto con Modernizr, pero me di cuenta de que modernizr no tiene dicha prueba y no admite la prueba de valor de propiedades css.
Entonces mi soluci贸n fue agregar dicha prueba:

 tests['preserve3d'] = function () {
var element = document.createElement('link'),
body
= document.getElementsByTagName('HEAD')[0],
propertys
= {
'webkitTransformStyle':'-webkit-transform-style',
'MozTransformStyle':'-moz-transform-style',
'msTransformStyle':'-ms-transform-style',
'transformStyle':'transform-style'
};

body
.insertBefore(element, null);
for (var i in propertys) {
if (element.style[i] !== undefined) {
element
.style[i] = "preserve-3d";
}
}
//ie7,ie8 doesnt support getComputedStyle
//so this is the implementation
if(!window.getComputedStyle) {
window
.getComputedStyle = function(el, pseudo) {
this.el = el;
this.getPropertyValue = function(prop) {
var re = /(-([a-z]){1})/g;
if (prop == 'float') prop = 'styleFloat';
if (re.test(prop)) {
prop
= prop.replace(re, function () {
return arguments[2].toUpperCase();
});
}
return el.currentStyle[prop] ? el.currentStyle[prop] : null;
};
return this;
};
}

var st = window.getComputedStyle(element, null),
transform
= st.getPropertyValue("-webkit-transform-style") ||
st
.getPropertyValue("-moz-transform-style") ||
st
.getPropertyValue("-ms-transform-style") ||
st
.getPropertyValue("transform-style");

if(transform!=='preserve-3d'){
element
.parentNode.removeChild(element);
return false;
}
element
.parentNode.removeChild(element);
return true;
};