diff options
Diffstat (limited to 'ext/webidl/benches/dict.rs')
-rw-r--r-- | ext/webidl/benches/dict.rs | 42 |
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); |