console-shim.js
function(func, scope, args)
{
    var fixedArgs = Array.prototype.slice.call(arguments, 2);
    return function()
    {
        var args = fixedArgs.concat(Array.prototype.slice.call(arguments, 0));
        (/** @type {Function} */ func).apply(scope, args);
    };
}
function(func, scope, args)
{
    var fixedArgs = Array.prototype.slice.call(arguments, 2);
    return function()
    {
        var args = fixedArgs.concat(Array.prototype.slice.call(arguments, 0));
        (/** @type {Function} */ func).apply(scope, args);
    };
}
function ( func , scope , args ) { var fixedArgs = Array . prototype . slice . call ( arguments , 2 ) ; return function ( ) { var args = fixedArgs . concat ( Array . prototype . slice . call ( arguments , 0 ) ) ; ( /** @type {Function} */ func ) . apply ( scope , args ) ; } ; }
Returns a function which calls the specified function in the specified
scope.

@param {Function} func
The function to call.
@param {Object} scope
The scope to call the function in.
@param {...*} args
Additional arguments to pass to the bound function.
@returns {function(...[*]): undefined}
The bound function.
Returns a function which calls the specified function in the specified scope .