1
0
mirror of https://github.com/gorhill/uBlock.git synced 2024-11-17 07:52:42 +01:00

Clarify set.js behavior - hopefully this is what actually happens :)

gwarser 2019-11-21 00:54:33 +01:00
parent 8740dc96ea
commit b1e6379144

@ -229,7 +229,19 @@ When used without parameters, will log calls to _`requestAnimationFrame()`_ to t
### set.js / ### set.js /
### set-constant.js [](https://github.com/gorhill/uBlock/blob/a94df7f3b27080ae2dcb3b914ace39c0c294d2f6/assets/resources/scriptlets.js#L394) ### set-constant.js [](https://github.com/gorhill/uBlock/blob/a94df7f3b27080ae2dcb3b914ace39c0c294d2f6/assets/resources/scriptlets.js#L394)
Creates _property_ and initializes it to predefined value from set of available properties. TODO: "constant" is not constant - current implementation does not prevent to assign value of another type. Creates _property_ and initializes it to predefined value from set of available properties.
Scriptlet will succeed only when:
- original _property_ is `undefined` (scriptlet is called early enough) **OR**
- new _property_ written by `set.js` is `undefined` **OR**
- type of original _property_ is equal to type of new _property_
Additionally, original _property_ (if exist) must not have getter.
Value set by scriptlet can be overwritten by page script when:
- current _property_ was not set to `undefined` **AND**
- new _property_ is not `undefined` **AND**
- type of original _property_ is different than type of new _property_
Parameters: Parameters:
- required, _property_ (chain of properties joined by `.`) attached to window object - required, _property_ (chain of properties joined by `.`) attached to window object