@@ -10724,11 +10724,10 @@ the <code>typeof</code> operator will return "function" when applied to an inter
10724
10724
1. Perform the actions listed in the description of |constructor|
10725
10725
with |values| as the argument values
10726
10726
and |object| as the <emu-val>this</emu-val> value.
10727
- Rethrow any exceptions.
10728
10727
1. Let |O| be the result of [=converted to an ECMAScript value|converting=] |object|
10729
10728
to an ECMAScript [=interface type=] value |I|.
10730
10729
1. Assert: |O| is an object that implements |I|.
10731
- 1. Assert: |O|.\[[Realm]] is equal to |realm|.
10730
+ 1. Assert: |O|.\[[Realm]] is |realm|.
10732
10731
1. Return |O|.
10733
10732
1. Let |constructorProto| be |realm|.\[[Intrinsics]].[[{{%FunctionPrototype%}}]].
10734
10733
1. If |I| inherits from some other interface |P|,
@@ -10763,10 +10762,6 @@ It allows constructing objects that
10763
10762
implement the interface on which the
10764
10763
[{{NamedConstructor}}] extended attributes appear.
10765
10764
10766
- If the actions listed in the description of the constructor return normally,
10767
- then those steps must return an object that implements interface |I|.
10768
- This object's relevant [=Realm=] must be the same as that of the [=named constructor=].
10769
-
10770
10765
<div algorithm>
10771
10766
10772
10767
The [=named constructor=] with [=NamedConstructor identifier|identifier=] |id|
@@ -10783,10 +10778,17 @@ This object's relevant [=Realm=] must be the same as that of the [=named constru
10783
10778
and with argument count |n|.
10784
10779
1. Let <|constructor|, |values|> be the result of passing |S| and
10785
10780
|args| to the [=overload resolution algorithm=].
10786
- 1. Let |R| be the result of performing the actions listed in the description of
10787
- |constructor| with |values| as the argument values.
10788
- 1. Return the result of [=converted to an ECMAScript value|converting=]
10789
- |R| to an ECMAScript [=interface type=] value |I|.
10781
+ 1. Let |object| be the result of [=internally create a new object implementing the
10782
+ interface|internally creating a new object implementing=] |I|, with |realm| and
10783
+ {{NewTarget}}.
10784
+ 1. Perform the actions listed in the description of |constructor|
10785
+ with |values| as the argument values
10786
+ and |object| as the <emu-val>this</emu-val> value.
10787
+ 1. Let |O| be the result of [=converted to an ECMAScript value|converting=] |object|
10788
+ to an ECMAScript [=interface type=] value |I|.
10789
+ 1. Assert: |O| is an object that implements |I|.
10790
+ 1. Assert: |O|.\[[Realm]] is |realm|.
10791
+ 1. Return |O|.
10790
10792
1. Let |F| be [=!=] <a abstract-op>CreateBuiltinFunction</a>(|steps|, « », |realm|).
10791
10793
1. Perform [=!=] <a abstract-op>SetFunctionName</a>(|F|, |id|).
10792
10794
1. Initialize |S| to the [=effective overload set=]
0 commit comments