IronJS is a free, open-source implementation of ECMAScript v3 on the DLR based predominantly on F#. It’s even the right kind of free, currently licensed under the Apache License version 2 (not a copyleft license). Check out this picture of its testbed application running:
As a learning exercise, I intend to figure out a good way to shoehorn this into my Battle.net (1.0) chat client, JinxBot. It actually shouldn’t be terribly difficult, but while I considered adding it as a plugin, I think I’d like it to be part of the core application instead.
I’ll more than likely be covering IronJS in several parts in my blog in the coming weeks (possibly months, since I’m getting married on May 1). But these are topics that I intend to cover:
- Sharing objects between script and .NET
- Isolating script from .NET (preventing script from having run of the whole runtime)
- Isolating script from script (running multiple environments in one application, similar to how web pages in browsers like IE and Chrome all run from one instance of the script engine but have different contexts so they have different sets of objects)
- Performance optimizations
- Dynamically generating isolation layers
- Other considerations
Stay tuned! In the meantime, check out IronJS on GitHub and get it running on your machine!