mirror of
https://github.com/denoland/deno.git
synced 2025-01-21 21:50:00 -05:00
refactor: use v8::String::new_external_onebyte_static where appropriate (#18051)
This commit is contained in:
parent
ff4b03f233
commit
489cafd5ba
4 changed files with 47 additions and 25 deletions
|
@ -65,7 +65,7 @@ pub fn script_origin<'a>(
|
||||||
s: &mut v8::HandleScope<'a>,
|
s: &mut v8::HandleScope<'a>,
|
||||||
resource_name: v8::Local<'a, v8::String>,
|
resource_name: v8::Local<'a, v8::String>,
|
||||||
) -> v8::ScriptOrigin<'a> {
|
) -> v8::ScriptOrigin<'a> {
|
||||||
let source_map_url = v8::String::new(s, "").unwrap();
|
let source_map_url = v8::String::empty(s);
|
||||||
v8::ScriptOrigin::new(
|
v8::ScriptOrigin::new(
|
||||||
s,
|
s,
|
||||||
resource_name.into(),
|
resource_name.into(),
|
||||||
|
@ -84,7 +84,7 @@ pub fn module_origin<'a>(
|
||||||
s: &mut v8::HandleScope<'a>,
|
s: &mut v8::HandleScope<'a>,
|
||||||
resource_name: v8::Local<'a, v8::String>,
|
resource_name: v8::Local<'a, v8::String>,
|
||||||
) -> v8::ScriptOrigin<'a> {
|
) -> v8::ScriptOrigin<'a> {
|
||||||
let source_map_url = v8::String::new(s, "").unwrap();
|
let source_map_url = v8::String::empty(s);
|
||||||
v8::ScriptOrigin::new(
|
v8::ScriptOrigin::new(
|
||||||
s,
|
s,
|
||||||
resource_name.into(),
|
resource_name.into(),
|
||||||
|
@ -111,9 +111,11 @@ pub fn initialize_context<'s>(
|
||||||
|
|
||||||
let scope = &mut v8::ContextScope::new(scope, context);
|
let scope = &mut v8::ContextScope::new(scope, context);
|
||||||
|
|
||||||
let deno_str = v8::String::new(scope, "Deno").unwrap();
|
let deno_str =
|
||||||
let core_str = v8::String::new(scope, "core").unwrap();
|
v8::String::new_external_onebyte_static(scope, b"Deno").unwrap();
|
||||||
let ops_str = v8::String::new(scope, "ops").unwrap();
|
let core_str =
|
||||||
|
v8::String::new_external_onebyte_static(scope, b"core").unwrap();
|
||||||
|
let ops_str = v8::String::new_external_onebyte_static(scope, b"ops").unwrap();
|
||||||
|
|
||||||
// Snapshot already registered `Deno.core.ops` but
|
// Snapshot already registered `Deno.core.ops` but
|
||||||
// extensions may provide ops that aren't part of the snapshot.
|
// extensions may provide ops that aren't part of the snapshot.
|
||||||
|
@ -150,7 +152,8 @@ pub fn initialize_context<'s>(
|
||||||
|
|
||||||
// Bind v8 console object to Deno.core.console
|
// Bind v8 console object to Deno.core.console
|
||||||
let extra_binding_obj = context.get_extras_binding_object(scope);
|
let extra_binding_obj = context.get_extras_binding_object(scope);
|
||||||
let console_str = v8::String::new(scope, "console").unwrap();
|
let console_str =
|
||||||
|
v8::String::new_external_onebyte_static(scope, b"console").unwrap();
|
||||||
let console_obj = extra_binding_obj.get(scope, console_str.into()).unwrap();
|
let console_obj = extra_binding_obj.get(scope, console_str.into()).unwrap();
|
||||||
core_obj.set(scope, console_str.into(), console_obj);
|
core_obj.set(scope, console_str.into(), console_obj);
|
||||||
|
|
||||||
|
@ -203,7 +206,8 @@ pub fn set_func(
|
||||||
name: &'static str,
|
name: &'static str,
|
||||||
callback: impl v8::MapFnTo<v8::FunctionCallback>,
|
callback: impl v8::MapFnTo<v8::FunctionCallback>,
|
||||||
) {
|
) {
|
||||||
let key = v8::String::new(scope, name).unwrap();
|
let key =
|
||||||
|
v8::String::new_external_onebyte_static(scope, name.as_bytes()).unwrap();
|
||||||
let val = v8::Function::new(scope, callback).unwrap();
|
let val = v8::Function::new(scope, callback).unwrap();
|
||||||
val.set_name(key);
|
val.set_name(key);
|
||||||
obj.set(scope, key.into(), val.into());
|
obj.set(scope, key.into(), val.into());
|
||||||
|
@ -220,7 +224,8 @@ pub fn set_func_raw(
|
||||||
fast_function: &Option<Box<dyn FastFunction>>,
|
fast_function: &Option<Box<dyn FastFunction>>,
|
||||||
snapshot_options: SnapshotOptions,
|
snapshot_options: SnapshotOptions,
|
||||||
) {
|
) {
|
||||||
let key = v8::String::new(scope, name).unwrap();
|
let key =
|
||||||
|
v8::String::new_external_onebyte_static(scope, name.as_bytes()).unwrap();
|
||||||
let external = v8::External::new(scope, external_data as *mut c_void);
|
let external = v8::External::new(scope, external_data as *mut c_void);
|
||||||
let builder =
|
let builder =
|
||||||
v8::FunctionTemplate::builder_raw(callback).data(external.into());
|
v8::FunctionTemplate::builder_raw(callback).data(external.into());
|
||||||
|
@ -329,8 +334,10 @@ pub fn host_import_module_dynamically_callback<'s>(
|
||||||
let promise = promise.catch(scope, map_err).unwrap();
|
let promise = promise.catch(scope, map_err).unwrap();
|
||||||
|
|
||||||
if is_internal_module {
|
if is_internal_module {
|
||||||
let message =
|
let message = v8::String::new_external_onebyte_static(
|
||||||
v8::String::new(scope, "Cannot load internal module from external code")
|
scope,
|
||||||
|
b"Cannot load internal module from external code",
|
||||||
|
)
|
||||||
.unwrap();
|
.unwrap();
|
||||||
let exception = v8::Exception::type_error(scope, message);
|
let exception = v8::Exception::type_error(scope, message);
|
||||||
resolver.reject(scope, exception);
|
resolver.reject(scope, exception);
|
||||||
|
@ -354,18 +361,20 @@ pub extern "C" fn host_initialize_import_meta_object_callback(
|
||||||
.get_info(&module_global)
|
.get_info(&module_global)
|
||||||
.expect("Module not found");
|
.expect("Module not found");
|
||||||
|
|
||||||
let url_key = v8::String::new(scope, "url").unwrap();
|
let url_key = v8::String::new_external_onebyte_static(scope, b"url").unwrap();
|
||||||
let url_val = v8::String::new(scope, &info.name).unwrap();
|
let url_val = v8::String::new(scope, &info.name).unwrap();
|
||||||
meta.create_data_property(scope, url_key.into(), url_val.into());
|
meta.create_data_property(scope, url_key.into(), url_val.into());
|
||||||
|
|
||||||
let main_key = v8::String::new(scope, "main").unwrap();
|
let main_key =
|
||||||
|
v8::String::new_external_onebyte_static(scope, b"main").unwrap();
|
||||||
let main_val = v8::Boolean::new(scope, info.main);
|
let main_val = v8::Boolean::new(scope, info.main);
|
||||||
meta.create_data_property(scope, main_key.into(), main_val.into());
|
meta.create_data_property(scope, main_key.into(), main_val.into());
|
||||||
|
|
||||||
let builder =
|
let builder =
|
||||||
v8::FunctionBuilder::new(import_meta_resolve).data(url_val.into());
|
v8::FunctionBuilder::new(import_meta_resolve).data(url_val.into());
|
||||||
let val = v8::FunctionBuilder::<v8::Function>::build(builder, scope).unwrap();
|
let val = v8::FunctionBuilder::<v8::Function>::build(builder, scope).unwrap();
|
||||||
let resolve_key = v8::String::new(scope, "resolve").unwrap();
|
let resolve_key =
|
||||||
|
v8::String::new_external_onebyte_static(scope, b"resolve").unwrap();
|
||||||
meta.set(scope, resolve_key.into(), val.into());
|
meta.set(scope, resolve_key.into(), val.into());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -447,7 +456,8 @@ fn catch_dynamic_import_promise_error(
|
||||||
let message = v8::Exception::create_message(scope, arg);
|
let message = v8::Exception::create_message(scope, arg);
|
||||||
if message.get_stack_trace(scope).unwrap().get_frame_count() == 0 {
|
if message.get_stack_trace(scope).unwrap().get_frame_count() == 0 {
|
||||||
let arg: v8::Local<v8::Object> = arg.try_into().unwrap();
|
let arg: v8::Local<v8::Object> = arg.try_into().unwrap();
|
||||||
let message_key = v8::String::new(scope, "message").unwrap();
|
let message_key =
|
||||||
|
v8::String::new_external_onebyte_static(scope, b"message").unwrap();
|
||||||
let message = arg.get(scope, message_key.into()).unwrap();
|
let message = arg.get(scope, message_key.into()).unwrap();
|
||||||
let exception = match name.as_str() {
|
let exception = match name.as_str() {
|
||||||
"RangeError" => {
|
"RangeError" => {
|
||||||
|
@ -464,8 +474,11 @@ fn catch_dynamic_import_promise_error(
|
||||||
}
|
}
|
||||||
_ => v8::Exception::error(scope, message.try_into().unwrap()),
|
_ => v8::Exception::error(scope, message.try_into().unwrap()),
|
||||||
};
|
};
|
||||||
let code_key = v8::String::new(scope, "code").unwrap();
|
let code_key =
|
||||||
let code_value = v8::String::new(scope, "ERR_MODULE_NOT_FOUND").unwrap();
|
v8::String::new_external_onebyte_static(scope, b"code").unwrap();
|
||||||
|
let code_value =
|
||||||
|
v8::String::new_external_onebyte_static(scope, b"ERR_MODULE_NOT_FOUND")
|
||||||
|
.unwrap();
|
||||||
let exception_obj = exception.to_object(scope).unwrap();
|
let exception_obj = exception.to_object(scope).unwrap();
|
||||||
exception_obj.set(scope, code_key.into(), code_value.into());
|
exception_obj.set(scope, code_key.into(), code_value.into());
|
||||||
scope.throw_exception(exception);
|
scope.throw_exception(exception);
|
||||||
|
|
|
@ -992,11 +992,15 @@ impl JsRuntime {
|
||||||
let context = realm.context();
|
let context = realm.context();
|
||||||
let context_local = v8::Local::new(scope, context);
|
let context_local = v8::Local::new(scope, context);
|
||||||
let global = context_local.global(scope);
|
let global = context_local.global(scope);
|
||||||
let deno_str = v8::String::new(scope, "Deno").unwrap();
|
let deno_str =
|
||||||
let core_str = v8::String::new(scope, "core").unwrap();
|
v8::String::new_external_onebyte_static(scope, b"Deno").unwrap();
|
||||||
let opresolve_str = v8::String::new(scope, "opresolve").unwrap();
|
let core_str =
|
||||||
|
v8::String::new_external_onebyte_static(scope, b"core").unwrap();
|
||||||
|
let opresolve_str =
|
||||||
|
v8::String::new_external_onebyte_static(scope, b"opresolve").unwrap();
|
||||||
let build_custom_error_str =
|
let build_custom_error_str =
|
||||||
v8::String::new(scope, "buildCustomError").unwrap();
|
v8::String::new_external_onebyte_static(scope, b"buildCustomError")
|
||||||
|
.unwrap();
|
||||||
|
|
||||||
let deno_obj: v8::Local<v8::Object> = global
|
let deno_obj: v8::Local<v8::Object> = global
|
||||||
.get(scope, deno_str.into())
|
.get(scope, deno_str.into())
|
||||||
|
|
|
@ -500,13 +500,16 @@ impl WebWorker {
|
||||||
let scope = &mut js_runtime.handle_scope();
|
let scope = &mut js_runtime.handle_scope();
|
||||||
let context_local = v8::Local::new(scope, context);
|
let context_local = v8::Local::new(scope, context);
|
||||||
let global_obj = context_local.global(scope);
|
let global_obj = context_local.global(scope);
|
||||||
let bootstrap_str = v8::String::new(scope, "bootstrap").unwrap();
|
let bootstrap_str =
|
||||||
|
v8::String::new_external_onebyte_static(scope, b"bootstrap").unwrap();
|
||||||
let bootstrap_ns: v8::Local<v8::Object> = global_obj
|
let bootstrap_ns: v8::Local<v8::Object> = global_obj
|
||||||
.get(scope, bootstrap_str.into())
|
.get(scope, bootstrap_str.into())
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.try_into()
|
.try_into()
|
||||||
.unwrap();
|
.unwrap();
|
||||||
let main_runtime_str = v8::String::new(scope, "workerRuntime").unwrap();
|
let main_runtime_str =
|
||||||
|
v8::String::new_external_onebyte_static(scope, b"workerRuntime")
|
||||||
|
.unwrap();
|
||||||
let bootstrap_fn =
|
let bootstrap_fn =
|
||||||
bootstrap_ns.get(scope, main_runtime_str.into()).unwrap();
|
bootstrap_ns.get(scope, main_runtime_str.into()).unwrap();
|
||||||
let bootstrap_fn =
|
let bootstrap_fn =
|
||||||
|
|
|
@ -321,13 +321,15 @@ impl MainWorker {
|
||||||
let scope = &mut js_runtime.handle_scope();
|
let scope = &mut js_runtime.handle_scope();
|
||||||
let context_local = v8::Local::new(scope, context);
|
let context_local = v8::Local::new(scope, context);
|
||||||
let global_obj = context_local.global(scope);
|
let global_obj = context_local.global(scope);
|
||||||
let bootstrap_str = v8::String::new(scope, "bootstrap").unwrap();
|
let bootstrap_str =
|
||||||
|
v8::String::new_external_onebyte_static(scope, b"bootstrap").unwrap();
|
||||||
let bootstrap_ns: v8::Local<v8::Object> = global_obj
|
let bootstrap_ns: v8::Local<v8::Object> = global_obj
|
||||||
.get(scope, bootstrap_str.into())
|
.get(scope, bootstrap_str.into())
|
||||||
.unwrap()
|
.unwrap()
|
||||||
.try_into()
|
.try_into()
|
||||||
.unwrap();
|
.unwrap();
|
||||||
let main_runtime_str = v8::String::new(scope, "mainRuntime").unwrap();
|
let main_runtime_str =
|
||||||
|
v8::String::new_external_onebyte_static(scope, b"mainRuntime").unwrap();
|
||||||
let bootstrap_fn =
|
let bootstrap_fn =
|
||||||
bootstrap_ns.get(scope, main_runtime_str.into()).unwrap();
|
bootstrap_ns.get(scope, main_runtime_str.into()).unwrap();
|
||||||
let bootstrap_fn =
|
let bootstrap_fn =
|
||||||
|
|
Loading…
Add table
Reference in a new issue