On Sat, Feb 14, 2015 at 1:45 PM, Axel Rauschmayer <a...@rauschma.de> wrote:
> > On 14 Feb 2015, at 22:26, Mark S. Miller <erig...@google.com> wrote: > > On Sat, Feb 14, 2015 at 1:21 PM, Axel Rauschmayer <a...@rauschma.de> > wrote: > >> But it’s not an error! Either of the following two classes fail later, >> when you instantiate them, but not right away. >> >> ```js >> const X = null; >> class C extends X {} >> >> class D extends null {} >> ``` >> > > I didn't mean to imply an early error. The "extends X" can only produce a > dynamic error, so I'm arguing that "extends null" should do the same. > > > When I say “early”, I don’t mean “static”, I mean: dynamically, when the > class definition is evaluated, not later when the class is instantiated via > `new`. > > I’m not seeing a dynamic error in the spec when the `extends` clause is > null (step 6e): > https://people.mozilla.org/~jorendorff/es6-draft.html#sec-runtime-semantics-classdefinitionevaluation > That's a good suggestion. AFAICT, it would be an improvement. I don't see any downside. Allen? > > >> Or dynamically switching from "derived" to "base" (but you seem to be >> saying that doing this dynamically is not a good idea). >> > > Dynamically switching from derived to base does not work, because our > super semantics depends statically on the difference. > > > Ah, checked statically, I wasn’t aware! Hadn’t found the check beforehand. > Searched some more and it is indeed there, in 14.5.1. > > -- > Dr. Axel Rauschmayer > a...@rauschma.de > rauschma.de > > > > -- Cheers, --MarkM
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss