Re: [heycam/webidl] Editorial: Avoid changing internal methods of ordinary objects (#901)

@ExE-Boss commented on this pull request.



> @@ -11288,7 +11288,16 @@ with the [{{LegacyNoInterfaceObject}}] [=extended attribute=].
         then set |proto| to |realm|.\[[Intrinsics]].[[{{%Error.prototype%}}]].
     1.  Otherwise, set |proto| to |realm|.\[[Intrinsics]].[[{{%Object.prototype%}}]].
     1.  Assert: <a abstract-op>Type</a>(|proto|) is Object.
-    1.  Let |interfaceProtoObj| be [=!=] [$OrdinaryObjectCreate$](|proto|).
+    1.  If |interface| is declared with the [{{Global}}] [=extended attribute=], or
+        |interface| is in the set of [=inherited interfaces=] of an interface
+        that is declared with the [{{Global}}] [=extended attribute=], then:
+        1.  Let |interfaceProtoObj| be [=!=] [$MakeBasicObject$](« \[[Prototype]], \[[Extensible]] »).

This differs from **ECMA262**, where the step “Let <var>interfaceProtoObj</var> be ! OrdinaryObjectCreate(proto)” creates a hoisted variable <var>interfaceProtoObj</var>.

-- 
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/901#discussion_r450458901

Received on Monday, 6 July 2020 20:21:50 UTC