WebCore builds each HTML...Element.cpp
interface automatically, based on available
attributes and names.
- Element Names are defined in HTMLTagNames.in.
- Element Attributes are defined in HTMLAttributeNames.in.
- Macros for Code Generation are defined in WebCoreMacros.cmake.
The code for the ECMAScript Bindings are generated by the CodeGeneratorJS.pm,
and additionally are also based on the equivalent idl
files for each exposed Interface.
For example, the /Source/WebCore/dom/Document...idl
files are combined together into
the /WebCore/DerivedSources/JSDocument...{.cpp,.h}
files, whose filenames are generated
by their permutations of possible combinations.