| // Copyright (C) 2016 the V8 project authors. All rights reserved. |
| // This code is governed by the BSD license found in the LICENSE file. |
| /*--- |
| esid: sec-runtime-semantics-classdefinitionevaluation |
| es6id: 14.5.14 |
| description: SuperClass may be a bound function object |
| info: | |
| [...] |
| 5. If ClassHeritageopt is not present, then |
| [...] |
| 6. Else, |
| [...] |
| e. If superclass is null, then |
| [...] |
| f. Else if IsConstructor(superclass) is false, throw a TypeError exception. |
| g. Else, |
| i. Let protoParent be ? Get(superclass, "prototype"). |
| ii. If Type(protoParent) is neither Object nor Null, throw a TypeError |
| exception. |
| iii. Let constructorParent be superclass. |
| [...] |
| ---*/ |
| |
| var bound = function() {}.bind(); |
| bound.prototype = {}; |
| |
| class C extends bound {} |
| |
| assert.sameValue(Object.getPrototypeOf(new C()), C.prototype); |