On Wed, Sep 21, 2011 at 11:58 AM, Israel Hilerio <[email protected]> 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