Re: [Bug 15434] New: [IndexedDB] Detail steps for assigning a key to a value

On Tue, Jan 24, 2012 at 4:16 PM, Israel Hilerio <israelh@microsoft.com>wrote:

> On Tuesday, January 24, 2012 11:38 AM, Jonas Sicking wrote:>
> > Based on this (pending details from microsoft of course) I suggest the
> > following set of steps:
> >
> > 1. If /keyPath/ is the empty string, skip the remaining steps and
> /value/ is not
> > modified.
> > 2. Let /remainingKeypath/ be /keyPath/ and /object/ be /value/.
> > 3. if /object/ is not an Object object or an Array object (see
> structured clone
> > algorithm), then throw a DOMException of type DataError.
> > 4. If /remainingKeypath/ has a period in it, assign /remainingKeypath/
> to be
> > everything after the first period and assign /attribute/ to be everything
> > before that first period. Otherwise, go to step 8.
> > 5. If /object/ does not have an attribute named /attribute/, then create
> the
> > attribute and assign it an empty object.
> > 6. Assign /object/ to be the value of the attribute named /attribute/ on
> > /object/.
> > 7. Go to step 3.
> > 8. NOTE: The steps leading here ensure that /remainingKeyPath/ is a
> single
> > attribute name (i.e. string without periods) by this step. They also
> ensure
> > that /object/ is an Object or an Array, and not a Date, RegExp, Blob etc.
> > 9. Let /attribute/ be /remainingKeyPath/ 10. Set an attribute named
> > /attribute/ on /object/ with the value /key/.
> >
> > Note that the intent is that these steps are only executed if evaluating
> the
> > keyPath did not yield a value. I.e. if we know that we need to modify the
> > stored value. Because of this we know that at step
> > 10 the object does not have an attribute with name /attribute/.
> >
> > Let me know if these steps sound ok?
> >
> > / Jonas
> >
>
> The steps look good to me.
>
> Israel
>
>
Ditto.

Received on Wednesday, 25 January 2012 00:24:01 UTC