Claude Pache (2014-06-26T16:57:39.000Z)
let C be some constructor
    let D = C.bind(obj, a, b)

Thanks to the carefully designed `D.[[Construct]]` internal method, the following expressions are equivalent:

    new D(...args)
    new C(a, b, ...args)

Consider now:

    class E extends D {
        contructor(...args) {
            super(...args)
        }
    }

As I understand, `super(...args)` calls `D.[[Call]](this, args)`, which in turn calls `C.[[Call]](obj, [a, b, ...args])`. But what we probably want here, is  `C.[[Call]](this, [a, b, ...args])`.

I am missing something or is there an issue?

—Claude

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20140626/b0ce02f5/attachment.html>
dignifiedquire at gmail.com (2014-06-26T19:40:02.431Z)
```js
let C // be some constructor
let D = C.bind(obj, a, b)
```

Thanks to the carefully designed `D.[[Construct]]` internal method, the following expressions are equivalent:
```js
new D(...args)
new C(a, b, ...args)
```
Consider now:
```js
class E extends D {
    contructor(...args) {
        super(...args)
    }
}
```
As I understand, `super(...args)` calls `D.[[Call]](this, args)`, which in turn calls `C.[[Call]](obj, [a, b, ...args])`. But what we probably want here, is  `C.[[Call]](this, [a, b, ...args])`.

I am missing something or is there an issue?

—Claude