The powerful JavaScript runtime, implemented from scratch in C#.
The JavaScript engine consists on a pipeline composed by a Lexer, Parser, Resolver & Interpreter.
- Tokens & Lexing
- Abstract Syntax Tree
- Recursive Descent Parsing
- Prefix & Infix Expressions
- Runtime Representation of Objects
- Interpreting Code using the Visitor Design Pattern
- Lexical Scope
- Environment Chains for Storing variables
- Control Flow
- Functions with Parameters
- Closures
- Static Variable Resolution & Error Detection
- Classes
- Constructors
- Fields
- Methods
- Inheritance
- Access Modifiers
- ES6 Modules / Imports
- Promises
- Events
- Async / Await
- File System Native API
- Network Native API
- Running script file
cd ./Source/Engine/
dotnet run ./Examples/test.js
- REPL
cd ./Source/Engine/
dotnet run
Feel free to peek (and run) several scripts showing off several implemented features like...
- Classes
- Recursion
- Closures
Caution
This runtime is not yet production ready.