acj*_*jay 9 javascript cross-browser internet-explorer-8 traceur
我正在研究的项目将IE8作为一项硬性要求.我们希望使用Traceur开始使用ES6的一些改进语法,但我知道它会产生ES5,而IE8不支持它.鉴于我可以修补IE8与es5shim,这Traceur支持ES6功能使用是安全的?
更具体地说,我想知道哪些特征映射总是直接映射到完全兼容的代码(可能是糖的大部分),由于垫片的限制而导致行为不匹配,并且完全不可用
jsa*_*nen 10
简介:如果您需要IE8支持,请不要使用Traceur
在IE8中不可能完全支持Traceur编译的代码,因为它具有非常差的ES5兼容性,即使使用es5shim等已知的polyfill也无法完全修补.
你可能会得到一些Traceur编译的代码在IE 8中工作,但据我所知这是一个非常未开发的空间.我所知道的这种尝试的唯一参考之一是traceur的github repo中关于"旧的IE支持"的一个公开问题.
从工程的角度来看,我认为在生产中使用Traceur + ES5垫片组合是一个非常糟糕的主意.您不仅需要处理从ES6-> ES5中引发的潜在问题,而且还必须解决由于ES5多层填充物导致的错误,这两种情况都很可能发生.
将Traceur与各种polyfill和补丁结合使用也会导致巨大的JavaScript代码.为了举个例子,让我们考虑简单的ES6生成器使用以及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);
  });
}
如果我们想在IE8中运行它,我们首先需要使用Traceur将其编译为ES5,然后对Array.prototype.each应用polyfill.在这种情况下,生成的IE8兼容代码大约是50行代码.
| 归档时间: | 
 | 
| 查看次数: | 1585 次 | 
| 最近记录: |