(function(){ | |
"use strict"; | |
var it = [][Symbol.iterator](); | |
while (it) { | |
if (it.hasOwnProperty('next')) | |
delete it.next; | |
it = Object.getPrototypeOf(it); | |
} | |
var bind = Function.prototype.bind; | |
var uncurryThis = bind.bind(bind.call); | |
var bindFn = uncurryThis(bind); | |
var applyFn = uncurryThis(bind.apply); | |
function test() { print("here"); } | |
var sliceFn = uncurryThis([].slice); | |
function addAll(var_args) { | |
var args = sliceFn(arguments, 0); | |
var result = this; | |
for (var i = 0; i < args.length; i++) | |
result += args[i]; | |
return result; | |
} | |
if (applyFn(addAll, 3, [4, 5, 6]) !== 18) | |
throw "incorrect result"; | |
})(); |