     for node in @properties.concat @base
       return no if node.soakNode or node instanceof Call
     yes
+
+  isAssignable: ->
+    @hasProperties() or @base.isAssignable()
 
   assigns: (name) ->
     not @properties.length and @base.assigns name


  matchParens: (o, obj) ->
    continue until obj is obj = obj.unwrap()
    unless obj instanceof Literal or obj instanceof Value
      throw SyntaxError 'nonreference in destructuring assignment shorthand.'
    Value.wrap(obj).cacheReference o

#### Code


  children: ['name']

  isAssignable: YES

  constructor: (name) ->
    super()
    @name = if name.compile then name else new Literal name
