With Jscript.NET more or less abandoned by Microsoft, there is an opening for a new JavaScript compatible language on the CLR. Fredrik Holmström is trying to fill the void with IronJS. Like the other Iron languages by Microsoft and independent developers, it is based on the Dynamic Language Runtime. This includes the DLR’s hosting framework and unified object model.
While still in the early stages, IronJS currently runs CLR 2 and Mono 2.6 and can compile jQuery 1.4. IronJS is being offered on github under the Microsoft Public License.
Community comments
Silverlight Support
by Ryan Riley,
Re: Silverlight Support
by Stefan Wenig,
Re: Silverlight Support
by Ryan Riley,
Re: Silverlight Support
by Stefan Wenig,
Silverlight Support
by Ryan Riley,
Your message is awaiting moderation. Thank you for participating in the discussion.
The only thing missing is Silverlight support. It currently depends upon System.Web, so some changes will need to be made to get it running on Silverlight. However, once it does, it would be theoretically possible to swap out IE's JS engine for IronJS through Gestalt [1]. Actually, I wouldn't mind seeing IE adopt the DLR as its scripting engine and use IronJS for its JavaScript runtime.
[1] gestalt.codeplex.com/
Re: Silverlight Support
by Stefan Wenig,
Your message is awaiting moderation. Thank you for participating in the discussion.
Interesting. But there's a chance IronJS + COM interop is slower when accessing the HTML DOM than poor old JScript, depending on your ratio of DOM access vs. pure JavaScript execution.
Re: Silverlight Support
by Ryan Riley,
Your message is awaiting moderation. Thank you for participating in the discussion.
What's COM got to do with it? Silverlight can access the HTML directly, so I would think you could access the current document just fine. Am I missing something?
Re: Silverlight Support
by Stefan Wenig,
Your message is awaiting moderation. Thank you for participating in the discussion.
But how does Silverlight (.NET) access IE's DOM (exposed via COM)? I assume they're using some kind of COM interop internally. Just because you can't see it...