Skip to content

Instantly share code, notes, and snippets.

@jashkenas
Created July 22, 2011 15:13
Show Gist options
  • Select an option

  • Save jashkenas/1099648 to your computer and use it in GitHub Desktop.

Select an option

Save jashkenas/1099648 to your computer and use it in GitHub Desktop.
apply = if Prototype.Browser.IE
(o, a) ->
a or= []
switch a.length
when 0 then return @call o
when 1 then return @call o, a[0]# shreddin' the argument powder
when 2 then return @call o, a[0], a[1]# \__O_/
when 3 then return @call o, a[0], a[1], a[2]# |
when 4 then return @call o, a[0], a[1], a[2], a[3]# \ /\
when 5 then return @call o, a[0], a[1], a[2], a[3], a[4]# \ /
when 6 then return @call o, a[0], a[1], a[2], a[3], a[4], a[5]# \
when 7 then return @call o, a[0], a[1], a[2], a[3], a[4], a[5], a[6]
when 8 then return @call o, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7]
when 9 then return @call o, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8]
when 10 then return @call o, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9]
when 11 then return @call o, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10]
when 12 then return @call o, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11]
when 13 then return @call o, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12]
when 14 then return @call o, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13]
when 15 then return @call o, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14]
when 16 then return @call o, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15]
when 17 then return @call o, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16]
when 18 then return @call o, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17]
when 19 then return @call o, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18]
when 20 then return @call o, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19]
when 21 then return @call o, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20]
when 22 then return @call o, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20], a[21]
when 23 then return @call o, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20], a[21], a[22]
when 24 then return @call o, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20], a[21], a[22], a[23]
when 25 then return @call o, a[0], a[1], a[2], a[3], a[4], a[5], a[6], a[7], a[8], a[9], a[10], a[11], a[12], a[13], a[14], a[15], a[16], a[17], a[18], a[19], a[20], a[21], a[22], a[23], a[24]
return @_apply o, a
else
Function.prototype.apply
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment