summaryrefslogtreecommitdiffstats
path: root/third_party/rust/jsparagus-parser/benches/parser.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /third_party/rust/jsparagus-parser/benches/parser.rs
parentInitial commit. (diff)
downloadfirefox-esr-upstream.tar.xz
firefox-esr-upstream.zip
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--third_party/rust/jsparagus-parser/benches/parser.rs40
1 files changed, 40 insertions, 0 deletions
diff --git a/third_party/rust/jsparagus-parser/benches/parser.rs b/third_party/rust/jsparagus-parser/benches/parser.rs
new file mode 100644
index 0000000000..9479a2dbcf
--- /dev/null
+++ b/third_party/rust/jsparagus-parser/benches/parser.rs
@@ -0,0 +1,40 @@
+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);