Improve abort-on-stack-trace scriptlet

Related feedback:
https://github.com/uBlockOrigin/uAssets/issues/26704#issuecomment-2569381462
This commit is contained in:
Raymond Hill 2025-01-04 20:29:19 -05:00
parent 551c6bc6eb
commit b617926c1c
No known key found for this signature in database
GPG key ID: 25E1490B761470C2

6
src/js/resources/scriptlets.js Normal file → Executable file
View file

@ -1174,13 +1174,15 @@ function abortOnStackTrace(
let v = owner[chain];
Object.defineProperty(owner, chain, {
get: function() {
if ( matchesStackTraceFn(needleDetails, extraArgs.log) ) {
const log = safe.logLevel > 1 ? 'all' : 'match';
if ( matchesStackTraceFn(needleDetails, log) ) {
throw new ReferenceError(getExceptionToken());
}
return v;
},
set: function(a) {
if ( matchesStackTraceFn(needleDetails, extraArgs.log) ) {
const log = safe.logLevel > 1 ? 'all' : 'match';
if ( matchesStackTraceFn(needleDetails, log) ) {
throw new ReferenceError(getExceptionToken());
}
v = a;