diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 14:29:10 +0000 |
commit | 2aa4a82499d4becd2284cdb482213d541b8804dd (patch) | |
tree | b80bf8bf13c3766139fbacc530efd0dd9d54394c /js/rust/README.md | |
parent | Initial commit. (diff) | |
download | firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.tar.xz firefox-2aa4a82499d4becd2284cdb482213d541b8804dd.zip |
Adding upstream version 86.0.1.upstream/86.0.1upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'js/rust/README.md')
-rw-r--r-- | js/rust/README.md | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/js/rust/README.md b/js/rust/README.md new file mode 100644 index 0000000000..743793c5bc --- /dev/null +++ b/js/rust/README.md @@ -0,0 +1,46 @@ +# The `js` Crate: Rust Bindings to SpiderMonkey + +[User Documentation](http://doc.servo.org/mozjs/) + +## Building + +To build a release version of SpiderMonkey and the Rust code with optimizations +enabled: + +``` +$ cargo build --release +``` + +To build with SpiderMonkey's DEBUG checks and assertions: + +``` +$ cargo build --features debugmozjs +``` + +Raw FFI bindings to JSAPI are machine generated with +[`rust-lang-nursery/rust-bindgen`][bindgen], and requires libclang >= 3.9. See +`./build.rs` for details. + +[bindgen]: https://github.com/rust-lang-nursery/rust-bindgen + +## Cargo Features + +* `debugmozjs`: Create a DEBUG build of SpiderMonkey with many extra assertions + enabled. This is decoupled from whether the crate and its Rust code is built + in debug or release mode. + +* `promises`: Enable SpiderMonkey native promises. + +* `nonzero`: Leverage the unstable `NonZero` type. Requires nightly Rust. + +## Testing + +Make sure to test both with and without the `debugmozjs` feature because various +structures have different sizes and get passed through functions differently at +the ABI level! At minimum, you should test with `debugmozjs` to get extra +assertions and checking. + +``` +$ cargo test +$ cargo test --features debugmozjs +``` |