Rust编写的JavaScript引擎,该项目是一个试验性质的项目。
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

96 lines
2.2 KiB

# Boa
<p align="center">
<img
alt="logo"
src="./assets/logo.svg"
width="30%"
/>
</p>
This is an experimental Javascript lexer, parser and compiler written in Rust.
Currently, it has support for some of the language.
6 years ago
[![Build Status](https://travis-ci.com/jasonwilliams/boa.svg?branch=master)](https://travis-ci.com/jasonwilliams/boa)
[![](http://meritbadge.herokuapp.com/boa)](https://crates.io/crates/boa)
6 years ago
[![](https://docs.rs/Boa/badge.svg)](https://docs.rs/Boa/)
6 years ago
## Live Demo (WASM)
6 years ago
https://jasonwilliams.github.io/boa/
5 years ago
You can get more verbose errors when running from the command line
6 years ago
## Benchmarks
https://jasonwilliams.github.io/boa/dev/bench/
5 years ago
## Contributing
Please, check the [CONTRIBUTING.md](./Contributing.md) file to know how to
contribute in the project. You will need Rust installed and an editor. We have
some configurations ready for VSCode.
5 years ago
5 years ago
### Debugging
See [Debugging](./docs/debugging.md).
5 years ago
### 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
5 years ago
To develop on the web assembly side you can run `yarn serve` then go to `http://localhost:8080`
## Roadmap
See Milestones
5 years ago
## Changelog
5 years ago
see [CHANGELOG](./CHANGELOG.md)
6 years ago
## Usage
- Clone this repo
- Run with `cargo run -- test.js` where `test.js` is an existing JS file
- If any JS doesn't work then it's a bug. Please raise an issue!
6 years ago
## Command-line Options
```
USAGE:
boa_cli [OPTIONS] [FILE]...
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
OPTIONS:
-a, --dump-ast <FORMAT> Dump the ast to stdout with the given format [possible values: Debug, Json,
JsonPretty]
-t, --dump-tokens <FORMAT> Dump the token stream to stdout with the given format [possible values: Debug, Json,
JsonPretty]
ARGS:
<FILE>... The JavaScript file(s) to be evaluated
```
## Communication
Feel free to contact us on Discord https://discord.gg/tUFFk9Y
## Example
![Example](docs/img/latestDemo.gif)
## License
5 years ago
This project is licensed under the Unlicense or MIT licenses, at your option.