Compiler from Jessie, a secure subset of Javascript, to Wasm, a fast and secure virtual machine.
- Use Jessie as a frontend language for wasm contracting
- If a Jessie code successfully runs on wasm, it should return the same result on the ts-node too, without modification.
Jessie code goes to parser.
tessie_*.ts
: parses type annotations and declarationsjessie_*.ts
: parses top level declarations, assignments, statements, destructuring pattersjustin_*.ts
: parses arithmetic, property access, function call operationsjson_*.ts
: parses literals, records and arrays
Takes string
, returns tessie.Expr[]
Sugars are removed in this process using expression type removal and reduction. Also, types are inferred.
ast.ts
: jessie-zero asttyping.ts
: jessie-zero type astinference.ts
: type inferenceruntype.ts
: runtime type information generation
Takes tessie.Expr[]
, returns ast.TypedExpr[]
IR that is almost 1-to-1 corresponding to Binaryen IR. Meant to be support other frontend langs too.
Takes ast.TypedExpr[]
, returns JessieIR[]
Takes JessieIR[]
, returns
Runtime support for global objects like Array, Map, ByteBuffer, etc.