2012-07-20 78 views
8

我知道,飛鏢還在技術預覽中。 Dart也可以編譯爲JavaScript。dart編譯javascript的限制是什麼?

但是編譯dart到javascript的限制是什麼? Dart必須在語言中有一些特定的功能或概念,不能僅僅被翻譯成JavaScript代碼?

原因是,一個朋友問我Dart是否可以將所有可能的東西編譯成JavaScript或例如5%的語言元素(你知道,非常酷的改進的東西)將不可編譯。

http://www.dartlang.org

回答

3

可以加入FAQ quote嗎? ;)

問:將任何有效的Dart代碼編譯爲JavaScript,還是有 限制? 是的,我們打算讓任何有效的Dart代碼編譯爲 JavaScript。如果我們的編譯器 缺少一些支持(無論是編譯器還是規範),那麼這些支持都是缺失的。

所以,如果現在不是這種情況,至少谷歌的目標是編譯任何一塊飛鏢代碼爲JavaScript

7

我的初創公司已經開發出鏢50.000+線應用迄今至於飛鏢編譯成JavaScript stumpled在極少數的限制。 Dart從一開始就被轉化爲JavaScript,所以它不會受困於編譯問題的困擾,因爲GWT不能將GWT中的所有Java類序列化爲Javascript,導致人們無法將其他東西封裝起來,而不是使GWT編譯器高興)。

話雖如此,編譯飛鏢到JavaScript時確實存在一些限制,但其中大多數與服務器端技術有關,無法在瀏覽器中運行,如套接字和IO訪問,因此非常合理。關於將物體傳遞給分離物也有一些限制,但是我相信這些將在未來版本dart2js中被整理出來。

+1

拉什說什麼。我會補充說,目前,從2012年7月20日起,有一個已知的編譯超大型整數(從Dart)到JavaScript的問題。 Dart支持任意大小的整數,JavaScript不支持。這是一個已知的錯誤,團隊知道它。如果你保持在JavaScript數字大小範圍內,你會沒事的。我們打算在Dart發佈前解決這種不匹配問題。 – 2012-07-21 00:07:22

+0

@SethLadd對不起,我忘了那個(這就是爲什麼我有我自己的int實現,但大多數人不會需要這個)。你知道JS int是否會以任意的精度變成(比如在虛擬機上),還是會被限制爲64位的JavaScript整數。 – 2012-07-21 06:46:18