查看文章 |
一个JSA压缩的一个bug 或者说JScript解释器的bug
2008-04-10 20:57
之所以说或者,是说,严格按照ECMA262,JSA没错,错的是JScript没有完全遵守ECMA262。 不多废话,先亮出问题。 原始代码: var i=0;
if(i){ if(i){ do { i++; }while(i!=10); }else { i--; } } 压缩结果: var i=0;if(i)if(i)do i++;while(i!=10);else i--
这个结果,其实也算正确,但是无法通过IE的验证。 可能的原因: IE 把 do <exp >while(<flag>) 直接看作一个完整的语句(省略了大括弧的do while 块),而紧随其后的分号被当作下一个句子。导致后面的else 悬空。 顺便申明一个问题,XHR可以通过localhost 本机机器名 或ip测试跨域。 开始也这么想当然,偶然听到同事肯定的质疑,自己测试了一下,还是证实了自己相当能的结论。 |
最近读者: