eval(uneval(function()_))

function f(){let _,{x}=0}
uneval(f);
//=> function f() {var _, var {x} = 0;}
eval(uneval(f));
//=> SyntaxError: missing variable name

というバグに出くわした。トップレベルなので var に変わるのはいいとして,問題は変に増えて構文エラーになるところ。
気になって該当バグを探し当てたら,「Blocks:」に指定されてる Bug 349611 – Jesse's JavaScript compiler/decompiler fuzzer に行き着いた。「Depends on:」が壮観で,

javascript:Array.forEach(document.getElementsByClassName('bz_closed'),function(_){_.style.display='none'})

解決済みを消しても相当数残る。
375641 - Function decompilation throws away high bytes of characters in regexp literals などもあり,Function#toString() を信用してはいけない。
よくある

location = 'javascript:0,'+ function(){
  ...
} +'()';

みたいなのは

location = <![CDATA[javascript:0,function(){
  ...
}()]]>;

とでもするのが無難。