[indexeddb] Updates to the Event Constructor to match DOM 4

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;
}

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.
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].

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);

Let us know if this is what you're thinking.

Israel
[1] http://dev.w3.org/html5/spec/Overview.html#event-handler-attributes

Received on Wednesday, 21 September 2011 18:58:52 UTC