Re: [w3c/IndexedDB] Replace abrupt completion asserts/returns with !? shortcuts from ES spec (#100)

domenic commented on this pull request.

Generally hard to tell whether the !s are justified without me understanding the context better. I suspect more of them should be ?s. But be careful...

>              |value|)
 
-        6. Assert: |value| is not an abrupt completion.
-
-        7. If |value| is Undefined, return failure.
+        5. If |value| is Undefined, return failure.

lowercase undefined

> @@ -5444,18 +5447,14 @@ ECMAScript value or failure, or the steps may throw an exception.
       <dd>
         1. If Type(|value|) is not Object, return failure.
 
-        2. Let |hop| be HasOwnProperty(|value|, |identifier|)
-
-        3. Assert: |hop| is not an abrupt completion.
+        2. Let |hop| be [=!=] HasOwnProperty(|value|, |identifier|)

Why can't this fail? Does some earlier step prevent `value` from being a proxy?

>  
-        5. Let |value| be |value|.[<span>[</span>Get]](|identifier|,
+        4. Let |value| be [=!=] |value|.[<span>[</span>Get]](|identifier|,

Same question, but here you'd need to prevent `value` from having any getters and having anything with a potential getter in its prototype chain.

> @@ -5679,39 +5674,34 @@ steps may throw an exception.
       <dt>If IsArray(|input|)</dt>
       <dd>
 
-        1. Let |len| be the ToLength(Get(|input|,
+        1. Let |len| be [=!=] ToLength(Get(|input|,

Need ? or ! for the Get, not just the ToLength

Is there something guaranteeing that ToLength will succeed? What about this?

```js
{
  get length() {
    return { valueOf() { throw new Error("boo"); } };
  }
}
```

>  
-            10. Increase |index| by 1
+            8. Increase |index| by 1

Nit: these steps are inconsistent about whether they end with a period or not. (They should, generally.)

-- 
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/100#pullrequestreview-5119013

Received on Thursday, 20 October 2016 17:35:24 UTC