【发布时间】:2010-11-07 13:08:36
【问题描述】:
有谁知道真正的(即没有蒸汽软件)ECMAScript 针对.NET CLR/DLR 的实现?理想情况下类似于 Rhino 对 Java 的意义。在 .NET Framework / Mono Framework 上运行的可靠 Rhino 端口将是完美的。
我只见过少数提到的项目,但从未见过任何曝光或实际上我曾经能够运行脚本的任何项目。以下是我已经知道的:
MSScriptControl ActiveX Control:AFAIK,这是微软最后一个真正符合 ECMAScript 的实现(运行 JScript 5.7)。我已经与 MSScriptControl 集成,但不认为 COM 互操作是这个问题的答案。 x64 是这个选项的杀手锏。
JScript.NET:我不算 JScript.NET,因为它永远无法成功解析我的任何真实脚本。关闭似乎有问题。
Managed JScript:听起来像我想要的,但它似乎已经死在水中了。它是 DLR 的一个主要示例实现,但后来与 SilverLight 纠缠在一起,并且自 2007 年以来似乎已不再是优先事项。有关此状态的可靠消息来源会有所帮助。
MyJScript:构建为 DLR 的教程实现。有人知道这是一个多么完整的实现吗?
Jint:.NET 的 JavaScript 解释器。
目前还不支持 Currying 或try-catch-finally。RemObjects Script for .NET:一个有趣的竞争者仍在筹备中。我对他们的营销方式感到困惑,不知道它实际上会是什么,但听起来它最终可能是合适的。如果有人对此有所了解,那也会有所帮助。
V8 for .NET:如果有人将 V8 移植到 .NET,那就太好了。据我所知,这方面也没有很大的努力。该链接指向从托管 C++ 包装器调用它的想法。
作为背景,我希望能够在 .NET 中执行 JavaScript;即将一组脚本加载到上下文中并调用该上下文并检索执行结果。目前,我通过繁琐的 COM 互操作跳过箍来使用 MSScriptControl。 COM 的不一致性使得部署和确保一致执行变得非常困难。
我希望能够在 .NET 中执行相当复杂的 JavaScript 测试工具。这不是用于创建用户宏或简单的小脚本;我需要一个真正的 JavaScript 环境,比如 Rhino。如果实现在 CLR(而不是 COM)上运行,这将有助于解决当前的一些问题。
【问题讨论】:
-
你能通过 ikvm 运行 rhino 吗? ikvm.net
-
JavaScript 在 Mozilla Rhino 上,通过 IKVM.NET 在 .NET 上。多棒的三明治:)
-
或 Rhino over VMKit (llvm.org)。
-
Jint 现在确实可以处理柯里化和异常
-
我的盗版实现正在进行中...
标签: .net javascript clr dynamic-language-runtime ecma262