; Run = function ()
{
; return Array.prototype.splice.call( arguments, -1 )[0].apply( this, arguments )
}
; Loop = function ()
{
var
count = -1
, end = arguments.length -1
, _func = arguments[ end ]
; while ( ++count < end )
{
; _func.apply( this, arguments[ count ] )
}
}
; Run( 2, 3, 4, function( x, y, z )
{
console.log( x*y*z )
})
; Run.call( { name : 'Run' }, 2, 3, 4, function( x, y, z )
{
console.log( this, x*y*z )
})
; Loop( [ 2, 3 ], [ 4, 5 ], function ( x, y )
{
; console.log( x*y )
})
; Loop.call( { name : 'Loop' }, [ 2, 3 ], [ 4, 5 ], function ( x, y )
{
; console.log( this, x*y )
})