here i kept $, only step 11 required [] instead of $
i'm guessing step 14 is actually executed earlier... or that undefined has the same effects as [] for most of those stringfying hacks.
Update: no, undefined trhows an error. so step 14 is earlier... let me replace all that with a eval function that also stores the run order. then i will post the correct ordering.
Comments
Ok here's the best I can do:
(lines are numbered in order of execution, with explanations of each line)
[] is assigned to "$" in step one. Several of the steps between 2 and 11 reference "$" to save one character rather than typingIf you wanted to remove the a=[] you'd have to include a bunch of "[]"s inline, e.x.:
Replacing the no-alpha variable names with letters might help: Notice both "A" and "F" were "$". The original code reused "$" to save a character.I'm not sure I can make it any clearer.
wow that was sure detailed.
but i'm still not convinced of the steps :)
($=[][(__=!$+$)[_=-~-~-~$]+({}+$)[_/_]+ ($$=($_=!''+$)[_/_]+$_[+[]])])()[__[_/_]+__ [_+~$]+$_[_]+$$](_/_)
here i kept $, only step 11 required [] instead of $
i'm guessing step 14 is actually executed earlier... or that undefined has the same effects as [] for most of those stringfying hacks. Update: no, undefined trhows an error. so step 14 is earlier... let me replace all that with a eval function that also stores the run order. then i will post the correct ordering.
No, step 14 is definitely executed after the rest of that expression. Steps 2, 3, 5, 8, and 10 assume that $ equals [].
If you still refuse to believe me, I give up.