Attempting to extend a bound function whose underlying function is not a constructor (like an arrow function, a generator, etc.) should result in a TypeError as per the specification (https://www.ecma-international.org/ecma-262/9.0/index.html#sec-runtime-semantics-classdefinitionevaluation). // Test case const A = (_=>_).bind(); A.prototype = null; class B extends A {} // Expected behavior: TypeError should be thrown // Actual behavior: No error is thrown
Looking through our failure list, this doesn't appear to have a test262 test. Would you be interested in adding one there? https://github.com/tc39/test262
(In reply to Ross Kirsling from comment #1) > Looking through our failure list, this doesn't appear to have a test262 test. JSC doesn't perform IsConstructor during ClassDefinitionEvaluation, failing https://test262.report/browse/language/statements/class/subclass/class-definition-superclass-generator.js. https://webkit.org/b/144093 should fix it. I am adding a few more tests with bound/proxied arrow/async functions in https://github.com/tc39/test262/pull/2619. *** This bug has been marked as a duplicate of bug 144093 ***