mirror of
https://github.com/gorhill/uBlock.git
synced 2024-11-10 09:07:54 +01:00
Allow re-entrance in abort-current-inline-script
Related feedback: - https://github.com/DandelionSprout/adfilt/issues/7#issuecomment-590391877 If a property is already trapped with a getter/setter, propagate to these after validation succeed.
This commit is contained in:
parent
60348c4624
commit
034c915f3b
1 changed files with 10 additions and 3 deletions
|
@ -56,12 +56,13 @@
|
|||
if ( owner instanceof Object === false ) { return; }
|
||||
}
|
||||
let value;
|
||||
const desc = Object.getOwnPropertyDescriptor(owner, prop);
|
||||
let desc = Object.getOwnPropertyDescriptor(owner, prop);
|
||||
if (
|
||||
desc instanceof Object === false ||
|
||||
desc.get instanceof Function === false
|
||||
) {
|
||||
value = owner[prop];
|
||||
desc = undefined;
|
||||
}
|
||||
const magic = String.fromCharCode(Date.now() % 26 + 97) +
|
||||
Math.floor(Math.random() * 982451653 + 982451653).toString(36);
|
||||
|
@ -79,11 +80,17 @@
|
|||
Object.defineProperty(owner, prop, {
|
||||
get: function() {
|
||||
validate();
|
||||
return value;
|
||||
return desc instanceof Object
|
||||
? desc.get()
|
||||
: value;
|
||||
},
|
||||
set: function(a) {
|
||||
validate();
|
||||
value = a;
|
||||
if ( desc instanceof Object ) {
|
||||
desc.set(a);
|
||||
} else {
|
||||
value = a;
|
||||
}
|
||||
}
|
||||
});
|
||||
const oe = window.onerror;
|
||||
|
|
Loading…
Reference in a new issue