Skip to content

Commit

Permalink
experiment: move imports into a separate file
Browse files Browse the repository at this point in the history
  • Loading branch information
eerii committed Mar 20, 2024
1 parent ea38c2a commit 8fe61d8
Show file tree
Hide file tree
Showing 3 changed files with 164 additions and 284 deletions.
291 changes: 7 additions & 284 deletions components/script/dom/bindings/codegen/CodegenRust.py
Expand Up @@ -2624,35 +2624,9 @@ def UnionTypes(descriptors, dictionaries, callbacks, typedefs, config):

imports = [
'crate::dom',
'crate::dom::bindings::codegen::PrototypeList',
'crate::dom::bindings::conversions::ConversionResult',
'crate::dom::bindings::conversions::FromJSValConvertible',
'crate::dom::bindings::conversions::ToJSValConvertible',
'crate::dom::bindings::conversions::ConversionBehavior',
'crate::dom::bindings::conversions::StringificationBehavior',
'crate::dom::bindings::conversions::root_from_handlevalue',
'crate::dom::bindings::conversions::windowproxy_from_handlevalue',
'std::ptr::NonNull',
'std::rc::Rc',
'crate::dom::bindings::record::Record',
'crate::dom::bindings::num::Finite',
'crate::dom::bindings::root::DomRoot',
'crate::dom::bindings::str::ByteString',
'crate::dom::bindings::str::DOMString',
'crate::dom::bindings::str::USVString',
'crate::dom::bindings::trace::RootedTraceableBox',
'crate::dom::types::*',
'crate::dom::windowproxy::WindowProxy',
'crate::script_runtime::JSContext as SafeJSContext',
'js::error::throw_type_error',
'js::rust::HandleValue',
'js::jsapi::Heap',
'js::jsapi::IsCallable',
'js::jsapi::JSContext',
'js::jsapi::JSObject',
'js::rust::MutableHandleValue',
'js::jsval::JSVal',
'js::typedarray'
'crate::dom::bindings::import::union::*',
# 'crate::dom::bindings::codegen::PrototypeList',
# 'std::ptr::NonNull',
]

# Now find all the things we'll need as arguments and return values because
Expand Down Expand Up @@ -2681,15 +2655,8 @@ def UnionTypes(descriptors, dictionaries, callbacks, typedefs, config):
# Sort unionStructs by key, retrieve value
unionStructs = (i[1] for i in sorted(list(unionStructs.items()), key=operator.itemgetter(0)))

return CGImports(CGList(unionStructs, "\n\n"),
descriptors=[],
callbacks=[],
dictionaries=[],
enums=[],
typedefs=[],
imports=imports,
config=config,
ignored_warnings=[])
return CGImports(CGList(unionStructs, "\n\n"), descriptors=[], callbacks=[], dictionaries=[], enums=[], typedefs=[],
imports=imports, config=config, ignored_warnings=[])


