diff options
Diffstat (limited to 'extensions/url')
| -rw-r--r-- | extensions/url/00_url.js | 8 | ||||
| -rw-r--r-- | extensions/url/Cargo.toml | 2 | ||||
| -rw-r--r-- | extensions/url/benches/url_ops.rs | 45 |
3 files changed, 23 insertions, 32 deletions
diff --git a/extensions/url/00_url.js b/extensions/url/00_url.js index 340937748..f6f3335dd 100644 --- a/extensions/url/00_url.js +++ b/extensions/url/00_url.js @@ -58,14 +58,14 @@ urls.set(this, null); } - #updateUrlSearch = () => { + #updateUrlSearch() { const url = urls.get(this); if (url == null) { return; } const parseArgs = { href: url.href, setSearch: this.toString() }; parts.set(url, core.opSync("op_url_parse", parseArgs)); - }; + } append(name, value) { requiredArguments("URLSearchParams.append", arguments.length, 2); @@ -227,7 +227,7 @@ return `${this.constructor.name} ${inspect(object)}`; } - #updateSearchParams = () => { + #updateSearchParams() { if (this.#searchParams != null) { const params = paramLists.get(this.#searchParams); const newParams = core.opSync( @@ -236,7 +236,7 @@ ); params.splice(0, params.length, ...newParams); } - }; + } get hash() { return parts.get(this).hash; diff --git a/extensions/url/Cargo.toml b/extensions/url/Cargo.toml index 57f82bba8..f87931ece 100644 --- a/extensions/url/Cargo.toml +++ b/extensions/url/Cargo.toml @@ -20,7 +20,7 @@ percent-encoding = "2.1.0" serde = { version = "1.0.125", features = ["derive"] } [dev-dependencies] -bencher = "0.1" +deno_bench_util = { version = "0.1.0", path = "../../bench_util" } [[bench]] name = "url_ops" diff --git a/extensions/url/benches/url_ops.rs b/extensions/url/benches/url_ops.rs index 8b3cf2705..c390af0d8 100644 --- a/extensions/url/benches/url_ops.rs +++ b/extensions/url/benches/url_ops.rs @@ -1,35 +1,26 @@ -use bencher::{benchmark_group, benchmark_main, Bencher}; +use deno_bench_util::bench_js_sync; +use deno_bench_util::bench_or_profile; +use deno_bench_util::bencher::{benchmark_group, Bencher}; -use deno_core::v8; -use deno_core::JsRuntime; -use deno_core::RuntimeOptions; +use deno_core::Extension; -fn create_js_runtime() -> JsRuntime { - let mut runtime = JsRuntime::new(RuntimeOptions { - extensions: vec![deno_url::init()], - ..Default::default() - }); - - runtime - .execute("setup", "const { URL } = globalThis.__bootstrap.url;") - .unwrap(); - - runtime -} - -pub fn bench_runtime_js(b: &mut Bencher, src: &str) { - let mut runtime = create_js_runtime(); - let scope = &mut runtime.handle_scope(); - let code = v8::String::new(scope, src).unwrap(); - let script = v8::Script::compile(scope, code, None).unwrap(); - b.iter(|| { - script.run(scope).unwrap(); - }); +fn setup() -> Vec<Extension> { + vec![ + deno_url::init(), + Extension::builder() + .js(vec![( + "setup", + Box::new(|| { + Ok(r#"const { URL } = globalThis.__bootstrap.url;"#.to_owned()) + }), + )]) + .build(), + ] } fn bench_url_parse(b: &mut Bencher) { - bench_runtime_js(b, r#"new URL(`http://www.google.com/`);"#); + bench_js_sync(b, r#"new URL(`http://www.google.com/`);"#, setup); } benchmark_group!(benches, bench_url_parse,); -benchmark_main!(benches); +bench_or_profile!(benches); |
