when/unless should be converted to 1-clause if
Add test
fix: `this` inside `case` or `begin` may be broken

We may insert function(){} when processing `case` or `begin`.
This should be called like `(function(){}).call(this)`,
not just `(function(){})()`.