Skip to content

Panic The RuntimeLimit native error cannot be converted to an opaque type. in core/engine/src/error.rs #4515

@qarmin

Description

@qarmin

Rust code

fn check_file(path: &str) {
    let Ok(file_content) = fs::read(path) else {
        return;
    };
    println!("Checking file: {path}");
    let mut context = Context::default();

    let _result = context.eval(Source::from_bytes(&file_content));
}

when evaluating javascript code(at the bottom should be attached raw, not formatted file - github removes some non-printable characters, so copying from here may not work):

async function*asyncGeerator(){}l=asyncGeerator().return({get then(){this.then}})

crashes with this info:

thread 'main' (213719) panicked at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/868d13f/core/engine/src/error.rs:1260:17:
The RuntimeLimit native error cannot be converted to an opaque type.
stack backtrace:
   0: __rustc::rust_begin_unwind
             at /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/std/src/panicking.rs:698:5
   1: core::panicking::panic_fmt
             at /rustc/292be5c7c05138d753bbd4b30db7a3f1a5c914f7/library/core/src/panicking.rs:80:14
   2: boa_engine::error::JsNativeError::to_opaque
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/868d13f/core/engine/src/error.rs:1260:17
   3: boa_engine::error::JsError::to_opaque
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/868d13f/core/engine/src/error.rs:377:34
   4: boa_engine::builtins::promise::Promise::create_resolving_functions::{{closure}}
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/868d13f/core/engine/src/builtins/promise/mod.rs:2133:56
   5: <boa_engine::native_function::Closure<F,T> as boa_engine::native_function::TraceableClosure>::call
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/868d13f/core/engine/src/native_function/mod.rs:69:9
   6: boa_engine::native_function::NativeFunction::call
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/868d13f/core/engine/src/native_function/mod.rs:306:40
   7: boa_engine::native_function::native_function_call
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/868d13f/core/engine/src/native_function/mod.rs:367:18
   8: boa_engine::object::internal_methods::CallValue::resolve
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/868d13f/core/engine/src/object/internal_methods/mod.rs:493:20
   9: boa_engine::object::operations::<impl boa_engine::object::jsobject::JsObject>::call
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/868d13f/core/engine/src/object/operations.rs:412:42
  10: boa_engine::builtins::promise::Promise::promise_resolve
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/868d13f/core/engine/src/builtins/promise/mod.rs:1533:14
  11: boa_engine::builtins::async_generator::AsyncGenerator::await_return
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/868d13f/core/engine/src/builtins/async_generator/mod.rs:513:34
  12: boa_engine::builtins::async_generator::AsyncGenerator::return
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/868d13f/core/engine/src/builtins/async_generator/mod.rs:234:13
  13: boa_engine::native_function::NativeFunction::call
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/868d13f/core/engine/src/native_function/mod.rs:305:36
  14: boa_engine::native_function::native_function_call
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/868d13f/core/engine/src/native_function/mod.rs:367:18
  15: boa_engine::object::internal_methods::CallValue::resolve
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/868d13f/core/engine/src/object/internal_methods/mod.rs:493:20
  16: boa_engine::vm::opcode::call::Call::operation
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/868d13f/core/engine/src/vm/opcode/call/mod.rs:196:48
  17: boa_engine::vm::opcode::handle_call
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/868d13f/core/engine/src/vm/opcode/mod.rs:313:17
  18: boa_engine::vm::opcode::<impl boa_engine::context::Context>::execute_bytecode_instruction
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/868d13f/core/engine/src/vm/opcode/mod.rs:464:9
  19: core::ops::function::FnOnce::call_once
             at /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
  20: boa_engine::vm::<impl boa_engine::context::Context>::execute_instruction
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/868d13f/core/engine/src/vm/mod.rs:639:9
  21: boa_engine::vm::<impl boa_engine::context::Context>::execute_one
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/868d13f/core/engine/src/vm/mod.rs:664:14
  22: boa_engine::vm::<impl boa_engine::context::Context>::run
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/868d13f/core/engine/src/vm/mod.rs:848:24
  23: boa_engine::script::Script::evaluate
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/868d13f/core/engine/src/script.rs:172:30
  24: boa_engine::context::Context::eval
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/868d13f/core/engine/src/context/mod.rs:200:41
  25: boa::check_file
             at ./src/crates/boa/src/main.rs:33:27
  26: boa::main
             at ./src/crates/boa/src/main.rs:22:9
  27: core::ops::function::FnOnce::call_once
             at /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/ops/function.rs:250:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
timeout: the monitored command dumped core

compressed.zip

Metadata

Metadata

Assignees

Labels

A-ExecutionIssues or PRs related to code execution

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions