From ac37e26f285ec06a9bc5f41eea1bba1aa1d723bc Mon Sep 17 00:00:00 2001 From: Maxime Thirouin Date: Thu, 8 May 2014 09:02:26 +0200 Subject: [PATCH] Add function.bind polyfill https://github.com/ariya/phantomjs/issues/10522 --- .../polyfills/Function.prototype.bind.js | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 src/scripts/polyfills/Function.prototype.bind.js diff --git a/src/scripts/polyfills/Function.prototype.bind.js b/src/scripts/polyfills/Function.prototype.bind.js new file mode 100644 index 0000000..f5fce7c --- /dev/null +++ b/src/scripts/polyfills/Function.prototype.bind.js @@ -0,0 +1,20 @@ +if (!Function.prototype.bind) { + Function.prototype.bind = function (oThis) { + if (typeof this !== "function") { + // closest thing possible to the ECMAScript 5 internal IsCallable function + throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable") + } + + var aArgs = Array.prototype.slice.call(arguments, 1) + var fToBind = this + var fNOP = function () {} + var fBound = function () { + return fToBind.apply(this instanceof fNOP && oThis ? this : oThis, aArgs.concat(Array.prototype.slice.call(arguments))) + } + + fNOP.prototype = this.prototype + fBound.prototype = new fNOP() + + return fBound + } +}