wiki:WebIDLToDo

Version 5 (modified by sam@webkit.org, 5 years ago) (diff)

Add more todos

Goals

  • Remove all non-wrapping or GC related custom bindings
  • Add support for all WebIDL features
  • Improve the quality of the perl IDL code generators
  • Use IDL infrastructure to add automatic test case generation


Tasks:

  • Add support for WebIDL namespaces
  • Add support for setlike<> declarations
  • Add support for Promise<> attributes
  • Remove special casing of RegExp from overloading
  • Stop invoking GetMethod(V, @@iterator) twice for sequence/FrozenArray disambiguation in overloading
  • Implement / verify FrozenArray reference semantics without [CachedAttribute]
  • Add support for [SameObject] (unclear if there is anything to do here. SameObject is probably something that is implemented in the implementation via returning the same object).
  • Add support for the remaining steps in the union conversion code
  • Add better exception messages for all conversions
  • Replace use of is_polymorphic with std::is_polymorphic
  • Replace use of RuntimeEnabledFeatures with Settings based conditionals
  • Add support for conditionally exposing functions / attributes based on [Exposed] extended attribute (see NavigatorID.idl and XMLHttpRequest.idl for examples)
  • Replace explicit conversion from Identifier to String or AtomicString (see uses of propertyNameToString/propertyNameToAtomicString in the generator) with a class that can convert most efficiently based on the type of the receiver.
  • Replace explicit conversion from JSString to AtomicString via the [AtomicString] and [ExistingAtomicString] type modifiers with a class that can convert most efficiently based on the type of the receiver.


Specific issues

  • Make ScheduledAction into a regular callback


Maybe:

  • Generate the structs that correspond to IDL dictionaries
  • Generate the enums that correspond to IDL enums
  • Generate the abstract base classes that correspond to IDL callbacks


Done:

  • Add support for generating name getters / setters / deleters
  • Add support for generating index getters / setters with custom names
  • Add support for maplike<> declarations
  • Add support for callbacks with non-void return types
  • Add support for BufferType specialization in IDLTypes (currently implemented as IDLInterfaces)
  • Stop invoking GetMethod(V, @@iterator) twice for sequence/FrozenArray disambiguation in union conversion
  • Remove special casing of enums by passing context (attribute assignment, function parameter, dictionary assignment) to conversion functions
  • Move all exception helpers out of JSDOMBindings.h and into its own header
  • Split JSDOMConvert up into separate files per type