Catch exceptions thrown Object.defineProperty

Related issue:
- https://github.com/uBlockOrigin/uAssets/issues/9883

Related commit:
- a9e6f9c72c
This commit is contained in:
Raymond Hill 2021-09-01 18:25:20 -04:00
parent 79a2678f00
commit 5dd91211ae
No known key found for this signature in database
GPG Key ID: 25E1490B761470C2
1 changed files with 17 additions and 14 deletions

View File

@ -932,21 +932,24 @@
prevSetter = odesc.set; prevSetter = odesc.set;
} }
} }
Object.defineProperty(owner, prop, { try {
configurable, Object.defineProperty(owner, prop, {
get() { configurable,
if ( prevGetter !== undefined ) { get() {
prevGetter(); if ( prevGetter !== undefined ) {
prevGetter();
}
return handler.getter(); // cValue
},
set(a) {
if ( prevSetter !== undefined ) {
prevSetter(a);
}
handler.setter(a);
} }
return handler.getter(); // cValue });
}, } catch(ex) {
set(a) { }
if ( prevSetter !== undefined ) {
prevSetter(a);
}
handler.setter(a);
}
});
}; };
const trapChain = function(owner, chain) { const trapChain = function(owner, chain) {
const pos = chain.indexOf('.'); const pos = chain.indexOf('.');