Skip to content

jfd16/Mariana

Repository files navigation

Mariana

An ActionScript 3 runtime and bytecode-to-IL compiler for .NET, implemented in C#.

.NET platform support

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).

Usage

Sample usage code is available here.

Features

  • 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

API documentation can be generated using the generateApiDocs.py Python script. This requires docfx to be installed.

Component index

Building

Build with dotnet build -c config where config is either Debug (for debug build) or Release (for release build).

Running tests

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