Re: [indexeddb] Handling negative parameters for the advance method

On Fri, Aug 12, 2011 at 5:49 PM, Israel Hilerio <israelh@microsoft.com>wrote:

> On Friday, August 12, 2011 3:17 PM, Jonas Sicking wrote:
> > On Fri, Aug 12, 2011 at 2:34 PM, Israel Hilerio <israelh@microsoft.com>
> > wrote:
> > > Since advance is intended to always move the cursor forward, it seems
> we
> > want to only support positive parameter values.  Therefore, I would
> suggest
> > we change its signature to:
> > >
> > > void advance (in unsigned int count);
> > >
> > > If a developer specifies a negative number for it, we could throw an
> > IDBDatabaseException with a value of NON_TRANSIENT_ERR.  A value of zero
> > will do nothing.
> > >
> > > I also noticed that the webIDL spec doesn't define int or unsigned int.
>  It
> > seems we should be using long (for int) and unsigned long (unsigned int).
> > >
> > > Do you agree?
> >
> > Yup. Though I think WebIDL will take care of the handling for when the
> > author specifies a negative value. I.e. WebIDL will specify what
> exception to
> > throw, so we don't need to. Similar to how WebIDL specifies what
> exception
> > to throw if the author specifies too few parameters, or parameters of the
> > wrong type.
> >
> > / Jonas
>
> After researching a bit, there are no exceptions defined in WebIDL when
> passing a negative number to an unsigned long parameter.  The value is
> always converted to some type of positive value.  This will result in some
> erratic behavior that won't generate an exception.  The good news is that
> there is no exception that needs to be thrown :-).
>
> I will work with Eliot to make the changes to the spec and to change all
> "int" references to "long".
>

Oh! You are correct indeed. Though I think it's something that has been
debated if it should be changed or not. In any case let's depend on WebIDL
such that it's consistent with other methods.

Thanks for fixing up the spec guys!

/ Jonas

Received on Saturday, 13 August 2011 01:13:38 UTC