     @soak_node: tag is 'soak'
 
   compile_node: (o) ->
+    o.chain_root.wrapped: @soak_node
     idx: @index.compile o
     "[$idx]"
 

    this

  compile_node: (o) ->
    proto_part: if @prototype then 'prototype.' else ''
    ".$proto_part${@name.compile(o)}"



  # Compile a vanilla function call.
  compile_node: (o) ->
    o.chain_root: this unless o.chain_root
    for arg in @args when arg instanceof SplatNode
      compilation: @compile_splat(o)
    unless compilation
      args: (arg.compile(o) for arg in @args).join(', ')
      compilation: if @is_super then @compile_super(args, o)
      else "${@prefix()}${@variable.compile(o)}($args)"
    del o, 'chain_root'
    if o.operation and @wrapped then "($compilation)" else compilation

  # `super()` is converted into a call against the superclass's implementation
  # of the current function.
