   # Compile the **IfNode** as a regular *if-else* statement. Flattened chains
   # force inner *else* bodies into statement form.
   compileStatement: (o) ->
-    @rewriteSwitch(o) if @switchSubject
     top      = del o, 'top'
     child    = del o, 'chainChild'
     condO    = merge o


#### IfNode

# *If/else* statements. Our *switch/when* will be compiled into this. Acts as an
# expression by pushing down requested returns to the last line of each clause.
#
# Single-expression **IfNodes** are compiled into ternary operators if possible,
# because ternaries are already proper expressions, and don't need conversion.
exports.IfNode = class IfNode extends BaseNode

  class:     'IfNode'
  children: ['condition', 'switchSubject', 'body', 'elseBody', 'assigner']

  topSensitive: -> true


    @tags.statement = true
    this

  # Rewrite a chain of **IfNodes** to add a default case as the final *else*.
  addElse: (elseBody, statement) ->
    if @isChain
