转换Javascript 1.7+;到Javascript 1.6

转换Javascript 1.7+;到Javascript 1.6,javascript,generator,Javascript,Generator,是否有任何转换器或技术可用于将具有新语言功能的Javascript 1.7代码转换为Javascript 1.6 我最感兴趣的是迭代器生成器和yield关键字。我使用的脚本引擎仅为1.6,但迭代器生成器可以生成更好的代码。手写似乎很复杂 我试着用C#编写它,用ILSpy反编译,然后手工将其移植到Javascript。但那真是一团糟 我搜索过这样一个转换器,但什么也没找到——可能是因为在这种情况下,搜索词与不相关的结果共享。我想我已经为您找到了一个解决方案。看看Traceur。它是一个ES6 tr

是否有任何转换器或技术可用于将具有新语言功能的Javascript 1.7代码转换为Javascript 1.6

我最感兴趣的是迭代器生成器和
yield
关键字。我使用的脚本引擎仅为1.6,但迭代器生成器可以生成更好的代码。手写似乎很复杂

我试着用C#编写它,用ILSpy反编译,然后手工将其移植到Javascript。但那真是一团糟


我搜索过这样一个转换器,但什么也没找到——可能是因为在这种情况下,搜索词与不相关的结果共享。

我想我已经为您找到了一个解决方案。看看Traceur。它是一个ES6 transpiler,也就是说,它将ES6代码(包括所有ES6即将推出的东西,如生成器、类、模块,
yield
)转换为ES5代码,这是当今JS引擎能够解释的代码

在这里查看:

语言功能页:


注意Mozilla添加到JavaScript1.7+中的大部分内容是如何在即将发布的第6版ECMAScript标准中标准化的。当前版本是第5版,其中已经包含了一些内容(例如数组迭代方法、对象扩展性API)。

我只能考虑手动将生成器重新编写为lambda函数,这样它们的变量就不会污染scope1.6?哪个环境使用该引擎?我只知道Firefox 1.5。@uosɐ你怎么知道它是1.6?由于这是一款谷歌产品,我希望它能拥有与Chrome相同的JS引擎。实际上,整个JavaScript版本编号仅与Mozilla的JS实现有关。除非Google Apps脚本实现Mozilla的JS引擎,否则版本控制不适用。@ŠimeVidas,@uosɐſ更有可能是ES6到ES5代码的编译器,因为ECMAScript是实际的JavaScript标准,而“JavaScript”只是Mozilla实现的该标准。注意,“JavaScript”有两种含义:(1)Mozilla对ECMAScript的实现,(2)ECMAScript本身。酷!你能给我们展示一个为迭代器/生成器生成的ES5代码的例子吗?@Bergi我在Traceur的“语言特性”页面上制作了一个来自生成器演示的JSFIDLE。我不理解演示代码(例如,
函数*
收益率
收益率*
),但演示展示了如何使用Traceur。1.将ES6代码放入
元素中。2.包括
traceur.js
bootstrap.js
(可在Traceour回购协议中获得)。演示如下:@Bergi我在JSFIDLE上设置了一个游乐场,用于编写和测试ES6代码: