-
-
Notifications
You must be signed in to change notification settings - Fork 481
Open
Labels
bugSomething isn't workingSomething isn't working
Description
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):
class{constructor(){class D{}}}
crashes with this info:
thread 'main' (189534) panicked at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/5cbbb72/core/engine/src/vm/opcode/define/mod.rs:82:39:
index out of bounds: the len is 0 but the index is 0
stack backtrace:
0: __rustc::rust_begin_unwind
at /rustc/3ff30e7eafc1da7104c3960187d17939172428ed/library/std/src/panicking.rs:689:5
1: core::panicking::panic_fmt
at /rustc/3ff30e7eafc1da7104c3960187d17939172428ed/library/core/src/panicking.rs:80:14
2: core::panicking::panic_bounds_check
at /rustc/3ff30e7eafc1da7104c3960187d17939172428ed/library/core/src/panicking.rs:271:5
3: <usize as core::slice::index::SliceIndex<[core::option::Option<boa_engine::value::JsValue>]>>::index_mut
at /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/index.rs:278:14
4: <[core::option::Option<boa_engine::value::JsValue>] as core::ops::index::IndexMut<usize>>::index_mut
at /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/core/src/slice/index.rs:31:15
5: <alloc::vec::Vec<core::option::Option<boa_engine::value::JsValue>> as core::ops::index::IndexMut<usize>>::index_mut
at /home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/alloc/src/vec/mod.rs:3666:9
6: <boa_engine::environments::runtime::declarative::PoisonableEnvironment>::set
at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/5cbbb72/core/engine/src/environments/runtime/declarative/mod.rs:310:35
7: <boa_engine::vm::opcode::define::PutLexicalValue>::operation
at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/5cbbb72/core/engine/src/vm/opcode/define/mod.rs:82:39
8: boa_engine::vm::opcode::handle_put_lexical_value
at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/5cbbb72/core/engine/src/vm/opcode/mod.rs:313:17
9: <boa_engine::context::Context>::execute_bytecode_instruction
at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/5cbbb72/core/engine/src/vm/opcode/mod.rs:464:9
10: <<boa_engine::context::Context>::execute_bytecode_instruction as core::ops::function::FnOnce<(&mut boa_engine::context::Context, boa_engine::vm::opcode::Opcode)>>::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
11: <boa_engine::context::Context>::execute_instruction::<<boa_engine::context::Context>::execute_bytecode_instruction>
at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/5cbbb72/core/engine/src/vm/mod.rs:640:9
12: <boa_engine::context::Context>::execute_one::<<boa_engine::context::Context>::execute_bytecode_instruction>
at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/5cbbb72/core/engine/src/vm/mod.rs:666:14
13: <boa_engine::context::Context>::run
at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/5cbbb72/core/engine/src/vm/mod.rs:850:24
14: <boa_engine::script::Script>::evaluate
at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/5cbbb72/core/engine/src/script.rs:172:30
15: <boa_engine::context::Context>::eval::<boa_parser::source::utf8::UTF8Input<&[u8]>>
at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/5cbbb72/core/engine/src/context/mod.rs:204:41
16: boa::check_file
at ./src/crates/boa/src/main.rs:33:27
17: boa::main
at ./src/crates/boa/src/main.rs:22:9
18: <fn() as 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
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working