無名ファンクションのインスタンスを生成して、これを呼び出すようにするといいようです。
Bookmarklet作成時のコツ
javascript:(function(){var%20contents='999'})();
無名ファンクションのインスタンス
、ではないような。カーリーブラケットの閉じでfunction文が終了(ステートメントが終了)していると解釈されてしまうのを防ぐために、()で括って関数リテラルとして評価させているのだと思う。
でもこれはすごく有り難い。これを利用すると変数のスコープを最小限にできる。thisキーワードの意味が変わってしまうという罠があるけれど。