[spoiler]
var foo = "-~/ ";
foo = foo + "";
alert( !!~eval(foo + " / -.5") ); /* true */
alert( eval( foo + "+" + foo ) ) /* 1 */
alert( eval( foo + foo + "+" + foo + foo ) ) /* 2 */
alert( eval( foo + foo + foo + "+" + foo + foo + foo ) ) /* 3 */
alert( eval(foo + foo + foo + foo + "+" + foo + foo + foo + foo) ) /* 4 */
// и так далее
/* поясню */
!!~(-~/ / -.5);
/* тут слеш служит «закрывающей скобкой» регулярки, а минус при таком раскладе уже не унарный оператор */
-~/ +-~/;
/* тут опять регулярное выражение, причем, в него входит +. При приведении к числу оно вполне себе NaN.
-~NaN = 1 */
-~/ -~/ +-~/ -~/;
/* когда таких кусков слева и справа четное количество, плюс работает как просто плюс. В принципе, всю задачу можно было сделать и без плюса, но как не запутать мозг уважаемым js-девелоперам? :) */
[/spoiler]