Re: [heycam/webidl] Clarify object creation in named constructors (#652)

annevk commented on this pull request.

I hope at some point we can find a cleaner solution for "Perform the actions listed in the description".

> @@ -10780,10 +10780,18 @@ This object's relevant [=Realm=] must be the same as that of the [=named constru
             and with argument count |n|.
         1.  Let <|constructor|, |values|> be the result of passing |S| and
             |args| to the [=overload resolution algorithm=].
-        1.  Let |R| be the result of performing the actions listed in the description of
-            |constructor| with |values| as the argument values.
-        1.  Return the result of [=converted to an ECMAScript value|converting=]
-            |R| to an ECMAScript [=interface type=] value |I|.
+        1.  Let |object| be the result of [=internally create a new object implementing the
+            interface|internally creating a new object implementing=] |I|, with |realm| and
+            {{NewTarget}}.
+        1.  Perform the actions listed in the description of |constructor|
+            with |values| as the argument values
+            and |object| as the <emu-val>this</emu-val> value.
+            Rethrow any exceptions.
+        1.  Let |O| be the result of [=converted to an ECMAScript value|converting=] |object|
+            to an ECMAScript [=interface type=] value |I|.
+        1.  Assert: |O| is an object that implements |I|.

link implements?

> @@ -10780,10 +10780,18 @@ This object's relevant [=Realm=] must be the same as that of the [=named constru
             and with argument count |n|.
         1.  Let &lt;|constructor|, |values|&gt; be the result of passing |S| and
             |args| to the [=overload resolution algorithm=].
-        1.  Let |R| be the result of performing the actions listed in the description of
-            |constructor| with |values| as the argument values.
-        1.  Return the result of [=converted to an ECMAScript value|converting=]
-            |R| to an ECMAScript [=interface type=] value |I|.
+        1.  Let |object| be the result of [=internally create a new object implementing the
+            interface|internally creating a new object implementing=] |I|, with |realm| and
+            {{NewTarget}}.
+        1.  Perform the actions listed in the description of |constructor|
+            with |values| as the argument values
+            and |object| as the <emu-val>this</emu-val> value.
+            Rethrow any exceptions.
+        1.  Let |O| be the result of [=converted to an ECMAScript value|converting=] |object|
+            to an ECMAScript [=interface type=] value |I|.
+        1.  Assert: |O| is an object that implements |I|.
+        1.  Assert: |O|.\[[Realm]] is equal to |realm|.

is equal to -> is?

> @@ -10780,10 +10780,18 @@ This object's relevant [=Realm=] must be the same as that of the [=named constru
             and with argument count |n|.
         1.  Let &lt;|constructor|, |values|&gt; be the result of passing |S| and
             |args| to the [=overload resolution algorithm=].
-        1.  Let |R| be the result of performing the actions listed in the description of
-            |constructor| with |values| as the argument values.
-        1.  Return the result of [=converted to an ECMAScript value|converting=]
-            |R| to an ECMAScript [=interface type=] value |I|.
+        1.  Let |object| be the result of [=internally create a new object implementing the
+            interface|internally creating a new object implementing=] |I|, with |realm| and
+            {{NewTarget}}.
+        1.  Perform the actions listed in the description of |constructor|
+            with |values| as the argument values
+            and |object| as the <emu-val>this</emu-val> value.
+            Rethrow any exceptions.

This is implied, no?

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

Received on Monday, 25 February 2019 13:08:30 UTC