summaryrefslogtreecommitdiff
path: root/extensions/url
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/url')
-rw-r--r--extensions/url/00_url.js8
-rw-r--r--extensions/url/Cargo.toml2
-rw-r--r--extensions/url/benches/url_ops.rs45
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);