Re: [whatwg/webidl] Editorial: Completion reform for ECMAScript AOs (PR #1111)

@bakkot commented on this pull request.



> @@ -8072,8 +8072,8 @@ ECMAScript Array values.
         1.  Let |V| be the value in |S| at index |i|.
         1.  Let |E| be the result of [=converted to an ECMAScript value|converting=]
             |V| to an ECMAScript value.
-        1.  Let |P| be the result of calling <a abstract-op>ToString</a>(|i|).
-        1.  Call <a abstract-op>CreateDataProperty</a>(|A|, |P|, |E|).
+        1.  Let |P| be the result of calling [=?=] <a abstract-op>ToString</a>(|i|).

This can't throw, since `i` is primitive here. (Just gonna ignore the issues with real-vs-Number for the moment.)

> @@ -8072,8 +8072,8 @@ ECMAScript Array values.
         1.  Let |V| be the value in |S| at index |i|.
         1.  Let |E| be the result of [=converted to an ECMAScript value|converting=]
             |V| to an ECMAScript value.
-        1.  Let |P| be the result of calling <a abstract-op>ToString</a>(|i|).
-        1.  Call <a abstract-op>CreateDataProperty</a>(|A|, |P|, |E|).
+        1.  Let |P| be the result of calling [=?=] <a abstract-op>ToString</a>(|i|).
+        1.  Call [=?=] <a abstract-op>CreateDataProperty</a>(|A|, |P|, |E|).

This can't throw, since A is an Array and so cannot have a throwy `CreateDataProperty` for properties other than `length`.

> @@ -9095,7 +9095,7 @@ Array object references.
     1.  Let |array| be the result of
         [=converted to an ECMAScript value|converting=]
         the sequence of values of type |T| to an ECMAScript value.
-    1.  Perform <a abstract-op>SetIntegrityLevel</a>(|array|, "<code>frozen</code>").
+    1.  Perform [=?=] <a abstract-op>SetIntegrityLevel</a>(|array|, "<code>frozen</code>").

Can't throw because `array` is a genuine Array and so not an evil Proxy.

> @@ -13619,7 +13623,7 @@ Additionally, [=legacy platform objects=] have internal methods as defined in:
                 1.  Return <emu-val>true</emu-val>.
     1.  If |O| does not implement an [=interface=] with the [{{Global}}] [=extended attribute=],
         then set |Desc|.\[[Configurable]] to <emu-val>true</emu-val>.
-    1.  Return <a abstract-op>OrdinaryDefineOwnProperty</a>(|O|, |P|, |Desc|).
+    1.  Return [=?=] <a abstract-op>OrdinaryDefineOwnProperty</a>(|O|, |P|, |Desc|).

Can't fail because this does not have an custom throwy [[IsExtensible]] method and the custom [[GetOwnProperty]] method doesn't throw.

-- 
Reply to this email directly or view it on GitHub:
https://github.com/whatwg/webidl/pull/1111#pullrequestreview-896942192
You are receiving this because you are subscribed to this thread.

Message ID: <whatwg/webidl/pull/1111/review/896942192@github.com>

Received on Tuesday, 1 March 2022 23:46:45 UTC