Changes between Version 1 and Version 2 of IdlAttributes

Jul 17, 2009 3:09:39 PM (14 years ago)



  • IdlAttributes

    v1 v2  
    1111  Adds a "virtual void mark()" declaration to the generated header file for the binding class. This allows a custom binding implementation to provide their own mark() function in WebCore/bindings/js/JS''ClassName''Custom.cpp for doing custom handling of garbage collection.
     13  CustomToJS::
     14  Does not generate a toJS() function for the binding class. This allows implementors to provide their own toJS() function to create the correct wrapper class for a given implementation class. This is useful whenever you have a class hierarchy in the implementing classes - when given an instance of the base class, the custom toJS() implementation should return a wrapper appropriate to the derived class, not the base class.
    1316  DelegatingGetOwnPropertySlot::
    1417  Used when a given instance wants to customize the lookup of properties. Examples are the HTML History object, which needs to enforce restrictions on which attributes are visible cross-domain, or WorkerContext, which wants to delegate lookup to the global object before looking up properties in its own prototype.
    1619  ExtendsDOMGlobalObject::
    17   Does not expose the object prototype externally, as the class cannot be derived from externally. Also uses this object internally whenever it needs to access the JSDOMGlobalObject.
     20  Does not expose the object prototype externally. Also uses a self-reference internally whenever it needs to access the JSDOMGlobalObject.
     22  GenerateConstructor::
     23  Generates code to enable the class to be externally instantiated.
     25  GenerateNativeConverter::
     26  Generates a helper function of the form ''ClassName''* impl() { return static_cast<''ClassName''>(m_impl); }. Useful when working with a class hierarchy in the binding code, where the base m_impl member is defined to be the base type, not the appropriate derived type.
    1928  LegacyParent=''ParentClass''::
    2029  Allows setting the base class for the generated binding. Otherwise, the base class would be set to DOMObject or the explicitly specified parent class in the interface definition.
     31  NoStaticTables::
     32 Sharing a single static prototype table only works when a class is guaranteed to be accessed from a single heap, because the lookup code expects the key (attribute name) to have the same address across all instances of the object. For interfaces that are exposed to Workers, a single static table won't work because a given string used to look up a property on the object will lie at a different address in each heap.