always unite types of BinaryExpression children
transform WhileStatement
transform DoWhileStatement
transform ForStatement
transform BreakStatement and ContinueStatement
transform ForStatement without init, test or update
Merge branch 'dev-loops'
add a test for nested functions
fix to save program node as Transformer.root
append function declarations to the root node
avoid error on transform function assignments

f = function(){}; のようなとき
AssignmentExpression は FunctionDeclaration のようにふるまい、
この場合 root node に移動して消滅する。

- ExpressionStatement
  - expression
    - AssignmentExpression --> 消滅
      - left
        - Identifier --> 評価されない
      - right
        - FunctionExpression --> FunctionDeclaration のようにふるまう

そのときにもエラーを出さないように修正した。
fix declaration order of a test case

var x = 0; f = function(){}
とすると、f のほうが先になるように変換されるが、問題はない
transform: add inout parameters
Merge branch 'dev-flatten-function'
transformer: unify interface with inferrer
fix tests to synchronized style
uninstall through