[INFO] fetching crate deft-quick-js 0.7.1...
[INFO] testing deft-quick-js-0.7.1 against master#c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38 for pr-146098-7
[INFO] extracting crate deft-quick-js 0.7.1 into /workspace/builds/worker-4-tc1/source
[INFO] started tweaking crates.io crate deft-quick-js 0.7.1
[INFO] removed 0 missing examples
[INFO] finished tweaking crates.io crate deft-quick-js 0.7.1
[INFO] tweaked toml for crates.io crate deft-quick-js 0.7.1 written to /workspace/builds/worker-4-tc1/source/Cargo.toml
[INFO] validating manifest of crates.io crate deft-quick-js 0.7.1 on toolchain c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate crates.io crate deft-quick-js 0.7.1 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" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "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 deft-rquickjs-sys v0.10.1
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 634e422f27a1051ad6ca7ddc12582b3739d0d9e1942adb6083a1e41a79f14770
[INFO] running `Command { std: "docker" "start" "-a" "634e422f27a1051ad6ca7ddc12582b3739d0d9e1942adb6083a1e41a79f14770", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "634e422f27a1051ad6ca7ddc12582b3739d0d9e1942adb6083a1e41a79f14770", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "634e422f27a1051ad6ca7ddc12582b3739d0d9e1942adb6083a1e41a79f14770", kill_on_drop: false }`
[INFO] [stdout] 634e422f27a1051ad6ca7ddc12582b3739d0d9e1942adb6083a1e41a79f14770
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7b15bc882bd37eee30fdd4d33f9d678706d2fe69dc8b2407a7337a1f07f0a75d
[INFO] running `Command { std: "docker" "start" "-a" "7b15bc882bd37eee30fdd4d33f9d678706d2fe69dc8b2407a7337a1f07f0a75d", 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 rustix v0.38.34
[INFO] [stderr]    Compiling prettyplease v0.2.20
[INFO] [stderr]    Compiling log v0.4.21
[INFO] [stderr]    Compiling either v1.15.0
[INFO] [stderr]    Compiling linux-raw-sys v0.4.15
[INFO] [stderr]    Compiling cfg-if v1.0.0
[INFO] [stderr]    Compiling bitflags v2.9.1
[INFO] [stderr]    Compiling minimal-lexical v0.2.1
[INFO] [stderr]    Compiling bindgen v0.69.5
[INFO] [stderr]    Compiling home v0.5.11
[INFO] [stderr]    Compiling humantime v2.1.0
[INFO] [stderr]    Compiling libloading v0.8.8
[INFO] [stderr]    Compiling autocfg v1.3.0
[INFO] [stderr]    Compiling itertools v0.12.1
[INFO] [stderr]    Compiling lazycell v1.3.0
[INFO] [stderr]    Compiling cc v1.0.97
[INFO] [stderr]    Compiling anyhow v1.0.86
[INFO] [stderr]    Compiling iana-time-zone v0.1.60
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling aho-corasick v1.1.3
[INFO] [stderr]    Compiling nom v7.1.3
[INFO] [stderr]    Compiling clang-sys v1.8.1
[INFO] [stderr]    Compiling quote v1.0.36
[INFO] [stderr]    Compiling syn v2.0.61
[INFO] [stderr]    Compiling chrono v0.4.38
[INFO] [stderr]    Compiling which v4.4.2
[INFO] [stderr]    Compiling is-terminal v0.4.13
[INFO] [stderr]    Compiling regex-automata v0.4.9
[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 deft-rquickjs-sys v0.10.1
[INFO] [stderr]    Compiling deft-quick-js v0.7.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `TAG_BOOL`, `TAG_EXCEPTION`, `TAG_FLOAT64`, `TAG_INT`, `TAG_NULL`, `TAG_OBJECT`, `TAG_STRING`, and `TAG_UNDEFINED`
[INFO] [stdout]   --> src/bindings/convert.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     TAG_BOOL, TAG_EXCEPTION, TAG_FLOAT64, TAG_INT, TAG_NULL, TAG_OBJECT, TAG_STRING, TAG_UNDEFINED,
[INFO] [stdout]    |     ^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/bindings/convert.rs:275:13
[INFO] [stdout]     |
[INFO] [stdout] 275 |             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] 
[INFO] [stdout] warning: unused import: `TAG_EXCEPTION`
[INFO] [stdout]   --> src/value/mod.rs:16:37
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::bindings::{make_cstring, TAG_EXCEPTION};
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::bindings::value::JsTag`
[INFO] [stdout]   --> src/value/mod.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::bindings::value::JsTag;
[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:510:56
[INFO] [stdout]     |
[INFO] [stdout] 510 | ...                   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:514:56
[INFO] [stdout]     |
[INFO] [stdout] 514 | ...                   let datetime = chrono::Utc.timestamp_millis(f);
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Context`
[INFO] [stdout]   --> src/bindings/mod.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use anyhow::Context;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::any::Any`
[INFO] [stdout]   --> src/lib.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | use std::any::Any;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/convert.rs:171:13
[INFO] [stdout]     |
[INFO] [stdout] 171 |             unsafe {
[INFO] [stdout]     |             ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/convert.rs:176:13
[INFO] [stdout]     |
[INFO] [stdout] 176 |             unsafe {
[INFO] [stdout]     |             ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rt`
[INFO] [stdout]    --> src/bindings/convert.rs:275:33
[INFO] [stdout]     |
[INFO] [stdout] 275 |             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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/bindings/convert.rs:563:9
[INFO] [stdout]     |
[INFO] [stdout] 563 |         t => {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/bindings/value.rs:36:21
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let inner = unsafe { q::JS_VALUE_GET_TAG(*value) };
[INFO] [stdout]    |                     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bindings/mod.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let mut opaque = opaque as *mut HostPromiseRejectionTrackerWrapper;
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/mod.rs:163:9
[INFO] [stdout]     |
[INFO] [stdout] 163 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/mod.rs:304:17
[INFO] [stdout]     |
[INFO] [stdout] 304 |         let t = unsafe {
[INFO] [stdout]     |                 ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/mod.rs:435:9
[INFO] [stdout]     |
[INFO] [stdout] 435 |         unsafe  {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/mod.rs:585:13
[INFO] [stdout]     |
[INFO] [stdout] 585 |             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: 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] 
[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: constant `TAG_STRING` is never used
[INFO] [stdout]   --> src/bindings/mod.rs:30:7
[INFO] [stdout]    |
[INFO] [stdout] 30 | const TAG_STRING: i64 = -7;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_FUNCTION_BYTECODE` is never used
[INFO] [stdout]   --> src/bindings/mod.rs:31:7
[INFO] [stdout]    |
[INFO] [stdout] 31 | const TAG_FUNCTION_BYTECODE: i64 = -2;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_OBJECT` is never used
[INFO] [stdout]   --> src/bindings/mod.rs:32:7
[INFO] [stdout]    |
[INFO] [stdout] 32 | const TAG_OBJECT: i64 = -1;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_INT` is never used
[INFO] [stdout]   --> src/bindings/mod.rs:33:7
[INFO] [stdout]    |
[INFO] [stdout] 33 | const TAG_INT: i64 = 0;
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_BOOL` is never used
[INFO] [stdout]   --> src/bindings/mod.rs:34:7
[INFO] [stdout]    |
[INFO] [stdout] 34 | const TAG_BOOL: i64 = 1;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_NULL` is never used
[INFO] [stdout]   --> src/bindings/mod.rs:35:7
[INFO] [stdout]    |
[INFO] [stdout] 35 | const TAG_NULL: i64 = 2;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_UNDEFINED` is never used
[INFO] [stdout]   --> src/bindings/mod.rs:36:7
[INFO] [stdout]    |
[INFO] [stdout] 36 | const TAG_UNDEFINED: i64 = 3;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_FLOAT64` is never used
[INFO] [stdout]   --> src/bindings/mod.rs:38:7
[INFO] [stdout]    |
[INFO] [stdout] 38 | const TAG_FLOAT64: i64 = 7;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `into_inner` and `as_inner` are never used
[INFO] [stdout]    --> src/bindings/mod.rs:194:15
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl<'a> OwnedValueRef<'a> {
[INFO] [stdout]     | -------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 194 |     unsafe fn into_inner(self) -> q::JSValue {
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub(crate) fn as_inner(&self) -> &q::JSValue {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `into_value`, `property_tag`, and `is_promise` are never used
[INFO] [stdout]    --> src/bindings/mod.rs:294:8
[INFO] [stdout]     |
[INFO] [stdout] 285 | impl<'a> OwnedObjectRef<'a> {
[INFO] [stdout]     | --------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 294 |     fn into_value(self) -> OwnedValueRef<'a> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 299 |     fn property_tag(&self, name: &str) -> Result<i64, ValueError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 315 |     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:538:19
[INFO] [stdout]     |
[INFO] [stdout] 537 | impl<'a> JsCompiledFunction<'a> {
[INFO] [stdout]     | ------------------------------- associated function in this implementation
[INFO] [stdout] 538 |     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 42.37s
[INFO] running `Command { std: "docker" "inspect" "7b15bc882bd37eee30fdd4d33f9d678706d2fe69dc8b2407a7337a1f07f0a75d", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7b15bc882bd37eee30fdd4d33f9d678706d2fe69dc8b2407a7337a1f07f0a75d", kill_on_drop: false }`
[INFO] [stdout] 7b15bc882bd37eee30fdd4d33f9d678706d2fe69dc8b2407a7337a1f07f0a75d
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-4-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=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-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:4848fb76d95f26979359cc7e45710b1dbc8f3acb7aeedee7c460d7702230f228" "/opt/rustwide/cargo-home/bin/cargo" "+c90bcb9571b7aab0d8beaa2ce8a998ffaf079d38" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] f01ede978b1bd61208e5b870c1869f5064f9d07d7c27d57db3c7af2cd1931c68
[INFO] running `Command { std: "docker" "start" "-a" "f01ede978b1bd61208e5b870c1869f5064f9d07d7c27d57db3c7af2cd1931c68", kill_on_drop: false }`
[INFO] [stdout] warning: unused imports: `TAG_BOOL`, `TAG_EXCEPTION`, `TAG_FLOAT64`, `TAG_INT`, `TAG_NULL`, `TAG_OBJECT`, `TAG_STRING`, and `TAG_UNDEFINED`
[INFO] [stdout]   --> src/bindings/convert.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     TAG_BOOL, TAG_EXCEPTION, TAG_FLOAT64, TAG_INT, TAG_NULL, TAG_OBJECT, TAG_STRING, TAG_UNDEFINED,
[INFO] [stdout]    |     ^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/bindings/convert.rs:275:13
[INFO] [stdout]     |
[INFO] [stdout] 275 |             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] 
[INFO] [stdout] warning: unused import: `TAG_EXCEPTION`
[INFO] [stdout]   --> src/value/mod.rs:16:37
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::bindings::{make_cstring, TAG_EXCEPTION};
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::bindings::value::JsTag`
[INFO] [stdout]   --> src/value/mod.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::bindings::value::JsTag;
[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:510:56
[INFO] [stdout]     |
[INFO] [stdout] 510 | ...                   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:514:56
[INFO] [stdout]     |
[INFO] [stdout] 514 | ...                   let datetime = chrono::Utc.timestamp_millis(f);
[INFO] [stdout]     |                                                  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `anyhow::Context`
[INFO] [stdout]   --> src/bindings/mod.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use anyhow::Context;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::any::Any`
[INFO] [stdout]   --> src/lib.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | use std::any::Any;
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/convert.rs:171:13
[INFO] [stdout]     |
[INFO] [stdout] 171 |             unsafe {
[INFO] [stdout]     |             ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/convert.rs:176:13
[INFO] [stdout]     |
[INFO] [stdout] 176 |             unsafe {
[INFO] [stdout]     |             ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rt`
[INFO] [stdout]    --> src/bindings/convert.rs:275:33
[INFO] [stdout]     |
[INFO] [stdout] 275 |             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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/bindings/convert.rs:563:9
[INFO] [stdout]     |
[INFO] [stdout] 563 |         t => {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/bindings/value.rs:36:21
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let inner = unsafe { q::JS_VALUE_GET_TAG(*value) };
[INFO] [stdout]    |                     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]    Compiling deft-quick-js v0.7.1 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bindings/mod.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let mut opaque = opaque as *mut HostPromiseRejectionTrackerWrapper;
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/mod.rs:163:9
[INFO] [stdout]     |
[INFO] [stdout] 163 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/mod.rs:304:17
[INFO] [stdout]     |
[INFO] [stdout] 304 |         let t = unsafe {
[INFO] [stdout]     |                 ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/mod.rs:435:9
[INFO] [stdout]     |
[INFO] [stdout] 435 |         unsafe  {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/mod.rs:585:13
[INFO] [stdout]     |
[INFO] [stdout] 585 |             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: 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] 
[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: constant `TAG_STRING` is never used
[INFO] [stdout]   --> src/bindings/mod.rs:30:7
[INFO] [stdout]    |
[INFO] [stdout] 30 | const TAG_STRING: i64 = -7;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_FUNCTION_BYTECODE` is never used
[INFO] [stdout]   --> src/bindings/mod.rs:31:7
[INFO] [stdout]    |
[INFO] [stdout] 31 | const TAG_FUNCTION_BYTECODE: i64 = -2;
[INFO] [stdout]    |       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_OBJECT` is never used
[INFO] [stdout]   --> src/bindings/mod.rs:32:7
[INFO] [stdout]    |
[INFO] [stdout] 32 | const TAG_OBJECT: i64 = -1;
[INFO] [stdout]    |       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_INT` is never used
[INFO] [stdout]   --> src/bindings/mod.rs:33:7
[INFO] [stdout]    |
[INFO] [stdout] 33 | const TAG_INT: i64 = 0;
[INFO] [stdout]    |       ^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_BOOL` is never used
[INFO] [stdout]   --> src/bindings/mod.rs:34:7
[INFO] [stdout]    |
[INFO] [stdout] 34 | const TAG_BOOL: i64 = 1;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_NULL` is never used
[INFO] [stdout]   --> src/bindings/mod.rs:35:7
[INFO] [stdout]    |
[INFO] [stdout] 35 | const TAG_NULL: i64 = 2;
[INFO] [stdout]    |       ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_UNDEFINED` is never used
[INFO] [stdout]   --> src/bindings/mod.rs:36:7
[INFO] [stdout]    |
[INFO] [stdout] 36 | const TAG_UNDEFINED: i64 = 3;
[INFO] [stdout]    |       ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: constant `TAG_FLOAT64` is never used
[INFO] [stdout]   --> src/bindings/mod.rs:38:7
[INFO] [stdout]    |
[INFO] [stdout] 38 | const TAG_FLOAT64: i64 = 7;
[INFO] [stdout]    |       ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `into_inner` and `as_inner` are never used
[INFO] [stdout]    --> src/bindings/mod.rs:194:15
[INFO] [stdout]     |
[INFO] [stdout] 181 | impl<'a> OwnedValueRef<'a> {
[INFO] [stdout]     | -------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 194 |     unsafe fn into_inner(self) -> q::JSValue {
[INFO] [stdout]     |               ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 201 |     pub(crate) fn as_inner(&self) -> &q::JSValue {
[INFO] [stdout]     |                   ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `into_value`, `property_tag`, and `is_promise` are never used
[INFO] [stdout]    --> src/bindings/mod.rs:294:8
[INFO] [stdout]     |
[INFO] [stdout] 285 | impl<'a> OwnedObjectRef<'a> {
[INFO] [stdout]     | --------------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 294 |     fn into_value(self) -> OwnedValueRef<'a> {
[INFO] [stdout]     |        ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 299 |     fn property_tag(&self, name: &str) -> Result<i64, ValueError> {
[INFO] [stdout]     |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 315 |     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:538:19
[INFO] [stdout]     |
[INFO] [stdout] 537 | impl<'a> JsCompiledFunction<'a> {
[INFO] [stdout]     | ------------------------------- associated function in this implementation
[INFO] [stdout] 538 |     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 `deft-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:270:75
[INFO] [stdout]     |
[INFO] [stdout] 270 |             let ptr = unsafe { q::JS_VALUE_GET_PTR(self.value) 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:271:31
[INFO] [stdout]     |
[INFO] [stdout] 271 |             let pref: &mut q::JSRefCountHeader = &mut unsafe { *ptr };
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^ not found in `q`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `TAG_BOOL`, `TAG_EXCEPTION`, `TAG_FLOAT64`, `TAG_INT`, `TAG_NULL`, `TAG_OBJECT`, `TAG_STRING`, and `TAG_UNDEFINED`
[INFO] [stdout]   --> src/bindings/convert.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 12 |     TAG_BOOL, TAG_EXCEPTION, TAG_FLOAT64, TAG_INT, TAG_NULL, TAG_OBJECT, TAG_STRING, TAG_UNDEFINED,
[INFO] [stdout]    |     ^^^^^^^^  ^^^^^^^^^^^^^  ^^^^^^^^^^^  ^^^^^^^  ^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^  ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: `extern` declarations without an explicit ABI are deprecated
[INFO] [stdout]    --> src/bindings/convert.rs:275:13
[INFO] [stdout]     |
[INFO] [stdout] 275 |             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] 
[INFO] [stdout] warning: unused import: `TAG_EXCEPTION`
[INFO] [stdout]   --> src/value/mod.rs:16:37
[INFO] [stdout]    |
[INFO] [stdout] 16 | use crate::bindings::{make_cstring, TAG_EXCEPTION};
[INFO] [stdout]    |                                     ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::bindings::value::JsTag`
[INFO] [stdout]   --> src/value/mod.rs:17:5
[INFO] [stdout]    |
[INFO] [stdout] 17 | use crate::bindings::value::JsTag;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::any::Any`
[INFO] [stdout]   --> src/lib.rs:50:5
[INFO] [stdout]    |
[INFO] [stdout] 50 | 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:510:56
[INFO] [stdout]     |
[INFO] [stdout] 510 | ...                   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:514:56
[INFO] [stdout]     |
[INFO] [stdout] 514 | ...                   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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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:64:1
[INFO] [stdout]    |
[INFO] [stdout] 64 | 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:64:1
[INFO] [stdout]    |
[INFO] [stdout] 64 + #[derive(PartialEq)]
[INFO] [stdout] 65 | 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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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:64:1
[INFO] [stdout]    |
[INFO] [stdout] 64 | 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:64:1
[INFO] [stdout]    |
[INFO] [stdout] 64 + #[derive(PartialEq)]
[INFO] [stdout] 65 | 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:304:12
[INFO] [stdout]     |
[INFO] [stdout] 304 |     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:304:12
[INFO] [stdout]     |
[INFO] [stdout] 304 |     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:304:12
[INFO] [stdout]     |
[INFO] [stdout] 304 |     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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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:64:1
[INFO] [stdout]     |
[INFO] [stdout]  64 | 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:64:1
[INFO] [stdout]     |
[INFO] [stdout]  64 + #[derive(PartialEq)]
[INFO] [stdout]  65 | 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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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:64:1
[INFO] [stdout]     |
[INFO] [stdout]  64 | 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:64:1
[INFO] [stdout]     |
[INFO] [stdout]  64 + #[derive(PartialEq)]
[INFO] [stdout]  65 | 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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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:64:1
[INFO] [stdout]     |
[INFO] [stdout]  64 | 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:64:1
[INFO] [stdout]     |
[INFO] [stdout]  64 + #[derive(PartialEq)]
[INFO] [stdout]  65 | 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:304:12
[INFO] [stdout]     |
[INFO] [stdout] 304 |     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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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]     |           ^^^^^^^^^^^^^ unsatisfied trait bound
[INFO] [stdout]     |
[INFO] [stdout] help: the trait `From<HashMap<String, i32>>` is not implemented for `value::JsValue`
[INFO] [stdout]    --> src/value/mod.rs:96:1
[INFO] [stdout]     |
[INFO] [stdout]  96 | pub enum 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:359:45
[INFO] [stdout]     |
[INFO] [stdout] 356 |     pub fn call_function(
[INFO] [stdout]     |            ------------- required by a bound in this associated function
[INFO] [stdout] ...
[INFO] [stdout] 359 |         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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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:64:1
[INFO] [stdout]     |
[INFO] [stdout]  64 | 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:64:1
[INFO] [stdout]     |
[INFO] [stdout]  64 + #[derive(PartialEq)]
[INFO] [stdout]  65 | 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:304:12
[INFO] [stdout]     |
[INFO] [stdout] 304 |     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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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:64:1
[INFO] [stdout]     |
[INFO] [stdout]  64 | 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:64:1
[INFO] [stdout]     |
[INFO] [stdout]  64 + #[derive(PartialEq)]
[INFO] [stdout]  65 | 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:304:12
[INFO] [stdout]     |
[INFO] [stdout] 304 |     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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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:64:1
[INFO] [stdout]     |
[INFO] [stdout]  64 | 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:64:1
[INFO] [stdout]     |
[INFO] [stdout]  64 + #[derive(PartialEq)]
[INFO] [stdout]  65 | 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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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:64:1
[INFO] [stdout]     |
[INFO] [stdout]  64 | 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:64:1
[INFO] [stdout]     |
[INFO] [stdout]  64 + #[derive(PartialEq)]
[INFO] [stdout]  65 | 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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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:304:12
[INFO] [stdout]     |
[INFO] [stdout] 304 |     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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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:266:12
[INFO] [stdout]     |
[INFO] [stdout] 266 |     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: unused import: `anyhow::Context`
[INFO] [stdout]   --> src/bindings/mod.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 13 | use anyhow::Context;
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/convert.rs:171:13
[INFO] [stdout]     |
[INFO] [stdout] 171 |             unsafe {
[INFO] [stdout]     |             ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_unsafe)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/convert.rs:176:13
[INFO] [stdout]     |
[INFO] [stdout] 176 |             unsafe {
[INFO] [stdout]     |             ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `rt`
[INFO] [stdout]    --> src/bindings/convert.rs:275:33
[INFO] [stdout]     |
[INFO] [stdout] 275 |             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)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `t`
[INFO] [stdout]    --> src/bindings/convert.rs:563:9
[INFO] [stdout]     |
[INFO] [stdout] 563 |         t => {
[INFO] [stdout]     |         ^ help: if this is intentional, prefix it with an underscore: `_t`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]   --> src/bindings/value.rs:36:21
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let inner = unsafe { q::JS_VALUE_GET_TAG(*value) };
[INFO] [stdout]    |                     ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variable does not need to be mutable
[INFO] [stdout]   --> src/bindings/mod.rs:49:9
[INFO] [stdout]    |
[INFO] [stdout] 49 |     let mut opaque = opaque as *mut HostPromiseRejectionTrackerWrapper;
[INFO] [stdout]    |         ----^^^^^^
[INFO] [stdout]    |         |
[INFO] [stdout]    |         help: remove this `mut`
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(unused_mut)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/mod.rs:163:9
[INFO] [stdout]     |
[INFO] [stdout] 163 |         unsafe {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/mod.rs:304:17
[INFO] [stdout]     |
[INFO] [stdout] 304 |         let t = unsafe {
[INFO] [stdout]     |                 ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/mod.rs:435:9
[INFO] [stdout]     |
[INFO] [stdout] 435 |         unsafe  {
[INFO] [stdout]     |         ^^^^^^ unnecessary `unsafe` block
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unnecessary `unsafe` block
[INFO] [stdout]    --> src/bindings/mod.rs:585:13
[INFO] [stdout]     |
[INFO] [stdout] 585 |             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: 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] 
[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] 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 `deft-quick-js` (lib test) due to 76 previous errors; 23 warnings emitted
[INFO] running `Command { std: "docker" "inspect" "f01ede978b1bd61208e5b870c1869f5064f9d07d7c27d57db3c7af2cd1931c68", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "f01ede978b1bd61208e5b870c1869f5064f9d07d7c27d57db3c7af2cd1931c68", kill_on_drop: false }`
[INFO] [stdout] f01ede978b1bd61208e5b870c1869f5064f9d07d7c27d57db3c7af2cd1931c68
