2012-11-17 40 views
4

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

我最感兴趣的是迭代器生成器和yield关键字。我使用的脚本引擎只有1.6,但迭代器生成器会使代码更好。用手写字看起来很复杂。

我试过用C#编写它,用ILSpy反编译,并且将手动移植到Javascript中。但这是一个该死的混乱。

我已经搜索了这样一个转换器,但我什么也没找到 - 可能是由于在这种情况下搜索条件与无关结果共享。

+0

我只能想到手动重写生成器作为lambda函数,所以它们的变量不会污染范围 –

+0

1.6?哪个环境使用该引擎?我知道的唯一一个是Firefox 1.5。 –

+0

Google Apps脚本 –

回答

7

我想我已经为你找到了解决方案。看看Traceur。这是一个ES6转换器,即它将ES6代码(包括所有ES6即将发布的东西,如发生器,类,模块,yield)转换为ES5代码,这是今天的JS引擎能够解释的东西。

看看这里:https://github.com/google/traceur-compiler/

语言的功能页面:https://github.com/google/traceur-compiler/wiki/LanguageFeatures

注意如何大多数的东西,Mozilla的被加入的JavaScript 1.7+在ECMAScript标准的即将到来的6.0版被标准化。当前版本是第5版,它已经包含了一些东西(例如数组迭代方法,对象扩展性API)。

+0

酷!您能否向我们展示一个为迭代器/生成器生成的ES5代码示例? – Bergi

+0

完美。谢谢! –

+0

@Bergi我从Traceur的“语言特性”页面上的Generator生成器演示中制作了一个jsFiddle。我不明白演示代码(例如'function *','yield','yield *'),但演示展示了如何使用Traceur。 1.将ES6代码放入'