Re: [w3c/IndexedDB] Fixes for 'steps for storing' (#146)

brettz9 commented on this pull request.



> @@ -6419,8 +6465,7 @@ as follows. The algorithm takes a |value|, a |key| and a |keyPath|.
 4. For each remaining |identifier| in |identifiers|, run these
     substeps:
 
-    1. If |value| is not an [=Object=] object or an [=Array=]
-        object, then [=throw=] a "{{DataError}}" {{DOMException}}.
+    1. Assert: |value| is an [=Object=] or an [=Array=].

See the comment below that 

> Assertions can be made in the above steps because this algorithm is
> only applied to values that are the output of <a abstract-op>StructuredClone</a>,
> and the steps to [=check that a key could be injected into a value=] have
> been run.

The latter steps to "check that a key could be injected into a value" were added (prior to these steps) so that throwing would occur synchronously as opposed to within these record storing steps you have highlighted where they would be occurring asynchronously with the request (and where throwing would not make sense).

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/w3c/IndexedDB/pull/146#discussion_r105170218

Received on Thursday, 9 March 2017 14:07:59 UTC