 
 # Simple node to throw an exception.
 exports.Throw = class Throw extends Base
+  (@expression) ->
 
   children: ['expression']
 
   isStatement: YES
-
-  (@expression) ->
 
   # A **Throw** is already a return, of sorts...
   makeReturn: THIS

# Single-expression **Ifs** are compiled into conditional operators if possible,
# because ternaries are already proper expressions, and don't need conversion.
exports.If = class If extends Base

  children: ['condition', 'body', 'elseBody']

  (condition, @body, options = {}) ->
    @condition = if options.invert then condition.invert() else condition
    @elseBody  = null
    @isChain   = false
    {@soak}    = options

  bodyNode:     -> @body?.unwrap()
  elseBodyNode: -> @elseBody?.unwrap()

UTILITIES =

  # Correctly set up a prototype chain for inheritance, including a reference
  # to the superclass for `super()` calls, and copies of any static properties.
  extends: '''
    function(child, parent) {
      function ctor() { this.constructor = child; }
