Re: [heycam/webidl] Use [[isExtensible]] over prose. (#197)

domenic requested changes on this pull request.

I realized that I told you the wrong internal method yesterday. It should be [[PreventExtensions]]() that returns false under these scenarios, not [[IsExtensible]](). Sorry, I got confused between a few different bugs on the legacy tracker.

I realized this by checking the definitions of Object.freeze, Object.seal, and Object.preventExtensions. E.g. https://tc39.github.io/ecma262/#sec-object.preventextensions. I noticed that they all actually end up calling [[PreventExtensions]](), not [[IsExtensible]]().

> @@ -10709,6 +10709,12 @@ called, the same algorithm must be executed as is defined for the \[[SetPrototyp
 [=immutable prototype exotic object=].
 
 
+<h5 id="named-properties-object-isextensible">Named properties object \[[IsExtensible]] method</h5>
+
+When the \[[IsExtensible]] internal method of an [=named properties object=] is called,

"a" named properties object

> @@ -12521,6 +12518,20 @@ values passed to \[[Call]]:
 </ol>
 
 
+<h4 id="isextensible">Platform object \[[IsExtensible]] method</h4>
+
+The internal \[[IsExtensible]] method of every [=platform object=] |O|
+must behave as follows:
+
+<ol class="algorithm">
+    1.  If |O| implements an [=interface=] that
+        [=support indexed properties|supports indexed properties=] or
+        [=support named properties|supports named properties=],

It looks like other internal methods just say "If O supports indexed properties", e.g. https://heycam.github.io/webidl/#defineownproperty. A bit surprising; I think your phrasing is more correct. But probably best to stay consistent for now, and I'll file a follow-up editorial issue.

-- 
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/197#pullrequestreview-5351250

Received on Saturday, 22 October 2016 15:50:45 UTC