¿En qué medida comstack Traceur a Javascript compatible con IE8?

Un proyecto en el que estoy trabajando tiene IE8 como un requisito difícil. Nos gustaría potencialmente utilizar Traceur para comenzar a trabajar con algunos de la syntax mejorada de ES6, pero soy consciente de que produce ES5 , que no es compatible con IE8 . Dado que puedo reparar IE8 con es5shim , ¿qué características de ES6 compatibles con Traceur son seguras de usar?

Más específicamente, me pregunto qué características del map siempre se correlacionan directamente con el código totalmente compatible (gran parte del azúcar, presumiblemente), cuyas características adolecen de falta de coincidencia de comportamiento, debido a limitaciones de la cuña, y que no están disponibles por completo.

Resumen: no use Traceur si necesita soporte IE8

No es posible get un soporte completo para el código comstackdo por Traceur en IE8 ya que tiene una compatibilidad con ES5 muy pobre , que no se puede parchear completamente incluso con polyfills conocidos como es5shim .

Sin embargo, puede get parte de su código comstackdo por Traceur para trabajar en IE 8, pero hasta donde sé, este espacio es bastante inexplorado. Una de las únicas references a tales bashs que conozco es un problema abierto en el repository github de traceur con respecto al "viejo soporte de IE" .

Desde el punto de vista de la ingeniería, creo que usar la combinación de calces Traceur + ES5 en producción es una muy mala idea. No solo tendrá que lidiar con los problemas potenciales que surgen de ES6-> ES5, sino que también tendrá que solucionar los errores debidos a los polifills ES5 defectuosos, y es muy probable que ambos problemas ocurran.


El uso de Traceur en combinación con varios polyfills y parches también dará como resultado un código JavaScript enormemente hinchado. Solo para darle un ejemplo, consideremos el uso simple del generador ES6 junto con ES5 Array.prototype.each :

 function* items() {yield new Array(1, 2, 3);} for (item of items()) { item.every(function(elem, index, arr) { console.log(item); }); } 

Si queremos ejecutar esto en IE8, primero tenemos que comstackrlo en ES5 con Traceur y luego aplicar un polyfill para Array.prototype.each. El código resultante que cumple con IE8 en este caso es aproximadamente 50 líneas de código .