Version 8 (modified by 7 years ago) ( diff ) | ,
---|
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
- Reduce the code size of the generated code.
- Reduce the compile time of the generated code.
- Provide the fastest bindings layer possible.
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 - Add support for making an attribute conditionally readonly at compile time (see JSAudioTrackCustom) (https://webkit.org/b/173993)
- 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.
DOMJIT Specific Tasks:
- Utilize DOMJIT to hoist attribute and operation prologues into JSC (https://webkit.org/b/171637)
- Attempt to reduce duplications by having 'safe' bindings functions call the 'unsafe' ones where possible.
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
- Replace trampoline/body model with trampoline/lambda.
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
- Add extended attribute for marking an argument to an operation as also being the return value (needed for Crypto.getRandomValues, Node.insertBefore, Node.replaceChild, Node.removeChild, and Node.appendChild) (https://webkit.org/b/173961)
Note:
See TracWiki
for help on using the wiki.