- From: Joshua Bell <jsbell@chromium.org>
- Date: Tue, 24 Jan 2012 16:23:25 -0800
- To: "public-webapps@w3.org" <public-webapps@w3.org>
- Message-ID: <CAD649j6vFrrrxOv1314bC9rGNNoD0nn8M8Yg8v3WrmCfutyNpw@mail.gmail.com>
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