Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: lib/hooks.js

Issue 29562599: Issue 5751 - Removing legacy gecko support (Closed)
Patch Set: Rebasing agains 5763, purging .properties code, addressing comments Created Oct. 4, 2017, 11:37 a.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
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;

Powered by Google App Engine
This is Rietveld