     return "$name: $val" if @context is 'object'
     o.scope.find name unless @is_value() and @variable.has_properties()
     val: "$name = $val"
-    return "${@idt()}$val;" if stmt
+    return "$@tab$val;" if stmt
     val: "($val)" if not top or o.returns
-    val: "${@idt()}return $val" if o.returns
+    val: "${@tab}return $val" if o.returns
     val
 
   # Implementation of recursive pattern matching, when assigning array or

    @children: [@expression: expression]

  compile_node: (o) ->
    "${@idt()}throw ${@expression.compile(o)};"

statement ThrowNode, true



  # If this is the top-level Expressions, wrap everything in a safety closure.
  compile_root: (o) ->
    o.indent: @tab: if o.no_wrap then '' else TAB
    o.scope: new Scope(null, this, null)
    code: if o.globals then @compile_node(o) else @compile_with_declarations(o)
    code: code.replace(TRAILING_WHITESPACE, '')
