base value of super reference doesn't indicate prototype object of the super class

Yusuke Suzuki utatane.tea at gmail.com
Fri Jun 29 19:11:20 PDT 2012


Hello all,

I think that I found a issue on super reference of current draft.
In the current draft, Super Reference is made with base value is result
of calling GetHomeObject of env.
But, HomeObject is prototype of derived class, we cannot find method of
superclass.

So for example,

    class Base {
    say() {
    console.log('base');
    }
    };

    class Derived extends Base {
    say() {
    console.log('derived');
    super();
    }
    };

    let instance = new Derived;

    instance.say();


then, because base of super reference becomes Derived.prototype,
console.log('derived') is executed recursively and max recursion limit
exceeded error is thrown.

So I suggest that using baseValue.[[Prototype]] for base of super reference.

If I missed something, I would appreciate it if you would inform me.

P.S.
At first, I tried to send this mail from my gmail address
(utatane.tea at gmail.com <mailto:utatane.tea at gmail.com>), but all mails
were blocked (I tried to send it 10 times), so I cannot send it to
es-discuss from gmail. I send this mail from an alternative smtp server.
I would like to know how to pass the filter of es-discuss...


Regards,
Yusuke Suzuki
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20120630/c41ff6d1/attachment.html>


More information about the es-discuss mailing list