Created
July 22, 2011 15:13
-
-
Save jashkenas/1099648 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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