Changes between Version 101 and Version 102 of WebKitIDL


Ignore:
Timestamp:
May 8, 2013 1:35:06 AM (11 years ago)
Author:
Christophe Dumez
Comment:

Remove V8Unforgeable and V8OnProto

Legend:

Unmodified
Added
Removed
Modified
  • WebKitIDL

    v101 v102  
    2121 - [#Deletable Deletable(a), NotEnumerable(a)][[br]]
    2222 - [#CachedAttribute CachedAttribute(a)][[br]]
    23  - [#V8Unforgeable V8Unforgeable(m,a), V8OnProto(m,a)][[br]]
    2423 - [#URL URL(a)][[br]]
    2524 - [#JSWindowEventListener JSWindowEventListener(a)][[br]]
     
    658657In addition, setters always need to invalidate the cache.
    659658
    660 == `[V8Unforgeable]`(m,a), `[V8OnProto]`(m,a) == #V8Unforgeable
    661 
    662  * [http://dev.w3.org/2006/webapi/WebIDL/#Unforgeable The spec of Unforgeable]
    663 
    664 Summary: They control where a getter/setter of a given attribute is defined.
    665 
    666 Usage: They can be specified on methods or attributes:
    667 {{{
    668     [V8Unforgeable] void func();
    669     attribute [V8OnProto] DOMString str;
    670 }}}
    671 
    672 By default in JSC and V8, attribute getters/setters are defined on a DOM object, and methods are defined on a prototype chain
    673 (although the Web IDL spec requires that both attribute getters/setters and methods should be defined on a prototype chain).
    674 
    675 If you want to explicitly control where an attribute getter/setter or a method is defined in V8,
    676 you can use `[V8Unforgeable]` or `[V8OnProto]`.
    677 
    678  * `[V8Unforgeable]` indicates that an attribute getter/setter or a method should be defined on a DOM object.
    679  * `[V8OnProto]` indicates that an attribute getter/setter or a method should be defined on a prototype chain.
    680 
    681 Note: As explained above, the current implementation of JSC and V8 is wrong with the Web IDL spec,
    682 and `[V8Unforgeable]` and `[V8OnProto]` are used for hack.
    683 You should not use them unless you have a strong reason to use them.
    684 
    685659== `[URL]`(a) == #URL
    686660