This is a polyfill for the three basic function methods apply
, bind
and
call
for ECMAScript 1st Edition (ECMA-262).
That's right, as compatible as it literally can be*. Why do you ask? Well to prove a point and to show just how much you can do in a dynamic language such as JavaScript/ECMAScript.
*This means Internet Explorer 3.0 and Netscape Navigator 2.0, yeah way back.
It avoids fancy things like Array.prototype.push and Array.prototype.join. For the latter it ships an O(n log n) non-recursive string concatenation implementation.