class Argument():
Expand Down Expand Up @@ -6533,200 +6500,8 @@ def reexportedName(name):
# These are inside the generated module
cgThings = CGImports(cgThings, descriptors=[descriptor], callbacks=[],
dictionaries=[], enums=[], typedefs=[], imports=[
'super::*', # Inherits global imports from `CGBindingRoot`
'js::JSCLASS_GLOBAL_SLOT_COUNT',
'js::JSCLASS_IS_DOMJSCLASS',
'js::JSCLASS_IS_GLOBAL',
'js::JSCLASS_RESERVED_SLOTS_MASK',
'js::JS_CALLEE',
'js::glue::CreateProxyHandler',
'js::glue::GetProxyReservedSlot',
'js::glue::JS_GetReservedSlot',
'js::glue::ProxyTraps',
'js::glue::SetProxyReservedSlot',
'js::jsapi',
'js::jsapi::__BindgenBitfieldUnit',
'js::jsapi::CallArgs',
'js::jsapi::GCContext',
'js::jsapi::GetRealmErrorPrototype',
'js::jsapi::GetRealmFunctionPrototype',
'js::jsapi::GetRealmIteratorPrototype',
'js::jsapi::GetRealmObjectPrototype',
'js::jsapi::GetWellKnownSymbol',
'js::jsapi::Handle as RawHandle',
'js::jsapi::HandleId as RawHandleId',
'js::jsapi::HandleObject as RawHandleObject',
'js::jsapi::JSAutoRealm',
'js::jsapi::JSCLASS_FOREGROUND_FINALIZE',
'js::jsapi::JSCLASS_RESERVED_SLOTS_SHIFT',
'js::jsapi::JSClass',
'js::jsapi::JSClassOps',
'js::jsapi::JSFunctionSpec',
'js::jsapi::jsid',
'js::jsapi::JSITER_HIDDEN',
'js::jsapi::JSITER_OWNONLY',
'js::jsapi::JSITER_SYMBOLS',
'js::jsapi::JSJitGetterCallArgs',
'js::jsapi::JSJitInfo',
'js::jsapi::JSJitInfo__bindgen_ty_1',
'js::jsapi::JSJitInfo__bindgen_ty_2',
'js::jsapi::JSJitInfo__bindgen_ty_3',
'js::jsapi::JSJitInfo_AliasSet',
'js::jsapi::JSJitInfo_ArgType',
'js::jsapi::JSJitInfo_OpType',
'js::jsapi::JSJitMethodCallArgs',
'js::jsapi::JSJitSetterCallArgs',
'js::jsapi::JSNativeWrapper',
'js::jsapi::JSPROP_ENUMERATE',
'js::jsapi::JSPROP_PERMANENT',
'js::jsapi::JSPROP_READONLY',
'js::jsapi::JSPropertySpec',
'js::jsapi::JSPropertySpec_Accessor',
'js::jsapi::JSPropertySpec_AccessorsOrValue',
'js::jsapi::JSPropertySpec_AccessorsOrValue_Accessors',
'js::jsapi::JSPropertySpec_Kind',
'js::jsapi::JSPropertySpec_Name',
'js::jsapi::JSPropertySpec_ValueWrapper',
'js::jsapi::JSPropertySpec_ValueWrapper_Type',
'js::jsapi::JSPropertySpec_ValueWrapper__bindgen_ty_1',
'js::jsapi::JSTracer',
'js::jsapi::JSTypedMethodJitInfo',
'js::jsapi::JSValueType',
'js::jsapi::JS_AtomizeAndPinString',
'js::jsapi::JS_ForwardGetPropertyTo',
'js::jsapi::JS_GetPropertyDescriptorById',
'js::jsapi::JS_HasPropertyById',
'js::jsapi::JS_NewPlainObject',
'js::jsapi::JS_SetReservedSlot',
'js::jsapi::MutableHandle as RawMutableHandle',
'js::jsapi::MutableHandleIdVector as RawMutableHandleIdVector',
'js::jsapi::MutableHandleObject as RawMutableHandleObject',
'js::jsapi::MutableHandleValue as RawMutableHandleValue',
'js::jsapi::ObjectOpResult',
'js::jsapi::PropertyDescriptor',
'js::jsapi::SymbolCode',
'js::jsapi::UndefinedHandleValue',
'js::jsval::PrivateValue',
'js::rust::Handle',
'js::rust::RootedGuard',
'js::rust::CustomAutoRooterGuard',
'js::rust::get_object_realm',
'js::rust::get_object_class',
'js::rust::get_context_realm',
'js::rust::GCMethods',
'js::rust::MutableHandle',
'js::rust::wrappers::AppendToIdVector',
'js::rust::wrappers::Call',
'js::rust::wrappers::GetPropertyKeys',
'js::rust::wrappers::int_to_jsid',
'js::rust::wrappers::JS_CopyOwnPropertiesAndPrivateFields',
'js::rust::wrappers::JS_DefineProperty',
'js::rust::wrappers::JS_DefinePropertyById2',
'js::rust::wrappers::JS_GetProperty',
'js::rust::wrappers::JS_InitializePropertiesFromCompatibleNativeObject',
'js::rust::wrappers::JS_NewObjectWithGivenProto',
'js::rust::wrappers::JS_NewObjectWithoutMetadata',
'js::rust::wrappers::JS_SetProperty',
'js::rust::wrappers::JS_SetPrototype',
'js::rust::wrappers::JS_SetImmutablePrototype',
'js::rust::wrappers::JS_WrapObject',
'js::rust::wrappers::NewProxyObject',
'js::rust::wrappers::RUST_INTERNED_STRING_TO_JSID',
'js::rust::wrappers::RUST_SYMBOL_TO_JSID',
'js::panic::wrap_panic',
'js::typedarray',
'js::typedarray::Uint8Array',
'js::typedarray::Uint8ClampedArray',
'js::typedarray::Float32Array',
'js::typedarray::Float64Array',
'js::typedarray::ArrayBuffer',
'js::typedarray::ArrayBufferView',
'crate::dom',
'crate::dom::bindings::conversions::DOM_OBJECT_SLOT',
'crate::dom::bindings::conversions::IDLInterface',
'crate::dom::bindings::conversions::is_array_like',
'crate::dom::bindings::conversions::jsid_to_string',
'crate::dom::bindings::conversions::native_from_handlevalue',
'crate::dom::bindings::conversions::native_from_object_static',
'crate::dom::bindings::conversions::StringificationBehavior',
'crate::dom::bindings::conversions::ToJSValConvertible',
'crate::dom::bindings::codegen::PrototypeList',
'crate::dom::bindings::codegen::RegisterBindings',
'crate::dom::bindings::codegen::InterfaceObjectMap',
'crate::dom::bindings::constant::ConstantSpec',
'crate::dom::bindings::constant::ConstantVal',
'crate::dom::bindings::error::Error',
'crate::dom::bindings::error::ErrorResult',
'crate::dom::bindings::error::throw_constructor_without_new',
'crate::dom::bindings::guard::Condition',
'crate::dom::bindings::guard::Guard',
'crate::dom::bindings::inheritance::Castable',
'crate::dom::bindings::finalize::finalize_common',
'crate::dom::bindings::finalize::finalize_global',
'crate::dom::bindings::finalize::finalize_weak_referenceable',
'crate::dom::bindings::interface::create_callback_interface_object',
'crate::dom::bindings::interface::create_global_object',
'crate::dom::bindings::interface::create_interface_prototype_object',
'crate::dom::bindings::interface::create_named_constructors',
'crate::dom::bindings::interface::create_noncallback_interface_object',
'crate::dom::bindings::interface::ConstructorClassHook',
'crate::dom::bindings::interface::define_dom_interface',
'crate::dom::bindings::interface::define_guarded_methods',
'crate::dom::bindings::interface::define_guarded_properties',
'crate::dom::bindings::interface::get_per_interface_object_handle',
'crate::dom::bindings::interface::get_desired_proto',
'crate::dom::bindings::interface::is_exposed_in',
'crate::dom::bindings::interface::InterfaceConstructorBehavior',
'crate::dom::bindings::interface::NonCallbackInterfaceObjectClass',
'crate::dom::bindings::interface::ProtoOrIfaceIndex',
'crate::dom::bindings::iterable::Iterable',
'crate::dom::bindings::iterable::IteratorType',
'crate::dom::bindings::htmlconstructor::pop_current_element_queue',
'crate::dom::bindings::htmlconstructor::push_new_element_queue',
'crate::dom::bindings::like::Setlike',
'crate::dom::bindings::like::Maplike',
'crate::dom::bindings::namespace::NamespaceObjectClass',
'crate::dom::bindings::namespace::create_namespace_object',
'crate::dom::bindings::proxyhandler',
'crate::dom::bindings::proxyhandler::ensure_expando_object',
'crate::dom::bindings::proxyhandler::get_expando_object',
'crate::dom::bindings::proxyhandler::set_property_descriptor',
'crate::dom::bindings::record::Record',
'crate::dom::bindings::reflector::DomObjectWrap',
'crate::dom::bindings::reflector::DomObjectIteratorWrap',
'crate::dom::bindings::reflector::Reflector',
'crate::dom::bindings::root::Dom',
'crate::dom::bindings::root::DomSlice',
'crate::dom::bindings::root::MaybeUnreflectedDom',
'crate::dom::bindings::root::Root',
'crate::dom::bindings::trace::JSTraceable',
'crate::dom::bindings::utils::AsVoidPtr',
'crate::dom::bindings::utils::callargs_is_constructing',
'crate::dom::bindings::utils::DOMClass',
'crate::dom::bindings::utils::DOMJSClass',
'crate::dom::bindings::utils::DOM_PROTO_UNFORGEABLE_HOLDER_SLOT',
'crate::dom::bindings::utils::enumerate_global',
'crate::dom::bindings::utils::generic_getter',
'crate::dom::bindings::utils::generic_lenient_getter',
'crate::dom::bindings::utils::generic_lenient_setter',
'crate::dom::bindings::utils::generic_method',
'crate::dom::bindings::utils::generic_setter',
'crate::dom::bindings::utils::get_array_index_from_id',
'crate::dom::bindings::utils::get_property_on_prototype',
'crate::dom::bindings::utils::has_property_on_prototype',
'crate::dom::bindings::utils::JSCLASS_DOM_GLOBAL',
'crate::dom::bindings::utils::ProtoOrIfaceArray',
'crate::dom::bindings::utils::resolve_global',
'crate::dom::bindings::utils::trace_global',
'crate::dom::bindings::weakref::DOM_WEAK_SLOT',
'crate::dom::bindings::weakref::WeakReferenceable',
'crate::mem::malloc_size_of_including_raw_self',
'crate::realms::InRealm',
'crate::realms::AlreadyInRealm',
'servo_config::pref',
'std::cmp',
'std::ptr::NonNull',
'std::ffi::CString',
'crate::dom::bindings::import::module::*',
], config=config)

