Code Monkey home page Code Monkey logo

boa's Introduction

Boa

This is an experimental Javascript lexer, parser and Just-in-Time compiler written in Rust. Currently, it has support for some of the language.
Build Status

This project is an attempted rewrite of Bebbington's js.rs. Most of the Rust code has been rewritten from scratch.

Live Demo

https://jasonwilliams.github.io/boa/

You can get more verbose errors when running from the commnand line

Contributing

If you don't already have Rust installed rustup is the recommended tool to use. It will install Rust and allow you to switch between nightly, stable and beta. You can also install additional components.

curl https://sh.rustup.rs -sSf | sh

Then simply clone this project and cargo build To develop on the web assembly side you can run yarn serve then go to http://localhost:8080

Web Assembly

This interpreter can be exposed to javascript! You can build the example locally with:

$ yarn install
$ yarn serve

In the console you can use window.evaluate to pass JavaScript in

Roadmap

  • string.length - works in 0.1.5
  • Better lexing of numbers
  • Adding support for constructors - half working, in progress
  • better environment and scope support - Finished (05/05/2019)
  • let and const support
  • Better error output
  • Passing test262

Usage

  • Checkout this project
  • Build cargo build
  • cargo run
  • You can make changes to tests/js/test.js and build again
  • If any JS doesn't work its a bug! Please raise an issue

Example

Example

boa's People

Contributors

afruitpie avatar jasonwilliams avatar someguynamedmatt avatar songzhi avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.