 		i++
 	return @
 
+# Iterate this Array and map the items to a new Array
 Array::map or= (fn) ->
 	arr = []
 	i = 0

		from = 0
	Math.random() * (to - from) + from

# radian to deg
Bu.r2d = (r) -> (r * 180 / Math.PI).toFixed(1)

# get current time
Bu.now = if window?.performance? then -> window.performance.now() else -> Date.now()

# combine the given options(last item in arguments) with the default options
Bu.combineOptions = (args, defaultOptions) ->
	defaultOptions = {} if not defaultOptions?
	givenOptions = args[args.length - 1]

			@apply null, arguments
			lastTime = currTime

# debounce: delay the call of function
Function::debounce = (delay = 0.5) ->
	args = null
	timeout = null
