Here's your hint - this is true:
Array.prototype.slice.call == (function() {}).call
call is a member of Function.prototype - it expects the this argument to point to the function to call. You're passing it nothing, so this refers to the window object. This will work:
x = Array.prototype.slice.call.bind(Array.prototype.slice)
But from my first code snippet, Array.prototype.slice.call is just Function.prototype.call, so:
x = Function.prototype.call.bind(Array.prototype.slice)
In fact, Function.call == Function.prototype.call, so you can do
x = Function.call.bind(Array.prototype.slice)