quickjs-rs icon indicating copy to clipboard operation
quickjs-rs copied to clipboard

Rust wrapper for the quickjs Javascript engine.

Results 33 quickjs-rs issues
Sort by recently updated
recently updated
newest added

Currently quickjs-rs is not able to handle async functions that return undefined. Functions like `async () => { }` or `async () => undefined` will throw the following error: ```...

In [doc](https://bellard.org/quickjs/quickjs.pdf), there are `std`, `os` modules and `global objects` like `console.log`. It seems like they are not available in `quickjs-rs`. Is there any way to use them?

This PR upgrades QuickJS to 2021-03-27, and adds supports for these targets: - `x86_64-pc-windows-msvc` - `i686-pc-windows-msvc` - `i686-unknown-linux-gnu` What this PR does in detail: - Remove QuickJS sources in the...

Thanks for this project! Is there any way to compile this in a lib crate to target `wasm32-unknown-unknown`? (ex. `cargo build --release --target=wasm32-unknown-unknown`) I'm suspecting no. I tried and got...

enhancement

The following snippet of code causes a null pointer to be passed as the first argument of `JS_GetPropertyStr`, causing a null pointer dereference in `JS_NewAtomLen` https://github.com/theduke/quickjs-rs/blob/941b3610e7d8e95de99369c9935a79fbbab0a7d3/src/bindings/value.rs#L427 ```rs use quick_js::Context; fn...

The current callback can only be Fn, not FnMut I hope to mutate a captured variable. Could callback support mutability?

I need an embedded engine of a scripting language to provide scripting functions for my program. The script is mainly used to write crawlers. I chose js. But I ran...

`JS_SetInterruptHandler()` configures an interrupt handler that can be used to implement a evaluation timeout. Expose this via a builder api.

enhancement

Currently, if `eval` or `call_funcion` throws an exception, we just produce a simple string, without the context. QuickJS support some non-standard properties, such as `stack`, `lineNumber`, we should consider to...

Hello I have code that looks like the following: ```rust let context = Context::new().unwrap(); context.eval(" class Foo { bar() { return 42; } } function setup() { return new Foo();...