summaryrefslogtreecommitdiffstats
path: root/third_party/webkit/PerformanceTests/Speedometer/resources/flightjs-example-app/components/es5-shim/tests/helpers/h-kill.js
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/webkit/PerformanceTests/Speedometer/resources/flightjs-example-app/components/es5-shim/tests/helpers/h-kill.js')
-rw-r--r--third_party/webkit/PerformanceTests/Speedometer/resources/flightjs-example-app/components/es5-shim/tests/helpers/h-kill.js59
1 files changed, 59 insertions, 0 deletions
diff --git a/third_party/webkit/PerformanceTests/Speedometer/resources/flightjs-example-app/components/es5-shim/tests/helpers/h-kill.js b/third_party/webkit/PerformanceTests/Speedometer/resources/flightjs-example-app/components/es5-shim/tests/helpers/h-kill.js
new file mode 100644
index 0000000000..60b418023f
--- /dev/null
+++ b/third_party/webkit/PerformanceTests/Speedometer/resources/flightjs-example-app/components/es5-shim/tests/helpers/h-kill.js
@@ -0,0 +1,59 @@
+// This methods allows the killing of built-in functions,
+// so the shim can take over with that implementation
+var HLP = (function() {
+ "use strict";
+ var kill;
+
+ kill = function(_class, methods) {
+ /*if(!Array.isArray(methods))
+ return;*/
+ if(!_class.originals)
+ _class.originals = {};
+
+ for (var i = 0, len = methods.length; i < len; i++) {
+ var obj = methods[i];
+ _class.originals[obj] = _class[obj];
+ delete _class[obj];
+ if (obj in _class) {
+ // try something more aggressive since V8 at least
+ // appears to ignore the delete.
+ _class[obj] = null;
+ if (_class[obj]) {
+ console.log("Couln't overwrite", obj, "of", _class);
+ }
+ }
+ }
+ };
+ return { kill: kill };
+}());
+
+HLP.kill(Function.prototype, [
+ 'bind'
+]);
+
+HLP.kill(Array, [
+ 'isArray'
+]);
+
+HLP.kill(String.prototype, [
+ "trim"
+]);
+
+HLP.kill(Object, [
+ 'keys'
+]);
+
+HLP.kill(Date, [
+ 'now', 'parse'
+]);
+
+HLP.kill(Date.prototype, [
+ "toJSON", "toISOString"
+]);
+
+HLP.kill(Array.prototype, [
+ 'forEach', 'some', 'every',
+ 'indexOf', 'lastIndexOf',
+ 'map', 'filter',
+ 'reduce', 'reduceRight'
+]);