2012-07-20 92 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