这是一个带有自己答案的问题,可能适合CW。
首先,什么是良好的JS实现的特点(在我看来)
- 完整性。它必须能够处理所有的JS结构。测试它是否能编译像jquery、prototype、underscore等东西是一个很好的方法(当然,许多这些东西由于需要DOM而无法执行)
- 稳定性。没有崩溃,或者有时工作,有时不工作
- 快速
- Silverlight支持
- 易于嵌入。我希望在托管环境和JS之间有一个简单的接口,并能够正常工作
这是一个带有自己答案的问题,可能适合CW。
首先,什么是良好的JS实现的特点(在我看来)
我了解几种实现方式
首先是Ironjs。这是纯F#。这是我看到的第一个真正的大型项目,对F#来说是一个真正的启示。即使你不感兴趣JavaScript,它也是F#的一个很好的学习工具。它的评分如何:
Jurassic。这表明它编译为IL,即不解释
Jint。这是一个Antlr前端解释器(有趣的是,ironjs曾经使用antlr但出于性能原因放弃并进行了自己的解析,并且似乎得到了巨大的提升)
Javascript.Net。这是Google V8引擎的托管封装。我没有尝试过它,所以只能说一下官网上的信息。
最终我使用了Jint,因为它具有很好的嵌入功能,但我真的需要SL支持(我有两个需要嵌入JS的项目,第二个是一个SL项目),我不想使用两个不同的引擎,所以必须做出一些改变。
有人有任何经验或其他实现吗?