function.bind should inherit __proto__

bound functions should share the same prototype as the function they are binding to, for example:

const fun = Object.setPrototypeOf(() => {}, []).bind()

fun should also have an array as its proto

It does this today. Your specific example won't work because by setting the prototype of your function to an array, it no longer has access to the bind() method. But if you did manage to bind it, you'd see that the returned function shares the prototype of the original.

const proto = []
const fun = Function.bind.call(Object.setPrototypeOf(() => {}, proto))
console.log(Object.getPrototypeOf(fun) === proto) // true

In the spec see steps 2 and 5 in 10.4.1.3 BoundFunctionCreate.

Wow, amazing... i have an api that is hinging on this exact behaviour for performance reasons, good to now it already is and i was just mistaken.

Thanks.