@@ -11288,7 +11288,17 @@ with the [{{LegacyNoInterfaceObject}}] [=extended attribute=].
1128811288 then set |proto| to |realm|.\[[Intrinsics]].[[{{%Error.prototype%}}]].
1128911289 1. Otherwise, set |proto| to |realm|.\[[Intrinsics]].[[{{%Object.prototype%}}]].
1129011290 1. Assert: <a abstract-op>Type</a>(|proto|) is Object.
11291- 1. Let |interfaceProtoObj| be [=!=] [$OrdinaryObjectCreate$](|proto|).
11291+ 1. Let |interfaceProtoObj| be null.
11292+ 1. If |interface| is declared with the [{{Global}}] [=extended attribute=], or
11293+ |interface| is in the set of [=inherited interfaces=] of an interface
11294+ that is declared with the [{{Global}}] [=extended attribute=], then:
11295+ 1. Set |interfaceProtoObj| to [=!=] [$MakeBasicObject$](« \[[Prototype]], \[[Extensible]] »).
11296+ 1. Set |interfaceProtoObj|.\[[Prototype]] to |proto|.
11297+ 1. Set the internal methods of |interfaceProtoObj|
11298+ which are specific to [=immutable prototype exotic objects=]
11299+ to the definitions specified in
11300+ [=ECMA-262 Immutable prototype exotic objects=].
11301+ 1. Otherwise, set |interfaceProtoObj| to [=!=] [$OrdinaryObjectCreate$](|proto|).
1129211302 1. If |interface| has any [=member=] declared with the [{{Unscopable}}] [=extended attribute=],
1129311303 then:
1129411304
@@ -11305,13 +11315,6 @@ with the [{{LegacyNoInterfaceObject}}] [=extended attribute=].
1130511315 \[[Writable]]: <emu-val>false</emu-val>, \[[Enumerable]]: <emu-val>false</emu-val>,
1130611316 \[[Configurable]]: <emu-val>true</emu-val>}.
1130711317 1. Perform [=!=] <a abstract-op>DefinePropertyOrThrow</a>(|interfaceProtoObj|, {{@@unscopables}}, |desc|).
11308- 1. If |interface| is declared with the [{{Global}}] [=extended attribute=], or
11309- |interface| is in the set of [=inherited interfaces=] of an interface
11310- that is declared with the [{{Global}}] [=extended attribute=], then:
11311- 1. Set the internal methods of |interfaceProtoObj|
11312- which are specific to [=immutable prototype exotic objects=]
11313- to the definitions specified in
11314- [=ECMA-262 Immutable prototype exotic objects=].
1131511318 1. If |interface| is not declared with the [{{Global}}] [=extended attribute=], then:
1131611319 1. [=Define the regular attributes=] of |interface| on |interfaceProtoObj| given |realm|.
1131711320 1. [=Define the regular operations=] of |interface| on |interfaceProtoObj| given |realm|.
0 commit comments