function bind(func, thisObject, var_args)
{
    var args = slice(arguments, 2);

    /**
     * @param {...} var_args
     */
    function bound(var_args)
    {
        return InjectedScriptHost.callFunction(func, thisObject, concat(args, slice(arguments)));
    }
    bound.toString = function()
    {
        return "bound: " + toString(func);
    };
    return bound;
}
function bind(func, thisObject, var_args)
{
    var args = slice(arguments, 2);

    /**
     * @param {...} var_args
     */
    function bound(var_args)
    {
        return InjectedScriptHost.callFunction(func, thisObject, concat(args, slice(arguments)));
    }
    bound.toString = function()
    {
        return "bound: " + toString(func);
    };
    return bound;
}
function bind ( func , thisObject , var_args ) { var args = slice ( arguments , 2 ) ; /**
     * @param {...} var_args
     */ function bound ( var_args ) { return InjectedScriptHost . callFunction ( func , thisObject , concat ( args , slice ( arguments ) ) ) ; } bound . toString = function ( ) { return "bound: " + toString ( func ) ; } ; return bound ; }
Please use this bind, not the one from Function.prototype
@param {function(...)} func
@param {?Object} thisObject
@param {...} var_args
@return {function(...)}
Please use this bind not the one from Function . prototype