[INFO] fetching crate lento-quick-js 0.4.2-alpha.0...
[INFO] testing lento-quick-js-0.4.2-alpha.0 against 1.90.0 for beta-1.91-3
[INFO] extracting crate lento-quick-js 0.4.2-alpha.0 into /workspace/builds/worker-5-tc1/source
[INFO] started tweaking crates.io crate lento-quick-js 0.4.2-alpha.0
[INFO] removed 0 missing examples
[INFO] finished tweaking crates.io crate lento-quick-js 0.4.2-alpha.0
[INFO] tweaked toml for crates.io crate lento-quick-js 0.4.2-alpha.0 written to /workspace/builds/worker-5-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate lento-quick-js 0.4.2-alpha.0 on toolchain 1.90.0
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate lento-quick-js 0.4.2-alpha.0 already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+1.90.0" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded prettyplease v0.2.20
[INFO] [stderr]   Downloaded bitflags v2.8.0
[INFO] [stderr]   Downloaded proc-macro2 v1.0.82
[INFO] [stderr]   Downloaded cc v1.0.97
[INFO] [stderr]   Downloaded num-bigint v0.2.6
[INFO] [stderr]   Downloaded syn v2.0.61
[INFO] [stderr]   Downloaded libc v0.2.154
[INFO] [stderr]   Downloaded rquickjs-sys v0.8.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 54e737701f02ebffc37ca62c2906891eddc58823ff17468ff18e616cf0c93e8c
[INFO] running `Command { std: "docker" "start" "-a" "54e737701f02ebffc37ca62c2906891eddc58823ff17468ff18e616cf0c93e8c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "54e737701f02ebffc37ca62c2906891eddc58823ff17468ff18e616cf0c93e8c", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "54e737701f02ebffc37ca62c2906891eddc58823ff17468ff18e616cf0c93e8c", kill_on_drop: false }`
[INFO] [stdout] 54e737701f02ebffc37ca62c2906891eddc58823ff17468ff18e616cf0c93e8c
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 86bbcb04128dfd272697155e5f7f2a8e4b00cfd66369e6eb087fedf104377ca4
[INFO] running `Command { std: "docker" "start" "-a" "86bbcb04128dfd272697155e5f7f2a8e4b00cfd66369e6eb087fedf104377ca4", kill_on_drop: false }`
[INFO] [stderr]    Compiling memchr v2.7.4
[INFO] [stderr]    Compiling libc v0.2.154
[INFO] [stderr]    Compiling proc-macro2 v1.0.82
[INFO] [stderr]    Compiling regex-syntax v0.8.5
[INFO] [stderr]    Compiling glob v0.3.2
[INFO] [stderr]    Compiling prettyplease v0.2.20
[INFO] [stderr]    Compiling rustix v0.38.34
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling log v0.4.21
[INFO] [stderr]    Compiling bitflags v2.8.0
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling either v1.13.0
[INFO] [stderr]    Compiling clang-sys v1.8.1
[INFO] [stderr]    Compiling libloading v0.8.6
[INFO] [stderr]    Compiling termcolor v1.4.1
[INFO] [stderr]    Compiling home v0.5.11
[INFO] [stderr]    Compiling humantime v2.1.0
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling bindgen v0.69.5
[INFO] [stderr]    Compiling quote v1.0.36
[INFO] [stderr]    Compiling itertools v0.12.1
[INFO] [stderr]    Compiling syn v2.0.61
[INFO] [stderr]    Compiling lazycell v1.3.0
[INFO] [stderr]    Compiling rustc-hash v1.1.0
[INFO] [stderr]    Compiling lazy_static v1.5.0
[INFO] [stderr]    Compiling cc v1.0.97
[INFO] [stderr]    Compiling regex-automata v0.4.9
[INFO] [stderr]    Compiling is-terminal v0.4.13
[INFO] [stderr]    Compiling anyhow v1.0.86
[INFO] [stderr]    Compiling which v4.4.2
[INFO] [stderr]    Compiling cexpr v0.6.0
[INFO] [stderr]    Compiling regex v1.11.1
[INFO] [stderr]    Compiling env_logger v0.10.2
[INFO] [stderr]    Compiling pretty_env_logger v0.5.0
[INFO] [stderr]    Compiling rquickjs-sys v0.8.1
[INFO] [stderr]    Compiling lento-quick-js v0.4.2-alpha.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/bindings/convert.rs:295:13
[INFO] [stdout]     |
[INFO] [stdout] 295 |             extern fn finalizer(rt: *mut JSRuntime, val: JSValue) {
[INFO] [stdout]     |             ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::any::Any`
[INFO] [stdout]  --> src/bindings/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::any::Any;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::timestamp_millis`: use `timestamp_millis_opt()` instead
[INFO] [stdout]    --> src/bindings/convert.rs:531:56
[INFO] [stdout]     |
[INFO] [stdout] 531 | ...                   let datetime = chrono::Utc.timestamp_millis(f);
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::timestamp_millis`: use `timestamp_millis_opt()` instead
[INFO] [stdout]    --> src/bindings/convert.rs:535:56
[INFO] [stdout]     |
[INFO] [stdout] 535 | ...                   let datetime = chrono::Utc.timestamp_millis(f);
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::any::Any`
[INFO] [stdout]   --> src/lib.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | use std::any::Any;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/convert.rs:188:13
[INFO] [stdout]     |
[INFO] [stdout] 188 |             unsafe {
[INFO] [stdout]     |             ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/convert.rs:193:13
[INFO] [stdout]     |
[INFO] [stdout] 193 |             unsafe {
[INFO] [stdout]     |             ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rt`
[INFO] [stdout]    --> src/bindings/convert.rs:295:33
[INFO] [stdout]     |
[INFO] [stdout] 295 |             extern fn finalizer(rt: *mut JSRuntime, val: JSValue) {
[INFO] [stdout]     |                                 ^^ help: if this is intentional, prefix it with an underscore: `_rt`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/mod.rs:409:9
[INFO] [stdout]     |
[INFO] [stdout] 409 |         unsafe  {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/mod.rs:422:9
[INFO] [stdout]     |
[INFO] [stdout] 422 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/mod.rs:554:13
[INFO] [stdout]     |
[INFO] [stdout] 554 |             unsafe {
[INFO] [stdout]     |             ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/value/mod.rs:65:21
[INFO] [stdout]    |
[INFO] [stdout] 64 |         unsafe {
[INFO] [stdout]    |         ------ because it's nested under this `unsafe` block
[INFO] [stdout] 65 |             let v = unsafe { Box::from_raw(self.js_value) };
[INFO] [stdout]    |                     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/loader.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 |         Err(err) => {
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/loader.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let mut loader = &mut *(opaque as *mut _ as *mut Box<dyn JsModuleLoader>);
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `into_inner` and `as_inner` are never used
[INFO] [stdout]    --> src/bindings/mod.rs:176:15
[INFO] [stdout]     |
[INFO] [stdout] 163 | impl<'a> OwnedValueRef<'a> {
[INFO] [stdout]     | -------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 176 |     unsafe fn into_inner(self) -> q::JSValue {
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub(crate) fn as_inner(&self) -> &q::JSValue {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `into_value`, `property_tag`, and `is_promise` are never used
[INFO] [stdout]    --> src/bindings/mod.rs:276:8
[INFO] [stdout]     |
[INFO] [stdout] 267 | impl<'a> OwnedObjectRef<'a> {
[INFO] [stdout]     | --------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 276 |     fn into_value(self) -> OwnedValueRef<'a> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 281 |     fn property_tag(&self, name: &str) -> Result<i64, ValueError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 295 |     fn is_promise(&self) -> Result<bool, ValueError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compile` is never used
[INFO] [stdout]   --> src/bindings/compile.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn compile<'a>(
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `from_bytecode` is never used
[INFO] [stdout]   --> src/bindings/compile.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn from_bytecode<'a>(
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_c` is never used
[INFO] [stdout]   --> src/bindings/value.rs:61:19
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl JsTag {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub(super) fn to_c(self) -> i32 {
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `to_bool`, `try_into_compiled_function`, and `try_into_module` are never used
[INFO] [stdout]    --> src/bindings/value.rs:308:19
[INFO] [stdout]     |
[INFO] [stdout] 211 | impl<'a> OwnedJsValue<'a> {
[INFO] [stdout]     | ------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 308 |     pub(crate) fn to_bool(&self) -> Result<bool, ValueError> {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 323 |     pub(crate) fn try_into_compiled_function(self) -> Result<JsCompiledFunction<'a>, ValueError> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 327 |     pub(crate) fn try_into_module(self) -> Result<JsModule<'a>, ValueError> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `value` is never read
[INFO] [stdout]    --> src/bindings/value.rs:389:5
[INFO] [stdout]     |
[INFO] [stdout] 388 | pub struct OwnedJsArray<'a> {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 389 |     value: OwnedJsValue<'a>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `try_from_value` is never used
[INFO] [stdout]    --> src/bindings/value.rs:541:19
[INFO] [stdout]     |
[INFO] [stdout] 540 | impl<'a> JsCompiledFunction<'a> {
[INFO] [stdout]     | ------------------------------- associated function in this implementation
[INFO] [stdout] 541 |     pub(crate) fn try_from_value(value: OwnedJsValue<'a>) -> Result<Self, ValueError> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 1m 01s
[INFO] running `Command { std: "docker" "inspect" "86bbcb04128dfd272697155e5f7f2a8e4b00cfd66369e6eb087fedf104377ca4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "86bbcb04128dfd272697155e5f7f2a8e4b00cfd66369e6eb087fedf104377ca4", kill_on_drop: false }`
[INFO] [stdout] 86bbcb04128dfd272697155e5f7f2a8e4b00cfd66369e6eb087fedf104377ca4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-5-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=warn" "-e" "RUSTDOCFLAGS=--cap-lints=warn" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:e90291280db7d1fac5b66fc6dad9f9662629e7365a55743daf9bdf73ebc4ea79" "/opt/rustwide/cargo-home/bin/cargo" "+1.90.0" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] e7b076212daa2541b6cfdfaf3739059e97c44292f2649c9331961953a4414f10
[INFO] running `Command { std: "docker" "start" "-a" "e7b076212daa2541b6cfdfaf3739059e97c44292f2649c9331961953a4414f10", kill_on_drop: false }`
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/bindings/convert.rs:295:13
[INFO] [stdout]     |
[INFO] [stdout] 295 |             extern fn finalizer(rt: *mut JSRuntime, val: JSValue) {
[INFO] [stdout]     |             ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::any::Any`
[INFO] [stdout]  --> src/bindings/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::any::Any;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::timestamp_millis`: use `timestamp_millis_opt()` instead
[INFO] [stdout]    --> src/bindings/convert.rs:531:56
[INFO] [stdout]     |
[INFO] [stdout] 531 | ...                   let datetime = chrono::Utc.timestamp_millis(f);
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::timestamp_millis`: use `timestamp_millis_opt()` instead
[INFO] [stdout]    --> src/bindings/convert.rs:535:56
[INFO] [stdout]     |
[INFO] [stdout] 535 | ...                   let datetime = chrono::Utc.timestamp_millis(f);
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::any::Any`
[INFO] [stdout]   --> src/lib.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | use std::any::Any;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/convert.rs:188:13
[INFO] [stdout]     |
[INFO] [stdout] 188 |             unsafe {
[INFO] [stdout]     |             ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/convert.rs:193:13
[INFO] [stdout]     |
[INFO] [stdout] 193 |             unsafe {
[INFO] [stdout]     |             ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rt`
[INFO] [stdout]    --> src/bindings/convert.rs:295:33
[INFO] [stdout]     |
[INFO] [stdout] 295 |             extern fn finalizer(rt: *mut JSRuntime, val: JSValue) {
[INFO] [stdout]     |                                 ^^ help: if this is intentional, prefix it with an underscore: `_rt`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/mod.rs:409:9
[INFO] [stdout]     |
[INFO] [stdout] 409 |         unsafe  {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/mod.rs:422:9
[INFO] [stdout]     |
[INFO] [stdout] 422 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/mod.rs:554:13
[INFO] [stdout]     |
[INFO] [stdout] 554 |             unsafe {
[INFO] [stdout]     |             ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/value/mod.rs:65:21
[INFO] [stdout]    |
[INFO] [stdout] 64 |         unsafe {
[INFO] [stdout]    |         ------ because it's nested under this `unsafe` block
[INFO] [stdout] 65 |             let v = unsafe { Box::from_raw(self.js_value) };
[INFO] [stdout]    |                     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/loader.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 |         Err(err) => {
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/loader.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let mut loader = &mut *(opaque as *mut _ as *mut Box<dyn JsModuleLoader>);
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `into_inner` and `as_inner` are never used
[INFO] [stdout]    --> src/bindings/mod.rs:176:15
[INFO] [stdout]     |
[INFO] [stdout] 163 | impl<'a> OwnedValueRef<'a> {
[INFO] [stdout]     | -------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 176 |     unsafe fn into_inner(self) -> q::JSValue {
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 183 |     pub(crate) fn as_inner(&self) -> &q::JSValue {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling lento-quick-js v0.4.2-alpha.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: methods `into_value`, `property_tag`, and `is_promise` are never used
[INFO] [stdout]    --> src/bindings/mod.rs:276:8
[INFO] [stdout]     |
[INFO] [stdout] 267 | impl<'a> OwnedObjectRef<'a> {
[INFO] [stdout]     | --------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 276 |     fn into_value(self) -> OwnedValueRef<'a> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 281 |     fn property_tag(&self, name: &str) -> Result<i64, ValueError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 295 |     fn is_promise(&self) -> Result<bool, ValueError> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `compile` is never used
[INFO] [stdout]   --> src/bindings/compile.rs:11:8
[INFO] [stdout]    |
[INFO] [stdout] 11 | pub fn compile<'a>(
[INFO] [stdout]    |        ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: function `from_bytecode` is never used
[INFO] [stdout]   --> src/bindings/compile.rs:77:8
[INFO] [stdout]    |
[INFO] [stdout] 77 | pub fn from_bytecode<'a>(
[INFO] [stdout]    |        ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `to_c` is never used
[INFO] [stdout]   --> src/bindings/value.rs:61:19
[INFO] [stdout]    |
[INFO] [stdout] 33 | impl JsTag {
[INFO] [stdout]    | ---------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 61 |     pub(super) fn to_c(self) -> i32 {
[INFO] [stdout]    |                   ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `to_bool`, `try_into_compiled_function`, and `try_into_module` are never used
[INFO] [stdout]    --> src/bindings/value.rs:308:19
[INFO] [stdout]     |
[INFO] [stdout] 211 | impl<'a> OwnedJsValue<'a> {
[INFO] [stdout]     | ------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 308 |     pub(crate) fn to_bool(&self) -> Result<bool, ValueError> {
[INFO] [stdout]     |                   ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 323 |     pub(crate) fn try_into_compiled_function(self) -> Result<JsCompiledFunction<'a>, ValueError> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 327 |     pub(crate) fn try_into_module(self) -> Result<JsModule<'a>, ValueError> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `value` is never read
[INFO] [stdout]    --> src/bindings/value.rs:389:5
[INFO] [stdout]     |
[INFO] [stdout] 388 | pub struct OwnedJsArray<'a> {
[INFO] [stdout]     |            ------------ field in this struct
[INFO] [stdout] 389 |     value: OwnedJsValue<'a>,
[INFO] [stdout]     |     ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `try_from_value` is never used
[INFO] [stdout]    --> src/bindings/value.rs:541:19
[INFO] [stdout]     |
[INFO] [stdout] 540 | impl<'a> JsCompiledFunction<'a> {
[INFO] [stdout]     | ------------------------------- associated function in this implementation
[INFO] [stdout] 541 |     pub(crate) fn try_from_value(value: OwnedJsValue<'a>) -> Result<Self, ValueError> {
[INFO] [stdout]     |                   ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0433]: failed to resolve: use of unresolved module or unlinked crate `quick_js`
[INFO] [stdout]  --> examples/resource.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use quick_js::console::{ConsoleBackend, Level};
[INFO] [stdout]   |     ^^^^^^^^ use of unresolved module or unlinked crate `quick_js`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `quick_js`, use `cargo add quick_js` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0432]: unresolved import `quick_js`
[INFO] [stdout]  --> examples/resource.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use quick_js::{Context, JsValue, ResourceValue};
[INFO] [stdout]   |     ^^^^^^^^ use of unresolved module or unlinked crate `quick_js`
[INFO] [stdout]   |
[INFO] [stdout]   = help: if you wanted to use a crate named `quick_js`, use `cargo add quick_js` to add it to your `Cargo.toml`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0432, E0433.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0432`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `lento-quick-js` (example "resource") due to 2 previous errors
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] error[E0412]: cannot find type `JSRefCountHeader` in crate `q`
[INFO] [stdout]    --> src/bindings/value.rs:355:60
[INFO] [stdout]     |
[INFO] [stdout] 355 |             let ptr = unsafe { self.value.u.ptr as *mut q::JSRefCountHeader };
[INFO] [stdout]     |                                                            ^^^^^^^^^^^^^^^^ not found in `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `JSRefCountHeader` in crate `q`
[INFO] [stdout]    --> src/bindings/value.rs:356:31
[INFO] [stdout]     |
[INFO] [stdout] 356 |             let pref: &mut q::JSRefCountHeader = &mut unsafe { *ptr };
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^ not found in `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `JSRefCountHeader` in crate `q`
[INFO] [stdout]    --> src/bindings/mod.rs:252:60
[INFO] [stdout]     |
[INFO] [stdout] 252 |             let ptr = unsafe { self.value.u.ptr as *mut q::JSRefCountHeader };
[INFO] [stdout]     |                                                            ^^^^^^^^^^^^^^^^ not found in `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0412]: cannot find type `JSRefCountHeader` in crate `q`
[INFO] [stdout]    --> src/bindings/mod.rs:253:31
[INFO] [stdout]     |
[INFO] [stdout] 253 |             let pref: &mut q::JSRefCountHeader = &mut unsafe { *ptr };
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^ not found in `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/bindings/convert.rs:295:13
[INFO] [stdout]     |
[INFO] [stdout] 295 |             extern fn finalizer(rt: *mut JSRuntime, val: JSValue) {
[INFO] [stdout]     |             ^^^^^^ help: explicitly specify the "C" ABI: `extern "C"`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(missing_abi)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::any::Any`
[INFO] [stdout]  --> src/bindings/mod.rs:9:5
[INFO] [stdout]   |
[INFO] [stdout] 9 | use std::any::Any;
[INFO] [stdout]   |     ^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::any::Any`
[INFO] [stdout]   --> src/lib.rs:49:5
[INFO] [stdout]    |
[INFO] [stdout] 49 | use std::any::Any;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue`
[INFO] [stdout]    --> src/bindings/compile.rs:142:17
[INFO] [stdout]     |
[INFO] [stdout] 142 |                 assert_eq!(res.to_value().unwrap(), JsValue::Int(7 * 5));
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 value::JsValue
[INFO] [stdout]     |                 value::JsValue
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum JsValue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 + #[derive(PartialEq)]
[INFO] [stdout]  97 | pub enum JsValue {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue`
[INFO] [stdout]    --> src/bindings/compile.rs:177:17
[INFO] [stdout]     |
[INFO] [stdout] 177 |                 assert_eq!(res.to_value().unwrap(), JsValue::Int(7 * 5));
[INFO] [stdout]     |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |                 |
[INFO] [stdout]     |                 value::JsValue
[INFO] [stdout]     |                 value::JsValue
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum JsValue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 + #[derive(PartialEq)]
[INFO] [stdout]  97 | pub enum JsValue {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::timestamp_millis`: use `timestamp_millis_opt()` instead
[INFO] [stdout]    --> src/bindings/convert.rs:531:56
[INFO] [stdout]     |
[INFO] [stdout] 531 | ...                   let datetime = chrono::Utc.timestamp_millis(f);
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::timestamp_millis`: use `timestamp_millis_opt()` instead
[INFO] [stdout]    --> src/bindings/convert.rs:535:56
[INFO] [stdout]     |
[INFO] [stdout] 535 | ...                   let datetime = chrono::Utc.timestamp_millis(f);
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:46:22
[INFO] [stdout]     |
[INFO] [stdout]  46 |         assert_eq!(c.eval(code), res,);
[INFO] [stdout]     |                      ^^^^------ argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout]  46 |         assert_eq!(c.eval(code, /* &str */), res,);
[INFO] [stdout]     |                               ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<value::JsValue, ExecutionError>`
[INFO] [stdout]   --> src/tests.rs:46:9
[INFO] [stdout]    |
[INFO] [stdout] 46 |         assert_eq!(c.eval(code), res,);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         Result<value::JsValue, ExecutionError>
[INFO] [stdout]    |         Result<value::JsValue, ExecutionError>
[INFO] [stdout]    |
[INFO] [stdout] note: the following types would have to `impl` their required traits for this operation to be valid
[INFO] [stdout]   --> src/lib.rs:62:1
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub enum ExecutionError {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/value/mod.rs:96:1
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub enum JsValue {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]    = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `ExecutionError` with `#[derive(PartialEq)]`
[INFO] [stdout]   --> src/lib.rs:62:1
[INFO] [stdout]    |
[INFO] [stdout] 62 + #[derive(PartialEq)]
[INFO] [stdout] 63 | pub enum ExecutionError {
[INFO] [stdout]    |
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]   --> src/value/mod.rs:96:1
[INFO] [stdout]    |
[INFO] [stdout] 96 + #[derive(PartialEq)]
[INFO] [stdout] 97 | pub enum JsValue {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:79:22
[INFO] [stdout]     |
[INFO] [stdout]  79 |         assert_eq!(c.eval(&full_code), res,);
[INFO] [stdout]     |                      ^^^^------------ argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout]  79 |         assert_eq!(c.eval(&full_code, /* &str */), res,);
[INFO] [stdout]     |                                     ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<value::JsValue, ExecutionError>`
[INFO] [stdout]   --> src/tests.rs:79:9
[INFO] [stdout]    |
[INFO] [stdout] 79 |         assert_eq!(c.eval(&full_code), res,);
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         Result<value::JsValue, ExecutionError>
[INFO] [stdout]    |         Result<value::JsValue, ExecutionError>
[INFO] [stdout]    |
[INFO] [stdout] note: the following types would have to `impl` their required traits for this operation to be valid
[INFO] [stdout]   --> src/lib.rs:62:1
[INFO] [stdout]    |
[INFO] [stdout] 62 | pub enum ExecutionError {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]    |
[INFO] [stdout]   ::: src/value/mod.rs:96:1
[INFO] [stdout]    |
[INFO] [stdout] 96 | pub enum JsValue {
[INFO] [stdout]    | ^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]    = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `ExecutionError` with `#[derive(PartialEq)]`
[INFO] [stdout]   --> src/lib.rs:62:1
[INFO] [stdout]    |
[INFO] [stdout] 62 + #[derive(PartialEq)]
[INFO] [stdout] 63 | pub enum ExecutionError {
[INFO] [stdout]    |
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]   --> src/value/mod.rs:96:1
[INFO] [stdout]    |
[INFO] [stdout] 96 + #[derive(PartialEq)]
[INFO] [stdout] 97 | pub enum JsValue {
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:82:18
[INFO] [stdout]     |
[INFO] [stdout]  82 |     assert_eq!(c.eval_as::<bool>("true").unwrap(), true,);
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^-------- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:302:12
[INFO] [stdout]     |
[INFO] [stdout] 302 |     pub fn eval_as<R>(&self, code: &str, filename: &str) -> Result<R, ExecutionError>
[INFO] [stdout]     |            ^^^^^^^                       --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout]  82 |     assert_eq!(c.eval_as::<bool>("true", /* &str */).unwrap(), true,);
[INFO] [stdout]     |                                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:83:18
[INFO] [stdout]     |
[INFO] [stdout]  83 |     assert_eq!(c.eval_as::<i32>("1 + 2").unwrap(), 3,);
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^--------- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:302:12
[INFO] [stdout]     |
[INFO] [stdout] 302 |     pub fn eval_as<R>(&self, code: &str, filename: &str) -> Result<R, ExecutionError>
[INFO] [stdout]     |            ^^^^^^^                       --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout]  83 |     assert_eq!(c.eval_as::<i32>("1 + 2", /* &str */).unwrap(), 3,);
[INFO] [stdout]     |                                        ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:85:27
[INFO] [stdout]     |
[INFO] [stdout]  85 |     let value: String = c.eval_as("var x = 44; x.toString()").unwrap();
[INFO] [stdout]     |                           ^^^^^^^---------------------------- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:302:12
[INFO] [stdout]     |
[INFO] [stdout] 302 |     pub fn eval_as<R>(&self, code: &str, filename: &str) -> Result<R, ExecutionError>
[INFO] [stdout]     |            ^^^^^^^                       --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout]  85 |     let value: String = c.eval_as("var x = 44; x.toString()", /* &str */).unwrap();
[INFO] [stdout]     |                                                             ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:105:11
[INFO] [stdout]     |
[INFO] [stdout] 105 |           c.eval(
[INFO] [stdout]     |  ___________^^^^-
[INFO] [stdout] 106 | |             r#"
[INFO] [stdout] 107 | |             !!!!
[INFO] [stdout] 108 | |         "#
[INFO] [stdout] 109 | |         ),
[INFO] [stdout]     | |_________- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 105 ~         c.eval(r#"
[INFO] [stdout] 106 +             !!!!
[INFO] [stdout] 107 ~         "#, /* &str */),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<value::JsValue, ExecutionError>`
[INFO] [stdout]    --> src/tests.rs:104:5
[INFO] [stdout]     |
[INFO] [stdout] 104 | /     assert_eq!(
[INFO] [stdout] 105 | |         c.eval(
[INFO] [stdout] 106 | |             r#"
[INFO] [stdout] 107 | |             !!!!
[INFO] [stdout] ...   |
[INFO] [stdout] 112 | |         ))
[INFO] [stdout] 113 | |     );
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____Result<value::JsValue, ExecutionError>
[INFO] [stdout]     |       Result<value::JsValue, ExecutionError>
[INFO] [stdout]     |
[INFO] [stdout] note: the following types would have to `impl` their required traits for this operation to be valid
[INFO] [stdout]    --> src/lib.rs:62:1
[INFO] [stdout]     |
[INFO] [stdout]  62 | pub enum ExecutionError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum JsValue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `ExecutionError` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/lib.rs:62:1
[INFO] [stdout]     |
[INFO] [stdout]  62 + #[derive(PartialEq)]
[INFO] [stdout]  63 | pub enum ExecutionError {
[INFO] [stdout]     |
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 + #[derive(PartialEq)]
[INFO] [stdout]  97 | pub enum JsValue {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:120:11
[INFO] [stdout]     |
[INFO] [stdout] 120 |           c.eval(
[INFO] [stdout]     |  ___________^^^^-
[INFO] [stdout] 121 | |             r#"
[INFO] [stdout] 122 | |             function f() {
[INFO] [stdout] 123 | |                 throw new Error("My Error");
[INFO] [stdout] ...   |
[INFO] [stdout] 126 | |         "#
[INFO] [stdout] 127 | |         ),
[INFO] [stdout]     | |_________- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 120 ~         c.eval(r#"
[INFO] [stdout] 121 +             function f() {
[INFO] [stdout] 122 +                 throw new Error("My Error");
[INFO] [stdout] 123 +             }
[INFO] [stdout] 124 +             f();
[INFO] [stdout] 125 ~         "#, /* &str */),
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<value::JsValue, ExecutionError>`
[INFO] [stdout]    --> src/tests.rs:119:5
[INFO] [stdout]     |
[INFO] [stdout] 119 | /     assert_eq!(
[INFO] [stdout] 120 | |         c.eval(
[INFO] [stdout] 121 | |             r#"
[INFO] [stdout] 122 | |             function f() {
[INFO] [stdout] ...   |
[INFO] [stdout] 128 | |         Err(ExecutionError::Exception("Error: My Error".into(),))
[INFO] [stdout] 129 | |     );
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____Result<value::JsValue, ExecutionError>
[INFO] [stdout]     |       Result<value::JsValue, ExecutionError>
[INFO] [stdout]     |
[INFO] [stdout] note: the following types would have to `impl` their required traits for this operation to be valid
[INFO] [stdout]    --> src/lib.rs:62:1
[INFO] [stdout]     |
[INFO] [stdout]  62 | pub enum ExecutionError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum JsValue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `ExecutionError` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/lib.rs:62:1
[INFO] [stdout]     |
[INFO] [stdout]  62 + #[derive(PartialEq)]
[INFO] [stdout]  63 | pub enum ExecutionError {
[INFO] [stdout]     |
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 + #[derive(PartialEq)]
[INFO] [stdout]  97 | pub enum JsValue {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:137:10
[INFO] [stdout]     |
[INFO] [stdout] 137 |           .eval(
[INFO] [stdout]     |  __________^^^^-
[INFO] [stdout] 138 | |             r#"
[INFO] [stdout] 139 | |         new Promise((resolve, _) => {
[INFO] [stdout] 140 | |             resolve(33);
[INFO] [stdout] 141 | |         })
[INFO] [stdout] 142 | |     "#,
[INFO] [stdout] 143 | |         )
[INFO] [stdout]     | |_________- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 137 ~         .eval(r#"
[INFO] [stdout] 138 +         new Promise((resolve, _) => {
[INFO] [stdout] 139 +             resolve(33);
[INFO] [stdout] 140 +         })
[INFO] [stdout] 141 +     "#, /* &str */)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue`
[INFO] [stdout]    --> src/tests.rs:145:5
[INFO] [stdout]     |
[INFO] [stdout] 145 |     assert_eq!(value, JsValue::Int(33));
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     value::JsValue
[INFO] [stdout]     |     value::JsValue
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum JsValue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 + #[derive(PartialEq)]
[INFO] [stdout]  97 | pub enum JsValue {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:147:17
[INFO] [stdout]     |
[INFO] [stdout] 147 |       let res = c.eval(
[INFO] [stdout]     |  _________________^^^^-
[INFO] [stdout] 148 | |         r#"
[INFO] [stdout] 149 | |         new Promise((_resolve, reject) => {
[INFO] [stdout] 150 | |             reject("Failed...");
[INFO] [stdout] 151 | |         })
[INFO] [stdout] 152 | |     "#,
[INFO] [stdout] 153 | |     );
[INFO] [stdout]     | |_____- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 147 ~     let res = c.eval(r#"
[INFO] [stdout] 148 +         new Promise((_resolve, reject) => {
[INFO] [stdout] 149 +             reject("Failed...");
[INFO] [stdout] 150 +         })
[INFO] [stdout] 151 ~     "#, /* &str */);
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<value::JsValue, ExecutionError>`
[INFO] [stdout]    --> src/tests.rs:154:5
[INFO] [stdout]     |
[INFO] [stdout] 154 | /     assert_eq!(
[INFO] [stdout] 155 | |         res,
[INFO] [stdout] 156 | |         Err(ExecutionError::Exception(JsValue::String(
[INFO] [stdout] 157 | |             "Failed...".into()
[INFO] [stdout] 158 | |         )))
[INFO] [stdout] 159 | |     );
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____Result<value::JsValue, ExecutionError>
[INFO] [stdout]     |       Result<value::JsValue, ExecutionError>
[INFO] [stdout]     |
[INFO] [stdout] note: the following types would have to `impl` their required traits for this operation to be valid
[INFO] [stdout]    --> src/lib.rs:62:1
[INFO] [stdout]     |
[INFO] [stdout]  62 | pub enum ExecutionError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum JsValue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `ExecutionError` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/lib.rs:62:1
[INFO] [stdout]     |
[INFO] [stdout]  62 + #[derive(PartialEq)]
[INFO] [stdout]  63 | pub enum ExecutionError {
[INFO] [stdout]     |
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 + #[derive(PartialEq)]
[INFO] [stdout]  97 | pub enum JsValue {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:166:25
[INFO] [stdout]     |
[INFO] [stdout] 166 |     let value = context.eval_as::<i32>("someGlobalVariable").unwrap();
[INFO] [stdout]     |                         ^^^^^^^^^^^^^^---------------------- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:302:12
[INFO] [stdout]     |
[INFO] [stdout] 302 |     pub fn eval_as<R>(&self, code: &str, filename: &str) -> Result<R, ExecutionError>
[INFO] [stdout]     |            ^^^^^^^                       --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 166 |     let value = context.eval_as::<i32>("someGlobalVariable", /* &str */).unwrap();
[INFO] [stdout]     |                                                            ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue`
[INFO] [stdout]    --> src/tests.rs:174:5
[INFO] [stdout]     |
[INFO] [stdout] 174 | /     assert_eq!(
[INFO] [stdout] 175 | |         c.call_function("parseInt", vec!["22"]).unwrap(),
[INFO] [stdout] 176 | |         JsValue::Int(22),
[INFO] [stdout] 177 | |     );
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____value::JsValue
[INFO] [stdout]     |       value::JsValue
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum JsValue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 + #[derive(PartialEq)]
[INFO] [stdout]  97 | pub enum JsValue {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:179:7
[INFO] [stdout]     |
[INFO] [stdout] 179 |       c.eval(
[INFO] [stdout]     |  _______^^^^-
[INFO] [stdout] 180 | |         r#"
[INFO] [stdout] 181 | |         function add(a, b) {
[INFO] [stdout] 182 | |             return a + b;
[INFO] [stdout] 183 | |         }
[INFO] [stdout] 184 | |     "#,
[INFO] [stdout] 185 | |     )
[INFO] [stdout]     | |_____- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 179 ~     c.eval(r#"
[INFO] [stdout] 180 +         function add(a, b) {
[INFO] [stdout] 181 +             return a + b;
[INFO] [stdout] 182 +         }
[INFO] [stdout] 183 +     "#, /* &str */)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue`
[INFO] [stdout]    --> src/tests.rs:187:5
[INFO] [stdout]     |
[INFO] [stdout] 187 | /     assert_eq!(
[INFO] [stdout] 188 | |         c.call_function("add", vec![5, 7]).unwrap(),
[INFO] [stdout] 189 | |         JsValue::Int(12),
[INFO] [stdout] 190 | |     );
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____value::JsValue
[INFO] [stdout]     |       value::JsValue
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum JsValue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 + #[derive(PartialEq)]
[INFO] [stdout]  97 | pub enum JsValue {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:192:7
[INFO] [stdout]     |
[INFO] [stdout] 192 |       c.eval(
[INFO] [stdout]     |  _______^^^^-
[INFO] [stdout] 193 | |         r#"
[INFO] [stdout] 194 | |         function sumArray(arr) {
[INFO] [stdout] 195 | |             let sum = 0;
[INFO] [stdout] ...   |
[INFO] [stdout] 201 | |     "#,
[INFO] [stdout] 202 | |     )
[INFO] [stdout]     | |_____- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 192 ~     c.eval(r#"
[INFO] [stdout] 193 +         function sumArray(arr) {
[INFO] [stdout] 194 +             let sum = 0;
[INFO] [stdout] 195 +             for (const value of arr) {
[INFO] [stdout] 196 +                 sum += value;
[INFO] [stdout] 197 +             }
[INFO] [stdout] 198 +             return sum;
[INFO] [stdout] 199 +         }
[INFO] [stdout] 200 +     "#, /* &str */)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue`
[INFO] [stdout]    --> src/tests.rs:204:5
[INFO] [stdout]     |
[INFO] [stdout] 204 | /     assert_eq!(
[INFO] [stdout] 205 | |         c.call_function("sumArray", vec![vec![1, 2, 3]]).unwrap(),
[INFO] [stdout] 206 | |         JsValue::Int(6),
[INFO] [stdout] 207 | |     );
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____value::JsValue
[INFO] [stdout]     |       value::JsValue
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum JsValue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 + #[derive(PartialEq)]
[INFO] [stdout]  97 | pub enum JsValue {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:209:7
[INFO] [stdout]     |
[INFO] [stdout] 209 |       c.eval(
[INFO] [stdout]     |  _______^^^^-
[INFO] [stdout] 210 | |         r#"
[INFO] [stdout] 211 | |         function addObject(obj) {
[INFO] [stdout] 212 | |             let sum = 0;
[INFO] [stdout] ...   |
[INFO] [stdout] 218 | |     "#,
[INFO] [stdout] 219 | |     )
[INFO] [stdout]     | |_____- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 209 ~     c.eval(r#"
[INFO] [stdout] 210 +         function addObject(obj) {
[INFO] [stdout] 211 +             let sum = 0;
[INFO] [stdout] 212 +             for (const key of Object.keys(obj)) {
[INFO] [stdout] 213 +                 sum += obj[key];
[INFO] [stdout] 214 +             }
[INFO] [stdout] 215 +             return sum;
[INFO] [stdout] 216 +         }
[INFO] [stdout] 217 +     "#, /* &str */)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0277]: the trait bound `value::JsValue: From<HashMap<String, i32>>` is not satisfied
[INFO] [stdout]    --> src/tests.rs:226:11
[INFO] [stdout]     |
[INFO] [stdout] 226 |         c.call_function("addObject", vec![obj]).unwrap(),
[INFO] [stdout]     |           ^^^^^^^^^^^^^ the trait `From<HashMap<String, i32>>` is not implemented for `value::JsValue`
[INFO] [stdout]     |
[INFO] [stdout]     = help: the following other types implement trait `From<T>`:
[INFO] [stdout]               `value::JsValue` implements `From<&str>`
[INFO] [stdout]               `value::JsValue` implements `From<Option<T>>`
[INFO] [stdout]               `value::JsValue` implements `From<String>`
[INFO] [stdout]               `value::JsValue` implements `From<Vec<T>>`
[INFO] [stdout]               `value::JsValue` implements `From<bool>`
[INFO] [stdout]               `value::JsValue` implements `From<f64>`
[INFO] [stdout]               `value::JsValue` implements `From<i16>`
[INFO] [stdout]               `value::JsValue` implements `From<i32>`
[INFO] [stdout]             and 4 others
[INFO] [stdout]     = note: required for `HashMap<String, i32>` to implement `Into<value::JsValue>`
[INFO] [stdout] note: required by a bound in `Context::call_function`
[INFO] [stdout]    --> src/lib.rs:357:45
[INFO] [stdout]     |
[INFO] [stdout] 354 |     pub fn call_function(
[INFO] [stdout]     |            ------------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 357 |         args: impl IntoIterator<Item = impl Into<JsValue>>,
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^ required by this bound in `Context::call_function`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue`
[INFO] [stdout]    --> src/tests.rs:225:5
[INFO] [stdout]     |
[INFO] [stdout] 225 | /     assert_eq!(
[INFO] [stdout] 226 | |         c.call_function("addObject", vec![obj]).unwrap(),
[INFO] [stdout] 227 | |         JsValue::Int(60),
[INFO] [stdout] 228 | |     );
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____value::JsValue
[INFO] [stdout]     |       value::JsValue
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum JsValue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 + #[derive(PartialEq)]
[INFO] [stdout]  97 | pub enum JsValue {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:234:7
[INFO] [stdout]     |
[INFO] [stdout] 234 |     c.eval(" function strLen(s) { return s.length; } ").unwrap();
[INFO] [stdout]     |       ^^^^--------------------------------------------- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 234 |     c.eval(" function strLen(s) { return s.length; } ", /* &str */).unwrap();
[INFO] [stdout]     |                                                       ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue`
[INFO] [stdout]    --> src/tests.rs:238:5
[INFO] [stdout]     |
[INFO] [stdout] 238 |     assert_eq!(v, JsValue::Int(200_000));
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     value::JsValue
[INFO] [stdout]     |     value::JsValue
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum JsValue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 + #[derive(PartialEq)]
[INFO] [stdout]  97 | pub enum JsValue {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:245:7
[INFO] [stdout]     |
[INFO] [stdout] 245 |       c.eval(
[INFO] [stdout]     |  _______^^^^-
[INFO] [stdout] 246 | |         r#"
[INFO] [stdout] 247 | |         function asyncOk() {
[INFO] [stdout] 248 | |             return new Promise((resolve, _) => {
[INFO] [stdout] ...   |
[INFO] [stdout] 258 | |     "#,
[INFO] [stdout] 259 | |     )
[INFO] [stdout]     | |_____- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 245 ~     c.eval(r#"
[INFO] [stdout] 246 +         function asyncOk() {
[INFO] [stdout] 247 +             return new Promise((resolve, _) => {
[INFO] [stdout] 248 +                 resolve(33);
[INFO] [stdout] 249 +             });
[INFO] [stdout] 250 +         }
[INFO] [stdout] 251 + 
[INFO] [stdout] 252 +         function asyncErr() {
[INFO] [stdout] 253 +             return new Promise((_resolve, reject) => {
[INFO] [stdout] 254 +                 reject("Failed...");
[INFO] [stdout] 255 +             });
[INFO] [stdout] 256 +         }
[INFO] [stdout] 257 +     "#, /* &str */)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue`
[INFO] [stdout]    --> src/tests.rs:263:5
[INFO] [stdout]     |
[INFO] [stdout] 263 |     assert_eq!(value, JsValue::Int(33));
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     value::JsValue
[INFO] [stdout]     |     value::JsValue
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum JsValue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 + #[derive(PartialEq)]
[INFO] [stdout]  97 | pub enum JsValue {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<value::JsValue, ExecutionError>`
[INFO] [stdout]    --> src/tests.rs:266:5
[INFO] [stdout]     |
[INFO] [stdout] 266 | /     assert_eq!(
[INFO] [stdout] 267 | |         res,
[INFO] [stdout] 268 | |         Err(ExecutionError::Exception(JsValue::String(
[INFO] [stdout] 269 | |             "Failed...".into()
[INFO] [stdout] 270 | |         )))
[INFO] [stdout] 271 | |     );
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____Result<value::JsValue, ExecutionError>
[INFO] [stdout]     |       Result<value::JsValue, ExecutionError>
[INFO] [stdout]     |
[INFO] [stdout] note: the following types would have to `impl` their required traits for this operation to be valid
[INFO] [stdout]    --> src/lib.rs:62:1
[INFO] [stdout]     |
[INFO] [stdout]  62 | pub enum ExecutionError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum JsValue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `ExecutionError` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/lib.rs:62:1
[INFO] [stdout]     |
[INFO] [stdout]  62 + #[derive(PartialEq)]
[INFO] [stdout]  63 | pub enum ExecutionError {
[INFO] [stdout]     |
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 + #[derive(PartialEq)]
[INFO] [stdout]  97 | pub enum JsValue {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:279:18
[INFO] [stdout]     |
[INFO] [stdout] 279 |     assert_eq!(c.eval_as::<bool>("no_arguments()").unwrap(), true);
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^------------------ argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:302:12
[INFO] [stdout]     |
[INFO] [stdout] 302 |     pub fn eval_as<R>(&self, code: &str, filename: &str) -> Result<R, ExecutionError>
[INFO] [stdout]     |            ^^^^^^^                       --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 279 |     assert_eq!(c.eval_as::<bool>("no_arguments()", /* &str */).unwrap(), true);
[INFO] [stdout]     |                                                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:282:18
[INFO] [stdout]     |
[INFO] [stdout] 282 |     assert_eq!(c.eval("cb1(true)").unwrap(), JsValue::Bool(false),);
[INFO] [stdout]     |                  ^^^^------------- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 282 |     assert_eq!(c.eval("cb1(true)", /* &str */).unwrap(), JsValue::Bool(false),);
[INFO] [stdout]     |                                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue`
[INFO] [stdout]    --> src/tests.rs:282:5
[INFO] [stdout]     |
[INFO] [stdout] 282 |     assert_eq!(c.eval("cb1(true)").unwrap(), JsValue::Bool(false),);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     value::JsValue
[INFO] [stdout]     |     value::JsValue
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum JsValue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 + #[derive(PartialEq)]
[INFO] [stdout]  97 | pub enum JsValue {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:287:11
[INFO] [stdout]     |
[INFO] [stdout] 287 |         c.eval(r#"concat2("abc", "def")"#).unwrap(),
[INFO] [stdout]     |           ^^^^---------------------------- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 287 |         c.eval(r#"concat2("abc", "def")"#, /* &str */).unwrap(),
[INFO] [stdout]     |                                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue`
[INFO] [stdout]    --> src/tests.rs:286:5
[INFO] [stdout]     |
[INFO] [stdout] 286 | /     assert_eq!(
[INFO] [stdout] 287 | |         c.eval(r#"concat2("abc", "def")"#).unwrap(),
[INFO] [stdout] 288 | |         JsValue::String("abcdef".into()),
[INFO] [stdout] 289 | |     );
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____value::JsValue
[INFO] [stdout]     |       value::JsValue
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum JsValue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 + #[derive(PartialEq)]
[INFO] [stdout]  97 | pub enum JsValue {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:293:18
[INFO] [stdout]     |
[INFO] [stdout] 293 |     assert_eq!(c.eval("add2(5, 11)").unwrap(), JsValue::Int(16),);
[INFO] [stdout]     |                  ^^^^--------------- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 293 |     assert_eq!(c.eval("add2(5, 11)", /* &str */).unwrap(), JsValue::Int(16),);
[INFO] [stdout]     |                                    ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue`
[INFO] [stdout]    --> src/tests.rs:293:5
[INFO] [stdout]     |
[INFO] [stdout] 293 |     assert_eq!(c.eval("add2(5, 11)").unwrap(), JsValue::Int(16),);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     value::JsValue
[INFO] [stdout]     |     value::JsValue
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum JsValue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 + #[derive(PartialEq)]
[INFO] [stdout]  97 | pub enum JsValue {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:297:18
[INFO] [stdout]     |
[INFO] [stdout] 297 |     assert_eq!(c.eval("sum([1, 2, 3, 4, 5, 6])").unwrap(), JsValue::Int(21),);
[INFO] [stdout]     |                  ^^^^--------------------------- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 297 |     assert_eq!(c.eval("sum([1, 2, 3, 4, 5, 6])", /* &str */).unwrap(), JsValue::Int(21),);
[INFO] [stdout]     |                                                ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue`
[INFO] [stdout]    --> src/tests.rs:297:5
[INFO] [stdout]     |
[INFO] [stdout] 297 |     assert_eq!(c.eval("sum([1, 2, 3, 4, 5, 6])").unwrap(), JsValue::Int(21),);
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     value::JsValue
[INFO] [stdout]     |     value::JsValue
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum JsValue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 + #[derive(PartialEq)]
[INFO] [stdout]  97 | pub enum JsValue {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:303:22
[INFO] [stdout]     |
[INFO] [stdout] 303 |         assert_eq!(c.eval("identity(22)").unwrap(), v);
[INFO] [stdout]     |                      ^^^^---------------- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 303 |         assert_eq!(c.eval("identity(22)", /* &str */).unwrap(), v);
[INFO] [stdout]     |                                         ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue`
[INFO] [stdout]    --> src/tests.rs:303:9
[INFO] [stdout]     |
[INFO] [stdout] 303 |         assert_eq!(c.eval("identity(22)").unwrap(), v);
[INFO] [stdout]     |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |         |
[INFO] [stdout]     |         value::JsValue
[INFO] [stdout]     |         value::JsValue
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum JsValue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 + #[derive(PartialEq)]
[INFO] [stdout]  97 | pub enum JsValue {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:325:31
[INFO] [stdout]     |
[INFO] [stdout] 325 |                       let v = c.eval(&code).unwrap();
[INFO] [stdout]     |                                 ^^^^------- argument #2 of type `&str` is missing
[INFO] [stdout] ...
[INFO] [stdout] 352 | /     callback_argn_tests![
[INFO] [stdout] 353 | |         1: (a : 1),
[INFO] [stdout] 354 | |     ]
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout]     = note: this error originates in the macro `callback_argn_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 325 |                     let v = c.eval(&code, /* &str */).unwrap();
[INFO] [stdout]     |                                         ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue`
[INFO] [stdout]    --> src/tests.rs:352:5
[INFO] [stdout]     |
[INFO] [stdout] 352 | /     callback_argn_tests![
[INFO] [stdout] 353 | |         1: (a : 1),
[INFO] [stdout] 354 | |     ]
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____value::JsValue
[INFO] [stdout]     |       value::JsValue
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum JsValue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` which comes from the expansion of the macro `callback_argn_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 + #[derive(PartialEq)]
[INFO] [stdout]  97 | pub enum JsValue {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:335:31
[INFO] [stdout]     |
[INFO] [stdout] 335 |                       let v = c.eval(&code).unwrap();
[INFO] [stdout]     |                                 ^^^^------- argument #2 of type `&str` is missing
[INFO] [stdout] ...
[INFO] [stdout] 352 | /     callback_argn_tests![
[INFO] [stdout] 353 | |         1: (a : 1),
[INFO] [stdout] 354 | |     ]
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout]     = note: this error originates in the macro `callback_argn_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 335 |                     let v = c.eval(&code, /* &str */).unwrap();
[INFO] [stdout]     |                                         ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue`
[INFO] [stdout]    --> src/tests.rs:352:5
[INFO] [stdout]     |
[INFO] [stdout] 352 | /     callback_argn_tests![
[INFO] [stdout] 353 | |         1: (a : 1),
[INFO] [stdout] 354 | |     ]
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____value::JsValue
[INFO] [stdout]     |       value::JsValue
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum JsValue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` which comes from the expansion of the macro `callback_argn_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 + #[derive(PartialEq)]
[INFO] [stdout]  97 | pub enum JsValue {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:345:33
[INFO] [stdout]     |
[INFO] [stdout] 345 |                       let res = c.eval(&code);
[INFO] [stdout]     |                                   ^^^^------- argument #2 of type `&str` is missing
[INFO] [stdout] ...
[INFO] [stdout] 352 | /     callback_argn_tests![
[INFO] [stdout] 353 | |         1: (a : 1),
[INFO] [stdout] 354 | |     ]
[INFO] [stdout]     | |_____- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout]     = note: this error originates in the macro `callback_argn_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 345 |                     let res = c.eval(&code, /* &str */);
[INFO] [stdout]     |                                           ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<value::JsValue, ExecutionError>`
[INFO] [stdout]    --> src/tests.rs:352:5
[INFO] [stdout]     |
[INFO] [stdout] 352 | /     callback_argn_tests![
[INFO] [stdout] 353 | |         1: (a : 1),
[INFO] [stdout] 354 | |     ]
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____Result<value::JsValue, ExecutionError>
[INFO] [stdout]     |       Result<value::JsValue, ExecutionError>
[INFO] [stdout]     |
[INFO] [stdout] note: the following types would have to `impl` their required traits for this operation to be valid
[INFO] [stdout]    --> src/lib.rs:62:1
[INFO] [stdout]     |
[INFO] [stdout]  62 | pub enum ExecutionError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum JsValue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` which comes from the expansion of the macro `callback_argn_tests` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `ExecutionError` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/lib.rs:62:1
[INFO] [stdout]     |
[INFO] [stdout]  62 + #[derive(PartialEq)]
[INFO] [stdout]  63 | pub enum ExecutionError {
[INFO] [stdout]     |
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 + #[derive(PartialEq)]
[INFO] [stdout]  97 | pub enum JsValue {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Vec<value::JsValue>`
[INFO] [stdout]    --> src/tests.rs:364:9
[INFO] [stdout]     |
[INFO] [stdout] 364 | /         assert_eq!(
[INFO] [stdout] 365 | |             args,
[INFO] [stdout] 366 | |             vec![
[INFO] [stdout] 367 | |                 JsValue::String("hello".into()),
[INFO] [stdout] ...   |
[INFO] [stdout] 371 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |_________|
[INFO] [stdout]     | |_________Vec<value::JsValue>
[INFO] [stdout]     |           Vec<value::JsValue>
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum JsValue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 + #[derive(PartialEq)]
[INFO] [stdout]  97 | pub enum JsValue {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:375:11
[INFO] [stdout]     |
[INFO] [stdout] 375 |         c.eval_as::<bool>("cb('hello', true, 100) === undefined")
[INFO] [stdout]     |           ^^^^^^^^^^^^^^^---------------------------------------- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:302:12
[INFO] [stdout]     |
[INFO] [stdout] 302 |     pub fn eval_as<R>(&self, code: &str, filename: &str) -> Result<R, ExecutionError>
[INFO] [stdout]     |            ^^^^^^^                       --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 375 |         c.eval_as::<bool>("cb('hello', true, 100) === undefined", /* &str */)
[INFO] [stdout]     |                                                                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Vec<value::JsValue>`
[INFO] [stdout]    --> src/tests.rs:383:9
[INFO] [stdout]     |
[INFO] [stdout] 383 | /         assert_eq!(
[INFO] [stdout] 384 | |             args,
[INFO] [stdout] 385 | |             vec![JsValue::from(1), JsValue::from(10), JsValue::from(100),]
[INFO] [stdout] 386 | |         );
[INFO] [stdout]     | |         ^
[INFO] [stdout]     | |_________|
[INFO] [stdout]     | |_________Vec<value::JsValue>
[INFO] [stdout]     |           Vec<value::JsValue>
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum JsValue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 + #[derive(PartialEq)]
[INFO] [stdout]  97 | pub enum JsValue {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:390:7
[INFO] [stdout]     |
[INFO] [stdout] 390 |       c.eval(
[INFO] [stdout]     |  _______^^^^-
[INFO] [stdout] 391 | |         r#"
[INFO] [stdout] 392 | |         var x = cb2(1, 10, 100);
[INFO] [stdout] 393 | |         if (x !== 111) {
[INFO] [stdout] ...   |
[INFO] [stdout] 396 | |     "#,
[INFO] [stdout] 397 | |     )
[INFO] [stdout]     | |_____- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 390 ~     c.eval(r#"
[INFO] [stdout] 391 +         var x = cb2(1, 10, 100);
[INFO] [stdout] 392 +         if (x !== 111) {
[INFO] [stdout] 393 +         throw new Error('Expected 111, got ' + x);
[INFO] [stdout] 394 +         }
[INFO] [stdout] 395 +     "#, /* &str */)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:408:11
[INFO] [stdout]     |
[INFO] [stdout] 408 |         c.eval(" cb(5) "),
[INFO] [stdout]     |           ^^^^----------- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 408 |         c.eval(" cb(5) ", /* &str */),
[INFO] [stdout]     |                         ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<value::JsValue, ExecutionError>`
[INFO] [stdout]    --> src/tests.rs:407:5
[INFO] [stdout]     |
[INFO] [stdout] 407 | /     assert_eq!(
[INFO] [stdout] 408 | |         c.eval(" cb(5) "),
[INFO] [stdout] 409 | |         Err(ExecutionError::Exception(
[INFO] [stdout] 410 | |             "Invalid argument count: Expected 2, got 1".into()
[INFO] [stdout] 411 | |         )),
[INFO] [stdout] 412 | |     );
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____Result<value::JsValue, ExecutionError>
[INFO] [stdout]     |       Result<value::JsValue, ExecutionError>
[INFO] [stdout]     |
[INFO] [stdout] note: the following types would have to `impl` their required traits for this operation to be valid
[INFO] [stdout]    --> src/lib.rs:62:1
[INFO] [stdout]     |
[INFO] [stdout]  62 | pub enum ExecutionError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum JsValue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `ExecutionError` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/lib.rs:62:1
[INFO] [stdout]     |
[INFO] [stdout]  62 + #[derive(PartialEq)]
[INFO] [stdout]  63 | pub enum ExecutionError {
[INFO] [stdout]     |
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 + #[derive(PartialEq)]
[INFO] [stdout]  97 | pub enum JsValue {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:419:11
[INFO] [stdout]     |
[INFO] [stdout] 419 |         c.eval("  'abc'.repeat(200_000) "),
[INFO] [stdout]     |           ^^^^---------------------------- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 419 |         c.eval("  'abc'.repeat(200_000) ", /* &str */),
[INFO] [stdout]     |                                          ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Result<value::JsValue, ExecutionError>`
[INFO] [stdout]    --> src/tests.rs:418:5
[INFO] [stdout]     |
[INFO] [stdout] 418 | /     assert_eq!(
[INFO] [stdout] 419 | |         c.eval("  'abc'.repeat(200_000) "),
[INFO] [stdout] 420 | |         Err(ExecutionError::OutOfMemory),
[INFO] [stdout] 421 | |     );
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____Result<value::JsValue, ExecutionError>
[INFO] [stdout]     |       Result<value::JsValue, ExecutionError>
[INFO] [stdout]     |
[INFO] [stdout] note: the following types would have to `impl` their required traits for this operation to be valid
[INFO] [stdout]    --> src/lib.rs:62:1
[INFO] [stdout]     |
[INFO] [stdout]  62 | pub enum ExecutionError {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     |
[INFO] [stdout]    ::: src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum JsValue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `ExecutionError` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/lib.rs:62:1
[INFO] [stdout]     |
[INFO] [stdout]  62 + #[derive(PartialEq)]
[INFO] [stdout]  63 | pub enum ExecutionError {
[INFO] [stdout]     |
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 + #[derive(PartialEq)]
[INFO] [stdout]  97 | pub enum JsValue {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:427:7
[INFO] [stdout]     |
[INFO] [stdout] 427 |     c.eval(" var x = 123; ").unwrap();
[INFO] [stdout]     |       ^^^^------------------ argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 427 |     c.eval(" var x = 123; ", /* &str */).unwrap();
[INFO] [stdout]     |                            ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:434:12
[INFO] [stdout]     |
[INFO] [stdout] 434 |         c2.eval_as::<String>(" 'abc'.repeat(2) ").unwrap(),
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^--------------------- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:302:12
[INFO] [stdout]     |
[INFO] [stdout] 302 |     pub fn eval_as<R>(&self, code: &str, filename: &str) -> Result<R, ExecutionError>
[INFO] [stdout]     |            ^^^^^^^                       --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 434 |         c2.eval_as::<String>(" 'abc'.repeat(2) ", /* &str */).unwrap(),
[INFO] [stdout]     |                                                 ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:439:22
[INFO] [stdout]     |
[INFO] [stdout] 439 |     let err_msg = c2.eval(" x ").unwrap_err().to_string();
[INFO] [stdout]     |                      ^^^^------- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 439 |     let err_msg = c2.eval(" x ", /* &str */).unwrap_err().to_string();
[INFO] [stdout]     |                                ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:443:22
[INFO] [stdout]     |
[INFO] [stdout] 443 |     let err_msg = c2.eval(" myCallback() ").unwrap_err().to_string();
[INFO] [stdout]     |                      ^^^^------------------ argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 443 |     let err_msg = c2.eval(" myCallback() ", /* &str */).unwrap_err().to_string();
[INFO] [stdout]     |                                           ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:454:9
[INFO] [stdout]     |
[INFO] [stdout] 454 |     ctx.eval(&code).unwrap();
[INFO] [stdout]     |         ^^^^------- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 454 |     ctx.eval(&code, /* &str */).unwrap();
[INFO] [stdout]     |                   ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue`
[INFO] [stdout]    --> src/tests.rs:463:5
[INFO] [stdout]     |
[INFO] [stdout] 463 |     assert_eq!(v, "testtest".into());
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     value::JsValue
[INFO] [stdout]     |     _
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq<_>` might be missing for `value::JsValue`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum JsValue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ must implement `PartialEq<_>`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 + #[derive(PartialEq)]
[INFO] [stdout]  97 | pub enum JsValue {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:465:15
[INFO] [stdout]     |
[INFO] [stdout] 465 |     let v = c.eval(" f('la') ").unwrap();
[INFO] [stdout]     |               ^^^^------------- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 465 |     let v = c.eval(" f('la') ", /* &str */).unwrap();
[INFO] [stdout]     |                               ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue`
[INFO] [stdout]    --> src/tests.rs:466:5
[INFO] [stdout]     |
[INFO] [stdout] 466 |     assert_eq!(v, "lala".into());
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     value::JsValue
[INFO] [stdout]     |     _
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq<_>` might be missing for `value::JsValue`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum JsValue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ must implement `PartialEq<_>`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 + #[derive(PartialEq)]
[INFO] [stdout]  97 | pub enum JsValue {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:474:7
[INFO] [stdout]     |
[INFO] [stdout] 474 |       c.eval(
[INFO] [stdout]     |  _______^^^^-
[INFO] [stdout] 475 | |         "
[INFO] [stdout] 476 | |         function dateToTimestamp(date) {
[INFO] [stdout] 477 | |             return date.getTime();
[INFO] [stdout] 478 | |         }
[INFO] [stdout] 479 | |     ",
[INFO] [stdout] 480 | |     )
[INFO] [stdout]     | |_____- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 474 ~     c.eval("
[INFO] [stdout] 475 +         function dateToTimestamp(date) {
[INFO] [stdout] 476 +             return date.getTime();
[INFO] [stdout] 477 +         }
[INFO] [stdout] 478 +     ", /* &str */)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue`
[INFO] [stdout]    --> src/tests.rs:490:5
[INFO] [stdout]     |
[INFO] [stdout] 490 |     assert_eq!(timestamp, JsValue::Float(now_millis as f64));
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     value::JsValue
[INFO] [stdout]     |     value::JsValue
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum JsValue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 + #[derive(PartialEq)]
[INFO] [stdout]  97 | pub enum JsValue {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:500:19
[INFO] [stdout]     |
[INFO] [stdout] 500 |     let value = c.eval(" new Date(1234567555) ").unwrap();
[INFO] [stdout]     |                   ^^^^-------------------------- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 500 |     let value = c.eval(" new Date(1234567555) ", /* &str */).unwrap();
[INFO] [stdout]     |                                                ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `chrono::TimeZone::timestamp_millis`: use `timestamp_millis_opt()` instead
[INFO] [stdout]    --> src/tests.rs:501:32
[INFO] [stdout]     |
[INFO] [stdout] 501 |     let datetime = chrono::Utc.timestamp_millis(1234567555);
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `value::JsValue`
[INFO] [stdout]    --> src/tests.rs:503:5
[INFO] [stdout]     |
[INFO] [stdout] 503 |     assert_eq!(value, JsValue::Date(datetime));
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     value::JsValue
[INFO] [stdout]     |     value::JsValue
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum JsValue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 + #[derive(PartialEq)]
[INFO] [stdout]  97 | pub enum JsValue {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:511:7
[INFO] [stdout]     |
[INFO] [stdout] 511 |     c.eval(" function identity(x) { return x; } ").unwrap();
[INFO] [stdout]     |       ^^^^---------------------------------------- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 511 |     c.eval(" function identity(x) { return x; } ", /* &str */).unwrap();
[INFO] [stdout]     |                                                  ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:600:7
[INFO] [stdout]     |
[INFO] [stdout] 600 |       c.eval(
[INFO] [stdout]     |  _______^^^^-
[INFO] [stdout] 601 | |         r#"
[INFO] [stdout] 602 | |         console.log("hi");
[INFO] [stdout] 603 | |         console.error(false);
[INFO] [stdout] 604 | |     "#,
[INFO] [stdout] 605 | |     )
[INFO] [stdout]     | |_____- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 600 ~     c.eval(r#"
[INFO] [stdout] 601 +         console.log("hi");
[INFO] [stdout] 602 +         console.error(false);
[INFO] [stdout] 603 +     "#, /* &str */)
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0369]: binary operation `==` cannot be applied to type `Vec<(Level, Vec<value::JsValue>)>`
[INFO] [stdout]    --> src/tests.rs:610:5
[INFO] [stdout]     |
[INFO] [stdout] 610 | /     assert_eq!(
[INFO] [stdout] 611 | |         *m,
[INFO] [stdout] 612 | |         vec![
[INFO] [stdout] 613 | |             (Level::Log, vec![JsValue::from("hi")]),
[INFO] [stdout] ...   |
[INFO] [stdout] 616 | |     );
[INFO] [stdout]     | |     ^
[INFO] [stdout]     | |_____|
[INFO] [stdout]     | |_____Vec<(Level, Vec<value::JsValue>)>
[INFO] [stdout]     |       Vec<(Level, Vec<value::JsValue>)>
[INFO] [stdout]     |
[INFO] [stdout] note: an implementation of `PartialEq` might be missing for `value::JsValue`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum JsValue {
[INFO] [stdout]     | ^^^^^^^^^^^^^^^^ must implement `PartialEq`
[INFO] [stdout]     = note: this error originates in the macro `assert_eq` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] help: consider annotating `value::JsValue` with `#[derive(PartialEq)]`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 + #[derive(PartialEq)]
[INFO] [stdout]  97 | pub enum JsValue {
[INFO] [stdout]     |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0061]: this method takes 2 arguments but 1 argument was supplied
[INFO] [stdout]    --> src/tests.rs:623:9
[INFO] [stdout]     |
[INFO] [stdout] 623 |     ctx.eval("a + 1").unwrap();
[INFO] [stdout]     |         ^^^^--------- argument #2 of type `&str` is missing
[INFO] [stdout]     |
[INFO] [stdout] note: method defined here
[INFO] [stdout]    --> src/lib.rs:264:12
[INFO] [stdout]     |
[INFO] [stdout] 264 |     pub fn eval(&self, code: &str, filename: &str) -> Result<JsValue, ExecutionError> {
[INFO] [stdout]     |            ^^^^                    --------------
[INFO] [stdout] help: provide the argument
[INFO] [stdout]     |
[INFO] [stdout] 623 |     ctx.eval("a + 1", /* &str */).unwrap();
[INFO] [stdout]     |                     ++++++++++++
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/convert.rs:188:13
[INFO] [stdout]     |
[INFO] [stdout] 188 |             unsafe {
[INFO] [stdout]     |             ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/convert.rs:193:13
[INFO] [stdout]     |
[INFO] [stdout] 193 |             unsafe {
[INFO] [stdout]     |             ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rt`
[INFO] [stdout]    --> src/bindings/convert.rs:295:33
[INFO] [stdout]     |
[INFO] [stdout] 295 |             extern fn finalizer(rt: *mut JSRuntime, val: JSValue) {
[INFO] [stdout]     |                                 ^^ help: if this is intentional, prefix it with an underscore: `_rt`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/mod.rs:409:9
[INFO] [stdout]     |
[INFO] [stdout] 409 |         unsafe  {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/mod.rs:422:9
[INFO] [stdout]     |
[INFO] [stdout] 422 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/mod.rs:554:13
[INFO] [stdout]     |
[INFO] [stdout] 554 |             unsafe {
[INFO] [stdout]     |             ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/value/mod.rs:65:21
[INFO] [stdout]    |
[INFO] [stdout] 64 |         unsafe {
[INFO] [stdout]    |         ------ because it's nested under this `unsafe` block
[INFO] [stdout] 65 |             let v = unsafe { Box::from_raw(self.js_value) };
[INFO] [stdout]    |                     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `err`
[INFO] [stdout]   --> src/loader.rs:23:13
[INFO] [stdout]    |
[INFO] [stdout] 23 |         Err(err) => {
[INFO] [stdout]    |             ^^^ help: if this is intentional, prefix it with an underscore: `_err`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/loader.rs:20:9
[INFO] [stdout]    |
[INFO] [stdout] 20 |     let mut loader = &mut *(opaque as *mut _ as *mut Box<dyn JsModuleLoader>);
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] Some errors have detailed explanations: E0061, E0277, E0369, E0412.
[INFO] [stdout] 
[INFO] [stdout] For more information about an error, try `rustc --explain E0061`.
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `lento-quick-js` (lib test) due to 76 previous errors; 15 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "e7b076212daa2541b6cfdfaf3739059e97c44292f2649c9331961953a4414f10", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e7b076212daa2541b6cfdfaf3739059e97c44292f2649c9331961953a4414f10", kill_on_drop: false }`
[INFO] [stdout] e7b076212daa2541b6cfdfaf3739059e97c44292f2649c9331961953a4414f10
