2012-11-17 77 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代碼放入'