An ActionScript 3 runtime and bytecode-to-IL compiler for .NET, implemented in C#.
This project targets .NET Standard 2.1, which is compatible with .NET Core 3.0, Mono 6.4 and some other platforms.
.NET Framework is not supported.
The runtime dynamically compiles ActionScript 3 bytecode into IL, so it will not work on AOT-only platforms (such as iOS).
Sample usage code is available here.
- Full implementation of the ActionScript Virtual Machine 2 specification.
- Run-time performance of AS3 code is comparable to equivalent C# code when everything is statically typed (no untyped variables or dynamic property access).
- Attribute based API for exposing .NET classes to AS3.
- Supports all ActionScript 3 top-level classes and functions.
- Full support for E4X (ECMAScript for XML).
- Supports AVM2 global memory instructions (used by code compiled with Alchemy/CrossBridge).
API documentation can be generated using the generateApiDocs.py
Python script. This requires docfx to be installed.
- Mariana.AVM2: ActionScript 3 runtime and bytecode compiler.
- Mariana.CodeGen: IL code generation library used by the AS3 compiler.
- Mariana.Common: Reusable components.
Build with dotnet build -c config
where config is either Debug
(for debug build) or Release
(for release build).
Run dotnet test
when in a test project directory.
To run specific test classes or methods, pass a --filter
argument.
Caution: Some tests are long running