Skip to content

Panic assertion failed: w[0].is_strictly_before(w[1]) in regress-0.10.4/src/codepointset.rs #4398

@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):

/\p{scx=Cyrl}/u

crashes with this info:

thread 'main' (763561) panicked at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regress-0.10.4/src/codepointset.rs:141:17:
assertion failed: w[0].is_strictly_before(w[1])
stack backtrace:
   0: __rustc::rust_begin_unwind
             at /rustc/07d246fc6dc227903da2955b38a59e060539a485/library/std/src/panicking.rs:698:5
   1: core::panicking::panic_fmt
             at /rustc/07d246fc6dc227903da2955b38a59e060539a485/library/core/src/panicking.rs:75:14
   2: core::panicking::panic
             at /rustc/07d246fc6dc227903da2955b38a59e060539a485/library/core/src/panicking.rs:145:5
   3: regress::codepointset::CodePointSet::assert_is_well_formed
             at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regress-0.10.4/src/codepointset.rs:141:17
   4: regress::codepointset::CodePointSet::from_sorted_disjoint_intervals
             at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regress-0.10.4/src/codepointset.rs:150:13
   5: regress::parse::Parser<I>::consume_atom_escape
             at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regress-0.10.4/src/parse.rs:1495:34
   6: regress::parse::Parser<I>::consume_term
             at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regress-0.10.4/src/parse.rs:549:46
   7: regress::parse::Parser<I>::consume_disjunction
             at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regress-0.10.4/src/parse.rs:469:35
   8: regress::parse::Parser<I>::try_parse
             at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regress-0.10.4/src/parse.rs:451:25
   9: regress::parse::try_parse
             at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regress-0.10.4/src/parse.rs:1855:7
  10: regress::api::Regex::from_unicode
             at /home/runner/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/regress-0.10.4/src/api.rs:389:23
  11: <boa_parser::lexer::regex::RegexLiteral as boa_parser::lexer::Tokenizer<R>>::lex
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/8ea37c6/core/parser/src/lexer/regex.rs:142:29
  12: boa_parser::lexer::Lexer<R>::lex_slash_token
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/8ea37c6/core/parser/src/lexer/mod.rs:172:61
  13: boa_parser::lexer::Lexer<R>::next_no_skip
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/8ea37c6/core/parser/src/lexer/mod.rs:318:29
  14: boa_parser::lexer::Lexer<R>::next
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/8ea37c6/core/parser/src/lexer/mod.rs:379:35
  15: boa_parser::parser::cursor::buffered_lexer::BufferedLexer<R>::fill
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/8ea37c6/core/parser/src/parser/cursor/buffered_lexer/mod.rs:158:56
  16: boa_parser::parser::cursor::buffered_lexer::BufferedLexer<R>::peek
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/8ea37c6/core/parser/src/parser/cursor/buffered_lexer/mod.rs:245:22
  17: boa_parser::parser::cursor::Cursor<R>::peek
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/8ea37c6/core/parser/src/parser/cursor/mod.rs:115:29
  18: <boa_parser::parser::statement::StatementList as boa_parser::parser::TokenParser<R>>::parse
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/8ea37c6/core/parser/src/parser/statement/mod.rs:297:37
  19: <boa_parser::parser::ScriptBody as boa_parser::parser::TokenParser<R>>::parse
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/8ea37c6/core/parser/src/parser/mod.rs:398:10
  20: <boa_parser::parser::ScriptParser as boa_parser::parser::TokenParser<R>>::parse
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/8ea37c6/core/parser/src/parser/mod.rs:329:70
  21: boa_parser::parser::Parser<R>::parse_script_with_source
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/8ea37c6/core/parser/src/parser/mod.rs:167:58
  22: boa_engine::script::Script::parse
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/8ea37c6/core/engine/src/script.rs:94:41
  23: boa_engine::context::Context::eval
             at /home/runner/.cargo/git/checkouts/boa-126d820dff07bf57/8ea37c6/core/engine/src/context/mod.rs:202:9
  24: boa::check_file
             at ./src/crates/boa/src/main.rs:33:27
  25: boa::main
             at ./src/crates/boa/src/main.rs:22:9
  26: 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:253:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.

compressed.zip

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions