mirror of https://github.com/gorhill/uBlock.git
Fix/improve scriptlets
Related issue: - https://github.com/uBlockOrigin/uBlock-issues/issues/2678 - https://github.com/uBlockOrigin/uAssets/issues/18278
This commit is contained in:
parent
996bf0925d
commit
56e1d92dbd
|
@ -1049,23 +1049,11 @@ function evaldataPrune(
|
||||||
) {
|
) {
|
||||||
self.eval = new Proxy(self.eval, {
|
self.eval = new Proxy(self.eval, {
|
||||||
apply(target, thisArg, args) {
|
apply(target, thisArg, args) {
|
||||||
let dataToEval = `${args[0]}`;
|
let data = Reflect.apply(target, thisArg, args);
|
||||||
const match = /^\s*\(\s*(\{.+\})\s*\)\s*$/s.exec(dataToEval);
|
if ( typeof data === 'object' ) {
|
||||||
if ( match !== null ) {
|
data = objectPrune(data, rawPrunePaths, rawNeedlePaths);
|
||||||
dataToEval = match[1];
|
|
||||||
}
|
}
|
||||||
let data;
|
return data;
|
||||||
try {
|
|
||||||
data = JSON.parse(dataToEval);
|
|
||||||
if ( typeof data === 'object' ) {
|
|
||||||
let after = JSON.stringify(
|
|
||||||
objectPrune(data, rawPrunePaths, rawNeedlePaths)
|
|
||||||
);
|
|
||||||
args[0] = `(${after})`;
|
|
||||||
}
|
|
||||||
} catch(ex) {
|
|
||||||
}
|
|
||||||
return Reflect.apply(target, thisArg, args);
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -2332,7 +2320,7 @@ function hrefSanitizer(
|
||||||
};
|
};
|
||||||
const extractText = (elem, source) => {
|
const extractText = (elem, source) => {
|
||||||
if ( /^\[.*\]$/.test(source) ) {
|
if ( /^\[.*\]$/.test(source) ) {
|
||||||
return elem.getAttribute(source.slice(1,-1).trim()) || '';
|
source = elem.getAttribute(source.slice(1,-1).trim()) || '';
|
||||||
}
|
}
|
||||||
if ( source !== 'text' ) { return ''; }
|
if ( source !== 'text' ) { return ''; }
|
||||||
const text = elem.textContent
|
const text = elem.textContent
|
||||||
|
|
Loading…
Reference in New Issue