   joinFragmentArrays: (fragmentsList, joinStr) ->
     answer = []
     for fragments,i in fragmentsList
-      checkFragments fragments, @
       if i then answer.push @makeCode joinStr
       answer = answer.concat fragments
     answer

    node     = @unfoldSoak(o) or this
    node.tab = o.indent
    if o.level is LEVEL_TOP or not node.isStatement(o)
      fragments = node.compileNode o
    else
      fragments = node.compileClosure o
    checkFragments fragments, node
    fragments

  # Statements converted into expressions via closure-wrapping share a scope
  # object with their parent closure, to preserve the expected lexical scope.


# Convert an array of CodeFragments into a string.
fragmentsToText = (fragments) ->
  (fragment.code for fragment in fragments).join('')

#### Base

