You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

27 lines
760 B
JavaScript

import DeveloperError from "./DeveloperError.js";
/**
* Wraps a function on the provided objects with another function called in the
* object's context so that the new function is always called immediately
* before the old one.
*
* @private
*/
function wrapFunction(obj, oldFunction, newFunction) {
//>>includeStart('debug', pragmas.debug);
if (typeof oldFunction !== "function") {
throw new DeveloperError("oldFunction is required to be a function.");
}
if (typeof newFunction !== "function") {
throw new DeveloperError("oldFunction is required to be a function.");
}
//>>includeEnd('debug');
return function () {
newFunction.apply(obj, arguments);
oldFunction.apply(obj, arguments);
};
}
export default wrapFunction;