     ref   = o.scope.freeVariable 'ref'
     val   = @value.compile(o)
     "([].splice.apply(#{name}, [#{from}, #{to}].concat(#{ref} = #{val})), #{ref})"
+
+  assigns: (name) ->
+    @[if @context is 'object' then 'value' else 'variable'].assigns name
 
 #### Code
 

      "[\n#{o.indent}#{objects}\n#{@tab}]"
    else
      "[#{objects}]"

#### Class


      return new Assign(obj, value).compile o
    top     = del o, 'top'
    otop    = merge o, top: yes
    valVar  = value.compile o
    assigns = []
    splat   = false
    if not IDENTIFIER.test(valVar) or @variable.assigns(valVar)
      assigns.push "#{ ref = o.scope.freeVariable 'ref' } = #{valVar}"
      valVar = ref
    for obj, i in objects
      # A regular array pattern-match.
      idx = i
      if isObject
        if obj instanceof Assign
          # A regular object pattern-match.
          {variable: {base: idx}, value: obj} = obj
        else
          # A shorthand `{a, b, @c} = val` pattern-match.
          idx = if obj.tags.this then obj.properties[0].name else obj
