   compileNode: (o) ->
     top = del o, 'top'
     o.indent = @idt 1
-    nonComments = prop for prop in @properties when (prop not instanceof Comment)
-    lastNoncom  =  last nonComments
+    nonComments = prop for prop in @properties when prop not instanceof Comment
+    lastNoncom  = last nonComments
     props = for prop, i in @properties
-      join   = ",\n"
-      join   = "\n" if (prop is lastNoncom) or (prop instanceof Comment)
-      join   = '' if i is @properties.length - 1
+      join = if i is @properties.length - 1
+        ''
+      else if prop is lastNoncom or prop instanceof Comment
+        '\n'
+      else
+        ',\n'
       indent = if prop instanceof Comment then '' else @idt 1
       if prop instanceof Value and prop.tags.this
         prop = new Assign prop.properties[0].name, prop, 'object'

    ref   = o.scope.freeVariable 'ref'
    val   = @value.compile(o)
    "([].splice.apply(#{name}, [#{from}, #{to}].concat(#{ref} = #{val})), #{ref})"

#### Code


  isReserved: ->
    !!@value.reserved

  assigns: (name) -> name is @value

  compileNode: (o) ->
    idt = if @isStatement(o) then @idt() else ''
    end = if @isStatement(o) then ';' else ''
