// 重写 Function 构造器,拦截并删除 debugger
(function() {
// 保存原始 Function 构造器
var originalFunction = Function;
// 重写 Function 构造器
window.Function = function(...args) {
// 将所有参数中的 "debugger" 替换为空字符串
args = args.map(arg => typeof arg === 'string' ? arg.replace(/debugger/g, '') : arg);
// 调用原始 Function 构造器并返回
return originalFunction(...args);
};
// 确保 toString 显示原始构造器
window.Function.toString = () => originalFunction.toString();
})();
// 重写 eval 函数,拦截并删除 debugger
(function() {
// 保存原始 eval 函数
var originalEval = window.eval;
// 重写 eval 函数
window.eval = function(code) {
// 如果传入的代码是字符串,删除其中的 "debugger"
if (typeof code === 'string') {
code = code.replace(/debugger/g, '');
}
// 调用原始 eval 函数执行代码
return originalEval(code);
};
// 确保 toString 显示原始 eval
window.eval.toString = () => originalEval.toString();
})();