Skip to content
CIL to Javascript Compiler
C# JavaScript HTML CSS C++ Batchfile
Find file
Latest commit 960c211 @kg kg Merge pull request #914 from mwh/StringJoin
Implement String.Join(string, IEnumerable<string>)
Failed to load latest commit information.
Compiler Merge pull request #857 from iskiselev/TranslatedBootstrap_NumberFormats
Corlib Nuke the Mannux demo since it requires a lot of babysitting
Examples Actually remove submodules. Sigh, git
JSIL.Libraries Merge pull request #934 from iskiselev/AsyncMethodSignatures_915
JSIL.mscorlib Use BCL System.Convert. Most primitive types implement IConvertible.
JSIL Sting switch statement on Roslyn (#921) fixed and test added.
Meta @ 7ab12f0 Intoduced generic forms for Verbatium.Expression to prevent boxing.
Proxies Implement String.Join(string, IEnumerable<string>)
SimpleProject fixed pointed issues (no asm ID | non-x86 configs | JSIL copy)
Tests.DCE Test really committed.
Tests Merge pull request #914 from mwh/StringJoin
Try Restricted language features to C#5 (we still support VS2012).
Upstream Actually remove submodules. Sigh, git Documentation updates.
.gitattributes Fixed EOL for .travis.yml.
.gitignore Added JSIL.mscorlib project with number formatter implementation.
.gitmodules Dead code cleanup
.hgeol Fixed EOL for .travis.yml.
.travis.yml Added build finish time to artifact filename
JSIL.nunit Pull the method signature cache out of a static field so that it does…
JSIL.sln Added JSIL.mscorlib project with number formatter implementation.
LICENSE Add missing LICENSE file Documentation updates. TravisCI compatibility
appveyor.yml Re-enable compilation cache
build_corlib.bat Make RunTransformsOnAllFunctions actually obey the threading setting.…
build_demos.bat Dead code cleanup TravisCI compatibility
jsil.ico Updated website and added new logo TravisCI compatibility
run_server.bat Change the platform argument for the rpg starter kit so it builds cor…
test_runner.html Browser test runner updated to support Translated test run.
web.config Update test_runner code so you can host it on IIS


JSIL is a compiler that transforms .NET applications and libraries from their native executable format - CIL bytecode - into standards-compliant, cross-browser JavaScript. You can take this JavaScript and run it in a web browser or any other modern JavaScript runtime. Unlike other cross-compiler tools targeting JavaScript, JSIL produces readable, easy-to-debug JavaScript that resembles the code a developer might write by hand, while still maintaining the behavior and structure of the original .NET code.

For live demos and code samples, visit the website.

For help on getting started using JSILc, see the wiki.

JSIL is currently in partial maintenance mode (due to time constraints on the maintainer's part), but bug reports and questions are still actively responded to. Pull requests still welcome!


Copyright 2011 K. Gadd

Additional contributions by Igor Kiselev and assorted community members.

License: MIT/X11

Replay/Record support & Emscripten integration sponsored by Mozilla Corporation

License: MIT/X11


JSIL depends upon or is based on the following open source libraries:

  • Mono.Cecil: MIT/X11 (thanks to Jb Evain)
  • ICSharpCode.Decompiler: MIT/X11 (developed as part of ILSpy)
  • Mono.Options: MIT/X11 (Jonathan Pryor & Federico Di Gregorio)
  • printStackTrace: Public Domain (Eric Wendelin and others)
  • XAPParse: Microsoft Public License/Ms-PL (Andy Patrick)
  • webgl-2d: MIT (Corban Brook, Bobby Richter, Charles J. Cliffe, and others)
  • S3TC DXT1 / DXT5 Texture Decompression Routines (Benjamin Dobell)

The Upstream folder also contains:

  • Win32 build of the Spidermonkey command-line JavaScript shell. It is built from sources provided by the Mozilla project ( This build is used for running JavaScript automated tests.
  • A specific version of the NUnit.Framework assembly, used by the automated tests. This ensures that they compile correctly regardless of which version of NUnit you have installed.
  • Win32 build of PNGQuant for optimizing PNG files. (Jef Poskanzer, Greg Roelofs)
  • Mono ILASM for CIL tests execution

The following NuGet packages are used:

  • Grunt
  • Node
  • NPM
  • NUnit
  • NUnit Test Adapter
  • FSharp CodeDom

Logo by John Flynn.

Something went wrong with that request. Please try again.