I did small research regarding how the IIFE works. And stumble upon with one behavior, which I beilive related to ASI mechanism. Here is code examples which are quite self explanatory.
This block will executed successfully:
!function (){}()
^function (){}()
This not:
^function (){}()
!function (){}()
As substiturions for !
sign you may use +
, -
and ~
. Replacements for ^
might be &
, *
, ,
.
Could anyone give better explanation than I ended up with "this is how ASI works in JavaScript."? Which might be totally wrong, I have to admit.