<div dir="ltr">Hi all,<div><br></div><div><br></div><div>In the progress of upgrading an app to 5.12, I'm seeing some unexpected issues with external JS dependencies. </div><div><br></div><div>In JS libs before 5.12, I've always used a closure approach to not leak a bunch of private variables onto the global module object. This results in a layout much like so:</div><div><br></div><div><font face="monospace">(function(lib) {</font></div><div><font face="monospace">  ... closed vars can be declared here ...</font></div><div><font face="monospace"><br></font></div><div><font face="monospace">  lib.bar = function() {</font></div><div><font face="monospace">    return "baz";</font></div><div><font face="monospace">  };</font></div><div><font face="monospace">})(this);</font></div><div><br></div><div>And then traditionally used it in QML e.g. like so:</div><div><br></div><div><font face="monospace">import "foo.js" as Foo</font></div><div><font face="monospace"><br></font></div><div><font face="monospace">Item {</font></div><div><font face="monospace">  objectName: Foo.bar()</font></div><div><font face="monospace">}</font><br><br>However, in 5.12 something has changed, so I can no longer assign stuff to "<b>this</b>" in a JS library. Anything attached to the main scope comes up as <b>undefined</b> now. </div><div><br></div><div>Can anyone point me in the direction of docs explaining this change, and possibly what the preferred way of closing over variables in a JS library is from now on?</div><div><br></div><div><br></div><div>Best regards,</div><div><br></div><div>René Hansen</div></div>