40 lines
1.2 KiB
Rust
40 lines
1.2 KiB
Rust
use criterion::criterion_group;
|
|
use criterion::criterion_main;
|
|
use criterion::Criterion;
|
|
use std::cell::RefCell;
|
|
use std::collections::HashMap;
|
|
use std::rc::Rc;
|
|
|
|
use bumpalo::Bump;
|
|
use jsparagus_ast::source_atom_set::SourceAtomSet;
|
|
use jsparagus_ast::source_slice_list::SourceSliceList;
|
|
use jsparagus_parser::{parse_script, ParseOptions};
|
|
|
|
fn parser_bench(c: &mut Criterion) {
|
|
let tests = &["simple", "__finStreamer-proto"];
|
|
let mut programs = HashMap::new();
|
|
|
|
programs.insert("simple", include_str!("./simple.js"));
|
|
programs.insert(
|
|
"__finStreamer-proto",
|
|
include_str!("./__finStreamer-proto.js"),
|
|
);
|
|
|
|
c.bench_function_over_inputs(
|
|
"parser_bench",
|
|
move |b, &name| {
|
|
let program = &programs[name];
|
|
b.iter(|| {
|
|
let allocator = &Bump::new();
|
|
let options = ParseOptions::new();
|
|
let atoms = Rc::new(RefCell::new(SourceAtomSet::new()));
|
|
let slices = Rc::new(RefCell::new(SourceSliceList::new()));
|
|
let _ = parse_script(allocator, program, &options, atoms, slices);
|
|
});
|
|
},
|
|
tests,
|
|
);
|
|
}
|
|
|
|
criterion_group!(benches, parser_bench);
|
|
criterion_main!(benches);
|