cgThings = CGWrapper(CGNamespace(toBindingNamespace(descriptor.name),
Expand Down Expand Up @@ -7178,59 +6953,7 @@ def __init__(self, config, prefix, webIDLFile):
# These are the global imports (outside of the generated module)
curr = CGImports(curr, descriptors=callbackDescriptors, callbacks=mainCallbacks,
dictionaries=dictionaries, enums=enums, typedefs=typedefs,
imports=[
'js::error::throw_type_error',
'js::jsapi::CurrentGlobalOrNull',
'js::jsapi::HandleValue as RawHandleValue',
'js::jsapi::HandleValueArray',
'js::jsapi::Heap',
'js::jsapi::IsCallable',
'js::jsapi::JSContext',
'js::jsapi::JSObject',
'js::jsapi::JS_NewObject',
'js::jsval::JSVal',
'js::jsval::NullValue',
'js::jsval::ObjectValue',
'js::jsval::ObjectOrNullValue',
'js::jsval::UndefinedValue',
'js::rust::HandleObject',
'js::rust::HandleValue',
'js::rust::wrappers::JS_CallFunctionValue',
'js::rust::wrappers::JS_WrapValue',
'js::rust::MutableHandleObject',
'js::rust::MutableHandleValue',
'js::panic::maybe_resume_unwind',
'crate::dom::bindings::callback::CallSetup',
'crate::dom::bindings::callback::CallbackContainer',
'crate::dom::bindings::callback::CallbackInterface',
'crate::dom::bindings::callback::CallbackFunction',
'crate::dom::bindings::callback::CallbackObject',
'crate::dom::bindings::callback::ExceptionHandling',
'crate::dom::bindings::callback::wrap_call_this_object',
'crate::dom::bindings::codegen::UnionTypes',
'crate::dom::bindings::conversions::ConversionBehavior',
'crate::dom::bindings::conversions::ConversionResult',
'crate::dom::bindings::conversions::FromJSValConvertible',
'crate::dom::bindings::conversions::StringificationBehavior',
'crate::dom::bindings::conversions::ToJSValConvertible',
'crate::dom::bindings::conversions::root_from_handlevalue',
'crate::dom::bindings::error::Fallible',
'crate::dom::bindings::error::Error::JSFailed',
'crate::dom::bindings::error::throw_dom_exception',
'crate::dom::bindings::num::Finite',
'crate::dom::bindings::reflector::DomObject',
'crate::dom::bindings::root::DomRoot',
'crate::dom::bindings::str::ByteString',
'crate::dom::bindings::str::DOMString',
'crate::dom::bindings::str::USVString',
'crate::dom::bindings::trace::RootedTraceableBox',
'crate::dom::bindings::utils::get_dictionary_property',
'crate::dom::bindings::utils::set_dictionary_property',
'crate::dom::globalscope::GlobalScope',
'crate::script_runtime::JSContext as SafeJSContext',
'std::ptr',
'std::rc::Rc',
], config=config)
imports=['crate::dom::bindings::import::base::*'], config=config)

# Add the auto-generated comment.
curr = CGWrapper(curr, pre=AUTOGENERATED_WARNING_COMMENT)
Expand Down

0 comments on commit 8fe61d8

Please sign in to comment.