aboutsummaryrefslogtreecommitdiffstats
path: root/web/nms.gathering.org/speedometer/c3-master/src/polyfill.js
diff options
context:
space:
mode:
Diffstat (limited to 'web/nms.gathering.org/speedometer/c3-master/src/polyfill.js')
-rw-r--r--web/nms.gathering.org/speedometer/c3-master/src/polyfill.js25
1 files changed, 25 insertions, 0 deletions
diff --git a/web/nms.gathering.org/speedometer/c3-master/src/polyfill.js b/web/nms.gathering.org/speedometer/c3-master/src/polyfill.js
new file mode 100644
index 0000000..95d7812
--- /dev/null
+++ b/web/nms.gathering.org/speedometer/c3-master/src/polyfill.js
@@ -0,0 +1,25 @@
+// PhantomJS doesn't have support for Function.prototype.bind, which has caused confusion. Use
+// this polyfill to avoid the confusion.
+// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/bind#Polyfill
+
+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),
+ fToBind = this,
+ fNOP = function() {},
+ fBound = function() {
+ return fToBind.apply(this instanceof fNOP ? this : oThis, aArgs.concat(Array.prototype.slice.call(arguments)));
+ };
+
+ fNOP.prototype = this.prototype;
+ fBound.prototype = new fNOP();
+
+ return fBound;
+ };
+}