Third-Party Library Considerations for LWS
Third-party scripts can encounter issues when running with LWS enabled if they have these behaviors.
Some third-party scripts expect to add themselves to the global window
object. LWS confines them to a sandbox where they access a virtual copy of the global window
object.
To ensure that the code runs in the global scope of the LWS sandbox instead of attempting to access the actual global scope, modify the script code to assign self
to global
.
In this code, this
is passed to the closure function as global
. With LWS, this
and global
are undefined, so this code makes sure that global
evaluates as the sandbox global
.
If a third-party library script explicitly sets "use strict"
, the browser can throw errors when your components use the script while running in LWS.
For example, errors occur if the script attempts to set something in the global object. LWS implicitly enforces most strict mode restrictions, but allows writing to virtual global objects in its JavaScript sandboxes. Setting strict mode explicitly in code interferes with LWS.
The workaround is to remove "use strict"
in the third-party script.
Alternatively, modify the third-party code to assign self
to global
as shown above.