[IndexedDB] Constants and interfaces

Last we spoke about constants in IndexedDB, (like IDBKeyRange.LEFT_BOUND) I
believe we had decided that all the objects with constants would have an
interface object hanging off of window so it's possible to simply say
"IDBKeyRange.LEFT_BOUND" within JavaScript.  What happens when someone tries
something like the following JS: |IDBCursor.continue()|?  Given that we're
using an interface object, I'd assume we throw some sort of exception or
something?  I tried to figure out the answer in the WebIDL spec (I imagine
it's somewhere around here
http://dev.w3.org/2006/webapi/WebIDL/#dfn-interface-object) but it's a lot
to wade through.  Any advice would be great.

Also, the spec still has "[NoInterfaceObject]" for a lot of the interfaces.
 I believe Nikunj did this by accident and was supposed to revert, but I
guess he didn't?  I should file a bug to get these removed, right?

Another question: Right now all the error constants are on
IDBDatabaseException which is an exception rather than an interface.  Is
this allowed?  And even if so, should we put them on IDBDatabaseError
instead, given that it's the class people will be using more often (with the
async interface)?  Or maybe we should duplicate the constants in both
places?  It just feels weird to me that I keep reaching into
IDBDatabaseException for these constants.

Thanks,
Jeremy

Received on Tuesday, 24 August 2010 17:31:21 UTC