It looks like ES.isCallable simply leverages the is-callable package. However as noted in inspect-js/is-callable#16, that implementation is not equivalent to the IsCallable from the spec.
Class constructors do have a [[Call]] internal slot which makes them callable.
The [[Call]] internal method throws TypeError if [[FunctionKind]] == "classConstructor", but that's simply the implementation of the internal method.
It looks like
ES.isCallablesimply leverages theis-callablepackage. However as noted in inspect-js/is-callable#16, that implementation is not equivalent to theIsCallablefrom the spec.Class constructors do have a
[[Call]]internal slot which makes them callable.The
[[Call]]internal method throws TypeError if[[FunctionKind]] == "classConstructor", but that's simply the implementation of the internal method.