diff --git a/Cargo.toml b/Cargo.toml index 3eafe5fe8..5d5f57079 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -4,7 +4,7 @@ members = ["nova_cli", "nova_vm", "small_string", "tests"] exclude = ["nova_lint"] [workspace.package] -edition = "2021" +edition = "2024" version = "0.1.0" license = "MPL-2.0" homepage = "https://trynova.dev" diff --git a/nova_cli/src/helper.rs b/nova_cli/src/helper.rs index f7d41c6cf..08644d61b 100644 --- a/nova_cli/src/helper.rs +++ b/nova_cli/src/helper.rs @@ -4,8 +4,8 @@ use nova_vm::{ ecmascript::{ - builtins::{create_builtin_function, ArgumentsList, Behaviour, BuiltinFunctionArgs}, - execution::{agent::ExceptionType, Agent, JsResult}, + builtins::{ArgumentsList, Behaviour, BuiltinFunctionArgs, create_builtin_function}, + execution::{Agent, JsResult, agent::ExceptionType}, types::{ InternalMethods, IntoValue, Object, OrdinaryObject, PropertyDescriptor, PropertyKey, String, Value, diff --git a/nova_cli/src/main.rs b/nova_cli/src/main.rs index a52415b8f..29ba8c1b0 100644 --- a/nova_cli/src/main.rs +++ b/nova_cli/src/main.rs @@ -14,8 +14,8 @@ use helper::{ use nova_vm::{ ecmascript::{ execution::{ - agent::{GcAgent, HostHooks, Job, Options}, Agent, JsResult, + agent::{GcAgent, HostHooks, Job, Options}, }, scripts_and_modules::script::{parse_script, script_evaluation}, types::{Object, String as JsString, Value}, diff --git a/nova_lint/Cargo.toml b/nova_lint/Cargo.toml index dc8a15120..37ac5c607 100644 --- a/nova_lint/Cargo.toml +++ b/nova_lint/Cargo.toml @@ -2,7 +2,7 @@ name = "nova_lint" repository = "https://github.com/trynova/nova/tree/main/nova_lint" description = "A collection of custom lints to ease the development and maintenance of the Nova project." -edition = "2021" +edition = "2024" version = "0.1.0" license = "MPL-2.0" homepage = "https://trynova.dev" diff --git a/nova_lint/src/lib.rs b/nova_lint/src/lib.rs index c4f7cfabf..6d40617c3 100644 --- a/nova_lint/src/lib.rs +++ b/nova_lint/src/lib.rs @@ -29,7 +29,7 @@ mod utils; pub(crate) use utils::*; -#[no_mangle] +#[unsafe(no_mangle)] pub fn register_lints(sess: &rustc_session::Session, lint_store: &mut rustc_lint::LintStore) { agent_comes_first::register_lints(sess, lint_store); gc_scope_comes_last::register_lints(sess, lint_store); diff --git a/nova_vm/build.rs b/nova_vm/build.rs index d3d01f744..077e2ac24 100644 --- a/nova_vm/build.rs +++ b/nova_vm/build.rs @@ -4,7 +4,7 @@ use small_string::SmallString; use std::fs::File; -use std::io::{self, prelude::*, BufReader}; +use std::io::{self, BufReader, prelude::*}; fn replace_invalid_key_characters(string: &str) -> String { let mut string = string.to_owned(); diff --git a/nova_vm/src/ecmascript/abstract_operations/operations_on_iterator_objects.rs b/nova_vm/src/ecmascript/abstract_operations/operations_on_iterator_objects.rs index f59f9493d..0394a3e25 100644 --- a/nova_vm/src/ecmascript/abstract_operations/operations_on_iterator_objects.rs +++ b/nova_vm/src/ecmascript/abstract_operations/operations_on_iterator_objects.rs @@ -10,19 +10,19 @@ use crate::{ operations_on_objects::{call, call_function, get, get_method, try_get_method}, type_conversion::to_boolean, }, - builtins::{ordinary::ordinary_object_create_with_intrinsics, ArgumentsList}, + builtins::{ArgumentsList, ordinary::ordinary_object_create_with_intrinsics}, execution::{ - agent::{ExceptionType, JsError}, Agent, JsResult, ProtoIntrinsics, + agent::{ExceptionType, JsError}, }, types::{ - Function, IntoValue, Object, PropertyDescriptor, PropertyKey, Value, - BUILTIN_STRING_MEMORY, + BUILTIN_STRING_MEMORY, Function, IntoValue, Object, PropertyDescriptor, PropertyKey, + Value, }, }, engine::{ - context::{Bindable, GcScope, NoGcScope}, Scoped, TryResult, + context::{Bindable, GcScope, NoGcScope}, }, heap::{CompactionLists, HeapMarkAndSweep, WellKnownSymbolIndexes, WorkQueues}, }; diff --git a/nova_vm/src/ecmascript/abstract_operations/operations_on_objects.rs b/nova_vm/src/ecmascript/abstract_operations/operations_on_objects.rs index e84f6a23b..fff577b2f 100644 --- a/nova_vm/src/ecmascript/abstract_operations/operations_on_objects.rs +++ b/nova_vm/src/ecmascript/abstract_operations/operations_on_objects.rs @@ -14,34 +14,33 @@ use super::{ }, }; use crate::{ - ecmascript::types::scope_property_keys, - engine::{ - context::{Bindable, GcScope, NoGcScope}, - rootable::Rootable, - unwrap_try, Scoped, TryResult, - }, -}; -use crate::{ + SmallInteger, ecmascript::{ abstract_operations::operations_on_iterator_objects::iterator_step_value, builtins::{ - array_create, + ArgumentsList, Array, BuiltinConstructorFunction, array_create, keyed_collections::map_objects::map_prototype::canonicalize_keyed_collection_key, - ArgumentsList, Array, BuiltinConstructorFunction, }, execution::{ - agent::ExceptionType, new_class_field_initializer_environment, Agent, - ECMAScriptCodeEvaluationState, EnvironmentIndex, ExecutionContext, JsResult, - RealmIdentifier, + Agent, ECMAScriptCodeEvaluationState, EnvironmentIndex, ExecutionContext, JsResult, + RealmIdentifier, agent::ExceptionType, new_class_field_initializer_environment, }, types::{ - Function, InternalMethods, IntoFunction, IntoObject, IntoValue, Number, Object, - OrdinaryObject, PropertyDescriptor, PropertyKey, String, Value, BUILTIN_STRING_MEMORY, + BUILTIN_STRING_MEMORY, Function, InternalMethods, IntoFunction, IntoObject, IntoValue, + Number, Object, OrdinaryObject, PropertyDescriptor, PropertyKey, String, Value, }, }, - engine::{instanceof_operator, Vm}, + engine::{Vm, instanceof_operator}, heap::{Heap, ObjectEntry}, - SmallInteger, +}; +use crate::{ + ecmascript::types::scope_property_keys, + engine::{ + Scoped, TryResult, + context::{Bindable, GcScope, NoGcScope}, + rootable::Rootable, + unwrap_try, + }, }; /// ### [7.3.1 MakeBasicObject ( internalSlotsList )](https://tc39.es/ecma262/#sec-makebasicobject) diff --git a/nova_vm/src/ecmascript/abstract_operations/testing_and_comparison.rs b/nova_vm/src/ecmascript/abstract_operations/testing_and_comparison.rs index 05d6115bf..f0db0dc66 100644 --- a/nova_vm/src/ecmascript/abstract_operations/testing_and_comparison.rs +++ b/nova_vm/src/ecmascript/abstract_operations/testing_and_comparison.rs @@ -6,17 +6,17 @@ use crate::ecmascript::abstract_operations::type_conversion::to_numeric_primitive; use crate::ecmascript::builtins::proxy::abstract_operations::{ - validate_non_revoked_proxy, NonRevokedProxy, + NonRevokedProxy, validate_non_revoked_proxy, }; use crate::ecmascript::types::{InternalSlots, Numeric, Primitive, PropertyKey}; -use crate::engine::context::{Bindable, GcScope, NoGcScope}; use crate::engine::TryResult; +use crate::engine::context::{Bindable, GcScope, NoGcScope}; use crate::heap::WellKnownSymbolIndexes; use crate::{ ecmascript::{ - execution::{agent::ExceptionType, Agent, JsResult}, + execution::{Agent, JsResult, agent::ExceptionType}, types::{ - bigint::BigInt, Function, InternalMethods, IntoValue, Number, Object, String, Value, + Function, InternalMethods, IntoValue, Number, Object, String, Value, bigint::BigInt, }, }, heap::PrimitiveHeapIndexable, @@ -24,7 +24,7 @@ use crate::{ use super::operations_on_objects::get; use super::type_conversion::{ - string_to_big_int, string_to_number, to_boolean, to_primitive, PreferredType, + PreferredType, string_to_big_int, string_to_number, to_boolean, to_primitive, }; /// ### [7.2.1 RequireObjectCoercible ( argument )](https://tc39.es/ecma262/#sec-requireobjectcoercible) diff --git a/nova_vm/src/ecmascript/abstract_operations/type_conversion.rs b/nova_vm/src/ecmascript/abstract_operations/type_conversion.rs index ac9dcef38..0e1287a2a 100644 --- a/nova_vm/src/ecmascript/abstract_operations/type_conversion.rs +++ b/nova_vm/src/ecmascript/abstract_operations/type_conversion.rs @@ -17,22 +17,22 @@ use num_bigint::Sign; use crate::ecmascript::types::IntoPrimitive; -use crate::engine::context::{Bindable, GcScope, NoGcScope}; use crate::engine::TryResult; +use crate::engine::context::{Bindable, GcScope, NoGcScope}; use crate::{ + SmallInteger, ecmascript::{ builtins::{ - primitive_objects::{PrimitiveObjectData, PrimitiveObjectHeapData}, ArgumentsList, + primitive_objects::{PrimitiveObjectData, PrimitiveObjectHeapData}, }, - execution::{agent::ExceptionType, Agent, JsResult}, + execution::{Agent, JsResult, agent::ExceptionType}, types::{ - BigInt, IntoNumeric, IntoObject, IntoValue, Number, Numeric, Object, Primitive, - PropertyKey, String, Value, BUILTIN_STRING_MEMORY, + BUILTIN_STRING_MEMORY, BigInt, IntoNumeric, IntoObject, IntoValue, Number, Numeric, + Object, Primitive, PropertyKey, String, Value, }, }, heap::{CreateHeapData, WellKnownSymbolIndexes}, - SmallInteger, }; use super::{ diff --git a/nova_vm/src/ecmascript/builders/builtin_function_builder.rs b/nova_vm/src/ecmascript/builders/builtin_function_builder.rs index 644f1207f..bb13298cd 100644 --- a/nova_vm/src/ecmascript/builders/builtin_function_builder.rs +++ b/nova_vm/src/ecmascript/builders/builtin_function_builder.rs @@ -10,8 +10,8 @@ use crate::{ }, execution::{Agent, RealmIdentifier}, types::{ - BuiltinFunctionHeapData, IntoFunction, IntoObject, IntoValue, Object, ObjectHeapData, - OrdinaryObject, PropertyKey, String, Value, BUILTIN_STRING_MEMORY, + BUILTIN_STRING_MEMORY, BuiltinFunctionHeapData, IntoFunction, IntoObject, IntoValue, + Object, ObjectHeapData, OrdinaryObject, PropertyKey, String, Value, }, }, engine::context::Bindable, diff --git a/nova_vm/src/ecmascript/builders/ordinary_object_builder.rs b/nova_vm/src/ecmascript/builders/ordinary_object_builder.rs index f6a10efcb..abfefdc5b 100644 --- a/nova_vm/src/ecmascript/builders/ordinary_object_builder.rs +++ b/nova_vm/src/ecmascript/builders/ordinary_object_builder.rs @@ -7,8 +7,8 @@ use crate::{ builtins::{Builtin, BuiltinFunction, BuiltinGetter, BuiltinIntrinsic}, execution::{Agent, RealmIdentifier}, types::{ - IntoFunction, IntoObject, IntoValue, ObjectHeapData, OrdinaryObject, PropertyKey, - Value, BUILTIN_STRING_MEMORY, + BUILTIN_STRING_MEMORY, IntoFunction, IntoObject, IntoValue, ObjectHeapData, + OrdinaryObject, PropertyKey, Value, }, }, heap::{element_array::ElementDescriptor, indexes::ObjectIndex}, diff --git a/nova_vm/src/ecmascript/builtins.rs b/nova_vm/src/ecmascript/builtins.rs index ade9f5628..6cc2074f3 100644 --- a/nova_vm/src/ecmascript/builtins.rs +++ b/nova_vm/src/ecmascript/builtins.rs @@ -55,18 +55,18 @@ pub(crate) mod weak_ref; pub(crate) mod weak_set; pub(crate) use arguments::*; -pub(crate) use array::abstract_operations::*; pub use array::Array; +pub(crate) use array::abstract_operations::*; pub(crate) use array::{ArrayHeapData, SealableElementsVector}; #[cfg(feature = "array-buffer")] pub use array_buffer::ArrayBuffer; #[cfg(feature = "array-buffer")] pub(crate) use array_buffer::ArrayBufferHeapData; pub use builtin_constructor::BuiltinConstructorFunction; -pub(crate) use builtin_constructor::{create_builtin_constructor, BuiltinConstructorArgs}; +pub(crate) use builtin_constructor::{BuiltinConstructorArgs, create_builtin_constructor}; pub use builtin_function::{ - create_builtin_function, ArgumentsList, Behaviour, Builtin, BuiltinFunction, - BuiltinFunctionArgs, BuiltinGetter, ConstructorFn, RegularFn as JsFunction, RegularFn, + ArgumentsList, Behaviour, Builtin, BuiltinFunction, BuiltinFunctionArgs, BuiltinGetter, + ConstructorFn, RegularFn as JsFunction, RegularFn, create_builtin_function, }; pub(crate) use builtin_function::{BuiltinIntrinsic, BuiltinIntrinsicConstructor}; pub use control_abstraction_objects::*; diff --git a/nova_vm/src/ecmascript/builtins/arguments.rs b/nova_vm/src/ecmascript/builtins/arguments.rs index 6f0c8190b..1f7cd0989 100644 --- a/nova_vm/src/ecmascript/builtins/arguments.rs +++ b/nova_vm/src/ecmascript/builtins/arguments.rs @@ -33,10 +33,10 @@ use crate::{ abstract_operations::operations_on_objects::{ try_create_data_property_or_throw, try_define_property_or_throw, }, - execution::{agent::Agent, ProtoIntrinsics}, + execution::{ProtoIntrinsics, agent::Agent}, types::{ - IntoFunction, IntoValue, Number, Object, PropertyDescriptor, PropertyKey, Value, - BUILTIN_STRING_MEMORY, + BUILTIN_STRING_MEMORY, IntoFunction, IntoValue, Number, Object, PropertyDescriptor, + PropertyKey, Value, }, }, heap::WellKnownSymbolIndexes, diff --git a/nova_vm/src/ecmascript/builtins/array.rs b/nova_vm/src/ecmascript/builtins/array.rs index 136a0c480..24a96394e 100644 --- a/nova_vm/src/ecmascript/builtins/array.rs +++ b/nova_vm/src/ecmascript/builtins/array.rs @@ -23,19 +23,20 @@ use crate::{ }, execution::{Agent, JsResult, ProtoIntrinsics}, types::{ - Function, InternalMethods, InternalSlots, IntoObject, IntoValue, Object, - OrdinaryObject, PropertyDescriptor, PropertyKey, Value, BUILTIN_STRING_MEMORY, + BUILTIN_STRING_MEMORY, Function, InternalMethods, InternalSlots, IntoObject, IntoValue, + Object, OrdinaryObject, PropertyDescriptor, PropertyKey, Value, }, }, engine::{ + Scoped, TryResult, context::{Bindable, GcScope, NoGcScope}, rootable::{HeapRootData, HeapRootRef, Rootable}, - unwrap_try, Scoped, TryResult, + unwrap_try, }, heap::{ + CreateHeapData, Heap, HeapMarkAndSweep, WorkQueues, element_array::{ElementArrays, ElementDescriptor}, indexes::ArrayIndex, - CreateHeapData, Heap, HeapMarkAndSweep, WorkQueues, }, }; @@ -251,10 +252,12 @@ impl<'a> InternalSlots<'a> for Array<'a> { } fn set_backing_object(self, agent: &mut Agent, backing_object: OrdinaryObject<'static>) { - assert!(agent[self] - .object_index - .replace(backing_object.unbind()) - .is_none()); + assert!( + agent[self] + .object_index + .replace(backing_object.unbind()) + .is_none() + ); } fn internal_set_extensible(self, agent: &mut Agent, value: bool) { diff --git a/nova_vm/src/ecmascript/builtins/array/abstract_operations.rs b/nova_vm/src/ecmascript/builtins/array/abstract_operations.rs index c45c735a8..fcc1c3b67 100644 --- a/nova_vm/src/ecmascript/builtins/array/abstract_operations.rs +++ b/nova_vm/src/ecmascript/builtins/array/abstract_operations.rs @@ -3,8 +3,8 @@ // file, You can obtain one at https://mozilla.org/MPL/2.0/. use crate::ecmascript::abstract_operations::type_conversion::to_uint32_number; -use crate::engine::context::{Bindable, GcScope, NoGcScope}; use crate::engine::TryResult; +use crate::engine::context::{Bindable, GcScope, NoGcScope}; use crate::{ ecmascript::{ abstract_operations::{ @@ -13,13 +13,13 @@ use crate::{ type_conversion::{to_number, to_uint32}, }, builtins::ArgumentsList, - execution::{agent::ExceptionType, Agent, JsResult}, - types::{IntoObject, Number, Object, PropertyDescriptor, Value, BUILTIN_STRING_MEMORY}, + execution::{Agent, JsResult, agent::ExceptionType}, + types::{BUILTIN_STRING_MEMORY, IntoObject, Number, Object, PropertyDescriptor, Value}, }, - heap::{indexes::ArrayIndex, Heap, WellKnownSymbolIndexes}, + heap::{Heap, WellKnownSymbolIndexes, indexes::ArrayIndex}, }; -use super::{data::SealableElementsVector, Array, ArrayHeapData}; +use super::{Array, ArrayHeapData, data::SealableElementsVector}; /// ### [10.4.2.2 ArrayCreate ( length \[ , proto \] )](https://tc39.es/ecma262/#sec-arraycreate) /// diff --git a/nova_vm/src/ecmascript/builtins/array/data.rs b/nova_vm/src/ecmascript/builtins/array/data.rs index 10102515b..a2e4c0f47 100644 --- a/nova_vm/src/ecmascript/builtins/array/data.rs +++ b/nova_vm/src/ecmascript/builtins/array/data.rs @@ -5,9 +5,9 @@ use crate::{ ecmascript::types::{OrdinaryObject, Value}, heap::{ + CompactionLists, HeapMarkAndSweep, WorkQueues, element_array::{ElementArrayKey, ElementArrays, ElementDescriptor, ElementsVector}, indexes::ElementIndex, - CompactionLists, HeapMarkAndSweep, WorkQueues, }, }; diff --git a/nova_vm/src/ecmascript/builtins/array_buffer.rs b/nova_vm/src/ecmascript/builtins/array_buffer.rs index 2757ad275..dc618cb9a 100644 --- a/nova_vm/src/ecmascript/builtins/array_buffer.rs +++ b/nova_vm/src/ecmascript/builtins/array_buffer.rs @@ -14,20 +14,20 @@ use crate::{ }, }, engine::{ + Scoped, context::{Bindable, NoGcScope}, rootable::{HeapRootData, HeapRootRef, Rootable}, - Scoped, }, heap::{ - indexes::{ArrayBufferIndex, IntoBaseIndex}, CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, WorkQueues, + indexes::{ArrayBufferIndex, IntoBaseIndex}, }, }; use abstract_operations::detach_array_buffer; pub(crate) use abstract_operations::{ - allocate_array_buffer, array_buffer_byte_length, clone_array_buffer, get_value_from_buffer, - is_detached_buffer, is_fixed_length_array_buffer, set_value_in_buffer, DetachKey, Ordering, + DetachKey, Ordering, allocate_array_buffer, array_buffer_byte_length, clone_array_buffer, + get_value_from_buffer, is_detached_buffer, is_fixed_length_array_buffer, set_value_in_buffer, }; use core::ops::{Index, IndexMut}; pub use data::*; @@ -242,10 +242,12 @@ impl<'a> InternalSlots<'a> for ArrayBuffer<'a> { } fn set_backing_object(self, agent: &mut Agent, backing_object: OrdinaryObject<'static>) { - assert!(agent[self] - .object_index - .replace(backing_object.unbind()) - .is_none()); + assert!( + agent[self] + .object_index + .replace(backing_object.unbind()) + .is_none() + ); } } diff --git a/nova_vm/src/ecmascript/builtins/array_buffer/abstract_operations.rs b/nova_vm/src/ecmascript/builtins/array_buffer/abstract_operations.rs index e8bf13c98..692412906 100644 --- a/nova_vm/src/ecmascript/builtins/array_buffer/abstract_operations.rs +++ b/nova_vm/src/ecmascript/builtins/array_buffer/abstract_operations.rs @@ -7,13 +7,13 @@ use crate::ecmascript::abstract_operations::type_conversion::to_index; use crate::ecmascript::types::{Numeric, Viewable}; use crate::engine::context::{Bindable, GcScope, NoGcScope}; use crate::{ + Heap, ecmascript::{ abstract_operations::operations_on_objects::get, - execution::{agent::ExceptionType, Agent, JsResult}, - types::{DataBlock, Function, IntoFunction, Number, Object, Value, BUILTIN_STRING_MEMORY}, + execution::{Agent, JsResult, agent::ExceptionType}, + types::{BUILTIN_STRING_MEMORY, DataBlock, Function, IntoFunction, Number, Object, Value}, }, heap::indexes::ArrayBufferIndex, - Heap, }; // TODO: Implement the contents of the `DetachKey` struct? diff --git a/nova_vm/src/ecmascript/builtins/bound_function.rs b/nova_vm/src/ecmascript/builtins/bound_function.rs index 72cea8520..b4bb0e70b 100644 --- a/nova_vm/src/ecmascript/builtins/bound_function.rs +++ b/nova_vm/src/ecmascript/builtins/bound_function.rs @@ -7,7 +7,7 @@ use core::ops::{Index, IndexMut}; use crate::ecmascript::types::{function_try_get, function_try_has_property, function_try_set}; use crate::engine::context::{Bindable, GcScope, NoGcScope}; use crate::engine::rootable::{HeapRootData, HeapRootRef, Rootable}; -use crate::engine::{unwrap_try, Scoped, TryResult}; +use crate::engine::{Scoped, TryResult, unwrap_try}; use crate::{ ecmascript::{ abstract_operations::{ @@ -16,17 +16,17 @@ use crate::{ }, execution::{Agent, JsResult, ProtoIntrinsics}, types::{ - function_create_backing_object, function_internal_define_own_property, - function_internal_delete, function_internal_get, function_internal_get_own_property, - function_internal_has_property, function_internal_own_property_keys, - function_internal_set, BoundFunctionHeapData, Function, FunctionInternalProperties, - InternalMethods, InternalSlots, IntoFunction, IntoObject, IntoValue, Object, - OrdinaryObject, PropertyDescriptor, PropertyKey, String, Value, + BoundFunctionHeapData, Function, FunctionInternalProperties, InternalMethods, + InternalSlots, IntoFunction, IntoObject, IntoValue, Object, OrdinaryObject, + PropertyDescriptor, PropertyKey, String, Value, function_create_backing_object, + function_internal_define_own_property, function_internal_delete, function_internal_get, + function_internal_get_own_property, function_internal_has_property, + function_internal_own_property_keys, function_internal_set, }, }, heap::{ - indexes::BoundFunctionIndex, CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, - WorkQueues, + CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, WorkQueues, + indexes::BoundFunctionIndex, }, }; @@ -180,10 +180,12 @@ impl<'a> InternalSlots<'a> for BoundFunction<'a> { } fn set_backing_object(self, agent: &mut Agent, backing_object: OrdinaryObject<'static>) { - assert!(agent[self] - .object_index - .replace(backing_object.unbind()) - .is_none()); + assert!( + agent[self] + .object_index + .replace(backing_object.unbind()) + .is_none() + ); } fn create_backing_object(self, agent: &mut Agent) -> OrdinaryObject<'static> { diff --git a/nova_vm/src/ecmascript/builtins/builtin_constructor.rs b/nova_vm/src/ecmascript/builtins/builtin_constructor.rs index 1ed334c9d..5e537c3fe 100644 --- a/nova_vm/src/ecmascript/builtins/builtin_constructor.rs +++ b/nova_vm/src/ecmascript/builtins/builtin_constructor.rs @@ -13,27 +13,27 @@ use crate::engine::{Scoped, TryResult}; use crate::{ ecmascript::{ execution::{ - agent::ExceptionType, Agent, EnvironmentIndex, ExecutionContext, JsResult, - PrivateEnvironmentIndex, ProtoIntrinsics, + Agent, EnvironmentIndex, ExecutionContext, JsResult, PrivateEnvironmentIndex, + ProtoIntrinsics, agent::ExceptionType, }, scripts_and_modules::source_code::SourceCode, syntax_directed_operations::class_definitions::{ base_class_default_constructor, derived_class_default_constructor, }, types::{ + BUILTIN_STRING_MEMORY, BuiltinConstructorHeapData, Function, + FunctionInternalProperties, InternalMethods, InternalSlots, IntoFunction, IntoObject, + IntoValue, Object, OrdinaryObject, PropertyDescriptor, PropertyKey, String, Value, function_create_backing_object, function_internal_define_own_property, function_internal_delete, function_internal_get, function_internal_get_own_property, function_internal_has_property, function_internal_own_property_keys, - function_internal_set, BuiltinConstructorHeapData, Function, - FunctionInternalProperties, InternalMethods, InternalSlots, IntoFunction, IntoObject, - IntoValue, Object, OrdinaryObject, PropertyDescriptor, PropertyKey, String, Value, - BUILTIN_STRING_MEMORY, + function_internal_set, }, }, engine::Executable, heap::{ - indexes::BuiltinConstructorIndex, CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, - ObjectEntry, ObjectEntryPropertyDescriptor, WorkQueues, + CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, ObjectEntry, + ObjectEntryPropertyDescriptor, WorkQueues, indexes::BuiltinConstructorIndex, }, }; diff --git a/nova_vm/src/ecmascript/builtins/builtin_function.rs b/nova_vm/src/ecmascript/builtins/builtin_function.rs index dc7c12096..6553db640 100644 --- a/nova_vm/src/ecmascript/builtins/builtin_function.rs +++ b/nova_vm/src/ecmascript/builtins/builtin_function.rs @@ -11,22 +11,23 @@ use crate::engine::{Scoped, TryResult}; use crate::{ ecmascript::{ execution::{ - agent::ExceptionType, Agent, ExecutionContext, JsResult, ProtoIntrinsics, - RealmIdentifier, + Agent, ExecutionContext, JsResult, ProtoIntrinsics, RealmIdentifier, + agent::ExceptionType, }, types::{ + BUILTIN_STRING_MEMORY, BuiltinFunctionHeapData, Function, FunctionInternalProperties, + InternalMethods, InternalSlots, IntoFunction, IntoObject, IntoValue, Object, + OrdinaryObject, PropertyDescriptor, PropertyKey, String, Value, function_create_backing_object, function_internal_define_own_property, function_internal_delete, function_internal_get, function_internal_get_own_property, function_internal_has_property, function_internal_own_property_keys, - function_internal_set, BuiltinFunctionHeapData, Function, FunctionInternalProperties, - InternalMethods, InternalSlots, IntoFunction, IntoObject, IntoValue, Object, - OrdinaryObject, PropertyDescriptor, PropertyKey, String, Value, BUILTIN_STRING_MEMORY, + function_internal_set, }, }, heap::{ - indexes::BuiltinFunctionIndex, CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, - IntrinsicConstructorIndexes, IntrinsicFunctionIndexes, ObjectEntry, - ObjectEntryPropertyDescriptor, WorkQueues, + CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, IntrinsicConstructorIndexes, + IntrinsicFunctionIndexes, ObjectEntry, ObjectEntryPropertyDescriptor, WorkQueues, + indexes::BuiltinFunctionIndex, }, }; @@ -260,10 +261,12 @@ impl<'a> InternalSlots<'a> for BuiltinFunction<'a> { } fn set_backing_object(self, agent: &mut Agent, backing_object: OrdinaryObject<'static>) { - assert!(agent[self] - .object_index - .replace(backing_object.unbind()) - .is_none()); + assert!( + agent[self] + .object_index + .replace(backing_object.unbind()) + .is_none() + ); } fn create_backing_object(self, agent: &mut Agent) -> OrdinaryObject<'static> { diff --git a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_function_objects/async_function_constructor.rs b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_function_objects/async_function_constructor.rs index 54ff0dfd4..2b3573249 100644 --- a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_function_objects/async_function_constructor.rs +++ b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_function_objects/async_function_constructor.rs @@ -9,9 +9,9 @@ use crate::{ builtins::{ArgumentsList, Behaviour, Builtin, BuiltinIntrinsicConstructor}, execution::{Agent, JsResult, RealmIdentifier}, fundamental_objects::function_objects::function_constructor::{ - create_dynamic_function, DynamicFunctionKind, + DynamicFunctionKind, create_dynamic_function, }, - types::{Function, IntoObject, IntoValue, Object, String, Value, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, Function, IntoObject, IntoValue, Object, String, Value}, }, heap::IntrinsicConstructorIndexes, }; diff --git a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_function_objects/async_function_prototype.rs b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_function_objects/async_function_prototype.rs index dbf86129d..a50e2e9d9 100644 --- a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_function_objects/async_function_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_function_objects/async_function_prototype.rs @@ -6,7 +6,7 @@ use crate::{ ecmascript::{ builders::ordinary_object_builder::OrdinaryObjectBuilder, execution::{Agent, RealmIdentifier}, - types::{IntoValue, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, IntoValue}, }, heap::WellKnownSymbolIndexes, }; diff --git a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_function_objects/await_reaction.rs b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_function_objects/await_reaction.rs index ec9c1b734..61f4a9261 100644 --- a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_function_objects/await_reaction.rs +++ b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_function_objects/await_reaction.rs @@ -11,6 +11,7 @@ use crate::engine::context::{Bindable, GcScope}; use crate::{ ecmascript::{ builtins::{ + ECMAScriptFunction, control_abstraction_objects::promise_objects::{ promise_abstract_operations::{ promise_capability_records::PromiseCapability, @@ -19,7 +20,6 @@ use crate::{ promise_prototype::inner_promise_then, }, promise::Promise, - ECMAScriptFunction, }, execution::{Agent, ExecutionContext}, types::Value, diff --git a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_generator_function_objects/async_generator_function_constructor.rs b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_generator_function_objects/async_generator_function_constructor.rs index d2bbfffd6..c8cde9f8d 100644 --- a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_generator_function_objects/async_generator_function_constructor.rs +++ b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_generator_function_objects/async_generator_function_constructor.rs @@ -10,9 +10,9 @@ use crate::{ builtins::{ArgumentsList, Behaviour, Builtin, BuiltinIntrinsicConstructor}, execution::{Agent, JsResult, RealmIdentifier}, fundamental_objects::function_objects::function_constructor::{ - create_dynamic_function, DynamicFunctionKind, + DynamicFunctionKind, create_dynamic_function, }, - types::{Function, IntoObject, Object, String, Value, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, Function, IntoObject, Object, String, Value}, }, heap::IntrinsicConstructorIndexes, }; diff --git a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_generator_function_objects/async_generator_function_prototype.rs b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_generator_function_objects/async_generator_function_prototype.rs index 4cd6fd1ae..99b6e434c 100644 --- a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_generator_function_objects/async_generator_function_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_generator_function_objects/async_generator_function_prototype.rs @@ -6,7 +6,7 @@ use crate::{ ecmascript::{ builders::ordinary_object_builder::OrdinaryObjectBuilder, execution::{Agent, RealmIdentifier}, - types::{IntoValue, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, IntoValue}, }, heap::WellKnownSymbolIndexes, }; diff --git a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_generator_objects.rs b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_generator_objects.rs index 9840b885b..9a354a665 100644 --- a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_generator_objects.rs +++ b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_generator_objects.rs @@ -20,19 +20,19 @@ use crate::{ generator_objects::VmOrArguments, promise_objects::promise_abstract_operations::promise_capability_records::PromiseCapability, }, - execution::{agent::JsError, Agent, ExecutionContext, ProtoIntrinsics}, + execution::{Agent, ExecutionContext, ProtoIntrinsics, agent::JsError}, types::{ InternalMethods, InternalSlots, IntoObject, IntoValue, Object, OrdinaryObject, Value, }, }, engine::{ + Executable, ExecutionResult, Scoped, SuspendedVm, context::{Bindable, GcScope, NoGcScope}, rootable::{HeapRootData, HeapRootRef, Rootable}, - Executable, ExecutionResult, Scoped, SuspendedVm, }, heap::{ - indexes::{AsyncGeneratorIndex, BaseIndex}, CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, WorkQueues, + indexes::{AsyncGeneratorIndex, BaseIndex}, }, }; @@ -378,10 +378,12 @@ impl<'a> InternalSlots<'a> for AsyncGenerator<'a> { } fn set_backing_object(self, agent: &mut Agent, backing_object: OrdinaryObject<'static>) { - assert!(agent[self] - .object_index - .replace(backing_object.unbind()) - .is_none()); + assert!( + agent[self] + .object_index + .replace(backing_object.unbind()) + .is_none() + ); } } diff --git a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_generator_objects/async_generator_abstract_operations.rs b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_generator_objects/async_generator_abstract_operations.rs index 587dae7e0..4ba35eb9f 100644 --- a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_generator_objects/async_generator_abstract_operations.rs +++ b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_generator_objects/async_generator_abstract_operations.rs @@ -6,6 +6,7 @@ use crate::{ ecmascript::{ abstract_operations::operations_on_iterator_objects::create_iter_result_object, builtins::{ + ECMAScriptFunction, promise::Promise, promise_objects::{ promise_abstract_operations::{ @@ -14,17 +15,17 @@ use crate::{ }, promise_prototype::inner_promise_then, }, - ECMAScriptFunction, }, execution::{ - agent::{ExceptionType, JsError}, Agent, JsResult, RealmIdentifier, + agent::{ExceptionType, JsError}, }, types::{IntoValue, Value}, }, engine::{ + ExecutionResult, Scoped, SuspendedVm, Vm, context::{Bindable, GcScope, NoGcScope}, - unwrap_try, ExecutionResult, Scoped, SuspendedVm, Vm, + unwrap_try, }, }; diff --git a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_generator_objects/async_generator_prototype.rs b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_generator_objects/async_generator_prototype.rs index 15d68629e..52832f8ec 100644 --- a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_generator_objects/async_generator_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/async_generator_objects/async_generator_prototype.rs @@ -17,11 +17,11 @@ use crate::{ heap::WellKnownSymbolIndexes, }; +use super::AsyncGeneratorRequestCompletion; use super::async_generator_abstract_operations::{ async_generator_await_return, async_generator_enqueue, async_generator_resume, async_generator_validate, }; -use super::AsyncGeneratorRequestCompletion; pub(crate) struct AsyncGeneratorPrototype; diff --git a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/generator_function_objects/generator_function_constructor.rs b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/generator_function_objects/generator_function_constructor.rs index 803e68bbc..45d69ec0c 100644 --- a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/generator_function_objects/generator_function_constructor.rs +++ b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/generator_function_objects/generator_function_constructor.rs @@ -9,16 +9,16 @@ use crate::{ ecmascript::{ builders::builtin_function_builder::BuiltinFunctionBuilder, builtins::{ - ordinary::ordinary_object_create_with_intrinsics, ArgumentsList, Behaviour, Builtin, - BuiltinIntrinsicConstructor, + ArgumentsList, Behaviour, Builtin, BuiltinIntrinsicConstructor, + ordinary::ordinary_object_create_with_intrinsics, }, execution::{Agent, JsResult, ProtoIntrinsics, RealmIdentifier}, fundamental_objects::function_objects::function_constructor::{ - create_dynamic_function, DynamicFunctionKind, + DynamicFunctionKind, create_dynamic_function, }, types::{ - Function, IntoObject, IntoValue, Object, PropertyDescriptor, String, Value, - BUILTIN_STRING_MEMORY, + BUILTIN_STRING_MEMORY, Function, IntoObject, IntoValue, Object, PropertyDescriptor, + String, Value, }, }, heap::IntrinsicConstructorIndexes, diff --git a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/generator_function_objects/generator_function_prototype.rs b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/generator_function_objects/generator_function_prototype.rs index 063c14fa9..f89650bd9 100644 --- a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/generator_function_objects/generator_function_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/generator_function_objects/generator_function_prototype.rs @@ -6,7 +6,7 @@ use crate::{ ecmascript::{ builders::ordinary_object_builder::OrdinaryObjectBuilder, execution::{Agent, RealmIdentifier}, - types::{IntoValue, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, IntoValue}, }, heap::WellKnownSymbolIndexes, }; diff --git a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/generator_objects.rs b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/generator_objects.rs index a81dfcfef..1137f23b5 100644 --- a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/generator_objects.rs +++ b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/generator_objects.rs @@ -9,20 +9,20 @@ use crate::{ ecmascript::{ abstract_operations::operations_on_iterator_objects::create_iter_result_object, execution::{ - agent::{ExceptionType, JsError}, Agent, ExecutionContext, JsResult, ProtoIntrinsics, + agent::{ExceptionType, JsError}, }, types::{ InternalMethods, InternalSlots, IntoObject, IntoValue, Object, OrdinaryObject, Value, }, }, engine::{ - rootable::{HeapRootData, Scoped}, Executable, ExecutionResult, SuspendedVm, Vm, + rootable::{HeapRootData, Scoped}, }, heap::{ - indexes::{BaseIndex, GeneratorIndex}, CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, WorkQueues, + indexes::{BaseIndex, GeneratorIndex}, }, }; @@ -85,7 +85,7 @@ impl Generator<'_> { ExceptionType::TypeError, "The generator is currently running", gc.nogc(), - )) + )); } GeneratorState::Completed => { // 2. If state is completed, return CreateIterResultObject(undefined, true). diff --git a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/generator_prototype.rs b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/generator_prototype.rs index 64b09ba0b..8d6df120a 100644 --- a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/generator_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/generator_prototype.rs @@ -8,8 +8,8 @@ use crate::{ abstract_operations::operations_on_iterator_objects::create_iter_result_object, builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ArgumentsList, Behaviour, Builtin, BuiltinIntrinsic}, - execution::{agent::ExceptionType, Agent, JsResult, RealmIdentifier}, - types::{IntoValue, String, Value, BUILTIN_STRING_MEMORY}, + execution::{Agent, JsResult, RealmIdentifier, agent::ExceptionType}, + types::{BUILTIN_STRING_MEMORY, IntoValue, String, Value}, }, heap::{IntrinsicFunctionIndexes, WellKnownSymbolIndexes}, }; @@ -112,7 +112,7 @@ impl GeneratorPrototype { ExceptionType::TypeError, "The generator is currently running", gc, - )) + )); } GeneratorState::Completed => {} }; diff --git a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/iteration/async_from_sync_iterator_prototype.rs b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/iteration/async_from_sync_iterator_prototype.rs index 398d0ff6a..ee7eaa7b8 100644 --- a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/iteration/async_from_sync_iterator_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/iteration/async_from_sync_iterator_prototype.rs @@ -7,7 +7,7 @@ use crate::{ builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ArgumentsList, Behaviour, Builtin}, execution::{Agent, JsResult, RealmIdentifier}, - types::{String, Value, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, String, Value}, }, engine::context::GcScope, }; diff --git a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/iteration/async_iterator_prototype.rs b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/iteration/async_iterator_prototype.rs index 8a84eab25..cc697367d 100644 --- a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/iteration/async_iterator_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/iteration/async_iterator_prototype.rs @@ -8,7 +8,7 @@ use crate::{ builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ArgumentsList, Behaviour, Builtin}, execution::{Agent, JsResult, RealmIdentifier}, - types::{PropertyKey, String, Value, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, PropertyKey, String, Value}, }, heap::WellKnownSymbolIndexes, }; diff --git a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/iteration/iterator_prototype.rs b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/iteration/iterator_prototype.rs index ecddd303b..45c68dc7e 100644 --- a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/iteration/iterator_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/iteration/iterator_prototype.rs @@ -8,7 +8,7 @@ use crate::{ builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ArgumentsList, Behaviour, Builtin}, execution::{Agent, JsResult, RealmIdentifier}, - types::{PropertyKey, String, Value, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, PropertyKey, String, Value}, }, heap::WellKnownSymbolIndexes, }; diff --git a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/promise_objects/promise_abstract_operations/promise_capability_records.rs b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/promise_objects/promise_abstract_operations/promise_capability_records.rs index a534e25ab..2cbd10463 100644 --- a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/promise_objects/promise_abstract_operations/promise_capability_records.rs +++ b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/promise_objects/promise_abstract_operations/promise_capability_records.rs @@ -5,20 +5,20 @@ //! ## [27.2.1.1 PromiseCapability Records]() use crate::ecmascript::abstract_operations::operations_on_objects::try_get; -use crate::engine::context::{Bindable, GcScope, NoGcScope}; use crate::engine::TryResult; +use crate::engine::context::{Bindable, GcScope, NoGcScope}; use crate::{ ecmascript::{ abstract_operations::operations_on_objects::get, builtins::promise::{ - data::{PromiseHeapData, PromiseState}, Promise, + data::{PromiseHeapData, PromiseState}, }, execution::{ - agent::{ExceptionType, PromiseRejectionTrackerOperation}, Agent, JsResult, + agent::{ExceptionType, PromiseRejectionTrackerOperation}, }, - types::{Function, IntoValue, Object, Value, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, Function, IntoValue, Object, Value}, }, heap::{CompactionLists, CreateHeapData, HeapMarkAndSweep, WorkQueues}, }; diff --git a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/promise_objects/promise_abstract_operations/promise_jobs.rs b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/promise_objects/promise_abstract_operations/promise_jobs.rs index 21e1ae5e5..6151406bc 100644 --- a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/promise_objects/promise_abstract_operations/promise_jobs.rs +++ b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/promise_objects/promise_abstract_operations/promise_jobs.rs @@ -4,15 +4,15 @@ //! ## [27.2.2 Promise Jobs](https://tc39.es/ecma262/#sec-promise-jobs) -use crate::engine::context::{Bindable, GcScope}; use crate::engine::Global; +use crate::engine::context::{Bindable, GcScope}; use crate::{ ecmascript::{ abstract_operations::operations_on_objects::{call_function, get_function_realm}, - builtins::{promise::Promise, ArgumentsList}, + builtins::{ArgumentsList, promise::Promise}, execution::{ - agent::{InnerJob, Job, JsError}, Agent, JsResult, + agent::{InnerJob, Job, JsError}, }, types::{Function, IntoValue, Object, Value}, }, diff --git a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/promise_objects/promise_abstract_operations/promise_reaction_records.rs b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/promise_objects/promise_abstract_operations/promise_reaction_records.rs index 715c16bf1..15dddf460 100644 --- a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/promise_objects/promise_abstract_operations/promise_reaction_records.rs +++ b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/promise_objects/promise_abstract_operations/promise_reaction_records.rs @@ -14,7 +14,7 @@ use crate::{ types::Function, }, engine::rootable::{HeapRootData, HeapRootRef, Rootable}, - heap::{indexes::BaseIndex, CreateHeapData, Heap, HeapMarkAndSweep}, + heap::{CreateHeapData, Heap, HeapMarkAndSweep, indexes::BaseIndex}, }; use super::promise_capability_records::PromiseCapability; diff --git a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/promise_objects/promise_constructor.rs b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/promise_objects/promise_constructor.rs index a75697c57..0c66e7b32 100644 --- a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/promise_objects/promise_constructor.rs +++ b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/promise_objects/promise_constructor.rs @@ -11,17 +11,17 @@ use crate::{ }, builders::builtin_function_builder::BuiltinFunctionBuilder, builtins::{ + ArgumentsList, Behaviour, Builtin, BuiltinGetter, BuiltinIntrinsicConstructor, ordinary::ordinary_create_from_constructor, promise::{ - data::{PromiseHeapData, PromiseState}, Promise, + data::{PromiseHeapData, PromiseState}, }, - ArgumentsList, Behaviour, Builtin, BuiltinGetter, BuiltinIntrinsicConstructor, }, - execution::{agent::ExceptionType, Agent, JsResult, ProtoIntrinsics, RealmIdentifier}, + execution::{Agent, JsResult, ProtoIntrinsics, RealmIdentifier, agent::ExceptionType}, types::{ - Function, IntoObject, IntoValue, Object, PropertyKey, String, Value, - BUILTIN_STRING_MEMORY, + BUILTIN_STRING_MEMORY, Function, IntoObject, IntoValue, Object, PropertyKey, String, + Value, }, }, heap::{CreateHeapData, IntrinsicConstructorIndexes, ObjectEntry, WellKnownSymbolIndexes}, diff --git a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/promise_objects/promise_prototype.rs b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/promise_objects/promise_prototype.rs index f417f9bf4..c3a6f2763 100644 --- a/nova_vm/src/ecmascript/builtins/control_abstraction_objects/promise_objects/promise_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/control_abstraction_objects/promise_objects/promise_prototype.rs @@ -8,17 +8,17 @@ use crate::{ abstract_operations::operations_on_objects::invoke, builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ + ArgumentsList, Behaviour, Builtin, promise::{ - data::{PromiseReactions, PromiseState}, Promise, + data::{PromiseReactions, PromiseState}, }, - ArgumentsList, Behaviour, Builtin, }, execution::{ - agent::{ExceptionType, PromiseRejectionTrackerOperation}, Agent, JsResult, RealmIdentifier, + agent::{ExceptionType, PromiseRejectionTrackerOperation}, }, - types::{Function, IntoValue, String, Value, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, Function, IntoValue, String, Value}, }, heap::{CreateHeapData, WellKnownSymbolIndexes}, }; diff --git a/nova_vm/src/ecmascript/builtins/data_view.rs b/nova_vm/src/ecmascript/builtins/data_view.rs index 1da56c212..149c3fee3 100644 --- a/nova_vm/src/ecmascript/builtins/data_view.rs +++ b/nova_vm/src/ecmascript/builtins/data_view.rs @@ -12,21 +12,21 @@ use crate::{ }, }, engine::{ + Scoped, context::NoGcScope, rootable::{HeapRootData, HeapRootRef, Rootable}, - Scoped, }, heap::{ - indexes::{DataViewIndex, IntoBaseIndex}, CreateHeapData, Heap, HeapMarkAndSweep, + indexes::{DataViewIndex, IntoBaseIndex}, }, }; use self::data::DataViewHeapData; use super::{ - array_buffer::{ViewedArrayBufferByteLength, ViewedArrayBufferByteOffset}, ArrayBuffer, + array_buffer::{ViewedArrayBufferByteLength, ViewedArrayBufferByteOffset}, }; pub(crate) mod abstract_operations; diff --git a/nova_vm/src/ecmascript/builtins/data_view/abstract_operations.rs b/nova_vm/src/ecmascript/builtins/data_view/abstract_operations.rs index c88da2cdd..2085d7c42 100644 --- a/nova_vm/src/ecmascript/builtins/data_view/abstract_operations.rs +++ b/nova_vm/src/ecmascript/builtins/data_view/abstract_operations.rs @@ -3,17 +3,17 @@ use crate::{ abstract_operations::type_conversion::{to_big_int, to_index, to_number, try_to_index}, builtins::{ array_buffer::{ - array_buffer_byte_length, get_value_from_buffer, is_fixed_length_array_buffer, - set_value_in_buffer, Ordering, + Ordering, array_buffer_byte_length, get_value_from_buffer, + is_fixed_length_array_buffer, set_value_in_buffer, }, structured_data::data_view_objects::data_view_prototype::require_internal_slot_data_view, }, - execution::{agent::ExceptionType, Agent, JsResult}, + execution::{Agent, JsResult, agent::ExceptionType}, types::{BigInt, IntoNumeric, Number, Numeric, Value, Viewable}, }, engine::{ - context::{GcScope, NoGcScope}, TryResult, + context::{GcScope, NoGcScope}, }, }; diff --git a/nova_vm/src/ecmascript/builtins/data_view/data.rs b/nova_vm/src/ecmascript/builtins/data_view/data.rs index 014b530ce..ed2d0771b 100644 --- a/nova_vm/src/ecmascript/builtins/data_view/data.rs +++ b/nova_vm/src/ecmascript/builtins/data_view/data.rs @@ -5,8 +5,8 @@ use crate::{ ecmascript::{ builtins::{ - array_buffer::{ViewedArrayBufferByteLength, ViewedArrayBufferByteOffset}, ArrayBuffer, + array_buffer::{ViewedArrayBufferByteLength, ViewedArrayBufferByteOffset}, }, types::OrdinaryObject, }, diff --git a/nova_vm/src/ecmascript/builtins/date.rs b/nova_vm/src/ecmascript/builtins/date.rs index 602f6b46a..f4fc9eaad 100644 --- a/nova_vm/src/ecmascript/builtins/date.rs +++ b/nova_vm/src/ecmascript/builtins/date.rs @@ -14,12 +14,12 @@ use crate::{ }, }, engine::{ + Scoped, context::NoGcScope, rootable::{HeapRootData, HeapRootRef, Rootable}, - Scoped, }, heap::{ - indexes::DateIndex, CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, WorkQueues, + CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, WorkQueues, indexes::DateIndex, }, }; diff --git a/nova_vm/src/ecmascript/builtins/ecmascript_function.rs b/nova_vm/src/ecmascript/builtins/ecmascript_function.rs index 9c61dd4ab..3919c1c36 100644 --- a/nova_vm/src/ecmascript/builtins/ecmascript_function.rs +++ b/nova_vm/src/ecmascript/builtins/ecmascript_function.rs @@ -15,32 +15,33 @@ use crate::{ ecmascript::{ abstract_operations::type_conversion::to_object, execution::{ + Agent, ECMAScriptCodeEvaluationState, EnvironmentIndex, ExecutionContext, + FunctionEnvironmentIndex, JsResult, PrivateEnvironmentIndex, ProtoIntrinsics, + RealmIdentifier, ThisBindingStatus, agent::{ - get_active_script_or_module, ExceptionType::{self, SyntaxError}, + get_active_script_or_module, }, - new_function_environment, Agent, ECMAScriptCodeEvaluationState, EnvironmentIndex, - ExecutionContext, FunctionEnvironmentIndex, JsResult, PrivateEnvironmentIndex, - ProtoIntrinsics, RealmIdentifier, ThisBindingStatus, + new_function_environment, }, - scripts_and_modules::{source_code::SourceCode, ScriptOrModule}, + scripts_and_modules::{ScriptOrModule, source_code::SourceCode}, syntax_directed_operations::function_definitions::{ evaluate_async_function_body, evaluate_function_body, evaluate_generator_body, }, types::{ + BUILTIN_STRING_MEMORY, ECMAScriptFunctionHeapData, Function, + FunctionInternalProperties, InternalMethods, InternalSlots, IntoFunction, IntoObject, + IntoValue, Object, OrdinaryObject, PropertyDescriptor, PropertyKey, String, Value, function_create_backing_object, function_internal_define_own_property, function_internal_delete, function_internal_get, function_internal_get_own_property, function_internal_has_property, function_internal_own_property_keys, - function_internal_set, ECMAScriptFunctionHeapData, Function, - FunctionInternalProperties, InternalMethods, InternalSlots, IntoFunction, IntoObject, - IntoValue, Object, OrdinaryObject, PropertyDescriptor, PropertyKey, String, Value, - BUILTIN_STRING_MEMORY, + function_internal_set, }, }, engine::Executable, heap::{ - indexes::ECMAScriptFunctionIndex, CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, - WorkQueues, + CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, WorkQueues, + indexes::ECMAScriptFunctionIndex, }, }; use crate::{ @@ -49,15 +50,15 @@ use crate::{ types::{function_try_get, function_try_has_property, function_try_set}, }, engine::{ + Scoped, TryResult, context::{Bindable, GcScope, NoGcScope}, rootable::{HeapRootData, HeapRootRef, Rootable}, - Scoped, TryResult, }, }; use super::{ - ordinary::{ordinary_create_from_constructor, ordinary_object_create_with_intrinsics}, ArgumentsList, + ordinary::{ordinary_create_from_constructor, ordinary_object_create_with_intrinsics}, }; #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)] @@ -344,10 +345,12 @@ impl<'a> InternalSlots<'a> for ECMAScriptFunction<'a> { } fn set_backing_object(self, agent: &mut Agent, backing_object: OrdinaryObject<'static>) { - assert!(agent[self] - .object_index - .replace(backing_object.unbind()) - .is_none()); + assert!( + agent[self] + .object_index + .replace(backing_object.unbind()) + .is_none() + ); } fn create_backing_object(self, agent: &mut Agent) -> OrdinaryObject<'static> { diff --git a/nova_vm/src/ecmascript/builtins/embedder_object.rs b/nova_vm/src/ecmascript/builtins/embedder_object.rs index 0583dc3c0..c17bde1da 100644 --- a/nova_vm/src/ecmascript/builtins/embedder_object.rs +++ b/nova_vm/src/ecmascript/builtins/embedder_object.rs @@ -11,10 +11,10 @@ use crate::{ InternalMethods, InternalSlots, IntoObject, IntoValue, Object, OrdinaryObject, Value, }, }, - engine::{context::NoGcScope, rootable::HeapRootData, Scoped}, + engine::{Scoped, context::NoGcScope, rootable::HeapRootData}, heap::{ - indexes::{BaseIndex, EmbedderObjectIndex}, HeapMarkAndSweep, + indexes::{BaseIndex, EmbedderObjectIndex}, }, }; diff --git a/nova_vm/src/ecmascript/builtins/error.rs b/nova_vm/src/ecmascript/builtins/error.rs index d0c672053..07c348b4b 100644 --- a/nova_vm/src/ecmascript/builtins/error.rs +++ b/nova_vm/src/ecmascript/builtins/error.rs @@ -10,18 +10,18 @@ pub(crate) use data::ErrorHeapData; use crate::engine::context::{Bindable, GcScope, NoGcScope}; use crate::engine::rootable::{HeapRootData, HeapRootRef, Rootable}; -use crate::engine::{unwrap_try, Scoped, TryResult}; +use crate::engine::{Scoped, TryResult, unwrap_try}; use crate::{ ecmascript::{ - execution::{agent::ExceptionType, Agent, JsResult, ProtoIntrinsics}, + execution::{Agent, JsResult, ProtoIntrinsics, agent::ExceptionType}, types::{ - InternalMethods, InternalSlots, IntoObject, IntoValue, Object, ObjectHeapData, - OrdinaryObject, PropertyDescriptor, PropertyKey, String, Value, BUILTIN_STRING_MEMORY, + BUILTIN_STRING_MEMORY, InternalMethods, InternalSlots, IntoObject, IntoValue, Object, + ObjectHeapData, OrdinaryObject, PropertyDescriptor, PropertyKey, String, Value, }, }, heap::{ - indexes::ErrorIndex, CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, ObjectEntry, - ObjectEntryPropertyDescriptor, WorkQueues, + CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, ObjectEntry, + ObjectEntryPropertyDescriptor, WorkQueues, indexes::ErrorIndex, }, }; @@ -122,10 +122,12 @@ impl<'a> InternalSlots<'a> for Error<'a> { } fn set_backing_object(self, agent: &mut Agent, backing_object: OrdinaryObject<'static>) { - assert!(agent[self] - .object_index - .replace(backing_object.unbind()) - .is_none()); + assert!( + agent[self] + .object_index + .replace(backing_object.unbind()) + .is_none() + ); } fn create_backing_object(self, agent: &mut Agent) -> OrdinaryObject<'static> { diff --git a/nova_vm/src/ecmascript/builtins/finalization_registry.rs b/nova_vm/src/ecmascript/builtins/finalization_registry.rs index e7a060c48..deeb6eb75 100644 --- a/nova_vm/src/ecmascript/builtins/finalization_registry.rs +++ b/nova_vm/src/ecmascript/builtins/finalization_registry.rs @@ -12,13 +12,13 @@ use crate::{ }, }, engine::{ + Scoped, context::NoGcScope, rootable::{HeapRootData, HeapRootRef, Rootable}, - Scoped, }, heap::{ - indexes::{BaseIndex, FinalizationRegistryIndex}, CreateHeapData, Heap, HeapMarkAndSweep, + indexes::{BaseIndex, FinalizationRegistryIndex}, }, }; diff --git a/nova_vm/src/ecmascript/builtins/fundamental_objects/boolean_objects/boolean_constructor.rs b/nova_vm/src/ecmascript/builtins/fundamental_objects/boolean_objects/boolean_constructor.rs index c993c61aa..4dd03aa93 100644 --- a/nova_vm/src/ecmascript/builtins/fundamental_objects/boolean_objects/boolean_constructor.rs +++ b/nova_vm/src/ecmascript/builtins/fundamental_objects/boolean_objects/boolean_constructor.rs @@ -4,22 +4,22 @@ use crate::ecmascript::abstract_operations::type_conversion::to_boolean; use crate::ecmascript::builders::builtin_function_builder::BuiltinFunctionBuilder; -use crate::ecmascript::builtins::ordinary::ordinary_create_from_constructor; -use crate::ecmascript::builtins::primitive_objects::PrimitiveObject; -use crate::ecmascript::builtins::primitive_objects::PrimitiveObjectData; use crate::ecmascript::builtins::ArgumentsList; use crate::ecmascript::builtins::Behaviour; use crate::ecmascript::builtins::Builtin; use crate::ecmascript::builtins::BuiltinIntrinsicConstructor; +use crate::ecmascript::builtins::ordinary::ordinary_create_from_constructor; +use crate::ecmascript::builtins::primitive_objects::PrimitiveObject; +use crate::ecmascript::builtins::primitive_objects::PrimitiveObjectData; use crate::ecmascript::execution::Agent; use crate::ecmascript::execution::JsResult; use crate::ecmascript::execution::ProtoIntrinsics; use crate::ecmascript::execution::RealmIdentifier; +use crate::ecmascript::types::BUILTIN_STRING_MEMORY; use crate::ecmascript::types::Function; use crate::ecmascript::types::IntoObject; use crate::ecmascript::types::IntoValue; use crate::ecmascript::types::Object; -use crate::ecmascript::types::BUILTIN_STRING_MEMORY; use crate::ecmascript::types::{String, Value}; use crate::engine::context::GcScope; use crate::heap::IntrinsicConstructorIndexes; diff --git a/nova_vm/src/ecmascript/builtins/fundamental_objects/boolean_objects/boolean_prototype.rs b/nova_vm/src/ecmascript/builtins/fundamental_objects/boolean_objects/boolean_prototype.rs index 13010da41..051db17a9 100644 --- a/nova_vm/src/ecmascript/builtins/fundamental_objects/boolean_objects/boolean_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/fundamental_objects/boolean_objects/boolean_prototype.rs @@ -6,11 +6,11 @@ use crate::{ ecmascript::{ builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ - primitive_objects::{PrimitiveObjectData, PrimitiveObjectHeapData}, ArgumentsList, Behaviour, Builtin, + primitive_objects::{PrimitiveObjectData, PrimitiveObjectHeapData}, }, - execution::{agent::ExceptionType, Agent, JsResult, RealmIdentifier}, - types::{String, Value, BUILTIN_STRING_MEMORY}, + execution::{Agent, JsResult, RealmIdentifier, agent::ExceptionType}, + types::{BUILTIN_STRING_MEMORY, String, Value}, }, engine::context::{GcScope, NoGcScope}, }; diff --git a/nova_vm/src/ecmascript/builtins/fundamental_objects/error_objects/aggregate_error_constructors.rs b/nova_vm/src/ecmascript/builtins/fundamental_objects/error_objects/aggregate_error_constructors.rs index e6207e0ae..5dee085a7 100644 --- a/nova_vm/src/ecmascript/builtins/fundamental_objects/error_objects/aggregate_error_constructors.rs +++ b/nova_vm/src/ecmascript/builtins/fundamental_objects/error_objects/aggregate_error_constructors.rs @@ -13,13 +13,13 @@ use crate::{ }, builders::builtin_function_builder::BuiltinFunctionBuilder, builtins::{ - error::Error, ordinary::ordinary_create_from_constructor, ArgumentsList, Behaviour, - Builtin, BuiltinIntrinsicConstructor, + ArgumentsList, Behaviour, Builtin, BuiltinIntrinsicConstructor, error::Error, + ordinary::ordinary_create_from_constructor, }, - execution::{agent::ExceptionType, Agent, JsResult, ProtoIntrinsics, RealmIdentifier}, + execution::{Agent, JsResult, ProtoIntrinsics, RealmIdentifier, agent::ExceptionType}, types::{ - Function, IntoObject, IntoValue, Object, PropertyDescriptor, PropertyKey, String, - Value, BUILTIN_STRING_MEMORY, + BUILTIN_STRING_MEMORY, Function, IntoObject, IntoValue, Object, PropertyDescriptor, + PropertyKey, String, Value, }, }, heap::IntrinsicConstructorIndexes, diff --git a/nova_vm/src/ecmascript/builtins/fundamental_objects/error_objects/aggregate_error_prototypes.rs b/nova_vm/src/ecmascript/builtins/fundamental_objects/error_objects/aggregate_error_prototypes.rs index 288a3be6c..398ac8c7f 100644 --- a/nova_vm/src/ecmascript/builtins/fundamental_objects/error_objects/aggregate_error_prototypes.rs +++ b/nova_vm/src/ecmascript/builtins/fundamental_objects/error_objects/aggregate_error_prototypes.rs @@ -5,7 +5,7 @@ use crate::ecmascript::{ builders::ordinary_object_builder::OrdinaryObjectBuilder, execution::{Agent, RealmIdentifier}, - types::{IntoValue, String, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, IntoValue, String}, }; pub(crate) struct AggregateErrorPrototype; diff --git a/nova_vm/src/ecmascript/builtins/fundamental_objects/error_objects/error_constructor.rs b/nova_vm/src/ecmascript/builtins/fundamental_objects/error_objects/error_constructor.rs index dad54bb33..6480a055c 100644 --- a/nova_vm/src/ecmascript/builtins/fundamental_objects/error_objects/error_constructor.rs +++ b/nova_vm/src/ecmascript/builtins/fundamental_objects/error_objects/error_constructor.rs @@ -6,17 +6,18 @@ use crate::ecmascript::abstract_operations::operations_on_objects::get; use crate::ecmascript::abstract_operations::operations_on_objects::has_property; use crate::ecmascript::abstract_operations::type_conversion::to_string; use crate::ecmascript::builders::builtin_function_builder::BuiltinFunctionBuilder; -use crate::ecmascript::builtins::error::Error; -use crate::ecmascript::builtins::ordinary::ordinary_create_from_constructor; use crate::ecmascript::builtins::ArgumentsList; use crate::ecmascript::builtins::Behaviour; use crate::ecmascript::builtins::Builtin; use crate::ecmascript::builtins::BuiltinIntrinsicConstructor; -use crate::ecmascript::execution::agent::ExceptionType; +use crate::ecmascript::builtins::error::Error; +use crate::ecmascript::builtins::ordinary::ordinary_create_from_constructor; use crate::ecmascript::execution::Agent; use crate::ecmascript::execution::JsResult; use crate::ecmascript::execution::ProtoIntrinsics; use crate::ecmascript::execution::RealmIdentifier; +use crate::ecmascript::execution::agent::ExceptionType; +use crate::ecmascript::types::BUILTIN_STRING_MEMORY; use crate::ecmascript::types::Function; use crate::ecmascript::types::IntoObject; use crate::ecmascript::types::IntoValue; @@ -24,7 +25,6 @@ use crate::ecmascript::types::Object; use crate::ecmascript::types::PropertyKey; use crate::ecmascript::types::String; use crate::ecmascript::types::Value; -use crate::ecmascript::types::BUILTIN_STRING_MEMORY; use crate::engine::context::Bindable; use crate::engine::context::GcScope; use crate::heap::IntrinsicConstructorIndexes; diff --git a/nova_vm/src/ecmascript/builtins/fundamental_objects/error_objects/error_prototype.rs b/nova_vm/src/ecmascript/builtins/fundamental_objects/error_objects/error_prototype.rs index 3aa86ab82..19658fb25 100644 --- a/nova_vm/src/ecmascript/builtins/fundamental_objects/error_objects/error_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/fundamental_objects/error_objects/error_prototype.rs @@ -7,8 +7,8 @@ use crate::{ abstract_operations::{operations_on_objects::get, type_conversion::to_string}, builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ArgumentsList, Behaviour, Builtin}, - execution::{agent::ExceptionType, Agent, JsResult, RealmIdentifier}, - types::{IntoValue, Object, PropertyKey, String, Value, BUILTIN_STRING_MEMORY}, + execution::{Agent, JsResult, RealmIdentifier, agent::ExceptionType}, + types::{BUILTIN_STRING_MEMORY, IntoValue, Object, PropertyKey, String, Value}, }, engine::context::{Bindable, GcScope}, }; diff --git a/nova_vm/src/ecmascript/builtins/fundamental_objects/error_objects/native_error_constructors.rs b/nova_vm/src/ecmascript/builtins/fundamental_objects/error_objects/native_error_constructors.rs index 3cf9206e0..bfa9ac219 100644 --- a/nova_vm/src/ecmascript/builtins/fundamental_objects/error_objects/native_error_constructors.rs +++ b/nova_vm/src/ecmascript/builtins/fundamental_objects/error_objects/native_error_constructors.rs @@ -8,11 +8,11 @@ use crate::{ abstract_operations::type_conversion::to_string, builders::builtin_function_builder::BuiltinFunctionBuilder, builtins::{ - error::Error, ordinary::ordinary_create_from_constructor, ArgumentsList, Behaviour, - Builtin, BuiltinIntrinsicConstructor, + ArgumentsList, Behaviour, Builtin, BuiltinIntrinsicConstructor, error::Error, + ordinary::ordinary_create_from_constructor, }, - execution::{agent::ExceptionType, Agent, JsResult, ProtoIntrinsics, RealmIdentifier}, - types::{Function, IntoObject, IntoValue, Object, String, Value, BUILTIN_STRING_MEMORY}, + execution::{Agent, JsResult, ProtoIntrinsics, RealmIdentifier, agent::ExceptionType}, + types::{BUILTIN_STRING_MEMORY, Function, IntoObject, IntoValue, Object, String, Value}, }, heap::IntrinsicConstructorIndexes, }; diff --git a/nova_vm/src/ecmascript/builtins/fundamental_objects/error_objects/native_error_prototypes.rs b/nova_vm/src/ecmascript/builtins/fundamental_objects/error_objects/native_error_prototypes.rs index 5c820f7a0..b0834e5fb 100644 --- a/nova_vm/src/ecmascript/builtins/fundamental_objects/error_objects/native_error_prototypes.rs +++ b/nova_vm/src/ecmascript/builtins/fundamental_objects/error_objects/native_error_prototypes.rs @@ -5,7 +5,7 @@ use crate::ecmascript::{ builders::ordinary_object_builder::OrdinaryObjectBuilder, execution::{Agent, RealmIdentifier}, - types::{IntoValue, String, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, IntoValue, String}, }; pub(crate) struct NativeErrorPrototypes; diff --git a/nova_vm/src/ecmascript/builtins/fundamental_objects/function_objects/function_constructor.rs b/nova_vm/src/ecmascript/builtins/fundamental_objects/function_objects/function_constructor.rs index 234d642fd..42871027f 100644 --- a/nova_vm/src/ecmascript/builtins/fundamental_objects/function_objects/function_constructor.rs +++ b/nova_vm/src/ecmascript/builtins/fundamental_objects/function_objects/function_constructor.rs @@ -9,18 +9,18 @@ use crate::{ abstract_operations::type_conversion::{to_string, to_string_primitive}, builders::builtin_function_builder::BuiltinFunctionBuilder, builtins::{ - make_constructor, ordinary::get_prototype_from_constructor, ordinary_function_create, - set_function_name, ArgumentsList, Behaviour, Builtin, BuiltinIntrinsicConstructor, - ECMAScriptFunction, OrdinaryFunctionCreateParams, + ArgumentsList, Behaviour, Builtin, BuiltinIntrinsicConstructor, ECMAScriptFunction, + OrdinaryFunctionCreateParams, make_constructor, + ordinary::get_prototype_from_constructor, ordinary_function_create, set_function_name, }, execution::{ - agent::ExceptionType, Agent, EnvironmentIndex, JsResult, ProtoIntrinsics, - RealmIdentifier, + Agent, EnvironmentIndex, JsResult, ProtoIntrinsics, RealmIdentifier, + agent::ExceptionType, }, scripts_and_modules::source_code::SourceCode, types::{ - Function, IntoObject, IntoValue, Object, Primitive, String, Value, - BUILTIN_STRING_MEMORY, + BUILTIN_STRING_MEMORY, Function, IntoObject, IntoValue, Object, Primitive, String, + Value, }, }, engine::context::{Bindable, GcScope}, diff --git a/nova_vm/src/ecmascript/builtins/fundamental_objects/function_objects/function_prototype.rs b/nova_vm/src/ecmascript/builtins/fundamental_objects/function_objects/function_prototype.rs index e01293271..8dd6c7635 100644 --- a/nova_vm/src/ecmascript/builtins/fundamental_objects/function_objects/function_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/fundamental_objects/function_objects/function_prototype.rs @@ -6,8 +6,8 @@ use crate::ecmascript::abstract_operations::operations_on_objects::{ try_get, try_has_own_property, }; use crate::ecmascript::abstract_operations::type_conversion::to_integer_or_infinity_number; -use crate::engine::context::{Bindable, GcScope}; use crate::engine::TryResult; +use crate::engine::context::{Bindable, GcScope}; use crate::{ ecmascript::{ abstract_operations::{ @@ -19,13 +19,13 @@ use crate::{ }, builders::builtin_function_builder::BuiltinFunctionBuilder, builtins::{ - bound_function::bound_function_create, set_function_name, ArgumentsList, Behaviour, - Builtin, BuiltinFunction, BuiltinIntrinsic, BuiltinIntrinsicConstructor, + ArgumentsList, Behaviour, Builtin, BuiltinFunction, BuiltinIntrinsic, + BuiltinIntrinsicConstructor, bound_function::bound_function_create, set_function_name, }, - execution::{agent::ExceptionType, Agent, JsResult, RealmIdentifier}, + execution::{Agent, JsResult, RealmIdentifier, agent::ExceptionType}, types::{ - Function, InternalSlots, IntoFunction, IntoObject, IntoValue, Number, ObjectHeapData, - OrdinaryObject, PropertyKey, String, Value, BUILTIN_STRING_MEMORY, + BUILTIN_STRING_MEMORY, Function, InternalSlots, IntoFunction, IntoObject, IntoValue, + Number, ObjectHeapData, OrdinaryObject, PropertyKey, String, Value, }, }, heap::{ diff --git a/nova_vm/src/ecmascript/builtins/fundamental_objects/object_objects/object_constructor.rs b/nova_vm/src/ecmascript/builtins/fundamental_objects/object_objects/object_constructor.rs index 2bd565888..bcad6d224 100644 --- a/nova_vm/src/ecmascript/builtins/fundamental_objects/object_objects/object_constructor.rs +++ b/nova_vm/src/ecmascript/builtins/fundamental_objects/object_objects/object_constructor.rs @@ -21,18 +21,19 @@ use crate::{ }, builders::builtin_function_builder::BuiltinFunctionBuilder, builtins::{ - ordinary::{ordinary_create_from_constructor, ordinary_object_create_with_intrinsics}, ArgumentsList, Behaviour, Builtin, BuiltinIntrinsicConstructor, + ordinary::{ordinary_create_from_constructor, ordinary_object_create_with_intrinsics}, }, - execution::{agent::ExceptionType, Agent, JsResult, ProtoIntrinsics, RealmIdentifier}, + execution::{Agent, JsResult, ProtoIntrinsics, RealmIdentifier, agent::ExceptionType}, types::{ - scope_property_keys, InternalMethods, IntoFunction, IntoObject, IntoValue, Object, - OrdinaryObject, PropertyDescriptor, PropertyKey, String, Value, BUILTIN_STRING_MEMORY, + BUILTIN_STRING_MEMORY, InternalMethods, IntoFunction, IntoObject, IntoValue, Object, + OrdinaryObject, PropertyDescriptor, PropertyKey, String, Value, scope_property_keys, }, }, engine::{ + Scoped, TryResult, context::{Bindable, GcScope, NoGcScope}, - unwrap_try, Scoped, TryResult, + unwrap_try, }, heap::{IntrinsicConstructorIndexes, ObjectEntry, WellKnownSymbolIndexes}, }; diff --git a/nova_vm/src/ecmascript/builtins/fundamental_objects/object_objects/object_prototype.rs b/nova_vm/src/ecmascript/builtins/fundamental_objects/object_objects/object_prototype.rs index cb3f3bd7c..d6d257544 100644 --- a/nova_vm/src/ecmascript/builtins/fundamental_objects/object_objects/object_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/fundamental_objects/object_objects/object_prototype.rs @@ -13,11 +13,11 @@ use crate::{ }, builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ - primitive_objects::PrimitiveObjectData, ArgumentsList, Behaviour, Builtin, - BuiltinIntrinsic, + ArgumentsList, Behaviour, Builtin, BuiltinIntrinsic, + primitive_objects::PrimitiveObjectData, }, execution::{Agent, JsResult, RealmIdentifier}, - types::{InternalMethods, Object, PropertyKey, String, Value, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, InternalMethods, Object, PropertyKey, String, Value}, }, heap::{IntrinsicFunctionIndexes, WellKnownSymbolIndexes}, }; diff --git a/nova_vm/src/ecmascript/builtins/fundamental_objects/symbol_objects/symbol_constructor.rs b/nova_vm/src/ecmascript/builtins/fundamental_objects/symbol_objects/symbol_constructor.rs index dc39185e7..361a40412 100644 --- a/nova_vm/src/ecmascript/builtins/fundamental_objects/symbol_objects/symbol_constructor.rs +++ b/nova_vm/src/ecmascript/builtins/fundamental_objects/symbol_objects/symbol_constructor.rs @@ -8,18 +8,18 @@ use crate::ecmascript::builtins::ArgumentsList; use crate::ecmascript::builtins::Behaviour; use crate::ecmascript::builtins::Builtin; use crate::ecmascript::builtins::BuiltinIntrinsicConstructor; -use crate::ecmascript::execution::agent::ExceptionType; use crate::ecmascript::execution::Agent; use crate::ecmascript::execution::JsResult; use crate::ecmascript::execution::RealmIdentifier; +use crate::ecmascript::execution::agent::ExceptionType; use crate::ecmascript::types::IntoObject; +use crate::ecmascript::types::BUILTIN_STRING_MEMORY; use crate::ecmascript::types::IntoValue; use crate::ecmascript::types::Object; use crate::ecmascript::types::String; use crate::ecmascript::types::SymbolHeapData; use crate::ecmascript::types::Value; -use crate::ecmascript::types::BUILTIN_STRING_MEMORY; use crate::engine::context::{Bindable, GcScope}; use crate::heap::CreateHeapData; use crate::heap::IntrinsicConstructorIndexes; diff --git a/nova_vm/src/ecmascript/builtins/fundamental_objects/symbol_objects/symbol_prototype.rs b/nova_vm/src/ecmascript/builtins/fundamental_objects/symbol_objects/symbol_prototype.rs index d913a9af0..cc48a17b7 100644 --- a/nova_vm/src/ecmascript/builtins/fundamental_objects/symbol_objects/symbol_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/fundamental_objects/symbol_objects/symbol_prototype.rs @@ -8,9 +8,9 @@ use crate::{ ecmascript::{ builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ArgumentsList, Builtin, BuiltinGetter}, - execution::{agent::ExceptionType, Agent, JsResult, RealmIdentifier}, + execution::{Agent, JsResult, RealmIdentifier, agent::ExceptionType}, types::{ - IntoValue, PropertyKey, String, Symbol, SymbolHeapData, Value, BUILTIN_STRING_MEMORY, + BUILTIN_STRING_MEMORY, IntoValue, PropertyKey, String, Symbol, SymbolHeapData, Value, }, }, heap::WellKnownSymbolIndexes, diff --git a/nova_vm/src/ecmascript/builtins/global_object.rs b/nova_vm/src/ecmascript/builtins/global_object.rs index 2edede0b1..f33b746a1 100644 --- a/nova_vm/src/ecmascript/builtins/global_object.rs +++ b/nova_vm/src/ecmascript/builtins/global_object.rs @@ -17,19 +17,20 @@ use crate::{ abstract_operations::type_conversion::to_number, builders::builtin_function_builder::BuiltinFunctionBuilder, execution::{ - agent::ExceptionType, get_this_environment, new_declarative_environment, Agent, - ECMAScriptCodeEvaluationState, EnvironmentIndex, ExecutionContext, JsResult, - PrivateEnvironmentIndex, RealmIdentifier, + Agent, ECMAScriptCodeEvaluationState, EnvironmentIndex, ExecutionContext, JsResult, + PrivateEnvironmentIndex, RealmIdentifier, agent::ExceptionType, get_this_environment, + new_declarative_environment, }, scripts_and_modules::source_code::SourceCode, syntax_directed_operations::{ miscellaneous::instantiate_function_object, scope_analysis::{ + LexicallyScopedDeclaration, VarScopedDeclaration, script_lexically_scoped_declarations, script_var_declared_names, - script_var_scoped_declarations, LexicallyScopedDeclaration, VarScopedDeclaration, + script_var_scoped_declarations, }, }, - types::{Function, IntoValue, String, Value, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, Function, IntoValue, String, Value}, }, engine::{Executable, Vm}, heap::IntrinsicFunctionIndexes, diff --git a/nova_vm/src/ecmascript/builtins/indexed_collections/array_objects/array_constructor.rs b/nova_vm/src/ecmascript/builtins/indexed_collections/array_objects/array_constructor.rs index eb201e175..b5ffb2534 100644 --- a/nova_vm/src/ecmascript/builtins/indexed_collections/array_objects/array_constructor.rs +++ b/nova_vm/src/ecmascript/builtins/indexed_collections/array_objects/array_constructor.rs @@ -23,20 +23,22 @@ use crate::ecmascript::abstract_operations::type_conversion::to_object; use crate::ecmascript::abstract_operations::type_conversion::to_uint32_number; use crate::ecmascript::builders::builtin_function_builder::BuiltinFunctionBuilder; -use crate::ecmascript::builtins::array_create; -use crate::ecmascript::builtins::ordinary::get_prototype_from_constructor; use crate::ecmascript::builtins::ArgumentsList; use crate::ecmascript::builtins::Behaviour; use crate::ecmascript::builtins::Builtin; use crate::ecmascript::builtins::BuiltinGetter; use crate::ecmascript::builtins::BuiltinIntrinsicConstructor; -use crate::ecmascript::execution::agent::ExceptionType; +use crate::ecmascript::builtins::array_create; +use crate::ecmascript::builtins::ordinary::get_prototype_from_constructor; use crate::ecmascript::execution::Agent; use crate::ecmascript::execution::JsResult; +use crate::ecmascript::execution::agent::ExceptionType; use crate::ecmascript::execution::ProtoIntrinsics; use crate::ecmascript::execution::RealmIdentifier; +use crate::SmallInteger; +use crate::ecmascript::types::BUILTIN_STRING_MEMORY; use crate::ecmascript::types::Function; use crate::ecmascript::types::InternalMethods; use crate::ecmascript::types::IntoFunction; @@ -48,14 +50,12 @@ use crate::ecmascript::types::PropertyDescriptor; use crate::ecmascript::types::PropertyKey; use crate::ecmascript::types::String; use crate::ecmascript::types::Value; -use crate::ecmascript::types::BUILTIN_STRING_MEMORY; +use crate::engine::Scoped; use crate::engine::context::Bindable; use crate::engine::context::GcScope; use crate::engine::unwrap_try; -use crate::engine::Scoped; use crate::heap::IntrinsicConstructorIndexes; use crate::heap::WellKnownSymbolIndexes; -use crate::SmallInteger; pub struct ArrayConstructor; diff --git a/nova_vm/src/ecmascript/builtins/indexed_collections/array_objects/array_iterator_objects/array_iterator.rs b/nova_vm/src/ecmascript/builtins/indexed_collections/array_objects/array_iterator_objects/array_iterator.rs index cb82b9807..30d10f09c 100644 --- a/nova_vm/src/ecmascript/builtins/indexed_collections/array_objects/array_iterator_objects/array_iterator.rs +++ b/nova_vm/src/ecmascript/builtins/indexed_collections/array_objects/array_iterator_objects/array_iterator.rs @@ -12,13 +12,13 @@ use crate::{ }, }, engine::{ + Scoped, context::{Bindable, NoGcScope}, rootable::HeapRootData, - Scoped, }, heap::{ - indexes::ArrayIteratorIndex, CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, - WorkQueues, + CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, WorkQueues, + indexes::ArrayIteratorIndex, }, }; @@ -132,10 +132,12 @@ impl<'a> InternalSlots<'a> for ArrayIterator<'a> { } fn set_backing_object(self, agent: &mut Agent, backing_object: OrdinaryObject<'static>) { - assert!(agent[self] - .object_index - .replace(backing_object.unbind()) - .is_none()); + assert!( + agent[self] + .object_index + .replace(backing_object.unbind()) + .is_none() + ); } } diff --git a/nova_vm/src/ecmascript/builtins/indexed_collections/array_objects/array_iterator_objects/array_iterator_prototype.rs b/nova_vm/src/ecmascript/builtins/indexed_collections/array_objects/array_iterator_objects/array_iterator_prototype.rs index f3e9d3f17..90b932690 100644 --- a/nova_vm/src/ecmascript/builtins/indexed_collections/array_objects/array_iterator_objects/array_iterator_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/indexed_collections/array_objects/array_iterator_objects/array_iterator_prototype.rs @@ -21,12 +21,11 @@ use crate::{ }, builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ - array::ARRAY_INDEX_RANGE, + ArgumentsList, Behaviour, Builtin, array::ARRAY_INDEX_RANGE, indexed_collections::array_objects::array_iterator_objects::array_iterator::CollectionIteratorKind, - ArgumentsList, Behaviour, Builtin, }, - execution::{agent::ExceptionType, Agent, JsResult, RealmIdentifier}, - types::{IntoValue, Object, String, Value, BUILTIN_STRING_MEMORY}, + execution::{Agent, JsResult, RealmIdentifier, agent::ExceptionType}, + types::{BUILTIN_STRING_MEMORY, IntoValue, Object, String, Value}, }, engine::context::{Bindable, GcScope}, heap::WellKnownSymbolIndexes, diff --git a/nova_vm/src/ecmascript/builtins/indexed_collections/array_objects/array_prototype.rs b/nova_vm/src/ecmascript/builtins/indexed_collections/array_objects/array_prototype.rs index 256daeca2..9317b34cd 100644 --- a/nova_vm/src/ecmascript/builtins/indexed_collections/array_objects/array_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/indexed_collections/array_objects/array_prototype.rs @@ -11,8 +11,9 @@ use crate::ecmascript::abstract_operations::type_conversion::{ try_to_integer_or_infinity, try_to_string, }; use crate::engine::context::{Bindable, GcScope}; -use crate::engine::{unwrap_try, Scoped, TryResult}; +use crate::engine::{Scoped, TryResult, unwrap_try}; use crate::{ + SmallInteger, ecmascript::{ abstract_operations::{ operations_on_objects::{ @@ -26,20 +27,19 @@ use crate::{ }, builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ - array_create, array_species_create, ArgumentsList, ArrayHeapData, Behaviour, Builtin, - BuiltinIntrinsic, + ArgumentsList, ArrayHeapData, Behaviour, Builtin, BuiltinIntrinsic, array_create, + array_species_create, }, execution::{ - agent::{ExceptionType, JsError}, Agent, JsResult, RealmIdentifier, + agent::{ExceptionType, JsError}, }, types::{ - Function, IntoFunction, IntoObject, IntoValue, Number, Object, PropertyKey, String, - Value, BUILTIN_STRING_MEMORY, + BUILTIN_STRING_MEMORY, Function, IntoFunction, IntoObject, IntoValue, Number, Object, + PropertyKey, String, Value, }, }, heap::{Heap, IntrinsicFunctionIndexes, WellKnownSymbolIndexes}, - SmallInteger, }; use super::array_iterator_objects::array_iterator::{ArrayIterator, CollectionIteratorKind}; @@ -1411,11 +1411,7 @@ impl ArrayPrototype { n as usize } else { let result = len as i64 + n; - if result < 0 { - 0 - } else { - result as usize - } + if result < 0 { 0 } else { result as usize } } } else { 0 @@ -1475,11 +1471,7 @@ impl ArrayPrototype { // a. Let k be len + n. let k = len + n; // b. If k < 0, set k to 0. - if k < 0 { - 0 - } else { - k - } + if k < 0 { 0 } else { k } }; // 10. Repeat, while k < len, while k < len { @@ -1541,11 +1533,7 @@ impl ArrayPrototype { n as usize } else { let result = len as i64 + n; - if result < 0 { - 0 - } else { - result as usize - } + if result < 0 { 0 } else { result as usize } } } else { 0 @@ -1605,11 +1593,7 @@ impl ArrayPrototype { // a. Let k be len + n. let k = len + n; // b. If k < 0, set k to 0. - if k < 0 { - 0 - } else { - k - } + if k < 0 { 0 } else { k } }; // 10. Repeat, while k < len, while k < len { @@ -1771,11 +1755,7 @@ impl ArrayPrototype { (n as usize).min(last) } else { let result = len as i64 + n; - if result < 0 { - 0 - } else { - result as usize - } + if result < 0 { 0 } else { result as usize } } } else if from_index == Some(Value::Undefined) { 0 @@ -3848,19 +3828,11 @@ fn is_concat_spreadable(agent: &mut Agent, o: Value, mut gc: GcScope) -> JsResul // 3. If spreadable is not undefined, return ToBoolean(spreadable). if !spreadable.is_undefined() { let spreadable = to_boolean(agent, spreadable); - if spreadable { - Ok(true) - } else { - Ok(false) - } + if spreadable { Ok(true) } else { Ok(false) } } else { // 4. Return ? IsArray(O). let o_is_array = is_array(agent, scoped_o.get(agent).into_value(), gc.nogc())?; - if o_is_array { - Ok(true) - } else { - Ok(false) - } + if o_is_array { Ok(true) } else { Ok(false) } } } diff --git a/nova_vm/src/ecmascript/builtins/indexed_collections/typed_array_objects/abstract_operations.rs b/nova_vm/src/ecmascript/builtins/indexed_collections/typed_array_objects/abstract_operations.rs index a648c079a..4fa2c9406 100644 --- a/nova_vm/src/ecmascript/builtins/indexed_collections/typed_array_objects/abstract_operations.rs +++ b/nova_vm/src/ecmascript/builtins/indexed_collections/typed_array_objects/abstract_operations.rs @@ -3,37 +3,38 @@ // file, You can obtain one at https://mozilla.org/MPL/2.0/. use crate::{ + SmallInteger, ecmascript::{ abstract_operations::{ operations_on_objects::{get, length_of_array_like, set, try_set}, type_conversion::{to_big_int, to_index, to_number}, }, builtins::{ + ArrayBuffer, array_buffer::{ - allocate_array_buffer, array_buffer_byte_length, clone_array_buffer, - get_value_from_buffer, is_detached_buffer, is_fixed_length_array_buffer, - set_value_in_buffer, Ordering, ViewedArrayBufferByteLength, + Ordering, ViewedArrayBufferByteLength, allocate_array_buffer, + array_buffer_byte_length, clone_array_buffer, get_value_from_buffer, + is_detached_buffer, is_fixed_length_array_buffer, set_value_in_buffer, }, indexed_collections::typed_array_objects::typed_array_intrinsic_object::require_internal_slot_typed_array, ordinary::get_prototype_from_constructor, typed_array::{ - data::{TypedArrayArrayLength, TypedArrayHeapData}, TypedArray, + data::{TypedArrayArrayLength, TypedArrayHeapData}, }, - ArrayBuffer, }, - execution::{agent::ExceptionType, Agent, JsResult, ProtoIntrinsics}, + execution::{Agent, JsResult, ProtoIntrinsics, agent::ExceptionType}, types::{ BigInt, Function, InternalSlots, IntoFunction, IntoNumeric, IntoObject, Number, Numeric, Object, PropertyKey, U8Clamped, Value, Viewable, }, }, engine::{ + Scoped, TryResult, context::{Bindable, GcScope, NoGcScope}, - unwrap_try, Scoped, TryResult, + unwrap_try, }, heap::indexes::TypedArrayIndex, - SmallInteger, }; #[repr(transparent)] @@ -66,11 +67,7 @@ impl CachedBufferByteLength { impl From for Option { fn from(val: CachedBufferByteLength) -> Self { - if val.is_detached() { - None - } else { - Some(val.0) - } + if val.is_detached() { None } else { Some(val.0) } } } diff --git a/nova_vm/src/ecmascript/builtins/indexed_collections/typed_array_objects/typed_array_constructors.rs b/nova_vm/src/ecmascript/builtins/indexed_collections/typed_array_objects/typed_array_constructors.rs index 0f0037f3c..4d823648e 100644 --- a/nova_vm/src/ecmascript/builtins/indexed_collections/typed_array_objects/typed_array_constructors.rs +++ b/nova_vm/src/ecmascript/builtins/indexed_collections/typed_array_objects/typed_array_constructors.rs @@ -7,17 +7,17 @@ use crate::ecmascript::abstract_operations::operations_on_iterator_objects::{ }; use crate::ecmascript::abstract_operations::operations_on_objects::get_method; use crate::ecmascript::abstract_operations::type_conversion::{to_index, try_to_index}; +use crate::ecmascript::builtins::ArrayBuffer; use crate::ecmascript::builtins::indexed_collections::typed_array_objects::abstract_operations::{ allocate_typed_array, initialize_typed_array_from_array_buffer, initialize_typed_array_from_array_like, initialize_typed_array_from_list, initialize_typed_array_from_typed_array, }; use crate::ecmascript::builtins::typed_array::TypedArray; -use crate::ecmascript::builtins::ArrayBuffer; use crate::ecmascript::execution::agent::ExceptionType; use crate::ecmascript::types::{Function, IntoValue, PropertyKey, U8Clamped, Viewable}; -use crate::engine::context::{Bindable, GcScope}; use crate::engine::TryResult; +use crate::engine::context::{Bindable, GcScope}; use crate::heap::WellKnownSymbolIndexes; use crate::{ ecmascript::{ @@ -27,7 +27,7 @@ use crate::{ }, builtins::{ArgumentsList, Behaviour, Builtin, BuiltinIntrinsicConstructor}, execution::{Agent, JsResult, RealmIdentifier}, - types::{IntoObject, Object, String, Value, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, IntoObject, Object, String, Value}, }, heap::IntrinsicConstructorIndexes, }; diff --git a/nova_vm/src/ecmascript/builtins/indexed_collections/typed_array_objects/typed_array_intrinsic_object.rs b/nova_vm/src/ecmascript/builtins/indexed_collections/typed_array_objects/typed_array_intrinsic_object.rs index c7b99d16d..8ba5087b5 100644 --- a/nova_vm/src/ecmascript/builtins/indexed_collections/typed_array_objects/typed_array_intrinsic_object.rs +++ b/nova_vm/src/ecmascript/builtins/indexed_collections/typed_array_objects/typed_array_intrinsic_object.rs @@ -3,6 +3,7 @@ // file, You can obtain one at https://mozilla.org/MPL/2.0/. use crate::{ + SmallInteger, ecmascript::{ abstract_operations::{ operations_on_objects::{call_function, try_get}, @@ -17,26 +18,26 @@ use crate::{ ordinary_object_builder::OrdinaryObjectBuilder, }, builtins::{ - array_buffer::{get_value_from_buffer, is_detached_buffer, Ordering}, + ArgumentsList, Behaviour, Builtin, BuiltinGetter, BuiltinIntrinsic, + BuiltinIntrinsicConstructor, + array_buffer::{Ordering, get_value_from_buffer, is_detached_buffer}, indexed_collections::array_objects::array_iterator_objects::array_iterator::{ ArrayIterator, CollectionIteratorKind, }, typed_array::TypedArray, - ArgumentsList, Behaviour, Builtin, BuiltinGetter, BuiltinIntrinsic, - BuiltinIntrinsicConstructor, }, - execution::{agent::ExceptionType, Agent, JsResult, RealmIdentifier}, + execution::{Agent, JsResult, RealmIdentifier, agent::ExceptionType}, types::{ - IntoObject, IntoValue, Number, Object, PropertyKey, String, U8Clamped, Value, - BUILTIN_STRING_MEMORY, + BUILTIN_STRING_MEMORY, IntoObject, IntoValue, Number, Object, PropertyKey, String, + U8Clamped, Value, }, }, engine::{ + TryResult, context::{Bindable, GcScope, NoGcScope}, - unwrap_try, TryResult, + unwrap_try, }, heap::{IntrinsicConstructorIndexes, IntrinsicFunctionIndexes, WellKnownSymbolIndexes}, - SmallInteger, }; use super::abstract_operations::is_typed_array_out_of_bounds; @@ -880,11 +881,7 @@ impl TypedArrayPrototype { // a. Let k be len + n. let k = len + n; // b. If k < 0, set k to 0. - if k < 0 { - 0 - } else { - k - } + if k < 0 { 0 } else { k } }; // 11. Repeat, while k < len, while k < len { diff --git a/nova_vm/src/ecmascript/builtins/keyed_collections/map_objects/map_constructor.rs b/nova_vm/src/ecmascript/builtins/keyed_collections/map_objects/map_constructor.rs index 5c77d22b2..89ec4851a 100644 --- a/nova_vm/src/ecmascript/builtins/keyed_collections/map_objects/map_constructor.rs +++ b/nova_vm/src/ecmascript/builtins/keyed_collections/map_objects/map_constructor.rs @@ -8,8 +8,8 @@ use ahash::AHasher; use crate::ecmascript::abstract_operations::operations_on_iterator_objects::if_abrupt_close_iterator; use crate::ecmascript::abstract_operations::operations_on_objects::try_get; -use crate::engine::context::{Bindable, GcScope}; use crate::engine::TryResult; +use crate::engine::context::{Bindable, GcScope}; use crate::{ ecmascript::{ abstract_operations::{ @@ -19,18 +19,18 @@ use crate::{ }, builders::builtin_function_builder::BuiltinFunctionBuilder, builtins::{ + ArgumentsList, Behaviour, Builtin, BuiltinGetter, BuiltinIntrinsicConstructor, array::ArrayHeap, keyed_collections::map_objects::map_prototype::{ - canonicalize_keyed_collection_key, MapPrototypeSet, + MapPrototypeSet, canonicalize_keyed_collection_key, }, - map::{data::MapData, Map}, + map::{Map, data::MapData}, ordinary::ordinary_create_from_constructor, - ArgumentsList, Behaviour, Builtin, BuiltinGetter, BuiltinIntrinsicConstructor, }, - execution::{agent::ExceptionType, Agent, JsResult, ProtoIntrinsics, RealmIdentifier}, + execution::{Agent, JsResult, ProtoIntrinsics, RealmIdentifier, agent::ExceptionType}, types::{ - Function, IntoFunction, IntoObject, IntoValue, Object, PropertyKey, String, Value, - BUILTIN_STRING_MEMORY, + BUILTIN_STRING_MEMORY, Function, IntoFunction, IntoObject, IntoValue, Object, + PropertyKey, String, Value, }, }, heap::{Heap, IntrinsicConstructorIndexes, PrimitiveHeap, WellKnownSymbolIndexes}, diff --git a/nova_vm/src/ecmascript/builtins/keyed_collections/map_objects/map_iterator_objects/map_iterator.rs b/nova_vm/src/ecmascript/builtins/keyed_collections/map_objects/map_iterator_objects/map_iterator.rs index 207ba1d1e..1b715dd00 100644 --- a/nova_vm/src/ecmascript/builtins/keyed_collections/map_objects/map_iterator_objects/map_iterator.rs +++ b/nova_vm/src/ecmascript/builtins/keyed_collections/map_objects/map_iterator_objects/map_iterator.rs @@ -16,13 +16,13 @@ use crate::{ }, }, engine::{ + Scoped, context::{Bindable, NoGcScope}, rootable::HeapRootData, - Scoped, }, heap::{ - indexes::MapIteratorIndex, CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, - WorkQueues, + CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, WorkQueues, + indexes::MapIteratorIndex, }, }; @@ -132,10 +132,12 @@ impl<'a> InternalSlots<'a> for MapIterator<'a> { } fn set_backing_object(self, agent: &mut Agent, backing_object: OrdinaryObject<'static>) { - assert!(agent[self] - .object_index - .replace(backing_object.unbind()) - .is_none()); + assert!( + agent[self] + .object_index + .replace(backing_object.unbind()) + .is_none() + ); } } diff --git a/nova_vm/src/ecmascript/builtins/keyed_collections/map_objects/map_iterator_objects/map_iterator_prototype.rs b/nova_vm/src/ecmascript/builtins/keyed_collections/map_objects/map_iterator_objects/map_iterator_prototype.rs index aaf6a741b..78b586a6d 100644 --- a/nova_vm/src/ecmascript/builtins/keyed_collections/map_objects/map_iterator_objects/map_iterator_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/keyed_collections/map_objects/map_iterator_objects/map_iterator_prototype.rs @@ -12,11 +12,11 @@ use crate::{ }, builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ - indexed_collections::array_objects::array_iterator_objects::array_iterator::CollectionIteratorKind, ArgumentsList, Builtin, + indexed_collections::array_objects::array_iterator_objects::array_iterator::CollectionIteratorKind, }, - execution::{agent::ExceptionType, Agent, JsResult, RealmIdentifier}, - types::{IntoValue, String, Value, BUILTIN_STRING_MEMORY}, + execution::{Agent, JsResult, RealmIdentifier, agent::ExceptionType}, + types::{BUILTIN_STRING_MEMORY, IntoValue, String, Value}, }, heap::WellKnownSymbolIndexes, }; diff --git a/nova_vm/src/ecmascript/builtins/keyed_collections/map_objects/map_prototype.rs b/nova_vm/src/ecmascript/builtins/keyed_collections/map_objects/map_prototype.rs index c0ab7c06b..5c6bba8fe 100644 --- a/nova_vm/src/ecmascript/builtins/keyed_collections/map_objects/map_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/keyed_collections/map_objects/map_prototype.rs @@ -15,13 +15,13 @@ use crate::{ }, builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ + ArgumentsList, Behaviour, Builtin, BuiltinGetter, BuiltinIntrinsic, indexed_collections::array_objects::array_iterator_objects::array_iterator::CollectionIteratorKind, keyed_collections::map_objects::map_iterator_objects::map_iterator::MapIterator, - map::{data::MapData, Map}, - ArgumentsList, Behaviour, Builtin, BuiltinGetter, BuiltinIntrinsic, + map::{Map, data::MapData}, }, - execution::{agent::ExceptionType, Agent, JsResult, RealmIdentifier}, - types::{HeapNumber, IntoValue, PropertyKey, String, Value, BUILTIN_STRING_MEMORY}, + execution::{Agent, JsResult, RealmIdentifier, agent::ExceptionType}, + types::{BUILTIN_STRING_MEMORY, HeapNumber, IntoValue, PropertyKey, String, Value}, }, heap::{Heap, IntrinsicFunctionIndexes, PrimitiveHeap, WellKnownSymbolIndexes}, }; diff --git a/nova_vm/src/ecmascript/builtins/keyed_collections/set_objects/set_constructor.rs b/nova_vm/src/ecmascript/builtins/keyed_collections/set_objects/set_constructor.rs index 3eaab3183..80f5f0672 100644 --- a/nova_vm/src/ecmascript/builtins/keyed_collections/set_objects/set_constructor.rs +++ b/nova_vm/src/ecmascript/builtins/keyed_collections/set_objects/set_constructor.rs @@ -18,15 +18,15 @@ use crate::{ }, builders::builtin_function_builder::BuiltinFunctionBuilder, builtins::{ + ArgumentsList, Behaviour, Builtin, BuiltinGetter, BuiltinIntrinsicConstructor, array::ArrayHeap, ordinary::ordinary_create_from_constructor, - set::{data::SetData, Set}, - ArgumentsList, Behaviour, Builtin, BuiltinGetter, BuiltinIntrinsicConstructor, + set::{Set, data::SetData}, }, - execution::{agent::ExceptionType, Agent, JsResult, ProtoIntrinsics, RealmIdentifier}, + execution::{Agent, JsResult, ProtoIntrinsics, RealmIdentifier, agent::ExceptionType}, types::{ - Function, IntoFunction, IntoObject, IntoValue, Object, PropertyKey, String, Value, - BUILTIN_STRING_MEMORY, + BUILTIN_STRING_MEMORY, Function, IntoFunction, IntoObject, IntoValue, Object, + PropertyKey, String, Value, }, }, heap::{Heap, IntrinsicConstructorIndexes, PrimitiveHeap, WellKnownSymbolIndexes}, diff --git a/nova_vm/src/ecmascript/builtins/keyed_collections/set_objects/set_iterator_objects/set_iterator.rs b/nova_vm/src/ecmascript/builtins/keyed_collections/set_objects/set_iterator_objects/set_iterator.rs index 3dff9cc5c..5682b0776 100644 --- a/nova_vm/src/ecmascript/builtins/keyed_collections/set_objects/set_iterator_objects/set_iterator.rs +++ b/nova_vm/src/ecmascript/builtins/keyed_collections/set_objects/set_iterator_objects/set_iterator.rs @@ -16,13 +16,13 @@ use crate::{ }, }, engine::{ + Scoped, context::{Bindable, NoGcScope}, rootable::HeapRootData, - Scoped, }, heap::{ - indexes::SetIteratorIndex, CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, - WorkQueues, + CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, WorkQueues, + indexes::SetIteratorIndex, }, }; @@ -132,10 +132,12 @@ impl<'a> InternalSlots<'a> for SetIterator<'a> { } fn set_backing_object(self, agent: &mut Agent, backing_object: OrdinaryObject<'static>) { - assert!(agent[self] - .object_index - .replace(backing_object.unbind()) - .is_none()); + assert!( + agent[self] + .object_index + .replace(backing_object.unbind()) + .is_none() + ); } } diff --git a/nova_vm/src/ecmascript/builtins/keyed_collections/set_objects/set_iterator_objects/set_iterator_prototype.rs b/nova_vm/src/ecmascript/builtins/keyed_collections/set_objects/set_iterator_objects/set_iterator_prototype.rs index 34a86e53d..bbde66070 100644 --- a/nova_vm/src/ecmascript/builtins/keyed_collections/set_objects/set_iterator_objects/set_iterator_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/keyed_collections/set_objects/set_iterator_objects/set_iterator_prototype.rs @@ -12,11 +12,11 @@ use crate::{ }, builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ - indexed_collections::array_objects::array_iterator_objects::array_iterator::CollectionIteratorKind, ArgumentsList, Builtin, + indexed_collections::array_objects::array_iterator_objects::array_iterator::CollectionIteratorKind, }, - execution::{agent::ExceptionType, Agent, JsResult, RealmIdentifier}, - types::{IntoValue, String, Value, BUILTIN_STRING_MEMORY}, + execution::{Agent, JsResult, RealmIdentifier, agent::ExceptionType}, + types::{BUILTIN_STRING_MEMORY, IntoValue, String, Value}, }, heap::WellKnownSymbolIndexes, }; diff --git a/nova_vm/src/ecmascript/builtins/keyed_collections/set_objects/set_prototype.rs b/nova_vm/src/ecmascript/builtins/keyed_collections/set_objects/set_prototype.rs index 26637bb29..0eb712667 100644 --- a/nova_vm/src/ecmascript/builtins/keyed_collections/set_objects/set_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/keyed_collections/set_objects/set_prototype.rs @@ -15,17 +15,17 @@ use crate::{ }, builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ + ArgumentsList, Behaviour, Builtin, BuiltinGetter, BuiltinIntrinsic, indexed_collections::array_objects::array_iterator_objects::array_iterator::CollectionIteratorKind, keyed_collections::map_objects::map_prototype::canonicalize_keyed_collection_key, keyed_collections::set_objects::set_iterator_objects::set_iterator::SetIterator, set::{ - data::{SetData, SetHeapData}, Set, + data::{SetData, SetHeapData}, }, - ArgumentsList, Behaviour, Builtin, BuiltinGetter, BuiltinIntrinsic, }, - execution::{agent::ExceptionType, Agent, JsResult, RealmIdentifier}, - types::{IntoValue, Number, PropertyKey, String, Value, BUILTIN_STRING_MEMORY}, + execution::{Agent, JsResult, RealmIdentifier, agent::ExceptionType}, + types::{BUILTIN_STRING_MEMORY, IntoValue, Number, PropertyKey, String, Value}, }, heap::{Heap, IntrinsicFunctionIndexes, PrimitiveHeap, WellKnownSymbolIndexes}, }; diff --git a/nova_vm/src/ecmascript/builtins/keyed_collections/weak_map_objects/weak_map_constructor.rs b/nova_vm/src/ecmascript/builtins/keyed_collections/weak_map_objects/weak_map_constructor.rs index f27456050..ac5929dbe 100644 --- a/nova_vm/src/ecmascript/builtins/keyed_collections/weak_map_objects/weak_map_constructor.rs +++ b/nova_vm/src/ecmascript/builtins/keyed_collections/weak_map_objects/weak_map_constructor.rs @@ -8,7 +8,7 @@ use crate::{ builders::builtin_function_builder::BuiltinFunctionBuilder, builtins::{ArgumentsList, Behaviour, Builtin, BuiltinIntrinsicConstructor}, execution::{Agent, JsResult, RealmIdentifier}, - types::{IntoObject, Object, String, Value, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, IntoObject, Object, String, Value}, }, heap::IntrinsicConstructorIndexes, }; diff --git a/nova_vm/src/ecmascript/builtins/keyed_collections/weak_map_objects/weak_map_prototype.rs b/nova_vm/src/ecmascript/builtins/keyed_collections/weak_map_objects/weak_map_prototype.rs index 373c94b32..c723f7052 100644 --- a/nova_vm/src/ecmascript/builtins/keyed_collections/weak_map_objects/weak_map_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/keyed_collections/weak_map_objects/weak_map_prototype.rs @@ -9,7 +9,7 @@ use crate::{ builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ArgumentsList, Behaviour, Builtin}, execution::{Agent, JsResult, RealmIdentifier}, - types::{String, Value, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, String, Value}, }, heap::WellKnownSymbolIndexes, }; diff --git a/nova_vm/src/ecmascript/builtins/keyed_collections/weak_set_objects/weak_set_constructor.rs b/nova_vm/src/ecmascript/builtins/keyed_collections/weak_set_objects/weak_set_constructor.rs index 8d67fb527..8099d4520 100644 --- a/nova_vm/src/ecmascript/builtins/keyed_collections/weak_set_objects/weak_set_constructor.rs +++ b/nova_vm/src/ecmascript/builtins/keyed_collections/weak_set_objects/weak_set_constructor.rs @@ -8,7 +8,7 @@ use crate::{ builders::builtin_function_builder::BuiltinFunctionBuilder, builtins::{ArgumentsList, Behaviour, Builtin, BuiltinIntrinsicConstructor}, execution::{Agent, JsResult, RealmIdentifier}, - types::{IntoObject, Object, String, Value, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, IntoObject, Object, String, Value}, }, heap::IntrinsicConstructorIndexes, }; diff --git a/nova_vm/src/ecmascript/builtins/keyed_collections/weak_set_objects/weak_set_prototype.rs b/nova_vm/src/ecmascript/builtins/keyed_collections/weak_set_objects/weak_set_prototype.rs index b402f4e61..5a6299dda 100644 --- a/nova_vm/src/ecmascript/builtins/keyed_collections/weak_set_objects/weak_set_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/keyed_collections/weak_set_objects/weak_set_prototype.rs @@ -9,7 +9,7 @@ use crate::{ builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ArgumentsList, Behaviour, Builtin}, execution::{Agent, JsResult, RealmIdentifier}, - types::{String, Value, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, String, Value}, }, heap::WellKnownSymbolIndexes, }; diff --git a/nova_vm/src/ecmascript/builtins/managing_memory/finalization_registry_objects/finalization_registry_constructor.rs b/nova_vm/src/ecmascript/builtins/managing_memory/finalization_registry_objects/finalization_registry_constructor.rs index 7b33b2d90..2abd56392 100644 --- a/nova_vm/src/ecmascript/builtins/managing_memory/finalization_registry_objects/finalization_registry_constructor.rs +++ b/nova_vm/src/ecmascript/builtins/managing_memory/finalization_registry_objects/finalization_registry_constructor.rs @@ -8,7 +8,7 @@ use crate::{ builders::builtin_function_builder::BuiltinFunctionBuilder, builtins::{ArgumentsList, Behaviour, Builtin, BuiltinIntrinsicConstructor}, execution::{Agent, JsResult, RealmIdentifier}, - types::{IntoObject, Object, String, Value, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, IntoObject, Object, String, Value}, }, heap::IntrinsicConstructorIndexes, }; diff --git a/nova_vm/src/ecmascript/builtins/managing_memory/finalization_registry_objects/finalization_registry_prototype.rs b/nova_vm/src/ecmascript/builtins/managing_memory/finalization_registry_objects/finalization_registry_prototype.rs index 2ad9a8e31..996ddcdf1 100644 --- a/nova_vm/src/ecmascript/builtins/managing_memory/finalization_registry_objects/finalization_registry_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/managing_memory/finalization_registry_objects/finalization_registry_prototype.rs @@ -9,7 +9,7 @@ use crate::{ builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ArgumentsList, Behaviour, Builtin}, execution::{Agent, JsResult, RealmIdentifier}, - types::{String, Value, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, String, Value}, }, heap::WellKnownSymbolIndexes, }; diff --git a/nova_vm/src/ecmascript/builtins/managing_memory/weak_ref_objects/weak_ref_constructor.rs b/nova_vm/src/ecmascript/builtins/managing_memory/weak_ref_objects/weak_ref_constructor.rs index 22cbbb3ef..16002231c 100644 --- a/nova_vm/src/ecmascript/builtins/managing_memory/weak_ref_objects/weak_ref_constructor.rs +++ b/nova_vm/src/ecmascript/builtins/managing_memory/weak_ref_objects/weak_ref_constructor.rs @@ -8,7 +8,7 @@ use crate::{ builders::builtin_function_builder::BuiltinFunctionBuilder, builtins::{ArgumentsList, Behaviour, Builtin, BuiltinIntrinsicConstructor}, execution::{Agent, JsResult, RealmIdentifier}, - types::{IntoObject, Object, String, Value, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, IntoObject, Object, String, Value}, }, heap::IntrinsicConstructorIndexes, }; diff --git a/nova_vm/src/ecmascript/builtins/managing_memory/weak_ref_objects/weak_ref_prototype.rs b/nova_vm/src/ecmascript/builtins/managing_memory/weak_ref_objects/weak_ref_prototype.rs index e67674efb..3de29c729 100644 --- a/nova_vm/src/ecmascript/builtins/managing_memory/weak_ref_objects/weak_ref_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/managing_memory/weak_ref_objects/weak_ref_prototype.rs @@ -9,7 +9,7 @@ use crate::{ builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ArgumentsList, Behaviour, Builtin}, execution::{Agent, JsResult, RealmIdentifier}, - types::{String, Value, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, String, Value}, }, heap::WellKnownSymbolIndexes, }; diff --git a/nova_vm/src/ecmascript/builtins/map.rs b/nova_vm/src/ecmascript/builtins/map.rs index dc537576e..0dd57dc9d 100644 --- a/nova_vm/src/ecmascript/builtins/map.rs +++ b/nova_vm/src/ecmascript/builtins/map.rs @@ -5,6 +5,7 @@ use core::ops::{Index, IndexMut}; use crate::{ + Heap, ecmascript::{ execution::{Agent, ProtoIntrinsics}, types::{ @@ -12,15 +13,14 @@ use crate::{ }, }, engine::{ + Scoped, context::{Bindable, NoGcScope}, rootable::{HeapRootData, HeapRootRef, Rootable}, - Scoped, }, heap::{ - indexes::{BaseIndex, MapIndex}, CompactionLists, CreateHeapData, HeapMarkAndSweep, WorkQueues, + indexes::{BaseIndex, MapIndex}, }, - Heap, }; use self::data::MapHeapData; @@ -112,10 +112,12 @@ impl<'a> InternalSlots<'a> for Map<'a> { } fn set_backing_object(self, agent: &mut Agent, backing_object: OrdinaryObject<'static>) { - assert!(agent[self] - .object_index - .replace(backing_object.unbind()) - .is_none()); + assert!( + agent[self] + .object_index + .replace(backing_object.unbind()) + .is_none() + ); } } diff --git a/nova_vm/src/ecmascript/builtins/map/data.rs b/nova_vm/src/ecmascript/builtins/map/data.rs index 658000559..0aeaf7086 100644 --- a/nova_vm/src/ecmascript/builtins/map/data.rs +++ b/nova_vm/src/ecmascript/builtins/map/data.rs @@ -4,8 +4,8 @@ use crate::{ ecmascript::types::{ - bigint::HeapBigInt, HeapNumber, HeapPrimitive, HeapString, OrdinaryObject, Value, - BIGINT_DISCRIMINANT, NUMBER_DISCRIMINANT, STRING_DISCRIMINANT, + BIGINT_DISCRIMINANT, HeapNumber, HeapPrimitive, HeapString, NUMBER_DISCRIMINANT, + OrdinaryObject, STRING_DISCRIMINANT, Value, bigint::HeapBigInt, }, engine::context::{Bindable, NoGcScope}, heap::{CompactionLists, HeapMarkAndSweep, PrimitiveHeapIndexable, WorkQueues}, @@ -16,7 +16,7 @@ use core::{ hash::{Hash, Hasher}, sync::atomic::{AtomicBool, Ordering}, }; -use hashbrown::{hash_table::Entry, HashTable}; +use hashbrown::{HashTable, hash_table::Entry}; #[derive(Debug, Default)] pub struct MapHeapData { diff --git a/nova_vm/src/ecmascript/builtins/module.rs b/nova_vm/src/ecmascript/builtins/module.rs index 3929f12ff..5b97eb80d 100644 --- a/nova_vm/src/ecmascript/builtins/module.rs +++ b/nova_vm/src/ecmascript/builtins/module.rs @@ -6,12 +6,12 @@ use core::ops::{Index, IndexMut}; use crate::engine::context::{Bindable, GcScope, NoGcScope}; use crate::engine::rootable::HeapRootData; -use crate::engine::{unwrap_try, Scoped, TryResult}; +use crate::engine::{Scoped, TryResult, unwrap_try}; use crate::{ ecmascript::{ abstract_operations::testing_and_comparison::same_value, builtins::ordinary::ordinary_get_own_property, - execution::{agent::ExceptionType, Agent, JsResult}, + execution::{Agent, JsResult, agent::ExceptionType}, scripts_and_modules::module::ModuleIdentifier, types::{ InternalMethods, InternalSlots, IntoObject, IntoValue, Object, OrdinaryObject, @@ -148,10 +148,12 @@ impl<'a> InternalSlots<'a> for Module<'a> { } fn set_backing_object(self, agent: &mut Agent, backing_object: OrdinaryObject<'static>) { - assert!(agent[self] - .object_index - .replace(backing_object.unbind()) - .is_none()); + assert!( + agent[self] + .object_index + .replace(backing_object.unbind()) + .is_none() + ); } fn create_backing_object(self, _: &mut Agent) -> OrdinaryObject<'static> { diff --git a/nova_vm/src/ecmascript/builtins/numbers_and_dates/bigint_objects/bigint_constructor.rs b/nova_vm/src/ecmascript/builtins/numbers_and_dates/bigint_objects/bigint_constructor.rs index b8e226da7..9630cdd6a 100644 --- a/nova_vm/src/ecmascript/builtins/numbers_and_dates/bigint_objects/bigint_constructor.rs +++ b/nova_vm/src/ecmascript/builtins/numbers_and_dates/bigint_objects/bigint_constructor.rs @@ -6,33 +6,33 @@ use num_bigint::ToBigInt; use num_traits::Pow; use crate::ecmascript::abstract_operations::testing_and_comparison::is_integral_number; +use crate::ecmascript::abstract_operations::type_conversion::PreferredType; use crate::ecmascript::abstract_operations::type_conversion::to_big_int; use crate::ecmascript::abstract_operations::type_conversion::to_index; use crate::ecmascript::abstract_operations::type_conversion::to_primitive; -use crate::ecmascript::abstract_operations::type_conversion::PreferredType; use crate::ecmascript::builders::builtin_function_builder::BuiltinFunctionBuilder; use crate::ecmascript::builtins::ArgumentsList; use crate::ecmascript::builtins::Behaviour; use crate::ecmascript::builtins::Builtin; use crate::ecmascript::builtins::BuiltinIntrinsicConstructor; -use crate::ecmascript::execution::agent::ExceptionType; use crate::ecmascript::execution::Agent; use crate::ecmascript::execution::JsResult; use crate::ecmascript::execution::RealmIdentifier; -use crate::ecmascript::types::bigint::SmallBigInt; +use crate::ecmascript::execution::agent::ExceptionType; +use crate::ecmascript::types::BUILTIN_STRING_MEMORY; use crate::ecmascript::types::BigInt; use crate::ecmascript::types::BigIntHeapData; use crate::ecmascript::types::IntoObject; use crate::ecmascript::types::IntoValue; use crate::ecmascript::types::Number; use crate::ecmascript::types::Object; -use crate::ecmascript::types::BUILTIN_STRING_MEMORY; +use crate::ecmascript::types::bigint::SmallBigInt; use crate::ecmascript::types::{String, Value}; +use crate::SmallInteger; use crate::engine::context::{Bindable, GcScope}; use crate::heap::CreateHeapData; use crate::heap::IntrinsicConstructorIndexes; -use crate::SmallInteger; /// ### [21.1.2.1 BigInt ( value )](https://tc39.es/ecma262/#sec-bigint-constructor) pub struct BigIntConstructor; diff --git a/nova_vm/src/ecmascript/builtins/numbers_and_dates/bigint_objects/bigint_prototype.rs b/nova_vm/src/ecmascript/builtins/numbers_and_dates/bigint_objects/bigint_prototype.rs index c12640ff2..f312276bf 100644 --- a/nova_vm/src/ecmascript/builtins/numbers_and_dates/bigint_objects/bigint_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/numbers_and_dates/bigint_objects/bigint_prototype.rs @@ -7,9 +7,9 @@ use crate::engine::context::{Bindable, GcScope, NoGcScope}; use crate::{ ecmascript::{ builders::ordinary_object_builder::OrdinaryObjectBuilder, - builtins::{primitive_objects::PrimitiveObjectData, ArgumentsList, Builtin}, - execution::{agent::ExceptionType, Agent, JsResult, RealmIdentifier}, - types::{BigInt, IntoValue, String, Value, BUILTIN_STRING_MEMORY}, + builtins::{ArgumentsList, Builtin, primitive_objects::PrimitiveObjectData}, + execution::{Agent, JsResult, RealmIdentifier, agent::ExceptionType}, + types::{BUILTIN_STRING_MEMORY, BigInt, IntoValue, String, Value}, }, heap::WellKnownSymbolIndexes, }; diff --git a/nova_vm/src/ecmascript/builtins/numbers_and_dates/date_objects/date_constructor.rs b/nova_vm/src/ecmascript/builtins/numbers_and_dates/date_objects/date_constructor.rs index 4a0310763..f1389ac78 100644 --- a/nova_vm/src/ecmascript/builtins/numbers_and_dates/date_objects/date_constructor.rs +++ b/nova_vm/src/ecmascript/builtins/numbers_and_dates/date_objects/date_constructor.rs @@ -4,29 +4,29 @@ use std::time::SystemTime; +use crate::SmallInteger; use crate::ecmascript::abstract_operations::type_conversion::to_number; use crate::ecmascript::builders::builtin_function_builder::BuiltinFunctionBuilder; -use crate::ecmascript::builtins::date::Date; -use crate::ecmascript::builtins::ordinary::ordinary_create_from_constructor; use crate::ecmascript::builtins::ArgumentsList; use crate::ecmascript::builtins::Behaviour; use crate::ecmascript::builtins::Builtin; use crate::ecmascript::builtins::BuiltinIntrinsicConstructor; +use crate::ecmascript::builtins::date::Date; +use crate::ecmascript::builtins::ordinary::ordinary_create_from_constructor; use crate::ecmascript::execution::Agent; use crate::ecmascript::execution::JsResult; use crate::ecmascript::execution::ProtoIntrinsics; use crate::ecmascript::execution::RealmIdentifier; +use crate::ecmascript::types::BUILTIN_STRING_MEMORY; use crate::ecmascript::types::Function; use crate::ecmascript::types::IntoObject; use crate::ecmascript::types::IntoValue; use crate::ecmascript::types::Number; use crate::ecmascript::types::Object; -use crate::ecmascript::types::BUILTIN_STRING_MEMORY; use crate::ecmascript::types::{String, Value}; use crate::engine::context::Bindable; use crate::engine::context::GcScope; use crate::heap::IntrinsicConstructorIndexes; -use crate::SmallInteger; pub struct DateConstructor; diff --git a/nova_vm/src/ecmascript/builtins/numbers_and_dates/date_objects/date_prototype.rs b/nova_vm/src/ecmascript/builtins/numbers_and_dates/date_objects/date_prototype.rs index 143c19fbe..c46e59247 100644 --- a/nova_vm/src/ecmascript/builtins/numbers_and_dates/date_objects/date_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/numbers_and_dates/date_objects/date_prototype.rs @@ -6,15 +6,15 @@ use std::time::SystemTime; use crate::engine::context::{Bindable, GcScope, NoGcScope}; use crate::{ + SmallInteger, ecmascript::{ - abstract_operations::type_conversion::{ordinary_to_primitive, PreferredType}, + abstract_operations::type_conversion::{PreferredType, ordinary_to_primitive}, builders::ordinary_object_builder::OrdinaryObjectBuilder, - builtins::{date::Date, ArgumentsList, Behaviour, Builtin, BuiltinIntrinsic}, - execution::{agent::ExceptionType, Agent, JsResult, RealmIdentifier}, - types::{IntoValue, Number, Object, PropertyKey, String, Value, BUILTIN_STRING_MEMORY}, + builtins::{ArgumentsList, Behaviour, Builtin, BuiltinIntrinsic, date::Date}, + execution::{Agent, JsResult, RealmIdentifier, agent::ExceptionType}, + types::{BUILTIN_STRING_MEMORY, IntoValue, Number, Object, PropertyKey, String, Value}, }, heap::{IntrinsicFunctionIndexes, WellKnownSymbolIndexes}, - SmallInteger, }; pub(crate) struct DatePrototype; diff --git a/nova_vm/src/ecmascript/builtins/numbers_and_dates/math_object.rs b/nova_vm/src/ecmascript/builtins/numbers_and_dates/math_object.rs index f49e5656b..b4202dbed 100644 --- a/nova_vm/src/ecmascript/builtins/numbers_and_dates/math_object.rs +++ b/nova_vm/src/ecmascript/builtins/numbers_and_dates/math_object.rs @@ -10,7 +10,7 @@ use crate::{ builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ArgumentsList, Behaviour, Builtin}, execution::{Agent, JsResult, RealmIdentifier}, - types::{IntoValue, Number, Primitive, String, Value, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, IntoValue, Number, Primitive, String, Value}, }, engine::context::{Bindable, GcScope, NoGcScope}, heap::WellKnownSymbolIndexes, diff --git a/nova_vm/src/ecmascript/builtins/numbers_and_dates/number_objects/number_constructor.rs b/nova_vm/src/ecmascript/builtins/numbers_and_dates/number_objects/number_constructor.rs index 63869a3e3..700dc74d8 100644 --- a/nova_vm/src/ecmascript/builtins/numbers_and_dates/number_objects/number_constructor.rs +++ b/nova_vm/src/ecmascript/builtins/numbers_and_dates/number_objects/number_constructor.rs @@ -5,34 +5,34 @@ use crate::ecmascript::abstract_operations::testing_and_comparison::is_integral_number; use crate::ecmascript::abstract_operations::type_conversion::to_numeric_primitive; use crate::ecmascript::builders::builtin_function_builder::BuiltinFunctionBuilder; -use crate::ecmascript::builtins::ordinary::ordinary_create_from_constructor; -use crate::ecmascript::builtins::primitive_objects::PrimitiveObject; -use crate::ecmascript::builtins::primitive_objects::PrimitiveObjectData; use crate::ecmascript::builtins::ArgumentsList; use crate::ecmascript::builtins::Behaviour; use crate::ecmascript::builtins::Builtin; use crate::ecmascript::builtins::BuiltinIntrinsicConstructor; +use crate::ecmascript::builtins::ordinary::ordinary_create_from_constructor; +use crate::ecmascript::builtins::primitive_objects::PrimitiveObject; +use crate::ecmascript::builtins::primitive_objects::PrimitiveObjectData; use crate::ecmascript::execution::Agent; use crate::ecmascript::execution::JsResult; use crate::ecmascript::execution::ProtoIntrinsics; use crate::ecmascript::execution::RealmIdentifier; -use crate::ecmascript::types::bigint::BigIntMathematicalValue; use crate::ecmascript::types::Function; use crate::ecmascript::types::IntoObject; use crate::ecmascript::types::IntoValue; use crate::ecmascript::types::Number; +use crate::ecmascript::types::bigint::BigIntMathematicalValue; use crate::ecmascript::types::Numeric; use crate::ecmascript::types::Object; -use crate::ecmascript::types::Primitive; +use crate::SmallInteger; use crate::ecmascript::types::BUILTIN_STRING_MEMORY; +use crate::ecmascript::types::Primitive; use crate::ecmascript::types::{String, Value}; use crate::engine::context::NoGcScope; use crate::engine::context::{Bindable, GcScope}; use crate::heap::CreateHeapData; use crate::heap::IntrinsicConstructorIndexes; -use crate::SmallInteger; /// ### [21.1.1.1 Number ( value )](https://tc39.es/ecma262/#sec-number-constructor-number-value) pub struct NumberConstructor; diff --git a/nova_vm/src/ecmascript/builtins/numbers_and_dates/number_objects/number_prototype.rs b/nova_vm/src/ecmascript/builtins/numbers_and_dates/number_objects/number_prototype.rs index e30cb7cef..a771d2de6 100644 --- a/nova_vm/src/ecmascript/builtins/numbers_and_dates/number_objects/number_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/numbers_and_dates/number_objects/number_prototype.rs @@ -5,17 +5,17 @@ use crate::ecmascript::builtins::Behaviour; use crate::engine::context::{Bindable, GcScope, NoGcScope}; use crate::{ + SmallInteger, ecmascript::{ abstract_operations::type_conversion::to_integer_or_infinity, builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ - primitive_objects::{PrimitiveObject, PrimitiveObjectData, PrimitiveObjectHeapData}, ArgumentsList, Builtin, + primitive_objects::{PrimitiveObject, PrimitiveObjectData, PrimitiveObjectHeapData}, }, - execution::{agent::ExceptionType, Agent, JsResult, RealmIdentifier}, - types::{IntoValue, Number, String, Value, BUILTIN_STRING_MEMORY}, + execution::{Agent, JsResult, RealmIdentifier, agent::ExceptionType}, + types::{BUILTIN_STRING_MEMORY, IntoValue, Number, String, Value}, }, - SmallInteger, }; pub(crate) struct NumberPrototype; diff --git a/nova_vm/src/ecmascript/builtins/ordinary.rs b/nova_vm/src/ecmascript/builtins/ordinary.rs index f5bc6d481..e5bb806fe 100644 --- a/nova_vm/src/ecmascript/builtins/ordinary.rs +++ b/nova_vm/src/ecmascript/builtins/ordinary.rs @@ -8,8 +8,9 @@ use std::vec; use crate::{ ecmascript::abstract_operations::operations_on_objects::try_create_data_property, engine::{ + Scoped, TryResult, context::{Bindable, GcScope, NoGcScope}, - unwrap_try, Scoped, TryResult, + unwrap_try, }, }; use crate::{ @@ -19,11 +20,11 @@ use crate::{ testing_and_comparison::same_value, }, builtins::ArgumentsList, - execution::{agent::ExceptionType, Agent, JsResult, ProtoIntrinsics}, + execution::{Agent, JsResult, ProtoIntrinsics, agent::ExceptionType}, types::{ - Function, InternalMethods, InternalSlots, IntoFunction, IntoObject, Object, - ObjectHeapData, OrdinaryObject, PropertyDescriptor, PropertyKey, String, Symbol, Value, - BUILTIN_STRING_MEMORY, + BUILTIN_STRING_MEMORY, Function, InternalMethods, InternalSlots, IntoFunction, + IntoObject, Object, ObjectHeapData, OrdinaryObject, PropertyDescriptor, PropertyKey, + String, Symbol, Value, }, }, heap::{CompactionLists, CreateHeapData, HeapMarkAndSweep, WellKnownSymbolIndexes, WorkQueues}, @@ -35,18 +36,18 @@ use super::date::data::DateHeapData; use super::regexp::RegExpHeapData; #[cfg(feature = "shared-array-buffer")] use super::shared_array_buffer::data::SharedArrayBufferHeapData; +#[cfg(feature = "array-buffer")] +use super::{ + ArrayBufferHeapData, data_view::data::DataViewHeapData, typed_array::data::TypedArrayHeapData, +}; use super::{ - async_generator_objects::AsyncGeneratorHeapData, + ArrayHeapData, async_generator_objects::AsyncGeneratorHeapData, control_abstraction_objects::generator_objects::GeneratorHeapData, error::ErrorHeapData, finalization_registry::data::FinalizationRegistryHeapData, indexed_collections::array_objects::array_iterator_objects::array_iterator::ArrayIteratorHeapData, keyed_collections::map_objects::map_iterator_objects::map_iterator::MapIteratorHeapData, map::data::MapHeapData, module::Module, primitive_objects::PrimitiveObjectHeapData, - promise::data::PromiseHeapData, ArrayHeapData, -}; -#[cfg(feature = "array-buffer")] -use super::{ - data_view::data::DataViewHeapData, typed_array::data::TypedArrayHeapData, ArrayBufferHeapData, + promise::data::PromiseHeapData, }; #[cfg(feature = "set")] use super::{ diff --git a/nova_vm/src/ecmascript/builtins/primitive_objects.rs b/nova_vm/src/ecmascript/builtins/primitive_objects.rs index 4ed88f3cd..3bbb32c3c 100644 --- a/nova_vm/src/ecmascript/builtins/primitive_objects.rs +++ b/nova_vm/src/ecmascript/builtins/primitive_objects.rs @@ -6,8 +6,9 @@ use core::ops::{Index, IndexMut}; use crate::engine::context::{Bindable, GcScope, NoGcScope}; use crate::engine::rootable::{HeapRootData, HeapRootRef, Rootable}; -use crate::engine::{unwrap_try, Scoped, TryResult}; +use crate::engine::{Scoped, TryResult, unwrap_try}; use crate::{ + SmallInteger, ecmascript::{ builtins::ordinary::{ is_compatible_property_descriptor, ordinary_define_own_property, ordinary_delete, @@ -15,20 +16,20 @@ use crate::{ }, execution::{Agent, JsResult, ProtoIntrinsics}, types::{ + BIGINT_DISCRIMINANT, BOOLEAN_DISCRIMINANT, BUILTIN_STRING_MEMORY, BigInt, + FLOAT_DISCRIMINANT, HeapNumber, HeapString, INTEGER_DISCRIMINANT, InternalMethods, + InternalSlots, IntoObject, IntoValue, NUMBER_DISCRIMINANT, Number, Object, + OrdinaryObject, PropertyDescriptor, PropertyKey, SMALL_BIGINT_DISCRIMINANT, + SMALL_STRING_DISCRIMINANT, STRING_DISCRIMINANT, SYMBOL_DISCRIMINANT, String, Symbol, + Value, bigint::{HeapBigInt, SmallBigInt}, - BigInt, HeapNumber, HeapString, InternalMethods, InternalSlots, IntoObject, IntoValue, - Number, Object, OrdinaryObject, PropertyDescriptor, PropertyKey, String, Symbol, Value, - BIGINT_DISCRIMINANT, BOOLEAN_DISCRIMINANT, BUILTIN_STRING_MEMORY, FLOAT_DISCRIMINANT, - INTEGER_DISCRIMINANT, NUMBER_DISCRIMINANT, SMALL_BIGINT_DISCRIMINANT, - SMALL_STRING_DISCRIMINANT, STRING_DISCRIMINANT, SYMBOL_DISCRIMINANT, }, }, engine::small_f64::SmallF64, heap::{ - indexes::PrimitiveObjectIndex, CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, - WorkQueues, + CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, WorkQueues, + indexes::PrimitiveObjectIndex, }, - SmallInteger, }; use small_string::SmallString; @@ -198,10 +199,12 @@ impl<'a> InternalSlots<'a> for PrimitiveObject<'a> { } fn set_backing_object(self, agent: &mut Agent, backing_object: OrdinaryObject<'static>) { - assert!(agent[self] - .object_index - .replace(backing_object.unbind()) - .is_none()); + assert!( + agent[self] + .object_index + .replace(backing_object.unbind()) + .is_none() + ); } fn internal_prototype(self, agent: &Agent) -> Option> { diff --git a/nova_vm/src/ecmascript/builtins/promise.rs b/nova_vm/src/ecmascript/builtins/promise.rs index fba0d56c7..11db6ed1d 100644 --- a/nova_vm/src/ecmascript/builtins/promise.rs +++ b/nova_vm/src/ecmascript/builtins/promise.rs @@ -4,9 +4,9 @@ use core::ops::{Index, IndexMut}; +use crate::engine::Scoped; use crate::engine::context::{Bindable, GcScope, NoGcScope}; use crate::engine::rootable::{HeapRootData, HeapRootRef, Rootable}; -use crate::engine::Scoped; use crate::{ ecmascript::{ execution::{Agent, ProtoIntrinsics}, @@ -15,8 +15,8 @@ use crate::{ }, }, heap::{ - indexes::{BaseIndex, PromiseIndex}, CreateHeapData, Heap, HeapMarkAndSweep, + indexes::{BaseIndex, PromiseIndex}, }, }; @@ -119,10 +119,12 @@ impl<'a> InternalSlots<'a> for Promise<'a> { } fn set_backing_object(self, agent: &mut Agent, backing_object: OrdinaryObject<'static>) { - assert!(agent[self] - .object_index - .replace(backing_object.unbind()) - .is_none()); + assert!( + agent[self] + .object_index + .replace(backing_object.unbind()) + .is_none() + ); } } diff --git a/nova_vm/src/ecmascript/builtins/proxy.rs b/nova_vm/src/ecmascript/builtins/proxy.rs index 2b2ac24be..0056b56a9 100644 --- a/nova_vm/src/ecmascript/builtins/proxy.rs +++ b/nova_vm/src/ecmascript/builtins/proxy.rs @@ -5,7 +5,7 @@ use core::ops::{Index, IndexMut}; use std::collections::VecDeque; -use abstract_operations::{validate_non_revoked_proxy, NonRevokedProxy}; +use abstract_operations::{NonRevokedProxy, validate_non_revoked_proxy}; use data::ProxyHeapData; use crate::{ @@ -19,21 +19,21 @@ use crate::{ type_conversion::to_boolean, }, builtins::ArgumentsList, - execution::{agent::ExceptionType, Agent, JsResult}, + execution::{Agent, JsResult, agent::ExceptionType}, types::{ - scope_property_keys, Function, InternalMethods, InternalSlots, IntoObject, IntoValue, + BUILTIN_STRING_MEMORY, Function, InternalMethods, InternalSlots, IntoObject, IntoValue, Object, OrdinaryObject, PropertyDescriptor, PropertyKey, String, Value, - BUILTIN_STRING_MEMORY, + scope_property_keys, }, }, engine::{ + Scoped, TryResult, context::{Bindable, GcScope, NoGcScope}, rootable::HeapRootData, - Scoped, TryResult, }, heap::{ - indexes::{BaseIndex, ProxyIndex}, CreateHeapData, Heap, HeapMarkAndSweep, + indexes::{BaseIndex, ProxyIndex}, }, }; @@ -923,7 +923,10 @@ impl<'a> InternalMethods<'a> for Proxy<'a> { let property_key = scoped_property_key.get(agent).bind(gc.nogc()); let message = String::from_string( agent, - format!("proxy can't report a non-configurable own property '{}' as non-existent", property_key.as_display(agent)), + format!( + "proxy can't report a non-configurable own property '{}' as non-existent", + property_key.as_display(agent) + ), gc.into_nogc(), ); return Err( diff --git a/nova_vm/src/ecmascript/builtins/proxy/abstract_operations.rs b/nova_vm/src/ecmascript/builtins/proxy/abstract_operations.rs index 61b95647b..918efd9c6 100644 --- a/nova_vm/src/ecmascript/builtins/proxy/abstract_operations.rs +++ b/nova_vm/src/ecmascript/builtins/proxy/abstract_operations.rs @@ -4,7 +4,7 @@ use crate::{ ecmascript::{ - execution::{agent::ExceptionType, Agent, JsResult}, + execution::{Agent, JsResult, agent::ExceptionType}, types::Object, }, engine::context::NoGcScope, diff --git a/nova_vm/src/ecmascript/builtins/reflection/proxy_constructor.rs b/nova_vm/src/ecmascript/builtins/reflection/proxy_constructor.rs index 5e07965fb..d01980db4 100644 --- a/nova_vm/src/ecmascript/builtins/reflection/proxy_constructor.rs +++ b/nova_vm/src/ecmascript/builtins/reflection/proxy_constructor.rs @@ -11,7 +11,7 @@ use crate::{ builders::builtin_function_builder::BuiltinFunctionBuilder, builtins::{ArgumentsList, Behaviour, Builtin, BuiltinIntrinsicConstructor}, execution::{Agent, JsResult, RealmIdentifier}, - types::{Object, String, Value, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, Object, String, Value}, }, heap::IntrinsicConstructorIndexes, }; diff --git a/nova_vm/src/ecmascript/builtins/reflection/reflect_object.rs b/nova_vm/src/ecmascript/builtins/reflection/reflect_object.rs index 9807395a6..52566e92f 100644 --- a/nova_vm/src/ecmascript/builtins/reflection/reflect_object.rs +++ b/nova_vm/src/ecmascript/builtins/reflection/reflect_object.rs @@ -6,8 +6,8 @@ use crate::ecmascript::abstract_operations::type_conversion::{ to_property_key_complex, to_property_key_simple, }; use crate::ecmascript::builtins::Behaviour; -use crate::engine::context::{Bindable, GcScope}; use crate::engine::TryResult; +use crate::engine::context::{Bindable, GcScope}; use crate::{ ecmascript::{ abstract_operations::{ @@ -18,10 +18,10 @@ use crate::{ }, builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ArgumentsList, Builtin}, - execution::{agent::ExceptionType, Agent, JsResult, RealmIdentifier}, + execution::{Agent, JsResult, RealmIdentifier, agent::ExceptionType}, types::{ - InternalMethods, IntoValue, Object, PropertyDescriptor, String, Value, - BUILTIN_STRING_MEMORY, + BUILTIN_STRING_MEMORY, InternalMethods, IntoValue, Object, PropertyDescriptor, String, + Value, }, }, heap::WellKnownSymbolIndexes, diff --git a/nova_vm/src/ecmascript/builtins/regexp.rs b/nova_vm/src/ecmascript/builtins/regexp.rs index 1fbea52b1..bba55afd5 100644 --- a/nova_vm/src/ecmascript/builtins/regexp.rs +++ b/nova_vm/src/ecmascript/builtins/regexp.rs @@ -11,19 +11,20 @@ use crate::{ ecmascript::{ execution::{Agent, JsResult, ProtoIntrinsics}, types::{ - InternalMethods, InternalSlots, IntoObject, IntoValue, Object, ObjectHeapData, - OrdinaryObject, PropertyDescriptor, PropertyKey, Value, BUILTIN_STRING_MEMORY, + BUILTIN_STRING_MEMORY, InternalMethods, InternalSlots, IntoObject, IntoValue, Object, + ObjectHeapData, OrdinaryObject, PropertyDescriptor, PropertyKey, Value, }, }, engine::{ + Scoped, TryResult, context::{Bindable, GcScope, NoGcScope}, rootable::HeapRootData, - unwrap_try, Scoped, TryResult, + unwrap_try, }, heap::{ - indexes::{BaseIndex, RegExpIndex}, CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, ObjectEntry, ObjectEntryPropertyDescriptor, WorkQueues, + indexes::{BaseIndex, RegExpIndex}, }, }; pub(crate) use abstract_operations::*; @@ -153,10 +154,12 @@ impl<'a> InternalSlots<'a> for RegExp<'a> { } fn set_backing_object(self, agent: &mut Agent, backing_object: OrdinaryObject<'static>) { - assert!(agent[self] - .object_index - .replace(backing_object.unbind()) - .is_none()); + assert!( + agent[self] + .object_index + .replace(backing_object.unbind()) + .is_none() + ); } } diff --git a/nova_vm/src/ecmascript/builtins/regexp/abstract_operations.rs b/nova_vm/src/ecmascript/builtins/regexp/abstract_operations.rs index 156df7106..86235dd0e 100644 --- a/nova_vm/src/ecmascript/builtins/regexp/abstract_operations.rs +++ b/nova_vm/src/ecmascript/builtins/regexp/abstract_operations.rs @@ -11,7 +11,7 @@ use crate::{ ecmascript::{ builtins::ordinary::ordinary_create_from_constructor, execution::{Agent, JsResult, ProtoIntrinsics}, - types::{Function, String, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, Function, String}, }, heap::CreateHeapData, }; diff --git a/nova_vm/src/ecmascript/builtins/set.rs b/nova_vm/src/ecmascript/builtins/set.rs index a65739eff..28184576b 100644 --- a/nova_vm/src/ecmascript/builtins/set.rs +++ b/nova_vm/src/ecmascript/builtins/set.rs @@ -5,6 +5,7 @@ use core::ops::{Index, IndexMut}; use crate::{ + Heap, ecmascript::{ execution::{Agent, ProtoIntrinsics}, types::{ @@ -12,15 +13,14 @@ use crate::{ }, }, engine::{ + Scoped, context::{Bindable, NoGcScope}, rootable::HeapRootData, - Scoped, }, heap::{ - indexes::{BaseIndex, SetIndex}, CompactionLists, CreateHeapData, HeapMarkAndSweep, WorkQueues, + indexes::{BaseIndex, SetIndex}, }, - Heap, }; use self::data::SetHeapData; @@ -126,10 +126,12 @@ impl<'a> InternalSlots<'a> for Set<'a> { } fn set_backing_object(self, agent: &mut Agent, backing_object: OrdinaryObject<'static>) { - assert!(agent[self] - .object_index - .replace(backing_object.unbind()) - .is_none()); + assert!( + agent[self] + .object_index + .replace(backing_object.unbind()) + .is_none() + ); } } diff --git a/nova_vm/src/ecmascript/builtins/set/data.rs b/nova_vm/src/ecmascript/builtins/set/data.rs index 38bf3d8f2..f2835c199 100644 --- a/nova_vm/src/ecmascript/builtins/set/data.rs +++ b/nova_vm/src/ecmascript/builtins/set/data.rs @@ -4,8 +4,8 @@ use crate::{ ecmascript::types::{ - bigint::HeapBigInt, HeapNumber, HeapString, OrdinaryObject, Value, BIGINT_DISCRIMINANT, - NUMBER_DISCRIMINANT, STRING_DISCRIMINANT, + BIGINT_DISCRIMINANT, HeapNumber, HeapString, NUMBER_DISCRIMINANT, OrdinaryObject, + STRING_DISCRIMINANT, Value, bigint::HeapBigInt, }, engine::context::{Bindable, NoGcScope}, heap::{CompactionLists, HeapMarkAndSweep, PrimitiveHeapIndexable, WorkQueues}, @@ -16,7 +16,7 @@ use core::{ hash::{Hash, Hasher}, sync::atomic::{AtomicBool, Ordering}, }; -use hashbrown::{hash_table::Entry, HashTable}; +use hashbrown::{HashTable, hash_table::Entry}; #[derive(Debug, Default)] pub struct SetHeapData { diff --git a/nova_vm/src/ecmascript/builtins/shared_array_buffer.rs b/nova_vm/src/ecmascript/builtins/shared_array_buffer.rs index 54582dc51..9d37e9527 100644 --- a/nova_vm/src/ecmascript/builtins/shared_array_buffer.rs +++ b/nova_vm/src/ecmascript/builtins/shared_array_buffer.rs @@ -12,13 +12,13 @@ use crate::{ }, }, engine::{ + Scoped, context::{Bindable, NoGcScope}, rootable::HeapRootData, - Scoped, }, heap::{ - indexes::SharedArrayBufferIndex, CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, - WorkQueues, + CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, WorkQueues, + indexes::SharedArrayBufferIndex, }, }; @@ -135,10 +135,12 @@ impl<'a> InternalSlots<'a> for SharedArrayBuffer<'a> { } fn set_backing_object(self, agent: &mut Agent, backing_object: OrdinaryObject<'static>) { - assert!(agent[self] - .object_index - .replace(backing_object.unbind()) - .is_none()); + assert!( + agent[self] + .object_index + .replace(backing_object.unbind()) + .is_none() + ); } } diff --git a/nova_vm/src/ecmascript/builtins/structured_data/array_buffer_objects/array_buffer_constructor.rs b/nova_vm/src/ecmascript/builtins/structured_data/array_buffer_objects/array_buffer_constructor.rs index ae367f5fb..a7dd0a06d 100644 --- a/nova_vm/src/ecmascript/builtins/structured_data/array_buffer_objects/array_buffer_constructor.rs +++ b/nova_vm/src/ecmascript/builtins/structured_data/array_buffer_objects/array_buffer_constructor.rs @@ -9,13 +9,13 @@ use crate::{ abstract_operations::{operations_on_objects::get, type_conversion::to_index}, builders::builtin_function_builder::BuiltinFunctionBuilder, builtins::{ - array_buffer::allocate_array_buffer, ArgumentsList, Behaviour, Builtin, BuiltinGetter, - BuiltinIntrinsicConstructor, + ArgumentsList, Behaviour, Builtin, BuiltinGetter, BuiltinIntrinsicConstructor, + array_buffer::allocate_array_buffer, }, - execution::{agent::ExceptionType, Agent, JsResult, RealmIdentifier}, + execution::{Agent, JsResult, RealmIdentifier, agent::ExceptionType}, types::{ - Function, IntoObject, IntoValue, Object, PropertyKey, String, Value, - BUILTIN_STRING_MEMORY, + BUILTIN_STRING_MEMORY, Function, IntoObject, IntoValue, Object, PropertyKey, String, + Value, }, }, heap::{IntrinsicConstructorIndexes, WellKnownSymbolIndexes}, diff --git a/nova_vm/src/ecmascript/builtins/structured_data/array_buffer_objects/array_buffer_prototype.rs b/nova_vm/src/ecmascript/builtins/structured_data/array_buffer_objects/array_buffer_prototype.rs index a82a8daac..c12f074fd 100644 --- a/nova_vm/src/ecmascript/builtins/structured_data/array_buffer_objects/array_buffer_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/structured_data/array_buffer_objects/array_buffer_prototype.rs @@ -3,8 +3,8 @@ // file, You can obtain one at https://mozilla.org/MPL/2.0/. use crate::ecmascript::abstract_operations::type_conversion::try_to_index; -use crate::engine::context::{Bindable, GcScope, NoGcScope}; use crate::engine::TryResult; +use crate::engine::context::{Bindable, GcScope, NoGcScope}; use crate::{ ecmascript::{ abstract_operations::{ @@ -13,12 +13,12 @@ use crate::{ }, builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ - array_buffer::{is_detached_buffer, is_fixed_length_array_buffer}, ArgumentsList, ArrayBuffer, Behaviour, Builtin, BuiltinGetter, + array_buffer::{is_detached_buffer, is_fixed_length_array_buffer}, }, - execution::{agent::ExceptionType, Agent, JsResult, RealmIdentifier}, + execution::{Agent, JsResult, RealmIdentifier, agent::ExceptionType}, types::{ - IntoFunction, IntoValue, Object, PropertyKey, String, Value, BUILTIN_STRING_MEMORY, + BUILTIN_STRING_MEMORY, IntoFunction, IntoValue, Object, PropertyKey, String, Value, }, }, heap::WellKnownSymbolIndexes, diff --git a/nova_vm/src/ecmascript/builtins/structured_data/atomics_object.rs b/nova_vm/src/ecmascript/builtins/structured_data/atomics_object.rs index be9531948..273c8f0ca 100644 --- a/nova_vm/src/ecmascript/builtins/structured_data/atomics_object.rs +++ b/nova_vm/src/ecmascript/builtins/structured_data/atomics_object.rs @@ -9,7 +9,7 @@ use crate::{ builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ArgumentsList, Builtin}, execution::{Agent, JsResult, RealmIdentifier}, - types::{String, Value, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, String, Value}, }, heap::WellKnownSymbolIndexes, }; diff --git a/nova_vm/src/ecmascript/builtins/structured_data/data_view_objects/data_view_constructor.rs b/nova_vm/src/ecmascript/builtins/structured_data/data_view_objects/data_view_constructor.rs index c050b5bb4..5953e464b 100644 --- a/nova_vm/src/ecmascript/builtins/structured_data/data_view_objects/data_view_constructor.rs +++ b/nova_vm/src/ecmascript/builtins/structured_data/data_view_objects/data_view_constructor.rs @@ -6,24 +6,24 @@ use crate::ecmascript::abstract_operations::type_conversion::try_to_index; use crate::ecmascript::builtins::array_buffer::{ ViewedArrayBufferByteLength, ViewedArrayBufferByteOffset, }; -use crate::engine::context::{Bindable, GcScope}; use crate::engine::TryResult; +use crate::engine::context::{Bindable, GcScope}; use crate::{ ecmascript::{ abstract_operations::type_conversion::to_index, builders::builtin_function_builder::BuiltinFunctionBuilder, builtins::{ + ArgumentsList, Behaviour, Builtin, BuiltinIntrinsicConstructor, array_buffer::{ - array_buffer_byte_length, is_detached_buffer, is_fixed_length_array_buffer, - Ordering, + Ordering, array_buffer_byte_length, is_detached_buffer, + is_fixed_length_array_buffer, }, data_view::DataView, ordinary::ordinary_create_from_constructor, structured_data::array_buffer_objects::array_buffer_prototype::require_internal_slot_array_buffer, - ArgumentsList, Behaviour, Builtin, BuiltinIntrinsicConstructor, }, - execution::{agent::ExceptionType, Agent, JsResult, ProtoIntrinsics, RealmIdentifier}, - types::{Function, IntoObject, IntoValue, Object, String, Value, BUILTIN_STRING_MEMORY}, + execution::{Agent, JsResult, ProtoIntrinsics, RealmIdentifier, agent::ExceptionType}, + types::{BUILTIN_STRING_MEMORY, Function, IntoObject, IntoValue, Object, String, Value}, }, heap::IntrinsicConstructorIndexes, }; diff --git a/nova_vm/src/ecmascript/builtins/structured_data/data_view_objects/data_view_prototype.rs b/nova_vm/src/ecmascript/builtins/structured_data/data_view_objects/data_view_prototype.rs index 654e4c6a7..823d80ee5 100644 --- a/nova_vm/src/ecmascript/builtins/structured_data/data_view_objects/data_view_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/structured_data/data_view_objects/data_view_prototype.rs @@ -6,24 +6,24 @@ use crate::ecmascript::abstract_operations::type_conversion::to_boolean; use crate::ecmascript::builtins::data_view::abstract_operations::{get_view_value, set_view_value}; use crate::engine::context::{GcScope, NoGcScope}; use crate::{ + SmallInteger, ecmascript::{ builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ + ArgumentsList, Behaviour, Builtin, BuiltinGetter, array_buffer::Ordering, data_view::{ + DataView, abstract_operations::{ get_view_byte_length, is_view_out_of_bounds, make_data_view_with_buffer_witness_record, }, - DataView, }, - ArgumentsList, Behaviour, Builtin, BuiltinGetter, }, - execution::{agent::ExceptionType, Agent, JsResult, RealmIdentifier}, - types::{IntoValue, Number, PropertyKey, String, Value, BUILTIN_STRING_MEMORY}, + execution::{Agent, JsResult, RealmIdentifier, agent::ExceptionType}, + types::{BUILTIN_STRING_MEMORY, IntoValue, Number, PropertyKey, String, Value}, }, heap::WellKnownSymbolIndexes, - SmallInteger, }; pub(crate) struct DataViewPrototype; diff --git a/nova_vm/src/ecmascript/builtins/structured_data/json_object.rs b/nova_vm/src/ecmascript/builtins/structured_data/json_object.rs index e0ac2fbba..2e6aad37e 100644 --- a/nova_vm/src/ecmascript/builtins/structured_data/json_object.rs +++ b/nova_vm/src/ecmascript/builtins/structured_data/json_object.rs @@ -11,8 +11,9 @@ use crate::ecmascript::abstract_operations::testing_and_comparison::is_array; use crate::ecmascript::builtins::Behaviour; use crate::ecmascript::types::{IntoObject, IntoValue}; use crate::engine::context::{Bindable, GcScope, NoGcScope}; -use crate::engine::{unwrap_try, Scoped}; +use crate::engine::{Scoped, unwrap_try}; use crate::{ + SmallInteger, ecmascript::{ abstract_operations::{ operations_on_objects::{ @@ -23,16 +24,15 @@ use crate::{ }, builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ - array_create, ordinary::ordinary_object_create_with_intrinsics, ArgumentsList, Builtin, + ArgumentsList, Builtin, array_create, ordinary::ordinary_object_create_with_intrinsics, }, - execution::{agent::ExceptionType, Agent, JsResult, ProtoIntrinsics, RealmIdentifier}, + execution::{Agent, JsResult, ProtoIntrinsics, RealmIdentifier, agent::ExceptionType}, types::{ - Function, InternalMethods, Number, Object, PropertyKey, String, Value, - BUILTIN_STRING_MEMORY, + BUILTIN_STRING_MEMORY, Function, InternalMethods, Number, Object, PropertyKey, String, + Value, }, }, heap::WellKnownSymbolIndexes, - SmallInteger, }; pub(crate) struct JSONObject; diff --git a/nova_vm/src/ecmascript/builtins/structured_data/shared_array_buffer_objects/shared_array_buffer_constructor.rs b/nova_vm/src/ecmascript/builtins/structured_data/shared_array_buffer_objects/shared_array_buffer_constructor.rs index 4d7e5a15b..3d2251592 100644 --- a/nova_vm/src/ecmascript/builtins/structured_data/shared_array_buffer_objects/shared_array_buffer_constructor.rs +++ b/nova_vm/src/ecmascript/builtins/structured_data/shared_array_buffer_objects/shared_array_buffer_constructor.rs @@ -8,7 +8,7 @@ use crate::{ builders::builtin_function_builder::BuiltinFunctionBuilder, builtins::{ArgumentsList, Behaviour, Builtin, BuiltinGetter, BuiltinIntrinsicConstructor}, execution::{Agent, JsResult, RealmIdentifier}, - types::{IntoObject, Object, PropertyKey, String, Value, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, IntoObject, Object, PropertyKey, String, Value}, }, heap::{IntrinsicConstructorIndexes, WellKnownSymbolIndexes}, }; diff --git a/nova_vm/src/ecmascript/builtins/structured_data/shared_array_buffer_objects/shared_array_buffer_prototype.rs b/nova_vm/src/ecmascript/builtins/structured_data/shared_array_buffer_objects/shared_array_buffer_prototype.rs index d26e159dd..82a8f78f0 100644 --- a/nova_vm/src/ecmascript/builtins/structured_data/shared_array_buffer_objects/shared_array_buffer_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/structured_data/shared_array_buffer_objects/shared_array_buffer_prototype.rs @@ -9,7 +9,7 @@ use crate::{ builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ArgumentsList, Behaviour, Builtin, BuiltinGetter}, execution::{Agent, JsResult, RealmIdentifier}, - types::{PropertyKey, String, Value, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, PropertyKey, String, Value}, }, heap::WellKnownSymbolIndexes, }; diff --git a/nova_vm/src/ecmascript/builtins/text_processing/regexp_objects/regexp_constructor.rs b/nova_vm/src/ecmascript/builtins/text_processing/regexp_objects/regexp_constructor.rs index 00765f185..118edc31c 100644 --- a/nova_vm/src/ecmascript/builtins/text_processing/regexp_objects/regexp_constructor.rs +++ b/nova_vm/src/ecmascript/builtins/text_processing/regexp_objects/regexp_constructor.rs @@ -12,12 +12,12 @@ use crate::ecmascript::execution::Agent; use crate::ecmascript::execution::JsResult; use crate::ecmascript::execution::RealmIdentifier; +use crate::ecmascript::types::BUILTIN_STRING_MEMORY; use crate::ecmascript::types::IntoObject; use crate::ecmascript::types::Object; use crate::ecmascript::types::PropertyKey; use crate::ecmascript::types::String; use crate::ecmascript::types::Value; -use crate::ecmascript::types::BUILTIN_STRING_MEMORY; use crate::engine::context::{Bindable, GcScope}; use crate::heap::IntrinsicConstructorIndexes; use crate::heap::WellKnownSymbolIndexes; diff --git a/nova_vm/src/ecmascript/builtins/text_processing/regexp_objects/regexp_prototype.rs b/nova_vm/src/ecmascript/builtins/text_processing/regexp_objects/regexp_prototype.rs index 944885296..667ab9f46 100644 --- a/nova_vm/src/ecmascript/builtins/text_processing/regexp_objects/regexp_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/text_processing/regexp_objects/regexp_prototype.rs @@ -10,8 +10,8 @@ use crate::{ abstract_operations::{operations_on_objects::get, type_conversion::to_string}, builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ArgumentsList, Behaviour, Builtin, BuiltinGetter, BuiltinIntrinsic}, - execution::{agent::ExceptionType, Agent, JsResult, RealmIdentifier}, - types::{Object, PropertyKey, String, Value, BUILTIN_STRING_MEMORY}, + execution::{Agent, JsResult, RealmIdentifier, agent::ExceptionType}, + types::{BUILTIN_STRING_MEMORY, Object, PropertyKey, String, Value}, }, heap::{IntrinsicFunctionIndexes, WellKnownSymbolIndexes}, }; diff --git a/nova_vm/src/ecmascript/builtins/text_processing/regexp_objects/regexp_string_iterator_prototype.rs b/nova_vm/src/ecmascript/builtins/text_processing/regexp_objects/regexp_string_iterator_prototype.rs index 250daaef2..4778bf1a4 100644 --- a/nova_vm/src/ecmascript/builtins/text_processing/regexp_objects/regexp_string_iterator_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/text_processing/regexp_objects/regexp_string_iterator_prototype.rs @@ -10,7 +10,7 @@ use crate::{ builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ArgumentsList, Builtin}, execution::{Agent, JsResult, RealmIdentifier}, - types::{String, Value, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, String, Value}, }, heap::WellKnownSymbolIndexes, }; diff --git a/nova_vm/src/ecmascript/builtins/text_processing/string_objects/string_constructor.rs b/nova_vm/src/ecmascript/builtins/text_processing/string_objects/string_constructor.rs index 9d9c60902..144c67c7a 100644 --- a/nova_vm/src/ecmascript/builtins/text_processing/string_objects/string_constructor.rs +++ b/nova_vm/src/ecmascript/builtins/text_processing/string_objects/string_constructor.rs @@ -2,24 +2,26 @@ // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at https://mozilla.org/MPL/2.0/. +use crate::SmallString; use crate::ecmascript::abstract_operations::testing_and_comparison::is_integral_number; use crate::ecmascript::abstract_operations::type_conversion::to_number; use crate::ecmascript::abstract_operations::type_conversion::to_string; use crate::ecmascript::abstract_operations::type_conversion::to_uint16_number; use crate::ecmascript::builders::builtin_function_builder::BuiltinFunctionBuilder; -use crate::ecmascript::builtins::ordinary::get_prototype_from_constructor; -use crate::ecmascript::builtins::ordinary::ordinary_object_create_with_intrinsics; -use crate::ecmascript::builtins::primitive_objects::PrimitiveObject; -use crate::ecmascript::builtins::primitive_objects::PrimitiveObjectData; use crate::ecmascript::builtins::ArgumentsList; use crate::ecmascript::builtins::Behaviour; use crate::ecmascript::builtins::Builtin; use crate::ecmascript::builtins::BuiltinIntrinsicConstructor; -use crate::ecmascript::execution::agent::ExceptionType; +use crate::ecmascript::builtins::ordinary::get_prototype_from_constructor; +use crate::ecmascript::builtins::ordinary::ordinary_object_create_with_intrinsics; +use crate::ecmascript::builtins::primitive_objects::PrimitiveObject; +use crate::ecmascript::builtins::primitive_objects::PrimitiveObjectData; use crate::ecmascript::execution::Agent; use crate::ecmascript::execution::JsResult; use crate::ecmascript::execution::ProtoIntrinsics; use crate::ecmascript::execution::RealmIdentifier; +use crate::ecmascript::execution::agent::ExceptionType; +use crate::ecmascript::types::BUILTIN_STRING_MEMORY; use crate::ecmascript::types::Function; use crate::ecmascript::types::IntoObject; use crate::ecmascript::types::IntoValue; @@ -27,10 +29,8 @@ use crate::ecmascript::types::Number; use crate::ecmascript::types::Object; use crate::ecmascript::types::String; use crate::ecmascript::types::Value; -use crate::ecmascript::types::BUILTIN_STRING_MEMORY; use crate::engine::context::{Bindable, GcScope}; use crate::heap::IntrinsicConstructorIndexes; -use crate::SmallString; pub struct StringConstructor; diff --git a/nova_vm/src/ecmascript/builtins/text_processing/string_objects/string_iterator_objects.rs b/nova_vm/src/ecmascript/builtins/text_processing/string_objects/string_iterator_objects.rs index 26c8273e9..0731d1685 100644 --- a/nova_vm/src/ecmascript/builtins/text_processing/string_objects/string_iterator_objects.rs +++ b/nova_vm/src/ecmascript/builtins/text_processing/string_objects/string_iterator_objects.rs @@ -10,7 +10,7 @@ use crate::{ builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ArgumentsList, Builtin}, execution::{Agent, JsResult, RealmIdentifier}, - types::{String, Value, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, String, Value}, }, heap::WellKnownSymbolIndexes, }; diff --git a/nova_vm/src/ecmascript/builtins/text_processing/string_objects/string_prototype.rs b/nova_vm/src/ecmascript/builtins/text_processing/string_objects/string_prototype.rs index d7e15f67b..a325a3ce8 100644 --- a/nova_vm/src/ecmascript/builtins/text_processing/string_objects/string_prototype.rs +++ b/nova_vm/src/ecmascript/builtins/text_processing/string_objects/string_prototype.rs @@ -6,7 +6,7 @@ use core::{cmp::max, iter::repeat, str::FromStr}; use small_string::SmallString; use std::collections::VecDeque; use unicode_normalization::{ - is_nfc_quick, is_nfd_quick, is_nfkc_quick, is_nfkd_quick, IsNormalized, UnicodeNormalization, + IsNormalized, UnicodeNormalization, is_nfc_quick, is_nfd_quick, is_nfkc_quick, is_nfkd_quick, }; use crate::ecmascript::abstract_operations::testing_and_comparison::is_reg_exp; @@ -15,8 +15,8 @@ use crate::ecmascript::abstract_operations::type_conversion::{ try_to_string, }; use crate::ecmascript::types::Primitive; -use crate::engine::context::{Bindable, GcScope, NoGcScope}; use crate::engine::TryResult; +use crate::engine::context::{Bindable, GcScope, NoGcScope}; use crate::{ ecmascript::{ abstract_operations::{ @@ -29,11 +29,11 @@ use crate::{ }, builders::ordinary_object_builder::OrdinaryObjectBuilder, builtins::{ - primitive_objects::{PrimitiveObjectData, PrimitiveObjectHeapData}, ArgumentsList, Array, Behaviour, Builtin, BuiltinIntrinsic, + primitive_objects::{PrimitiveObjectData, PrimitiveObjectHeapData}, }, - execution::{agent::ExceptionType, Agent, JsResult, RealmIdentifier}, - types::{IntoValue, Number, PropertyKey, String, Value, BUILTIN_STRING_MEMORY}, + execution::{Agent, JsResult, RealmIdentifier, agent::ExceptionType}, + types::{BUILTIN_STRING_MEMORY, IntoValue, Number, PropertyKey, String, Value}, }, heap::{IntrinsicFunctionIndexes, WellKnownSymbolIndexes}, }; @@ -1094,7 +1094,7 @@ impl StringPrototype { ExceptionType::RangeError, "The normalization form should be one of NFC, NFD, NFKC, NFKD.", gc.nogc(), - )) + )); } } }; @@ -1536,11 +1536,7 @@ impl StringPrototype { // 11. Else, let to be min(intEnd, len). let len = s.get(agent).utf16_len(agent); let int_end = int_end.into_i64() as usize; - if int_end >= len { - None - } else { - Some(int_end) - } + if int_end >= len { None } else { Some(int_end) } } }; diff --git a/nova_vm/src/ecmascript/builtins/typed_array.rs b/nova_vm/src/ecmascript/builtins/typed_array.rs index 567e832ca..55d6b0e40 100644 --- a/nova_vm/src/ecmascript/builtins/typed_array.rs +++ b/nova_vm/src/ecmascript/builtins/typed_array.rs @@ -10,22 +10,23 @@ use crate::{ ecmascript::{ execution::{Agent, JsResult}, types::{ - InternalMethods, InternalSlots, IntoObject, IntoValue, Object, OrdinaryObject, - PropertyDescriptor, PropertyKey, Value, BIGINT_64_ARRAY_DISCRIMINANT, - BIGUINT_64_ARRAY_DISCRIMINANT, FLOAT_32_ARRAY_DISCRIMINANT, - FLOAT_64_ARRAY_DISCRIMINANT, INT_16_ARRAY_DISCRIMINANT, INT_32_ARRAY_DISCRIMINANT, - INT_8_ARRAY_DISCRIMINANT, UINT_16_ARRAY_DISCRIMINANT, UINT_32_ARRAY_DISCRIMINANT, + BIGINT_64_ARRAY_DISCRIMINANT, BIGUINT_64_ARRAY_DISCRIMINANT, + FLOAT_32_ARRAY_DISCRIMINANT, FLOAT_64_ARRAY_DISCRIMINANT, INT_8_ARRAY_DISCRIMINANT, + INT_16_ARRAY_DISCRIMINANT, INT_32_ARRAY_DISCRIMINANT, InternalMethods, InternalSlots, + IntoObject, IntoValue, Object, OrdinaryObject, PropertyDescriptor, PropertyKey, UINT_8_ARRAY_DISCRIMINANT, UINT_8_CLAMPED_ARRAY_DISCRIMINANT, + UINT_16_ARRAY_DISCRIMINANT, UINT_32_ARRAY_DISCRIMINANT, Value, }, }, engine::{ + Scoped, TryResult, context::{Bindable, GcScope, NoGcScope}, rootable::HeapRootData, - unwrap_try, Scoped, TryResult, + unwrap_try, }, heap::{ - indexes::{IntoBaseIndex, TypedArrayIndex}, CreateHeapData, Heap, HeapMarkAndSweep, + indexes::{IntoBaseIndex, TypedArrayIndex}, }, }; @@ -35,6 +36,7 @@ use crate::ecmascript::types::FLOAT_16_ARRAY_DISCRIMINANT; use self::data::TypedArrayHeapData; use super::{ + ArrayBuffer, array_buffer::{Ordering, ViewedArrayBufferByteLength, ViewedArrayBufferByteOffset}, indexed_collections::typed_array_objects::abstract_operations::{ is_typed_array_fixed_length, is_typed_array_out_of_bounds, is_valid_integer_index_generic, @@ -46,7 +48,6 @@ use super::{ ordinary_has_property_entry, ordinary_prevent_extensions, ordinary_set, ordinary_try_get, ordinary_try_has_property_entry, ordinary_try_set, }, - ArrayBuffer, }; pub mod data; @@ -323,10 +324,12 @@ impl<'a> InternalSlots<'a> for TypedArray<'a> { } fn set_backing_object(self, agent: &mut Agent, backing_object: OrdinaryObject<'static>) { - assert!(agent[self] - .object_index - .replace(backing_object.unbind()) - .is_none()); + assert!( + agent[self] + .object_index + .replace(backing_object.unbind()) + .is_none() + ); } fn internal_prototype(self, agent: &Agent) -> Option> { diff --git a/nova_vm/src/ecmascript/builtins/typed_array/data.rs b/nova_vm/src/ecmascript/builtins/typed_array/data.rs index ab713786a..596a08932 100644 --- a/nova_vm/src/ecmascript/builtins/typed_array/data.rs +++ b/nova_vm/src/ecmascript/builtins/typed_array/data.rs @@ -5,8 +5,8 @@ use crate::{ ecmascript::{ builtins::{ - array_buffer::{ViewedArrayBufferByteLength, ViewedArrayBufferByteOffset}, ArrayBuffer, + array_buffer::{ViewedArrayBufferByteLength, ViewedArrayBufferByteOffset}, }, types::OrdinaryObject, }, diff --git a/nova_vm/src/ecmascript/builtins/weak_map.rs b/nova_vm/src/ecmascript/builtins/weak_map.rs index 921c1e3c5..d1428b5cb 100644 --- a/nova_vm/src/ecmascript/builtins/weak_map.rs +++ b/nova_vm/src/ecmascript/builtins/weak_map.rs @@ -5,6 +5,7 @@ use core::ops::{Index, IndexMut}; use crate::{ + Heap, ecmascript::{ execution::{Agent, ProtoIntrinsics}, types::{ @@ -12,15 +13,14 @@ use crate::{ }, }, engine::{ + Scoped, context::{Bindable, NoGcScope}, rootable::HeapRootData, - Scoped, }, heap::{ - indexes::{BaseIndex, WeakMapIndex}, CreateHeapData, HeapMarkAndSweep, + indexes::{BaseIndex, WeakMapIndex}, }, - Heap, }; use self::data::WeakMapHeapData; @@ -102,10 +102,12 @@ impl<'a> InternalSlots<'a> for WeakMap<'a> { } fn set_backing_object(self, agent: &mut Agent, backing_object: OrdinaryObject<'static>) { - assert!(agent[self] - .object_index - .replace(backing_object.unbind()) - .is_none()); + assert!( + agent[self] + .object_index + .replace(backing_object.unbind()) + .is_none() + ); } } diff --git a/nova_vm/src/ecmascript/builtins/weak_ref.rs b/nova_vm/src/ecmascript/builtins/weak_ref.rs index b8aa28440..9bb2afe25 100644 --- a/nova_vm/src/ecmascript/builtins/weak_ref.rs +++ b/nova_vm/src/ecmascript/builtins/weak_ref.rs @@ -12,13 +12,13 @@ use crate::{ }, }, engine::{ + Scoped, context::{Bindable, NoGcScope}, rootable::HeapRootData, - Scoped, }, heap::{ - indexes::{BaseIndex, WeakRefIndex}, CreateHeapData, Heap, HeapMarkAndSweep, + indexes::{BaseIndex, WeakRefIndex}, }, }; @@ -101,10 +101,12 @@ impl<'a> InternalSlots<'a> for WeakRef<'a> { } fn set_backing_object(self, agent: &mut Agent, backing_object: OrdinaryObject<'static>) { - assert!(agent[self] - .object_index - .replace(backing_object.unbind()) - .is_none()); + assert!( + agent[self] + .object_index + .replace(backing_object.unbind()) + .is_none() + ); } } diff --git a/nova_vm/src/ecmascript/builtins/weak_set.rs b/nova_vm/src/ecmascript/builtins/weak_set.rs index 17c945343..103483ec5 100644 --- a/nova_vm/src/ecmascript/builtins/weak_set.rs +++ b/nova_vm/src/ecmascript/builtins/weak_set.rs @@ -5,6 +5,7 @@ use core::ops::{Index, IndexMut}; use crate::{ + Heap, ecmascript::{ execution::{Agent, ProtoIntrinsics}, types::{ @@ -12,15 +13,14 @@ use crate::{ }, }, engine::{ + Scoped, context::{Bindable, NoGcScope}, rootable::HeapRootData, - Scoped, }, heap::{ - indexes::{BaseIndex, WeakSetIndex}, CompactionLists, CreateHeapData, HeapMarkAndSweep, WorkQueues, + indexes::{BaseIndex, WeakSetIndex}, }, - Heap, }; use self::data::WeakSetHeapData; @@ -102,10 +102,12 @@ impl<'a> InternalSlots<'a> for WeakSet<'a> { } fn set_backing_object(self, agent: &mut Agent, backing_object: OrdinaryObject<'static>) { - assert!(agent[self] - .object_index - .replace(backing_object.unbind()) - .is_none()); + assert!( + agent[self] + .object_index + .replace(backing_object.unbind()) + .is_none() + ); } } diff --git a/nova_vm/src/ecmascript/execution.rs b/nova_vm/src/ecmascript/execution.rs index f39417575..83b80d475 100644 --- a/nova_vm/src/ecmascript/execution.rs +++ b/nova_vm/src/ecmascript/execution.rs @@ -11,16 +11,16 @@ mod realm; pub use agent::{Agent, JsResult}; pub use default_host_hooks::DefaultHostHooks; pub(crate) use environments::{ - get_this_environment, new_class_field_initializer_environment, - new_class_static_element_environment, new_declarative_environment, new_function_environment, DeclarativeEnvironmentIndex, EnvironmentIndex, Environments, FunctionEnvironmentIndex, GlobalEnvironment, GlobalEnvironmentIndex, ModuleEnvironmentIndex, ObjectEnvironmentIndex, - PrivateEnvironmentIndex, ThisBindingStatus, + PrivateEnvironmentIndex, ThisBindingStatus, get_this_environment, + new_class_field_initializer_environment, new_class_static_element_environment, + new_declarative_environment, new_function_environment, }; pub(crate) use execution_context::*; -#[cfg(test)] -pub(crate) use realm::{create_realm, set_realm_global_object}; pub(crate) use realm::{ - initialize_default_realm, initialize_host_defined_realm, ProtoIntrinsics, Realm, - RealmIdentifier, + ProtoIntrinsics, Realm, RealmIdentifier, initialize_default_realm, + initialize_host_defined_realm, }; +#[cfg(test)] +pub(crate) use realm::{create_realm, set_realm_global_object}; diff --git a/nova_vm/src/ecmascript/execution/environments.rs b/nova_vm/src/ecmascript/execution/environments.rs index 76282121d..dd6569ee2 100644 --- a/nova_vm/src/ecmascript/execution/environments.rs +++ b/nova_vm/src/ecmascript/execution/environments.rs @@ -33,17 +33,17 @@ mod module_environment; mod object_environment; mod private_environment; -pub(crate) use declarative_environment::{new_declarative_environment, DeclarativeEnvironment}; +pub(crate) use declarative_environment::{DeclarativeEnvironment, new_declarative_environment}; pub(crate) use function_environment::{ - new_class_field_initializer_environment, new_class_static_element_environment, - new_function_environment, FunctionEnvironment, ThisBindingStatus, + FunctionEnvironment, ThisBindingStatus, new_class_field_initializer_environment, + new_class_static_element_environment, new_function_environment, }; pub(crate) use global_environment::GlobalEnvironment; pub(crate) use object_environment::ObjectEnvironment; pub(crate) use private_environment::PrivateEnvironment; -use crate::engine::context::{Bindable, GcScope, NoGcScope}; use crate::engine::TryResult; +use crate::engine::context::{Bindable, GcScope, NoGcScope}; use crate::{ ecmascript::types::{Base, Object, Reference, String, Value}, heap::{CompactionLists, HeapMarkAndSweep, WorkQueues}, diff --git a/nova_vm/src/ecmascript/execution/environments/declarative_environment.rs b/nova_vm/src/ecmascript/execution/environments/declarative_environment.rs index 9ea32b13f..717731124 100644 --- a/nova_vm/src/ecmascript/execution/environments/declarative_environment.rs +++ b/nova_vm/src/ecmascript/execution/environments/declarative_environment.rs @@ -7,7 +7,7 @@ use ahash::AHashMap; use super::{DeclarativeEnvironmentIndex, OuterEnv}; use crate::{ ecmascript::{ - execution::{agent::ExceptionType, Agent, JsResult}, + execution::{Agent, JsResult, agent::ExceptionType}, types::{Object, String, Value}, }, engine::context::{Bindable, NoGcScope}, diff --git a/nova_vm/src/ecmascript/execution/environments/function_environment.rs b/nova_vm/src/ecmascript/execution/environments/function_environment.rs index c195452e0..f201d6990 100644 --- a/nova_vm/src/ecmascript/execution/environments/function_environment.rs +++ b/nova_vm/src/ecmascript/execution/environments/function_environment.rs @@ -11,7 +11,7 @@ use crate::engine::unwrap_try; use crate::{ ecmascript::{ builtins::{ECMAScriptFunction, ThisMode}, - execution::{agent::ExceptionType, Agent, JsResult}, + execution::{Agent, JsResult, agent::ExceptionType}, types::{Function, InternalMethods, IntoFunction, IntoValue, Object, String, Value}, }, heap::{CompactionLists, HeapMarkAndSweep, WorkQueues}, diff --git a/nova_vm/src/ecmascript/execution/environments/global_environment.rs b/nova_vm/src/ecmascript/execution/environments/global_environment.rs index 8790bb684..679d6ff4d 100644 --- a/nova_vm/src/ecmascript/execution/environments/global_environment.rs +++ b/nova_vm/src/ecmascript/execution/environments/global_environment.rs @@ -14,18 +14,18 @@ use crate::{ testing_and_comparison::{is_extensible, try_is_extensible}, }, execution::{ + Agent, JsResult, agent::ExceptionType, environments::{ DeclarativeEnvironment, DeclarativeEnvironmentIndex, GlobalEnvironmentIndex, ObjectEnvironment, ObjectEnvironmentIndex, }, - Agent, JsResult, }, types::{InternalMethods, Object, PropertyDescriptor, PropertyKey, String, Value}, }, engine::{ - context::{Bindable, GcScope, NoGcScope}, TryResult, + context::{Bindable, GcScope, NoGcScope}, }, heap::{CompactionLists, HeapMarkAndSweep, WorkQueues}, }; diff --git a/nova_vm/src/ecmascript/execution/environments/object_environment.rs b/nova_vm/src/ecmascript/execution/environments/object_environment.rs index 11d90d025..98541d863 100644 --- a/nova_vm/src/ecmascript/execution/environments/object_environment.rs +++ b/nova_vm/src/ecmascript/execution/environments/object_environment.rs @@ -7,15 +7,15 @@ use crate::ecmascript::abstract_operations::operations_on_objects::{ try_define_property_or_throw, try_get, try_has_property, try_set, }; use crate::ecmascript::types::IntoValue; -use crate::engine::context::{Bindable, GcScope, NoGcScope}; use crate::engine::TryResult; +use crate::engine::context::{Bindable, GcScope, NoGcScope}; use crate::{ ecmascript::{ abstract_operations::{ operations_on_objects::{define_property_or_throw, get, has_property, set}, type_conversion::to_boolean, }, - execution::{agent::ExceptionType, Agent, JsResult}, + execution::{Agent, JsResult, agent::ExceptionType}, types::{InternalMethods, Object, PropertyDescriptor, PropertyKey, String, Value}, }, heap::{CompactionLists, HeapMarkAndSweep, WellKnownSymbolIndexes, WorkQueues}, @@ -285,7 +285,9 @@ impl ObjectEnvironmentIndex { /// ### [9.1.1.2.3 CreateImmutableBinding ( N, S )](https://tc39.es/ecma262/#sec-object-environment-records-createimmutablebinding-n-s) pub(crate) fn create_immutable_binding(self, _: &mut Agent, _: String, _: bool) { - unreachable!("The CreateImmutableBinding concrete method of an Object Environment Record is never used within this specification.") + unreachable!( + "The CreateImmutableBinding concrete method of an Object Environment Record is never used within this specification." + ) } /// ### Try [9.1.1.2.4 InitializeBinding ( N, V )](https://tc39.es/ecma262/#sec-object-environment-records-initializebinding-n-v) diff --git a/nova_vm/src/ecmascript/execution/execution_context.rs b/nova_vm/src/ecmascript/execution/execution_context.rs index 0b681088f..33b17e1cd 100644 --- a/nova_vm/src/ecmascript/execution/execution_context.rs +++ b/nova_vm/src/ecmascript/execution/execution_context.rs @@ -5,7 +5,7 @@ use super::{Agent, EnvironmentIndex, PrivateEnvironmentIndex, RealmIdentifier}; use crate::{ ecmascript::{ - scripts_and_modules::{source_code::SourceCode, ScriptOrModule}, + scripts_and_modules::{ScriptOrModule, source_code::SourceCode}, types::*, }, engine::context::{Bindable, NoGcScope}, diff --git a/nova_vm/src/ecmascript/execution/realm.rs b/nova_vm/src/ecmascript/execution/realm.rs index 78c1c2943..99236bb68 100644 --- a/nova_vm/src/ecmascript/execution/realm.rs +++ b/nova_vm/src/ecmascript/execution/realm.rs @@ -5,15 +5,15 @@ mod intrinsics; use super::{ - environments::GlobalEnvironmentIndex, Agent, ExecutionContext, GlobalEnvironment, JsResult, + Agent, ExecutionContext, GlobalEnvironment, JsResult, environments::GlobalEnvironmentIndex, }; use crate::engine::context::{Bindable, GcScope, NoGcScope}; use crate::{ ecmascript::{ abstract_operations::operations_on_objects::define_property_or_throw, types::{ - IntoValue, Number, Object, OrdinaryObject, PropertyDescriptor, PropertyKey, Value, - BUILTIN_STRING_MEMORY, + BUILTIN_STRING_MEMORY, IntoValue, Number, Object, OrdinaryObject, PropertyDescriptor, + PropertyKey, Value, }, }, heap::{CompactionLists, HeapMarkAndSweep, WorkQueues}, @@ -1209,7 +1209,7 @@ mod test { #[cfg(feature = "regexp")] fn test_default_realm_sanity() { use super::initialize_default_realm; - use crate::ecmascript::execution::{agent::Options, Agent, DefaultHostHooks}; + use crate::ecmascript::execution::{Agent, DefaultHostHooks, agent::Options}; use crate::heap::indexes::BuiltinFunctionIndex; use crate::heap::indexes::ObjectIndex; diff --git a/nova_vm/src/ecmascript/execution/realm/intrinsics.rs b/nova_vm/src/ecmascript/execution/realm/intrinsics.rs index 3d265cd79..1b487e9b9 100644 --- a/nova_vm/src/ecmascript/execution/realm/intrinsics.rs +++ b/nova_vm/src/ecmascript/execution/realm/intrinsics.rs @@ -61,6 +61,7 @@ use crate::ecmascript::builtins::{ use crate::{ ecmascript::{ builtins::{ + Array, BuiltinFunction, control_abstraction_objects::{ async_function_objects::{ async_function_constructor::AsyncFunctionConstructor, @@ -107,7 +108,6 @@ use crate::{ string_iterator_objects::StringIteratorPrototype, string_prototype::StringPrototype, }, - Array, BuiltinFunction, }, execution::Agent, fundamental_objects::{ @@ -143,10 +143,10 @@ use crate::{ }, engine::context::NoGcScope, heap::{ - indexes::{ArrayIndex, BuiltinFunctionIndex, ObjectIndex, PrimitiveObjectIndex}, - intrinsic_function_count, intrinsic_object_count, intrinsic_primitive_object_count, CompactionLists, HeapMarkAndSweep, IntrinsicConstructorIndexes, IntrinsicFunctionIndexes, IntrinsicObjectIndexes, IntrinsicPrimitiveObjectIndexes, WorkQueues, + indexes::{ArrayIndex, BuiltinFunctionIndex, ObjectIndex, PrimitiveObjectIndex}, + intrinsic_function_count, intrinsic_object_count, intrinsic_primitive_object_count, }, }; #[derive(Debug, Clone)] diff --git a/nova_vm/src/ecmascript/scripts_and_modules/script.rs b/nova_vm/src/ecmascript/scripts_and_modules/script.rs index 09dbeab62..fb5c28839 100644 --- a/nova_vm/src/ecmascript/scripts_and_modules/script.rs +++ b/nova_vm/src/ecmascript/scripts_and_modules/script.rs @@ -6,19 +6,19 @@ use crate::engine::context::{Bindable, GcScope, NoGcScope}; use crate::{ ecmascript::{ execution::{ - agent::ExceptionType, Agent, ECMAScriptCode, EnvironmentIndex, ExecutionContext, - GlobalEnvironmentIndex, JsResult, RealmIdentifier, + Agent, ECMAScriptCode, EnvironmentIndex, ExecutionContext, GlobalEnvironmentIndex, + JsResult, RealmIdentifier, agent::ExceptionType, }, scripts_and_modules::ScriptOrModule, syntax_directed_operations::{ miscellaneous::instantiate_function_object, scope_analysis::{ - script_lexically_declared_names, script_lexically_scoped_declarations, - script_var_declared_names, script_var_scoped_declarations, - LexicallyScopedDeclaration, VarScopedDeclaration, + LexicallyScopedDeclaration, VarScopedDeclaration, script_lexically_declared_names, + script_lexically_scoped_declarations, script_var_declared_names, + script_var_scoped_declarations, }, }, - types::{IntoValue, String, Value, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, IntoValue, String, Value}, }, engine::{Executable, Vm}, heap::{CompactionLists, HeapMarkAndSweep, WorkQueues}, @@ -579,18 +579,18 @@ mod test { use crate::engine::context::{Bindable, GcScope}; use crate::engine::unwrap_try; use crate::{ + SmallInteger, ecmascript::{ abstract_operations::operations_on_objects::create_data_property_or_throw, builders::builtin_function_builder::BuiltinFunctionBuilder, builtins::{ArgumentsList, Behaviour, Builtin}, execution::{ - agent::Options, create_realm, initialize_default_realm, set_realm_global_object, - Agent, DefaultHostHooks, ExecutionContext, + Agent, DefaultHostHooks, ExecutionContext, agent::Options, create_realm, + initialize_default_realm, set_realm_global_object, }, scripts_and_modules::script::{parse_script, script_evaluation}, types::{InternalMethods, IntoValue, Number, Object, PropertyKey, String, Value}, }, - SmallInteger, }; #[test] @@ -839,10 +839,12 @@ mod test { .unwrap(); assert!(foo.is_object()); let result = Object::try_from(foo).unwrap(); - assert!(result - .internal_own_property_keys(&mut agent, gc) - .unwrap() - .is_empty()); + assert!( + result + .internal_own_property_keys(&mut agent, gc) + .unwrap() + .is_empty() + ); } #[test] @@ -869,9 +871,11 @@ mod test { assert!(foo.is_object()); let result = Object::try_from(foo).unwrap(); let key = PropertyKey::from_static_str(&mut agent, "a", gc.nogc()).unbind(); - assert!(result - .internal_has_property(&mut agent, key, gc.reborrow()) - .unwrap()); + assert!( + result + .internal_has_property(&mut agent, key, gc.reborrow()) + .unwrap() + ); assert_eq!( result .internal_get_own_property(&mut agent, key, gc) @@ -1229,12 +1233,16 @@ mod test { let global_env = agent.get_realm(realm).global_env.unwrap(); let a_key = String::from_static_str(&mut agent, "a", gc.nogc()).unbind(); let i_key = String::from_static_str(&mut agent, "i", gc.nogc()).unbind(); - assert!(global_env - .has_binding(&mut agent, a_key, gc.reborrow()) - .unwrap()); - assert!(global_env - .has_binding(&mut agent, i_key, gc.reborrow()) - .unwrap()); + assert!( + global_env + .has_binding(&mut agent, a_key, gc.reborrow()) + .unwrap() + ); + assert!( + global_env + .has_binding(&mut agent, i_key, gc.reborrow()) + .unwrap() + ); assert_eq!( global_env .get_binding_value(&mut agent, a_key, true, gc.reborrow()) diff --git a/nova_vm/src/ecmascript/scripts_and_modules/source_code.rs b/nova_vm/src/ecmascript/scripts_and_modules/source_code.rs index 920729bf7..7e2ac2531 100644 --- a/nova_vm/src/ecmascript/scripts_and_modules/source_code.rs +++ b/nova_vm/src/ecmascript/scripts_and_modules/source_code.rs @@ -23,7 +23,7 @@ use crate::{ }, engine::context::{Bindable, NoGcScope}, heap::{ - indexes::BaseIndex, CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, WorkQueues, + CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, WorkQueues, indexes::BaseIndex, }, }; diff --git a/nova_vm/src/ecmascript/syntax_directed_operations/class_definitions.rs b/nova_vm/src/ecmascript/syntax_directed_operations/class_definitions.rs index 57b42d31f..18369f1c7 100644 --- a/nova_vm/src/ecmascript/syntax_directed_operations/class_definitions.rs +++ b/nova_vm/src/ecmascript/syntax_directed_operations/class_definitions.rs @@ -9,9 +9,9 @@ use crate::{ testing_and_comparison::is_constructor, }, builtins::{ - ordinary::ordinary_create_from_constructor, ArgumentsList, BuiltinConstructorFunction, + ArgumentsList, BuiltinConstructorFunction, ordinary::ordinary_create_from_constructor, }, - execution::{agent::ExceptionType, Agent, JsResult, ProtoIntrinsics}, + execution::{Agent, JsResult, ProtoIntrinsics, agent::ExceptionType}, types::{Function, InternalMethods, Object}, }, engine::{ diff --git a/nova_vm/src/ecmascript/syntax_directed_operations/function_definitions.rs b/nova_vm/src/ecmascript/syntax_directed_operations/function_definitions.rs index ca971da5f..48c5b356e 100644 --- a/nova_vm/src/ecmascript/syntax_directed_operations/function_definitions.rs +++ b/nova_vm/src/ecmascript/syntax_directed_operations/function_definitions.rs @@ -12,6 +12,7 @@ use crate::engine::unwrap_try; use crate::{ ecmascript::{ builtins::{ + ArgumentsList, ECMAScriptFunction, OrdinaryFunctionCreateParams, ThisMode, control_abstraction_objects::{ async_function_objects::await_reaction::AwaitReaction, generator_objects::GeneratorState, @@ -28,16 +29,15 @@ use crate::{ ordinary::{ordinary_create_from_constructor, ordinary_object_create_with_intrinsics}, ordinary_function_create, promise::Promise, - set_function_name, ArgumentsList, ECMAScriptFunction, OrdinaryFunctionCreateParams, - ThisMode, + set_function_name, }, execution::{ Agent, ECMAScriptCodeEvaluationState, EnvironmentIndex, JsResult, PrivateEnvironmentIndex, ProtoIntrinsics, }, types::{ - IntoFunction, IntoObject, IntoValue, Object, PropertyDescriptor, PropertyKey, String, - Value, BUILTIN_STRING_MEMORY, + BUILTIN_STRING_MEMORY, IntoFunction, IntoObject, IntoValue, Object, PropertyDescriptor, + PropertyKey, String, Value, }, }, engine::{Executable, ExecutionResult, FunctionExpression, Vm}, diff --git a/nova_vm/src/ecmascript/types.rs b/nova_vm/src/ecmascript/types.rs index 4ab2486bc..480705d81 100644 --- a/nova_vm/src/ecmascript/types.rs +++ b/nova_vm/src/ecmascript/types.rs @@ -7,9 +7,9 @@ mod spec; pub(crate) use language::*; pub use language::{ - bigint, BigInt, Function, HeapNumber, HeapString, InternalMethods, InternalSlots, IntoFunction, + BigInt, Function, HeapNumber, HeapString, InternalMethods, InternalSlots, IntoFunction, IntoNumeric, IntoObject, IntoPrimitive, IntoValue, Number, Numeric, Object, OrdinaryObject, - Primitive, PropertyKey, String, Symbol, Value, + Primitive, PropertyKey, String, Symbol, Value, bigint, }; pub use spec::PropertyDescriptor; pub(crate) use spec::*; diff --git a/nova_vm/src/ecmascript/types/language.rs b/nova_vm/src/ecmascript/types/language.rs index f271e660c..d9a26b65c 100644 --- a/nova_vm/src/ecmascript/types/language.rs +++ b/nova_vm/src/ecmascript/types/language.rs @@ -17,12 +17,12 @@ mod value; pub use bigint::{BigInt, BigIntHeapData}; pub(crate) use function::{ - function_create_backing_object, function_internal_define_own_property, - function_internal_delete, function_internal_get, function_internal_get_own_property, - function_internal_has_property, function_internal_own_property_keys, function_internal_set, - function_try_get, function_try_has_property, function_try_set, BoundFunctionHeapData, - BuiltinConstructorHeapData, BuiltinFunctionHeapData, ECMAScriptFunctionHeapData, - FunctionInternalProperties, + BoundFunctionHeapData, BuiltinConstructorHeapData, BuiltinFunctionHeapData, + ECMAScriptFunctionHeapData, FunctionInternalProperties, function_create_backing_object, + function_internal_define_own_property, function_internal_delete, function_internal_get, + function_internal_get_own_property, function_internal_has_property, + function_internal_own_property_keys, function_internal_set, function_try_get, + function_try_has_property, function_try_set, }; pub use function::{Function, IntoFunction}; pub use into_numeric::IntoNumeric; @@ -31,14 +31,13 @@ pub use into_value::IntoValue; pub use number::{HeapNumber, Number, NumberHeapData}; pub use numeric::Numeric; pub use object::{ - scope_property_keys, InternalMethods, InternalSlots, IntoObject, Object, ObjectHeapData, - OrdinaryObject, PropertyKey, + InternalMethods, InternalSlots, IntoObject, Object, ObjectHeapData, OrdinaryObject, + PropertyKey, scope_property_keys, }; pub(crate) use primitive::HeapPrimitive; pub use primitive::Primitive; -pub use string::{HeapString, String, StringHeapData, BUILTIN_STRINGS_LIST, BUILTIN_STRING_MEMORY}; +pub use string::{BUILTIN_STRING_MEMORY, BUILTIN_STRINGS_LIST, HeapString, String, StringHeapData}; pub use symbol::{Symbol, SymbolHeapData}; -pub use value::Value; #[cfg(feature = "date")] pub(crate) use value::DATE_DISCRIMINANT; #[cfg(feature = "proposal-float16array")] @@ -47,6 +46,7 @@ pub(crate) use value::FLOAT_16_ARRAY_DISCRIMINANT; pub(crate) use value::REGEXP_DISCRIMINANT; #[cfg(feature = "shared-array-buffer")] pub(crate) use value::SHARED_ARRAY_BUFFER_DISCRIMINANT; +pub use value::Value; pub(crate) use value::{ ARGUMENTS_DISCRIMINANT, ARRAY_DISCRIMINANT, ARRAY_ITERATOR_DISCRIMINANT, ASYNC_FROM_SYNC_ITERATOR_DISCRIMINANT, ASYNC_GENERATOR_DISCRIMINANT, BIGINT_DISCRIMINANT, @@ -65,9 +65,9 @@ pub(crate) use value::{ pub(crate) use value::{ ARRAY_BUFFER_DISCRIMINANT, BIGINT_64_ARRAY_DISCRIMINANT, BIGUINT_64_ARRAY_DISCRIMINANT, DATA_VIEW_DISCRIMINANT, FLOAT_32_ARRAY_DISCRIMINANT, FLOAT_64_ARRAY_DISCRIMINANT, - INT_16_ARRAY_DISCRIMINANT, INT_32_ARRAY_DISCRIMINANT, INT_8_ARRAY_DISCRIMINANT, - UINT_16_ARRAY_DISCRIMINANT, UINT_32_ARRAY_DISCRIMINANT, UINT_8_ARRAY_DISCRIMINANT, - UINT_8_CLAMPED_ARRAY_DISCRIMINANT, + INT_8_ARRAY_DISCRIMINANT, INT_16_ARRAY_DISCRIMINANT, INT_32_ARRAY_DISCRIMINANT, + UINT_8_ARRAY_DISCRIMINANT, UINT_8_CLAMPED_ARRAY_DISCRIMINANT, UINT_16_ARRAY_DISCRIMINANT, + UINT_32_ARRAY_DISCRIMINANT, }; #[cfg(feature = "set")] pub(crate) use value::{SET_DISCRIMINANT, SET_ITERATOR_DISCRIMINANT}; diff --git a/nova_vm/src/ecmascript/types/language/bigint.rs b/nova_vm/src/ecmascript/types/language/bigint.rs index e831d78a1..012574ab6 100644 --- a/nova_vm/src/ecmascript/types/language/bigint.rs +++ b/nova_vm/src/ecmascript/types/language/bigint.rs @@ -4,22 +4,22 @@ mod data; use super::{ + IntoPrimitive, IntoValue, Primitive, String, Value, into_numeric::IntoNumeric, numeric::Numeric, value::{BIGINT_DISCRIMINANT, SMALL_BIGINT_DISCRIMINANT}, - IntoPrimitive, IntoValue, Primitive, String, Value, }; use crate::{ - ecmascript::execution::{agent::ExceptionType, Agent, JsResult}, + SmallInteger, + ecmascript::execution::{Agent, JsResult, agent::ExceptionType}, engine::{ context::NoGcScope, rootable::{HeapRootData, HeapRootRef, Rootable}, }, heap::{ - indexes::BigIntIndex, CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, - PrimitiveHeap, WorkQueues, + CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, PrimitiveHeap, WorkQueues, + indexes::BigIntIndex, }, - SmallInteger, }; use core::ops::{Index, IndexMut, Neg}; pub use data::BigIntHeapData; diff --git a/nova_vm/src/ecmascript/types/language/function.rs b/nova_vm/src/ecmascript/types/language/function.rs index 6657d6eb1..cf08d21bb 100644 --- a/nova_vm/src/ecmascript/types/language/function.rs +++ b/nova_vm/src/ecmascript/types/language/function.rs @@ -28,10 +28,11 @@ use crate::{ pub(crate) use data::*; pub use into_function::IntoFunction; pub(crate) use into_function::{ - function_create_backing_object, function_internal_define_own_property, - function_internal_delete, function_internal_get, function_internal_get_own_property, - function_internal_has_property, function_internal_own_property_keys, function_internal_set, - function_try_get, function_try_has_property, function_try_set, FunctionInternalProperties, + FunctionInternalProperties, function_create_backing_object, + function_internal_define_own_property, function_internal_delete, function_internal_get, + function_internal_get_own_property, function_internal_has_property, + function_internal_own_property_keys, function_internal_set, function_try_get, + function_try_has_property, function_try_set, }; /// https://tc39.es/ecma262/#function-object diff --git a/nova_vm/src/ecmascript/types/language/function/into_function.rs b/nova_vm/src/ecmascript/types/language/function/into_function.rs index d3596d6b8..c886aea74 100644 --- a/nova_vm/src/ecmascript/types/language/function/into_function.rs +++ b/nova_vm/src/ecmascript/types/language/function/into_function.rs @@ -10,13 +10,14 @@ use crate::{ }, execution::{Agent, JsResult}, types::{ - language::IntoObject, InternalMethods, InternalSlots, IntoValue, ObjectHeapData, - OrdinaryObject, PropertyDescriptor, PropertyKey, String, Value, BUILTIN_STRING_MEMORY, + BUILTIN_STRING_MEMORY, InternalMethods, InternalSlots, IntoValue, ObjectHeapData, + OrdinaryObject, PropertyDescriptor, PropertyKey, String, Value, language::IntoObject, }, }, engine::{ + TryResult, context::{Bindable, GcScope, NoGcScope}, - unwrap_try, TryResult, + unwrap_try, }, heap::{CreateHeapData, ObjectEntry, ObjectEntryPropertyDescriptor}, }; diff --git a/nova_vm/src/ecmascript/types/language/number.rs b/nova_vm/src/ecmascript/types/language/number.rs index bec6a1aa5..9c86d9f8f 100644 --- a/nova_vm/src/ecmascript/types/language/number.rs +++ b/nova_vm/src/ecmascript/types/language/number.rs @@ -7,27 +7,27 @@ mod data; use core::ops::{Index, IndexMut}; use super::{ - value::{FLOAT_DISCRIMINANT, INTEGER_DISCRIMINANT, NUMBER_DISCRIMINANT}, IntoNumeric, IntoPrimitive, IntoValue, Numeric, Primitive, String, Value, + value::{FLOAT_DISCRIMINANT, INTEGER_DISCRIMINANT, NUMBER_DISCRIMINANT}, }; use crate::{ - ecmascript::abstract_operations::type_conversion::{to_int32_number, to_uint32_number}, - engine::{ - context::{Bindable, NoGcScope}, - Scoped, - }, -}; -use crate::{ + SmallInteger, ecmascript::execution::Agent, engine::{ rootable::{HeapRootData, HeapRootRef, Rootable}, small_f64::SmallF64, }, heap::{ - indexes::NumberIndex, CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, - PrimitiveHeap, WorkQueues, + CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, PrimitiveHeap, WorkQueues, + indexes::NumberIndex, + }, +}; +use crate::{ + ecmascript::abstract_operations::type_conversion::{to_int32_number, to_uint32_number}, + engine::{ + Scoped, + context::{Bindable, NoGcScope}, }, - SmallInteger, }; pub use data::NumberHeapData; @@ -615,11 +615,7 @@ impl<'a> Number<'a> { match self { Number::Number(n) => { let n = agent[n.unbind()]; - if n > 0.0 { - self - } else { - agent.heap.create(-n) - } + if n > 0.0 { self } else { agent.heap.create(-n) } } Number::Integer(n) => { let n = n.into_i64(); diff --git a/nova_vm/src/ecmascript/types/language/numeric.rs b/nova_vm/src/ecmascript/types/language/numeric.rs index 0cd92a32f..71c5969e5 100644 --- a/nova_vm/src/ecmascript/types/language/numeric.rs +++ b/nova_vm/src/ecmascript/types/language/numeric.rs @@ -2,25 +2,25 @@ // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at https://mozilla.org/MPL/2.0/. -use crate::engine::context::NoGcScope; use crate::engine::Scoped; +use crate::engine::context::NoGcScope; use crate::{ + SmallInteger, ecmascript::execution::Agent, engine::{ rootable::{HeapRootData, HeapRootRef, Rootable}, small_f64::SmallF64, }, - SmallInteger, }; use super::{ + IntoPrimitive, IntoValue, Number, Primitive, Value, bigint::{HeapBigInt, SmallBigInt}, number::HeapNumber, value::{ BIGINT_DISCRIMINANT, FLOAT_DISCRIMINANT, INTEGER_DISCRIMINANT, NUMBER_DISCRIMINANT, SMALL_BIGINT_DISCRIMINANT, }, - IntoPrimitive, IntoValue, Number, Primitive, Value, }; #[derive(Debug, Clone, Copy, PartialEq)] diff --git a/nova_vm/src/ecmascript/types/language/object.rs b/nova_vm/src/ecmascript/types/language/object.rs index e7202f3c3..5c933564b 100644 --- a/nova_vm/src/ecmascript/types/language/object.rs +++ b/nova_vm/src/ecmascript/types/language/object.rs @@ -23,13 +23,14 @@ use super::value::SHARED_ARRAY_BUFFER_DISCRIMINANT; use super::value::{ ARRAY_BUFFER_DISCRIMINANT, BIGINT_64_ARRAY_DISCRIMINANT, BIGUINT_64_ARRAY_DISCRIMINANT, DATA_VIEW_DISCRIMINANT, FLOAT_32_ARRAY_DISCRIMINANT, FLOAT_64_ARRAY_DISCRIMINANT, - INT_16_ARRAY_DISCRIMINANT, INT_32_ARRAY_DISCRIMINANT, INT_8_ARRAY_DISCRIMINANT, - UINT_16_ARRAY_DISCRIMINANT, UINT_32_ARRAY_DISCRIMINANT, UINT_8_ARRAY_DISCRIMINANT, - UINT_8_CLAMPED_ARRAY_DISCRIMINANT, + INT_8_ARRAY_DISCRIMINANT, INT_16_ARRAY_DISCRIMINANT, INT_32_ARRAY_DISCRIMINANT, + UINT_8_ARRAY_DISCRIMINANT, UINT_8_CLAMPED_ARRAY_DISCRIMINANT, UINT_16_ARRAY_DISCRIMINANT, + UINT_32_ARRAY_DISCRIMINANT, }; #[cfg(feature = "weak-refs")] use super::value::{WEAK_MAP_DISCRIMINANT, WEAK_REF_DISCRIMINANT, WEAK_SET_DISCRIMINANT}; use super::{ + Function, IntoValue, Value, value::{ ARGUMENTS_DISCRIMINANT, ARRAY_DISCRIMINANT, ARRAY_ITERATOR_DISCRIMINANT, ASYNC_FROM_SYNC_ITERATOR_DISCRIMINANT, ASYNC_GENERATOR_DISCRIMINANT, @@ -42,7 +43,6 @@ use super::{ MAP_DISCRIMINANT, MAP_ITERATOR_DISCRIMINANT, MODULE_DISCRIMINANT, OBJECT_DISCRIMINANT, PRIMITIVE_OBJECT_DISCRIMINANT, PROMISE_DISCRIMINANT, PROXY_DISCRIMINANT, }, - Function, IntoValue, Value, }; #[cfg(feature = "date")] use crate::ecmascript::builtins::date::Date; @@ -61,13 +61,14 @@ use crate::ecmascript::{ }; #[cfg(feature = "array-buffer")] use crate::{ - ecmascript::builtins::{data_view::DataView, typed_array::TypedArray, ArrayBuffer}, - engine::{context::NoGcScope, Scoped}, + ecmascript::builtins::{ArrayBuffer, data_view::DataView, typed_array::TypedArray}, + engine::{Scoped, context::NoGcScope}, heap::indexes::TypedArrayIndex, }; use crate::{ ecmascript::{ builtins::{ + ArgumentsList, Array, BuiltinConstructorFunction, BuiltinFunction, ECMAScriptFunction, async_generator_objects::AsyncGenerator, bound_function::BoundFunction, control_abstraction_objects::{ @@ -85,18 +86,17 @@ use crate::{ primitive_objects::PrimitiveObject, promise::Promise, proxy::Proxy, - ArgumentsList, Array, BuiltinConstructorFunction, BuiltinFunction, ECMAScriptFunction, }, execution::{Agent, JsResult, ProtoIntrinsics}, types::PropertyDescriptor, }, engine::{ + TryResult, context::{Bindable, GcScope}, rootable::HeapRootData, - TryResult, }, heap::{ - indexes::ObjectIndex, CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, WorkQueues, + CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, WorkQueues, indexes::ObjectIndex, }, }; @@ -104,7 +104,7 @@ pub use data::ObjectHeapData; pub use internal_methods::InternalMethods; pub use internal_slots::InternalSlots; pub use into_object::IntoObject; -pub use property_key::{scope_property_keys, PropertyKey}; +pub use property_key::{PropertyKey, scope_property_keys}; pub use property_storage::PropertyStorage; /// ### [6.1.7 The Object Type](https://tc39.es/ecma262/#sec-object-type) @@ -3888,7 +3888,7 @@ impl TryFrom for Object<'_> { #[cfg(feature = "array-buffer")] HeapRootData::Float64Array(base_index) => Ok(Self::Float64Array(base_index)), HeapRootData::AsyncFromSyncIterator => Ok(Self::AsyncFromSyncIterator), - HeapRootData::AsyncGenerator(gen) => Ok(Self::AsyncGenerator(gen)), + HeapRootData::AsyncGenerator(r#gen) => Ok(Self::AsyncGenerator(r#gen)), HeapRootData::Iterator => Ok(Self::Iterator), HeapRootData::ArrayIterator(array_iterator) => Ok(Self::ArrayIterator(array_iterator)), #[cfg(feature = "set")] diff --git a/nova_vm/src/ecmascript/types/language/object/data.rs b/nova_vm/src/ecmascript/types/language/object/data.rs index 0ad94ef6f..c29ecbef2 100644 --- a/nova_vm/src/ecmascript/types/language/object/data.rs +++ b/nova_vm/src/ecmascript/types/language/object/data.rs @@ -6,7 +6,7 @@ use super::Object; use crate::{ ecmascript::{execution::Agent, types::Value}, engine::context::Bindable, - heap::{element_array::ElementsVector, CompactionLists, HeapMarkAndSweep, WorkQueues}, + heap::{CompactionLists, HeapMarkAndSweep, WorkQueues, element_array::ElementsVector}, }; #[derive(Debug, Clone, Copy)] diff --git a/nova_vm/src/ecmascript/types/language/object/internal_methods.rs b/nova_vm/src/ecmascript/types/language/object/internal_methods.rs index b34ab70af..b4d5f6878 100644 --- a/nova_vm/src/ecmascript/types/language/object/internal_methods.rs +++ b/nova_vm/src/ecmascript/types/language/object/internal_methods.rs @@ -6,6 +6,7 @@ use super::{InternalSlots, Object, PropertyKey}; use crate::{ ecmascript::{ builtins::{ + ArgumentsList, ordinary::{ ordinary_define_own_property, ordinary_delete, ordinary_get, ordinary_get_own_property, ordinary_get_prototype_of, ordinary_has_property, @@ -13,14 +14,14 @@ use crate::{ ordinary_set, ordinary_set_prototype_of, ordinary_try_get, ordinary_try_has_property, ordinary_try_set, }, - ArgumentsList, }, execution::{Agent, JsResult}, types::{Function, PropertyDescriptor, Value}, }, engine::{ + TryResult, context::{Bindable, GcScope, NoGcScope}, - unwrap_try, TryResult, + unwrap_try, }, }; diff --git a/nova_vm/src/ecmascript/types/language/object/property_key.rs b/nova_vm/src/ecmascript/types/language/object/property_key.rs index 7c3ab4b1b..ccb154308 100644 --- a/nova_vm/src/ecmascript/types/language/object/property_key.rs +++ b/nova_vm/src/ecmascript/types/language/object/property_key.rs @@ -3,10 +3,12 @@ // file, You can obtain one at https://mozilla.org/MPL/2.0/. use crate::{ + SmallInteger, SmallString, ecmascript::{ abstract_operations::type_conversion::parse_string_to_integer_property_key, execution::Agent, types::{ + String, Symbol, Value, language::{ string::HeapString, value::{ @@ -14,16 +16,14 @@ use crate::{ SYMBOL_DISCRIMINANT, }, }, - String, Symbol, Value, }, }, engine::{ + Scoped, context::{Bindable, NoGcScope}, rootable::{HeapRootData, HeapRootRef, Rootable}, - Scoped, }, heap::{CompactionLists, HeapMarkAndSweep, WorkQueues}, - SmallInteger, SmallString, }; #[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)] diff --git a/nova_vm/src/ecmascript/types/language/object/property_storage.rs b/nova_vm/src/ecmascript/types/language/object/property_storage.rs index 5f86319ea..e135e5d60 100644 --- a/nova_vm/src/ecmascript/types/language/object/property_storage.rs +++ b/nova_vm/src/ecmascript/types/language/object/property_storage.rs @@ -5,13 +5,13 @@ use core::cell::Ref; use crate::{ + Heap, ecmascript::{ execution::{Agent, Realm}, - types::{IntoValue, PropertyDescriptor, Value, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, IntoValue, PropertyDescriptor, Value}, }, engine::context::Bindable, heap::element_array::ElementDescriptor, - Heap, }; use super::{Object, ObjectHeapData, PropertyKey}; diff --git a/nova_vm/src/ecmascript/types/language/primitive.rs b/nova_vm/src/ecmascript/types/language/primitive.rs index 4e39eff0d..3208d6e26 100644 --- a/nova_vm/src/ecmascript/types/language/primitive.rs +++ b/nova_vm/src/ecmascript/types/language/primitive.rs @@ -5,17 +5,18 @@ use small_string::SmallString; use crate::{ + SmallInteger, ecmascript::execution::Agent, engine::{ + Scoped, context::{Bindable, NoGcScope}, rootable::{HeapRootData, HeapRootRef, Rootable}, small_f64::SmallF64, - Scoped, }, - SmallInteger, }; use super::{ + IntoPrimitive, IntoValue, Symbol, Value, bigint::{HeapBigInt, SmallBigInt}, number::HeapNumber, string::HeapString, @@ -25,7 +26,6 @@ use super::{ SMALL_STRING_DISCRIMINANT, STRING_DISCRIMINANT, SYMBOL_DISCRIMINANT, UNDEFINED_DISCRIMINANT, }, - IntoPrimitive, IntoValue, Symbol, Value, }; #[derive(Debug, Clone, Copy, PartialEq)] diff --git a/nova_vm/src/ecmascript/types/language/string.rs b/nova_vm/src/ecmascript/types/language/string.rs index ed6f7dbde..9d13dd6ca 100644 --- a/nova_vm/src/ecmascript/types/language/string.rs +++ b/nova_vm/src/ecmascript/types/language/string.rs @@ -11,21 +11,21 @@ use core::{ }; use super::{ - IntoPrimitive, IntoValue, Primitive, PropertyKey, Value, SMALL_STRING_DISCRIMINANT, - STRING_DISCRIMINANT, + IntoPrimitive, IntoValue, Primitive, PropertyKey, SMALL_STRING_DISCRIMINANT, + STRING_DISCRIMINANT, Value, }; use crate::{ + SmallInteger, SmallString, ecmascript::{execution::Agent, types::PropertyDescriptor}, engine::{ + Scoped, context::{Bindable, NoGcScope}, rootable::{HeapRootData, HeapRootRef, Rootable}, - Scoped, }, heap::{ - indexes::{GetBaseIndexMut, IntoBaseIndex, StringIndex}, CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, PrimitiveHeap, WorkQueues, + indexes::{GetBaseIndexMut, IntoBaseIndex, StringIndex}, }, - SmallInteger, SmallString, }; pub use data::StringHeapData; diff --git a/nova_vm/src/ecmascript/types/language/symbol.rs b/nova_vm/src/ecmascript/types/language/symbol.rs index a2700a3cf..8e9093967 100644 --- a/nova_vm/src/ecmascript/types/language/symbol.rs +++ b/nova_vm/src/ecmascript/types/language/symbol.rs @@ -11,17 +11,17 @@ pub use data::SymbolHeapData; use crate::{ ecmascript::{execution::Agent, types::String}, engine::{ + Scoped, context::NoGcScope, rootable::{HeapRootData, HeapRootRef, Rootable}, - Scoped, }, heap::{ - indexes::SymbolIndex, CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, - WellKnownSymbolIndexes, WorkQueues, LAST_WELL_KNOWN_SYMBOL_INDEX, + CompactionLists, CreateHeapData, Heap, HeapMarkAndSweep, LAST_WELL_KNOWN_SYMBOL_INDEX, + WellKnownSymbolIndexes, WorkQueues, indexes::SymbolIndex, }, }; -use super::{IntoPrimitive, IntoValue, Primitive, Value, BUILTIN_STRING_MEMORY}; +use super::{BUILTIN_STRING_MEMORY, IntoPrimitive, IntoValue, Primitive, Value}; #[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord, Hash)] #[repr(transparent)] diff --git a/nova_vm/src/ecmascript/types/language/value.rs b/nova_vm/src/ecmascript/types/language/value.rs index 26ec15687..eabb8bd76 100644 --- a/nova_vm/src/ecmascript/types/language/value.rs +++ b/nova_vm/src/ecmascript/types/language/value.rs @@ -5,11 +5,11 @@ use wtf8::Wtf8; use super::{ + BigInt, BigIntHeapData, IntoValue, Number, Numeric, OrdinaryObject, Primitive, String, + StringHeapData, Symbol, bigint::{HeapBigInt, SmallBigInt}, number::HeapNumber, string::HeapString, - BigInt, BigIntHeapData, IntoValue, Number, Numeric, OrdinaryObject, Primitive, String, - StringHeapData, Symbol, }; #[cfg(feature = "date")] use crate::ecmascript::builtins::date::Date; @@ -23,18 +23,15 @@ use crate::ecmascript::builtins::{ }; #[cfg(feature = "weak-refs")] use crate::ecmascript::builtins::{weak_map::WeakMap, weak_ref::WeakRef, weak_set::WeakSet}; -#[cfg(feature = "array-buffer")] -use crate::{ - ecmascript::builtins::{data_view::DataView, ArrayBuffer}, - heap::indexes::TypedArrayIndex, -}; use crate::{ + SmallInteger, SmallString, ecmascript::{ abstract_operations::type_conversion::{ to_big_int, to_int16, to_int32, to_number, to_numeric, to_string, to_uint16, to_uint32, try_to_string, }, builtins::{ + Array, BuiltinConstructorFunction, BuiltinFunction, ECMAScriptFunction, async_generator_objects::AsyncGenerator, bound_function::BoundFunction, control_abstraction_objects::{ @@ -51,19 +48,22 @@ use crate::{ primitive_objects::PrimitiveObject, promise::Promise, proxy::Proxy, - Array, BuiltinConstructorFunction, BuiltinFunction, ECMAScriptFunction, }, execution::{Agent, JsResult}, types::BUILTIN_STRING_MEMORY, }, engine::{ + Scoped, TryResult, context::{Bindable, GcScope, NoGcScope}, rootable::{HeapRootData, HeapRootRef, Rootable}, small_f64::SmallF64, - Scoped, TryResult, }, heap::{CompactionLists, HeapMarkAndSweep, WorkQueues}, - SmallInteger, SmallString, +}; +#[cfg(feature = "array-buffer")] +use crate::{ + ecmascript::builtins::{ArrayBuffer, data_view::DataView}, + heap::indexes::TypedArrayIndex, }; use core::{ @@ -1318,7 +1318,7 @@ impl Rootable for Value<'_> { #[cfg(feature = "array-buffer")] Self::Float64Array(base_index) => Err(HeapRootData::Float64Array(base_index.unbind())), Self::AsyncFromSyncIterator => Err(HeapRootData::AsyncFromSyncIterator), - Self::AsyncGenerator(gen) => Err(HeapRootData::AsyncGenerator(gen.unbind())), + Self::AsyncGenerator(r#gen) => Err(HeapRootData::AsyncGenerator(r#gen.unbind())), Self::Iterator => Err(HeapRootData::Iterator), Self::ArrayIterator(array_iterator) => { Err(HeapRootData::ArrayIterator(array_iterator.unbind())) @@ -1444,7 +1444,7 @@ impl Rootable for Value<'_> { #[cfg(feature = "array-buffer")] HeapRootData::Float64Array(base_index) => Some(Self::Float64Array(base_index)), HeapRootData::AsyncFromSyncIterator => Some(Self::AsyncFromSyncIterator), - HeapRootData::AsyncGenerator(gen) => Some(Self::AsyncGenerator(gen)), + HeapRootData::AsyncGenerator(r#gen) => Some(Self::AsyncGenerator(r#gen)), HeapRootData::Iterator => Some(Self::Iterator), HeapRootData::ArrayIterator(array_iterator) => { Some(Self::ArrayIterator(array_iterator)) diff --git a/nova_vm/src/ecmascript/types/spec/data_block.rs b/nova_vm/src/ecmascript/types/spec/data_block.rs index 64db1650d..3f85ccc87 100644 --- a/nova_vm/src/ecmascript/types/spec/data_block.rs +++ b/nova_vm/src/ecmascript/types/spec/data_block.rs @@ -6,18 +6,18 @@ use core::{ mem::MaybeUninit, - ptr::{self, read_unaligned, write_unaligned, NonNull}, + ptr::{self, NonNull, read_unaligned, write_unaligned}, }; -use std::alloc::{alloc_zeroed, dealloc, handle_alloc_error, realloc, Layout}; +use std::alloc::{Layout, alloc_zeroed, dealloc, handle_alloc_error, realloc}; use crate::{ ecmascript::{ abstract_operations::type_conversion::{ - to_big_int64_big_int, to_big_uint64_big_int, to_int16_number, to_int32_number, - to_int8_number, to_uint16_number, to_uint32_number, to_uint8_clamp_number, - to_uint8_number, + to_big_int64_big_int, to_big_uint64_big_int, to_int8_number, to_int16_number, + to_int32_number, to_uint8_clamp_number, to_uint8_number, to_uint16_number, + to_uint32_number, }, - execution::{agent::ExceptionType, Agent, JsResult}, + execution::{Agent, JsResult, agent::ExceptionType}, types::{BigInt, IntoNumeric, Number, Numeric}, }, engine::context::NoGcScope, diff --git a/nova_vm/src/ecmascript/types/spec/property_descriptor.rs b/nova_vm/src/ecmascript/types/spec/property_descriptor.rs index 5c3e3f063..1a5a6f993 100644 --- a/nova_vm/src/ecmascript/types/spec/property_descriptor.rs +++ b/nova_vm/src/ecmascript/types/spec/property_descriptor.rs @@ -12,9 +12,9 @@ use crate::{ testing_and_comparison::is_callable, type_conversion::to_boolean, }, - execution::{agent::ExceptionType, Agent, JsResult}, + execution::{Agent, JsResult, agent::ExceptionType}, types::{ - Function, IntoObject, IntoValue, Object, OrdinaryObject, Value, BUILTIN_STRING_MEMORY, + BUILTIN_STRING_MEMORY, Function, IntoObject, IntoValue, Object, OrdinaryObject, Value, }, }, heap::ObjectEntry, diff --git a/nova_vm/src/ecmascript/types/spec/reference.rs b/nova_vm/src/ecmascript/types/spec/reference.rs index 6a9e89514..55ddc935e 100644 --- a/nova_vm/src/ecmascript/types/spec/reference.rs +++ b/nova_vm/src/ecmascript/types/spec/reference.rs @@ -4,14 +4,15 @@ use crate::ecmascript::abstract_operations::operations_on_objects::try_set; use crate::ecmascript::types::IntoValue; -use crate::engine::context::{Bindable, GcScope, NoGcScope}; use crate::engine::TryResult; +use crate::engine::context::{Bindable, GcScope, NoGcScope}; use crate::{ ecmascript::{ abstract_operations::{operations_on_objects::set, type_conversion::to_object}, execution::{ + EnvironmentIndex, agent::{self, ExceptionType}, - get_global_object, EnvironmentIndex, + get_global_object, }, types::{InternalMethods, Object, PropertyKey, String, Value}, }, diff --git a/nova_vm/src/engine/bytecode.rs b/nova_vm/src/engine/bytecode.rs index 64bf889c7..011f221d9 100644 --- a/nova_vm/src/engine/bytecode.rs +++ b/nova_vm/src/engine/bytecode.rs @@ -9,10 +9,10 @@ pub(super) mod iterator; mod vm; pub(crate) use bytecode_compiler::{ - is_reference, CompileContext, CompileEvaluation, NamedEvaluationParameter, + CompileContext, CompileEvaluation, NamedEvaluationParameter, is_reference, }; pub(crate) use executable::{ Executable, ExecutableHeapData, FunctionExpression, IndexType, SendableRef, }; pub(crate) use instructions::{Instruction, InstructionIter}; -pub(crate) use vm::{instanceof_operator, ExecutionResult, SuspendedVm, Vm}; +pub(crate) use vm::{ExecutionResult, SuspendedVm, Vm, instanceof_operator}; diff --git a/nova_vm/src/engine/bytecode/bytecode_compiler.rs b/nova_vm/src/engine/bytecode/bytecode_compiler.rs index 13f81a784..f96d22e90 100644 --- a/nova_vm/src/engine/bytecode/bytecode_compiler.rs +++ b/nova_vm/src/engine/bytecode/bytecode_compiler.rs @@ -8,8 +8,8 @@ mod for_in_of_statement; mod function_declaration_instantiation; use super::{ - executable::ArrowFunctionExpression, Executable, ExecutableHeapData, FunctionExpression, - Instruction, SendableRef, + Executable, ExecutableHeapData, FunctionExpression, Instruction, SendableRef, + executable::ArrowFunctionExpression, }; #[cfg(feature = "regexp")] use crate::ecmascript::builtins::regexp::reg_exp_create_literal; @@ -20,7 +20,7 @@ use crate::{ function_definitions::{CompileFunctionBodyData, ContainsExpression}, scope_analysis::{LexicallyScopedDeclaration, LexicallyScopedDeclarations}, }, - types::{BigInt, IntoValue, Number, PropertyKey, String, Value, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, BigInt, IntoValue, Number, PropertyKey, String, Value}, }, engine::context::{Bindable, NoGcScope}, heap::CreateHeapData, diff --git a/nova_vm/src/engine/bytecode/bytecode_compiler/class_definition_evaluation.rs b/nova_vm/src/engine/bytecode/bytecode_compiler/class_definition_evaluation.rs index 19252f20d..5766c85cf 100644 --- a/nova_vm/src/engine/bytecode/bytecode_compiler/class_definition_evaluation.rs +++ b/nova_vm/src/engine/bytecode/bytecode_compiler/class_definition_evaluation.rs @@ -8,16 +8,16 @@ use crate::{ syntax_directed_operations::{ function_definitions::CompileFunctionBodyData, scope_analysis::{ + LexicallyScopedDeclaration, VarScopedDeclaration, class_static_block_lexically_scoped_declarations, class_static_block_var_declared_names, class_static_block_var_scoped_declarations, - LexicallyScopedDeclaration, VarScopedDeclaration, }, }, - types::{String, Value, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, String, Value}, }, engine::{ - is_reference, CompileContext, CompileEvaluation, FunctionExpression, Instruction, - NamedEvaluationParameter, SendableRef, + CompileContext, CompileEvaluation, FunctionExpression, Instruction, + NamedEvaluationParameter, SendableRef, is_reference, }, }; use ahash::{AHashMap, AHashSet}; diff --git a/nova_vm/src/engine/bytecode/bytecode_compiler/for_in_of_statement.rs b/nova_vm/src/engine/bytecode/bytecode_compiler/for_in_of_statement.rs index b1eb87e2e..e149ba6fb 100644 --- a/nova_vm/src/engine/bytecode/bytecode_compiler/for_in_of_statement.rs +++ b/nova_vm/src/engine/bytecode/bytecode_compiler/for_in_of_statement.rs @@ -2,7 +2,7 @@ // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at https://mozilla.org/MPL/2.0/. -use super::{is_reference, CompileContext, CompileEvaluation, Instruction, JumpIndex}; +use super::{CompileContext, CompileEvaluation, Instruction, JumpIndex, is_reference}; use crate::ecmascript::types::{String, Value}; use oxc_ast::ast; use oxc_ecmascript::BoundNames; diff --git a/nova_vm/src/engine/bytecode/bytecode_compiler/function_declaration_instantiation.rs b/nova_vm/src/engine/bytecode/bytecode_compiler/function_declaration_instantiation.rs index 2fb04e3b1..fc3b0f7c4 100644 --- a/nova_vm/src/engine/bytecode/bytecode_compiler/function_declaration_instantiation.rs +++ b/nova_vm/src/engine/bytecode/bytecode_compiler/function_declaration_instantiation.rs @@ -12,17 +12,17 @@ use crate::{ syntax_directed_operations::{ function_definitions::ContainsExpression, scope_analysis::{ + LexicallyScopedDeclaration, VarScopedDeclaration, function_body_lexically_declared_names, function_body_lexically_scoped_decarations, function_body_var_declared_names, function_body_var_scoped_declarations, - LexicallyScopedDeclaration, VarScopedDeclaration, }, }, - types::{String, Value, BUILTIN_STRING_MEMORY}, + types::{BUILTIN_STRING_MEMORY, String, Value}, }, - engine::{bytecode::bytecode_compiler::CompileContext, Instruction}, + engine::{Instruction, bytecode::bytecode_compiler::CompileContext}, }; -use super::{complex_array_pattern, simple_array_pattern, CompileEvaluation}; +use super::{CompileEvaluation, complex_array_pattern, simple_array_pattern}; pub(crate) fn instantiation( ctx: &mut CompileContext, diff --git a/nova_vm/src/engine/bytecode/executable.rs b/nova_vm/src/engine/bytecode/executable.rs index 100da4ad5..b1248899d 100644 --- a/nova_vm/src/engine/bytecode/executable.rs +++ b/nova_vm/src/engine/bytecode/executable.rs @@ -8,7 +8,7 @@ use core::{ }; use super::{ - instructions::Instr, CompileContext, CompileEvaluation, Instruction, NamedEvaluationParameter, + CompileContext, CompileEvaluation, Instruction, NamedEvaluationParameter, instructions::Instr, }; use crate::{ ecmascript::{ diff --git a/nova_vm/src/engine/bytecode/iterator.rs b/nova_vm/src/engine/bytecode/iterator.rs index 110b7759d..541fb46c9 100644 --- a/nova_vm/src/engine/bytecode/iterator.rs +++ b/nova_vm/src/engine/bytecode/iterator.rs @@ -13,8 +13,8 @@ use crate::{ ecmascript::{ abstract_operations::operations_on_iterator_objects::IteratorRecord, builtins::Array, - execution::{agent::ExceptionType, Agent, JsResult}, - types::{InternalMethods, Object, PropertyKey, Value, BUILTIN_STRING_MEMORY}, + execution::{Agent, JsResult, agent::ExceptionType}, + types::{BUILTIN_STRING_MEMORY, InternalMethods, Object, PropertyKey, Value}, }, heap::{CompactionLists, HeapMarkAndSweep, WellKnownSymbolIndexes, WorkQueues}, }; diff --git a/nova_vm/src/engine/bytecode/vm.rs b/nova_vm/src/engine/bytecode/vm.rs index ad477b351..c98408619 100644 --- a/nova_vm/src/engine/bytecode/vm.rs +++ b/nova_vm/src/engine/bytecode/vm.rs @@ -35,36 +35,37 @@ use crate::{ }, }, builtins::{ - array_create, create_builtin_constructor, create_unmapped_arguments_object, - global_object::perform_eval, make_constructor, make_method, - ordinary::ordinary_object_create_with_intrinsics, ordinary_function_create, - set_function_name, ArgumentsList, Array, BuiltinConstructorArgs, ConstructorStatus, - OrdinaryFunctionCreateParams, + ArgumentsList, Array, BuiltinConstructorArgs, ConstructorStatus, + OrdinaryFunctionCreateParams, array_create, create_builtin_constructor, + create_unmapped_arguments_object, global_object::perform_eval, make_constructor, + make_method, ordinary::ordinary_object_create_with_intrinsics, + ordinary_function_create, set_function_name, }, execution::{ - agent::{resolve_binding, ExceptionType, JsError}, + Agent, ECMAScriptCodeEvaluationState, EnvironmentIndex, JsResult, ProtoIntrinsics, + agent::{ExceptionType, JsError, resolve_binding}, get_this_environment, new_class_static_element_environment, - new_declarative_environment, Agent, ECMAScriptCodeEvaluationState, EnvironmentIndex, - JsResult, ProtoIntrinsics, + new_declarative_environment, }, types::{ - get_this_value, get_value, initialize_referenced_binding, is_private_reference, - is_super_reference, put_value, try_initialize_referenced_binding, Base, BigInt, - Function, InternalMethods, IntoFunction, IntoObject, IntoValue, Number, Numeric, - Object, OrdinaryObject, Primitive, PropertyDescriptor, PropertyKey, Reference, String, - Value, BUILTIN_STRING_MEMORY, + BUILTIN_STRING_MEMORY, Base, BigInt, Function, InternalMethods, IntoFunction, + IntoObject, IntoValue, Number, Numeric, Object, OrdinaryObject, Primitive, + PropertyDescriptor, PropertyKey, Reference, String, Value, get_this_value, get_value, + initialize_referenced_binding, is_private_reference, is_super_reference, put_value, + try_initialize_referenced_binding, }, }, engine::{ + TryResult, bytecode::{ + Executable, FunctionExpression, IndexType, Instruction, InstructionIter, + NamedEvaluationParameter, executable::{ArrowFunctionExpression, SendableRef}, instructions::Instr, iterator::{ObjectPropertiesIterator, VmIterator}, - Executable, FunctionExpression, IndexType, Instruction, InstructionIter, - NamedEvaluationParameter, }, context::{Bindable, GcScope, NoGcScope}, - unwrap_try, TryResult, + unwrap_try, }, heap::{CompactionLists, HeapMarkAndSweep, WellKnownSymbolIndexes, WorkQueues}, }; @@ -1778,9 +1779,9 @@ impl<'a> Vm { vm, |agent, gc| { format!( - "The right-hand side of an `in` expression must be an object, got '{}'.", - rval.string_repr(agent, gc).as_str(agent) - ) + "The right-hand side of an `in` expression must be an object, got '{}'.", + rval.string_repr(agent, gc).as_str(agent) + ) }, gc.reborrow(), ); diff --git a/nova_vm/src/engine/bytecode/vm/binding_methods.rs b/nova_vm/src/engine/bytecode/vm/binding_methods.rs index ded527d41..1716dd9d9 100644 --- a/nova_vm/src/engine/bytecode/vm/binding_methods.rs +++ b/nova_vm/src/engine/bytecode/vm/binding_methods.rs @@ -12,10 +12,9 @@ use crate::{ }, engine::{ bytecode::vm::{ - array_create, copy_data_properties_into_object, initialize_referenced_binding, - iterator_close, put_value, resolve_binding, to_object, - try_create_data_property_or_throw, EnvironmentIndex, Executable, Instruction, Vm, - VmIterator, + EnvironmentIndex, Executable, Instruction, Vm, VmIterator, array_create, + copy_data_properties_into_object, initialize_referenced_binding, iterator_close, + put_value, resolve_binding, to_object, try_create_data_property_or_throw, }, context::{Bindable, GcScope}, unwrap_try, diff --git a/nova_vm/src/engine/context.rs b/nova_vm/src/engine/context.rs index b6247f916..6c9f120d2 100644 --- a/nova_vm/src/engine/context.rs +++ b/nova_vm/src/engine/context.rs @@ -96,7 +96,7 @@ impl<'a, 'b> GcScope<'a, 'b> { /// JavaScript call stack is initialized. #[inline] pub(crate) unsafe fn create_root() -> (GcToken, ScopeToken) { - (GcToken::new(), ScopeToken::new()) + (unsafe { GcToken::new() }, unsafe { ScopeToken::new() }) } #[inline] diff --git a/nova_vm/src/engine/rootable.rs b/nova_vm/src/engine/rootable.rs index edb48ff90..82d7c1b3a 100644 --- a/nova_vm/src/engine/rootable.rs +++ b/nova_vm/src/engine/rootable.rs @@ -14,7 +14,7 @@ use crate::ecmascript::builtins::regexp::RegExp; #[cfg(feature = "shared-array-buffer")] use crate::ecmascript::builtins::shared_array_buffer::SharedArrayBuffer; #[cfg(feature = "array-buffer")] -use crate::ecmascript::builtins::{data_view::DataView, ArrayBuffer}; +use crate::ecmascript::builtins::{ArrayBuffer, data_view::DataView}; #[cfg(feature = "weak-refs")] use crate::ecmascript::builtins::{weak_map::WeakMap, weak_ref::WeakRef, weak_set::WeakSet}; #[cfg(feature = "date")] @@ -29,9 +29,9 @@ use crate::ecmascript::types::SHARED_ARRAY_BUFFER_DISCRIMINANT; use crate::ecmascript::types::{ ARRAY_BUFFER_DISCRIMINANT, BIGINT_64_ARRAY_DISCRIMINANT, BIGUINT_64_ARRAY_DISCRIMINANT, DATA_VIEW_DISCRIMINANT, FLOAT_32_ARRAY_DISCRIMINANT, FLOAT_64_ARRAY_DISCRIMINANT, - INT_16_ARRAY_DISCRIMINANT, INT_32_ARRAY_DISCRIMINANT, INT_8_ARRAY_DISCRIMINANT, - UINT_16_ARRAY_DISCRIMINANT, UINT_32_ARRAY_DISCRIMINANT, UINT_8_ARRAY_DISCRIMINANT, - UINT_8_CLAMPED_ARRAY_DISCRIMINANT, + INT_8_ARRAY_DISCRIMINANT, INT_16_ARRAY_DISCRIMINANT, INT_32_ARRAY_DISCRIMINANT, + UINT_8_ARRAY_DISCRIMINANT, UINT_8_CLAMPED_ARRAY_DISCRIMINANT, UINT_16_ARRAY_DISCRIMINANT, + UINT_32_ARRAY_DISCRIMINANT, }; #[cfg(feature = "weak-refs")] use crate::ecmascript::types::{ @@ -49,6 +49,7 @@ use crate::heap::indexes::TypedArrayIndex; use crate::{ ecmascript::{ builtins::{ + Array, BuiltinConstructorFunction, BuiltinFunction, ECMAScriptFunction, async_generator_objects::AsyncGenerator, bound_function::BoundFunction, embedder_object::EmbedderObject, @@ -66,10 +67,8 @@ use crate::{ promise_resolving_functions::BuiltinPromiseResolvingFunction, }, proxy::Proxy, - Array, BuiltinConstructorFunction, BuiltinFunction, ECMAScriptFunction, }, types::{ - bigint::HeapBigInt, HeapNumber, HeapString, IntoObject, Object, OrdinaryObject, Symbol, ARGUMENTS_DISCRIMINANT, ARRAY_DISCRIMINANT, ARRAY_ITERATOR_DISCRIMINANT, ASYNC_FROM_SYNC_ITERATOR_DISCRIMINANT, ASYNC_GENERATOR_DISCRIMINANT, BIGINT_DISCRIMINANT, BOUND_FUNCTION_DISCRIMINANT, @@ -78,10 +77,11 @@ use crate::{ BUILTIN_PROMISE_COLLECTOR_FUNCTION_DISCRIMINANT, BUILTIN_PROMISE_RESOLVING_FUNCTION_DISCRIMINANT, BUILTIN_PROXY_REVOKER_FUNCTION, ECMASCRIPT_FUNCTION_DISCRIMINANT, EMBEDDER_OBJECT_DISCRIMINANT, ERROR_DISCRIMINANT, - FINALIZATION_REGISTRY_DISCRIMINANT, GENERATOR_DISCRIMINANT, ITERATOR_DISCRIMINANT, - MAP_DISCRIMINANT, MAP_ITERATOR_DISCRIMINANT, MODULE_DISCRIMINANT, NUMBER_DISCRIMINANT, - OBJECT_DISCRIMINANT, PROMISE_DISCRIMINANT, PROXY_DISCRIMINANT, STRING_DISCRIMINANT, - SYMBOL_DISCRIMINANT, + FINALIZATION_REGISTRY_DISCRIMINANT, GENERATOR_DISCRIMINANT, HeapNumber, HeapString, + ITERATOR_DISCRIMINANT, IntoObject, MAP_DISCRIMINANT, MAP_ITERATOR_DISCRIMINANT, + MODULE_DISCRIMINANT, NUMBER_DISCRIMINANT, OBJECT_DISCRIMINANT, Object, OrdinaryObject, + PROMISE_DISCRIMINANT, PROXY_DISCRIMINANT, STRING_DISCRIMINANT, SYMBOL_DISCRIMINANT, + Symbol, bigint::HeapBigInt, }, }, heap::HeapMarkAndSweep, @@ -95,7 +95,7 @@ mod private { #[cfg(feature = "shared-array-buffer")] use crate::ecmascript::builtins::shared_array_buffer::SharedArrayBuffer; #[cfg(feature = "array-buffer")] - use crate::ecmascript::builtins::{data_view::DataView, typed_array::TypedArray, ArrayBuffer}; + use crate::ecmascript::builtins::{ArrayBuffer, data_view::DataView, typed_array::TypedArray}; #[cfg(feature = "set")] use crate::ecmascript::builtins::{ keyed_collections::set_objects::set_iterator_objects::set_iterator::SetIterator, set::Set, @@ -104,6 +104,7 @@ mod private { use crate::ecmascript::builtins::{weak_map::WeakMap, weak_ref::WeakRef, weak_set::WeakSet}; use crate::ecmascript::{ builtins::{ + Array, BuiltinConstructorFunction, BuiltinFunction, ECMAScriptFunction, async_generator_objects::AsyncGenerator, bound_function::BoundFunction, embedder_object::EmbedderObject, @@ -121,7 +122,6 @@ mod private { promise_resolving_functions::BuiltinPromiseResolvingFunction, }, proxy::Proxy, - Array, BuiltinConstructorFunction, BuiltinFunction, ECMAScriptFunction, }, types::{ BigInt, Function, Number, Numeric, Object, OrdinaryObject, Primitive, PropertyKey, @@ -396,7 +396,7 @@ impl From> for HeapRootData { Object::Float32Array(base_index) => Self::Float32Array(base_index), Object::Float64Array(base_index) => Self::Float64Array(base_index), Object::AsyncFromSyncIterator => Self::AsyncFromSyncIterator, - Object::AsyncGenerator(gen) => Self::AsyncGenerator(gen), + Object::AsyncGenerator(r#gen) => Self::AsyncGenerator(r#gen), Object::Iterator => Self::Iterator, Object::ArrayIterator(array_iterator) => Self::ArrayIterator(array_iterator), #[cfg(feature = "set")] @@ -523,7 +523,7 @@ impl HeapMarkAndSweep for HeapRootData { #[cfg(feature = "array-buffer")] HeapRootData::Float64Array(base_index) => base_index.mark_values(queues), HeapRootData::AsyncFromSyncIterator => todo!(), - HeapRootData::AsyncGenerator(gen) => gen.mark_values(queues), + HeapRootData::AsyncGenerator(r#gen) => r#gen.mark_values(queues), HeapRootData::Iterator => todo!(), HeapRootData::ArrayIterator(array_iterator) => array_iterator.mark_values(queues), #[cfg(feature = "set")] @@ -616,7 +616,7 @@ impl HeapMarkAndSweep for HeapRootData { #[cfg(feature = "array-buffer")] HeapRootData::Float64Array(base_index) => base_index.sweep_values(compactions), HeapRootData::AsyncFromSyncIterator => todo!(), - HeapRootData::AsyncGenerator(gen) => gen.sweep_values(compactions), + HeapRootData::AsyncGenerator(r#gen) => r#gen.sweep_values(compactions), HeapRootData::Iterator => todo!(), HeapRootData::ArrayIterator(array_iterator) => array_iterator.sweep_values(compactions), #[cfg(feature = "set")] diff --git a/nova_vm/src/heap.rs b/nova_vm/src/heap.rs index 77442b13d..3cbf6f826 100644 --- a/nova_vm/src/heap.rs +++ b/nova_vm/src/heap.rs @@ -12,9 +12,9 @@ mod object_entry; use core::{cell::RefCell, ops::Index}; pub(crate) use self::heap_constants::{ - intrinsic_function_count, intrinsic_object_count, intrinsic_primitive_object_count, IntrinsicConstructorIndexes, IntrinsicFunctionIndexes, IntrinsicObjectIndexes, - IntrinsicPrimitiveObjectIndexes, WellKnownSymbolIndexes, LAST_WELL_KNOWN_SYMBOL_INDEX, + IntrinsicPrimitiveObjectIndexes, LAST_WELL_KNOWN_SYMBOL_INDEX, WellKnownSymbolIndexes, + intrinsic_function_count, intrinsic_object_count, intrinsic_primitive_object_count, }; #[cfg(test)] pub(crate) use self::heap_constants::{ @@ -23,8 +23,9 @@ pub(crate) use self::heap_constants::{ pub(crate) use self::object_entry::{ObjectEntry, ObjectEntryPropertyDescriptor}; use self::{ element_array::{ - ElementArray2Pow10, ElementArray2Pow12, ElementArray2Pow16, ElementArray2Pow24, - ElementArray2Pow32, ElementArray2Pow4, ElementArray2Pow6, ElementArray2Pow8, ElementArrays, + ElementArray2Pow4, ElementArray2Pow6, ElementArray2Pow8, ElementArray2Pow10, + ElementArray2Pow12, ElementArray2Pow16, ElementArray2Pow24, ElementArray2Pow32, + ElementArrays, }, indexes::{NumberIndex, ObjectIndex}, }; @@ -36,9 +37,9 @@ use crate::ecmascript::builtins::regexp::RegExpHeapData; use crate::ecmascript::builtins::shared_array_buffer::data::SharedArrayBufferHeapData; #[cfg(feature = "array-buffer")] use crate::ecmascript::builtins::{ - data_view::{data::DataViewHeapData, DataView}, - typed_array::{data::TypedArrayHeapData, TypedArray}, ArrayBufferHeapData, + data_view::{DataView, data::DataViewHeapData}, + typed_array::{TypedArray, data::TypedArrayHeapData}, }; #[cfg(feature = "set")] use crate::ecmascript::builtins::{ @@ -53,6 +54,7 @@ use crate::ecmascript::builtins::{ use crate::{ ecmascript::{ builtins::{ + ArrayBuffer, ArrayHeapData, array_buffer::DetachKey, async_generator_objects::AsyncGeneratorHeapData, control_abstraction_objects::{ @@ -73,7 +75,6 @@ use crate::{ primitive_objects::PrimitiveObjectHeapData, promise::data::PromiseHeapData, proxy::data::ProxyHeapData, - ArrayBuffer, ArrayHeapData, }, execution::{Environments, Realm, RealmIdentifier}, scripts_and_modules::{ @@ -82,13 +83,13 @@ use crate::{ source_code::SourceCodeHeapData, }, types::{ - bigint::HeapBigInt, BigIntHeapData, BoundFunctionHeapData, BuiltinConstructorHeapData, - BuiltinFunctionHeapData, ECMAScriptFunctionHeapData, HeapNumber, HeapString, - NumberHeapData, Object, ObjectHeapData, OrdinaryObject, String, StringHeapData, - SymbolHeapData, BUILTIN_STRINGS_LIST, + BUILTIN_STRINGS_LIST, BigIntHeapData, BoundFunctionHeapData, + BuiltinConstructorHeapData, BuiltinFunctionHeapData, ECMAScriptFunctionHeapData, + HeapNumber, HeapString, NumberHeapData, Object, ObjectHeapData, OrdinaryObject, String, + StringHeapData, SymbolHeapData, bigint::HeapBigInt, }, }, - engine::{context::Bindable, rootable::HeapRootData, ExecutableHeapData}, + engine::{ExecutableHeapData, context::Bindable, rootable::HeapRootData}, }; #[cfg(feature = "array-buffer")] use ahash::AHashMap; diff --git a/nova_vm/src/heap/element_array.rs b/nova_vm/src/heap/element_array.rs index 68624f605..e9268a6e3 100644 --- a/nova_vm/src/heap/element_array.rs +++ b/nova_vm/src/heap/element_array.rs @@ -5,9 +5,9 @@ use ahash::AHashMap; use super::{ + CompactionLists, HeapMarkAndSweep, WorkQueues, indexes::ElementIndex, object_entry::{ObjectEntry, ObjectEntryPropertyDescriptor}, - CompactionLists, HeapMarkAndSweep, WorkQueues, }; use crate::{ ecmascript::{ diff --git a/nova_vm/src/heap/heap_bits.rs b/nova_vm/src/heap/heap_bits.rs index 74bd930db..a9eae6b61 100644 --- a/nova_vm/src/heap/heap_bits.rs +++ b/nova_vm/src/heap/heap_bits.rs @@ -9,9 +9,9 @@ use hashbrown::HashTable; #[cfg(feature = "array-buffer")] use super::indexes::TypedArrayIndex; use super::{ + Heap, element_array::{ElementArrayKey, ElementDescriptor, ElementsVector}, indexes::{BaseIndex, ElementIndex, GetBaseIndexMut, IntoBaseIndex}, - Heap, }; #[cfg(feature = "date")] use crate::ecmascript::builtins::date::Date; @@ -20,7 +20,7 @@ use crate::ecmascript::builtins::regexp::RegExp; #[cfg(feature = "shared-array-buffer")] use crate::ecmascript::builtins::shared_array_buffer::SharedArrayBuffer; #[cfg(feature = "array-buffer")] -use crate::ecmascript::builtins::{data_view::DataView, ArrayBuffer}; +use crate::ecmascript::builtins::{ArrayBuffer, data_view::DataView}; #[cfg(feature = "set")] use crate::ecmascript::builtins::{ keyed_collections::set_objects::set_iterator_objects::set_iterator::SetIterator, set::Set, @@ -29,6 +29,7 @@ use crate::ecmascript::builtins::{ use crate::ecmascript::builtins::{weak_map::WeakMap, weak_ref::WeakRef, weak_set::WeakSet}; use crate::ecmascript::{ builtins::{ + Array, BuiltinConstructorFunction, BuiltinFunction, ECMAScriptFunction, async_generator_objects::AsyncGenerator, bound_function::BoundFunction, control_abstraction_objects::{ @@ -49,7 +50,6 @@ use crate::ecmascript::{ primitive_objects::PrimitiveObject, promise::Promise, proxy::Proxy, - Array, BuiltinConstructorFunction, BuiltinFunction, ECMAScriptFunction, }, execution::{ DeclarativeEnvironmentIndex, EnvironmentIndex, FunctionEnvironmentIndex, @@ -57,8 +57,8 @@ use crate::ecmascript::{ }, scripts_and_modules::{script::ScriptIdentifier, source_code::SourceCode}, types::{ - bigint::HeapBigInt, HeapNumber, HeapString, OrdinaryObject, Symbol, Value, - BUILTIN_STRINGS_LIST, + BUILTIN_STRINGS_LIST, HeapNumber, HeapString, OrdinaryObject, Symbol, Value, + bigint::HeapBigInt, }, }; use crate::engine::Executable; diff --git a/nova_vm/src/heap/heap_gc.rs b/nova_vm/src/heap/heap_gc.rs index 6ba86fb22..0e36c9691 100644 --- a/nova_vm/src/heap/heap_gc.rs +++ b/nova_vm/src/heap/heap_gc.rs @@ -5,15 +5,15 @@ use std::thread; use super::{ + Heap, WellKnownSymbolIndexes, element_array::ElementArrays, heap_bits::{ - mark_array_with_u32_length, mark_descriptors, sweep_heap_elements_vector_descriptors, - sweep_heap_u16_elements_vector_values, sweep_heap_u32_elements_vector_values, - sweep_heap_u8_elements_vector_values, sweep_heap_vector_values, sweep_lookup_table, - CompactionLists, HeapBits, HeapMarkAndSweep, WorkQueues, + CompactionLists, HeapBits, HeapMarkAndSweep, WorkQueues, mark_array_with_u32_length, + mark_descriptors, sweep_heap_elements_vector_descriptors, + sweep_heap_u8_elements_vector_values, sweep_heap_u16_elements_vector_values, + sweep_heap_u32_elements_vector_values, sweep_heap_vector_values, sweep_lookup_table, }, indexes::{ElementIndex, StringIndex}, - Heap, WellKnownSymbolIndexes, }; #[cfg(feature = "array-buffer")] use super::{heap_bits::sweep_side_table_values, indexes::TypedArrayIndex}; @@ -24,7 +24,7 @@ use crate::ecmascript::builtins::regexp::RegExp; #[cfg(feature = "shared-array-buffer")] use crate::ecmascript::builtins::shared_array_buffer::SharedArrayBuffer; #[cfg(feature = "array-buffer")] -use crate::ecmascript::builtins::{data_view::DataView, ArrayBuffer}; +use crate::ecmascript::builtins::{ArrayBuffer, data_view::DataView}; #[cfg(feature = "set")] use crate::ecmascript::builtins::{ keyed_collections::set_objects::set_iterator_objects::set_iterator::SetIterator, set::Set, @@ -34,6 +34,7 @@ use crate::ecmascript::builtins::{weak_map::WeakMap, weak_ref::WeakRef, weak_set use crate::{ ecmascript::{ builtins::{ + Array, BuiltinConstructorFunction, BuiltinFunction, ECMAScriptFunction, async_generator_objects::AsyncGenerator, bound_function::BoundFunction, control_abstraction_objects::{ @@ -54,7 +55,6 @@ use crate::{ primitive_objects::PrimitiveObject, promise::Promise, proxy::Proxy, - Array, BuiltinConstructorFunction, BuiltinFunction, ECMAScriptFunction, }, execution::{ Agent, DeclarativeEnvironmentIndex, Environments, FunctionEnvironmentIndex, @@ -62,11 +62,11 @@ use crate::{ }, scripts_and_modules::{script::ScriptIdentifier, source_code::SourceCode}, types::{ - bigint::HeapBigInt, HeapNumber, HeapString, OrdinaryObject, Symbol, - BUILTIN_STRINGS_LIST, + BUILTIN_STRINGS_LIST, HeapNumber, HeapString, OrdinaryObject, Symbol, + bigint::HeapBigInt, }, }, - engine::{context::GcScope, Executable}, + engine::{Executable, context::GcScope}, }; pub fn heap_gc(agent: &mut Agent, root_realms: &mut [Option], gc: GcScope) { @@ -1557,7 +1557,7 @@ fn sweep( fn test_heap_gc() { use crate::engine::context::GcScope; use crate::{ - ecmascript::execution::{agent::Options, DefaultHostHooks}, + ecmascript::execution::{DefaultHostHooks, agent::Options}, engine::rootable::HeapRootData, }; diff --git a/nova_vm/src/heap/indexes.rs b/nova_vm/src/heap/indexes.rs index 8bcd13f40..44bd70a6c 100644 --- a/nova_vm/src/heap/indexes.rs +++ b/nova_vm/src/heap/indexes.rs @@ -10,7 +10,7 @@ use crate::ecmascript::builtins::regexp::RegExpHeapData; use crate::ecmascript::builtins::shared_array_buffer::data::SharedArrayBufferHeapData; #[cfg(feature = "array-buffer")] use crate::ecmascript::builtins::{ - data_view::data::DataViewHeapData, typed_array::data::TypedArrayHeapData, ArrayBufferHeapData, + ArrayBufferHeapData, data_view::data::DataViewHeapData, typed_array::data::TypedArrayHeapData, }; #[cfg(feature = "set")] use crate::ecmascript::builtins::{ @@ -25,14 +25,14 @@ use crate::ecmascript::builtins::{ use crate::{ ecmascript::{ builtins::{ - async_generator_objects::AsyncGeneratorHeapData, + ArrayHeapData, async_generator_objects::AsyncGeneratorHeapData, control_abstraction_objects::generator_objects::GeneratorHeapData, embedder_object::data::EmbedderObjectHeapData, error::ErrorHeapData, finalization_registry::data::FinalizationRegistryHeapData, indexed_collections::array_objects::array_iterator_objects::array_iterator::ArrayIteratorHeapData, keyed_collections::map_objects::map_iterator_objects::map_iterator::MapIteratorHeapData, map::data::MapHeapData, primitive_objects::PrimitiveObjectHeapData, - promise::data::PromiseHeapData, proxy::data::ProxyHeapData, ArrayHeapData, + promise::data::PromiseHeapData, proxy::data::ProxyHeapData, }, types::{ BigIntHeapData, BoundFunctionHeapData, BuiltinConstructorHeapData, diff --git a/nova_vm/tests/garbage_collection_tests.rs b/nova_vm/tests/garbage_collection_tests.rs index 7060714c6..4d1364f4a 100644 --- a/nova_vm/tests/garbage_collection_tests.rs +++ b/nova_vm/tests/garbage_collection_tests.rs @@ -3,8 +3,8 @@ use std::{fs, path::PathBuf}; use nova_vm::{ ecmascript::{ execution::{ - agent::{GcAgent, Options}, Agent, DefaultHostHooks, + agent::{GcAgent, Options}, }, scripts_and_modules::script::{parse_script, script_evaluation}, types::{Object, String, Value}, @@ -14,7 +14,7 @@ use nova_vm::{ fn initialize_global_object(agent: &mut Agent, global: Object, gc: GcScope) { use nova_vm::ecmascript::{ - builtins::{create_builtin_function, ArgumentsList, Behaviour, BuiltinFunctionArgs}, + builtins::{ArgumentsList, Behaviour, BuiltinFunctionArgs, create_builtin_function}, execution::JsResult, types::{InternalMethods, IntoValue, PropertyDescriptor, PropertyKey}, }; diff --git a/nova_vm/tests/object_prototype_tests.rs b/nova_vm/tests/object_prototype_tests.rs index 44c8a5806..3d053ba09 100644 --- a/nova_vm/tests/object_prototype_tests.rs +++ b/nova_vm/tests/object_prototype_tests.rs @@ -6,8 +6,8 @@ use std::{fs, path::PathBuf}; use nova_vm::ecmascript::{ execution::{ - agent::{GcAgent, Options}, DefaultHostHooks, + agent::{GcAgent, Options}, }, scripts_and_modules::script::{parse_script, script_evaluation}, types::String, diff --git a/tests/Cargo.toml b/tests/Cargo.toml index 542c3b9a6..4a8016544 100644 --- a/tests/Cargo.toml +++ b/tests/Cargo.toml @@ -1,8 +1,7 @@ [package] name = "tests" version = "0.1.0" -edition = "2021" - +edition = "2024" [[bin]] name = "test262" diff --git a/tests/test262_runner.rs b/tests/test262_runner.rs index b14baacc7..596dc5c11 100644 --- a/tests/test262_runner.rs +++ b/tests/test262_runner.rs @@ -2,7 +2,7 @@ // License, v. 2.0. If a copy of the MPL was not distributed with this // file, You can obtain one at https://mozilla.org/MPL/2.0/. -use clap::{builder::ArgPredicate, Args, Parser as ClapParser, Subcommand}; +use clap::{Args, Parser as ClapParser, Subcommand, builder::ArgPredicate}; use rayon::iter::{ParallelBridge, ParallelIterator}; use serde::{Deserialize, Serialize}; use std::{ @@ -10,10 +10,10 @@ use std::{ cell::RefCell, collections::HashMap, ffi::OsStr, - fs::{read_dir, File}, + fs::{File, read_dir}, io::{ErrorKind, Read, Write}, num::NonZeroUsize, - path::{absolute, PathBuf}, + path::{PathBuf, absolute}, process::{Command, Stdio}, time::Duration, };