diff options
author | Matt Mastracci <matthew@mastracci.com> | 2023-04-04 06:46:31 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-04-04 06:46:31 -0600 |
commit | a1764f7690cfdc3e42724fcad29ef954b7e576a4 (patch) | |
tree | 1b621ebd7a6ef50687eeb2061740895096136e8a /cli/worker.rs | |
parent | 2dc20168371e827b86e2ce0d1d7787139fba68f3 (diff) |
refactor(core): Improve ergonomics of managing ASCII strings (#18498)
This is a follow-on to the earlier work in reducing string copies,
mainly focused on ensuring that ASCII strings are easy to provide to the
JS runtime.
While we are replacing a 16-byte reference in a number of places with a
24-byte structure (measured via `std::mem::size_of`), the reduction in
copies wins out over the additional size of the arguments passed into
functions.
Benchmarking shows approximately the same if not slightly less wallclock
time/instructions retired, but I believe this continues to open up
further refactoring opportunities.
Diffstat (limited to 'cli/worker.rs')
-rw-r--r-- | cli/worker.rs | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/cli/worker.rs b/cli/worker.rs index 5beef84ff..edd604519 100644 --- a/cli/worker.rs +++ b/cli/worker.rs @@ -5,6 +5,7 @@ use std::rc::Rc; use std::sync::Arc; use deno_ast::ModuleSpecifier; +use deno_core::ascii_str; use deno_core::error::AnyError; use deno_core::futures::task::LocalFutureObj; use deno_core::futures::FutureExt; @@ -184,7 +185,7 @@ impl CliMainWorker { // Enable op call tracing in core to enable better debugging of op sanitizer // failures. if self.ps.options.trace_ops() { - self.worker.js_runtime.execute_script( + self.worker.js_runtime.execute_script_static( located_script_name!(), "Deno[Deno.internal].core.enableOpCallTracing();", )?; @@ -231,7 +232,7 @@ impl CliMainWorker { self.worker.execute_script( located_script_name!(), - "Deno[Deno.internal].core.enableOpCallTracing();", + ascii_str!("Deno[Deno.internal].core.enableOpCallTracing();"), )?; if mode != TestMode::Documentation { |