Skip to content
This repository has been archived by the owner on Dec 3, 2018. It is now read-only.

CrimsonAS/v2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

91 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

v2

what

It's a JavaScript engine. Because the world doesn't have enough of those already. More seriously, it was written as a research project, and is no longer actively maintained.

This one is written entirely in Go, currently as two packages - a parser, and a VM. The VM generates bytecode, and then executes it, rather than operating on the AST directly.

why?

I felt like learning more about what's involved in JavaScript. I work with the details of JavaScript a lot already on QML's JavaScript engine, v4, but since I didn't write most of that, I didn't get the chance to learn about it from the ground up. v2 is my attempt at learning some of those things, and having some fun along the way.

The name (v2) was chosen because I'm unimaginative. There's v8, there's v4. And since I'm writing something that is much less capable than either of them, that only leaves me with a limited set of smaller numbers. :)

status

This thing can run some limited amounts of code, but it will die if you look at it wrong. There's a complete shortage of error handling, and generally many things are not yet implemented {fully,properly,at all}.

A (very incomplete) list of missing things:

  • exceptions
  • arrays
  • most built-in objects
  • spec compliance
  • implicit semicolon handling at parse time
  • regular expressions

You are welcome to fork v2, and do whatever you want with it - further updates will likely not be coming to the original codebase.

Releases

No releases published

Packages

No packages published

Languages