Index: lib/hooks.js |
diff --git a/lib/hooks.js b/lib/hooks.js |
deleted file mode 100644 |
index a6e802159cc91408506399fe06871ad513c6e44d..0000000000000000000000000000000000000000 |
--- a/lib/hooks.js |
+++ /dev/null |
@@ -1,73 +0,0 @@ |
-/* This Source Code Form is subject to the terms of the Mozilla Public |
- * License, v. 2.0. If a copy of the MPL was not distributed with this |
- * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ |
- |
-function hook(obj, name, func, cleanup) |
-{ |
- let orig = obj[name]; |
- let origDesc = Object.getOwnPropertyDescriptor(obj, name); |
- let dumbOverrideAttempt = false; |
- |
- let newFunc = function() |
- { |
- let params = arguments; |
- try |
- { |
- let result = func.apply(this, params); |
- if (typeof result == "object") |
- params = result; |
- } |
- catch(e) |
- { |
- Cu.reportError(e); |
- } |
- |
- try |
- { |
- return orig.apply(this, params); |
- } |
- finally |
- { |
- if (typeof cleanup == "function") |
- cleanup(); |
- } |
- }; |
- newFunc.toString = function() |
- { |
- dumbOverrideAttempt = true; |
- return orig.toString(); |
- }; |
- newFunc.toSource = function() |
- { |
- dumbOverrideAttempt = true; |
- return orig.toSource(); |
- }; |
- |
- Object.defineProperty(obj, name, { |
- get: function() |
- { |
- dumbOverrideAttempt = false; |
- return newFunc; |
- }, |
- set: function(value) |
- { |
- if (dumbOverrideAttempt) |
- { |
- orig = value; |
- } |
- else |
- { |
- delete obj[name]; |
- obj[name] = value; |
- } |
- }, |
- enumerable: true, |
- configurable: true |
- }); |
- |
- return function() |
- { |
- Object.defineProperty(obj, name, origDesc); |
- }; |
-} |
-exports.hook = hook; |