85
|
1 //js-core doesn't support bind, polyill taken from https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/bind
|
|
2 if (!Function.prototype.bind) {
|
|
3 Function.prototype.bind = function (oThis) {
|
|
4 if (typeof this !== "function") {
|
|
5 // closest thing possible to the ECMAScript 5 internal IsCallable function
|
|
6 throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");
|
|
7 }
|
|
8
|
|
9 var aArgs = Array.prototype.slice.call(arguments, 1),
|
|
10 fToBind = this,
|
|
11 fNOP = function () {},
|
|
12 fBound = function () {
|
|
13 return fToBind.apply(this instanceof fNOP
|
|
14 ? this
|
|
15 : oThis || window,
|
|
16 aArgs.concat(Array.prototype.slice.call(arguments)));
|
|
17 };
|
|
18
|
|
19 fNOP.prototype = this.prototype;
|
|
20 fBound.prototype = new fNOP();
|
|
21
|
|
22 return fBound;
|
|
23 };
|
|
24 }
|