IL to JavaScript Compiler
C# JavaScript Other
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
CCI
CCI2
CST
Compiler
Examples
Extras
Html
Install
JST
JSTypes
JSV
MSBuild Initial Commit Oct 30, 2012
PE
Partners
Reactive
Rewriter
Rx
SilverlightInterop
StartPage
System.Core
System.CoreEx
System.Net Initial Commit Oct 30, 2012
System.Windows
System
Templates
Tests
WSHInterop
Xml
mscorlib
utils
.gitattributes
.gitignore
HOW_TO_BUILD.txt
IL2JS_CompileTime.sln
IL2JS_RunTime.sln
IL2JS_RunTime_NoTest.sln
Start_il2js.html
TODO
build.ps1
clean.ps1
dumped.txt
profile.ps1
readme.md
setup.ps1
shell.bat
teardown.ps1
test.ps1

readme.md

IL2JS - An Intermediate Language to JavaScript Compiler


Compile MSIL to JavaScript without changing program behavior and by extension compile any .Net language into JavaScript without changing program behaviour.

Compare with:

  • Script#: Type check and translate a C#-like language as JavaScript

  • Silverlight: Run MSIL in a CLR embedded within the browser

IL2JS supports all .NET 3.5 features except:

  • P/Invoke, native methods, unsafe code
  • Unsigned and 64-bit integers (always interpreted as doubles)
  • Variance on type parameters other than in IEnumerable

The key highlights are:

  • No change required to Visual Studio, source compilers, existing toolchain, existing managed debugger

  • No change to target browser or script host

  • No plugins

Getting Started

Check the HOW_TO_BUILD.txt file for instructions on how to build IL2JS.

LICENSE


Copyright 2011 Microsoft Corporation

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.