JSFiddle - React, Tailwind, and code Playground
JavaScript
(function() {
window.stopBefore = function stopBefore(object, methodName) {
// stopBefore('Element.prototype.removeChild')
if (typeof methodName == 'undefined' && typeof object == 'string') {
var temp = resolvePath(object);
object = temp.object;
methodName = temp.methodName;
}
var originalMethod = object[methodName];
object[methodName] = function patched() {
debugger;
var result = originalMethod.apply(this, arguments);
return result;
};
object[methodName].removeBreakpoint = function() {
object[methodName] = originalMethod;
};
object[methodName].__original = originalMethod;
};
window.stopAfter = function stopAfter(object, methodName) {
// stopAfter('jQuery.fn.html')
if (typeof methodName == 'undefined') {
var temp = resolvePath(object);
object = temp.object;
methodName = temp.methodName;
}
var originalMethod = object[methodName];
object[methodName] = function patched() {
var result = originalMethod.apply(this, arguments);
debugger;
return result;
};
object[methodName].removeBreakpoint = function() {
object[methodName] = originalMethod;
};
object[methodName].__original = originalMethod;
};
function resolvePath(path) {
var object = this;
var parts = path.split('.');
for (var i = 0, ii = parts.length - 1; i < ii; i++) {
object = object[parts[i]];
}
return {
object: object,
methodName: parts[ii]
}
}
})();
stopBefore(document, 'getElementById');
document.getElementById('div');