summaryrefslogtreecommitdiff
path: root/ext/webidl/benches/dict.rs
diff options
context:
space:
mode:
Diffstat (limited to 'ext/webidl/benches/dict.rs')
-rw-r--r--ext/webidl/benches/dict.rs42
1 files changed, 42 insertions, 0 deletions
diff --git a/ext/webidl/benches/dict.rs b/ext/webidl/benches/dict.rs
new file mode 100644
index 000000000..e7df8af62
--- /dev/null
+++ b/ext/webidl/benches/dict.rs
@@ -0,0 +1,42 @@
+// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
+
+use deno_bench_util::bench_js_sync;
+use deno_bench_util::bench_or_profile;
+use deno_bench_util::bencher::benchmark_group;
+use deno_bench_util::bencher::Bencher;
+
+use deno_core::Extension;
+
+fn setup() -> Vec<Extension> {
+ vec![
+ deno_webidl::init(),
+ Extension::builder("deno_webidl_bench")
+ .js(vec![("setup", include_str!("dict.js"))])
+ .build(),
+ ]
+}
+
+fn converter_undefined(b: &mut Bencher) {
+ bench_js_sync(b, r#"TextDecodeOptions(undefined);"#, setup);
+}
+
+fn handwritten_baseline_undefined(b: &mut Bencher) {
+ bench_js_sync(b, r#"handwrittenConverter(undefined)"#, setup);
+}
+
+fn converter_object(b: &mut Bencher) {
+ bench_js_sync(b, r#"TextDecodeOptions({});"#, setup);
+}
+
+fn handwritten_baseline_object(b: &mut Bencher) {
+ bench_js_sync(b, r#"handwrittenConverter({})"#, setup);
+}
+
+benchmark_group!(
+ benches,
+ converter_undefined,
+ handwritten_baseline_undefined,
+ converter_object,
+ handwritten_baseline_object,
+);
+bench_or_profile!(benches);