On Wed, Sep 21, 2011 at 11:58 AM, Israel Hilerio <isra...@microsoft.com> wrote: > Jonas, > > This is our interpretation of how we see incorporating the new Event > constructor model defined in DOM 4. > > [Constructor(DOMString type, optional IDBVersionChangeEventInit > IDBVersionChangeEventInitDict)] > interface IDBVersionChangeEvent : Event { > readonly attribute DOMString oldVersion; > readonly attribute DOMString newVersion; > void initIDBVersionChangeEvent (DOMString typeArg, boolean canBubbleArg, > boolean cancelableArg, DOMString oldVersion, DOMString newVersion); > }; > > dictionary IDBVersionChangeEventInit : EventInit { > DOMString oldVersion; > DOMString newVersion; > }
Looks great apart from needing to remove the init function as Anne points out. > We'll need to add a step between 3 and 4 to section 4.12 and a note: > 3.5 After dispatching the event, if the event was not cancelled and allowed > to bubble, then dispatch an ErrorEvent with the type set to "error" to the > Window. You don't need to state "and allowed to bubble", all events dispatched by this algorithm bubble as per step 3. > NOTE: When constructing an IDBVersionChangeEvent you need to follow the same > steps defined in DOM4 Section 4.3 Constructing events. In addition, setting > the onerror event handler with window.addEventListener will return the > ErrorEvent. However, setting the onerror event handler with window.onerror > will return three arguments as specified in HTML5 spec: event, source, and > lineno [1]. I agree with Anne, this language is confusing. Dispatch of the onerror handler is handled by the HTML5 so I'm not sure we need to say anything here. > Sample code on how to use the event constructor: > var myDictionary = { canBubble: true, cancellable: true, oldVersion=1, > newVersion=2}; > var changeEvent = new IDBVersionChangeEvent("versionchange", myDictionary); Per [1] you should change 'canBubble' to 'bubbles'. [1] http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#eventinit / Jonas