class Opal::Rewriters::ExplicitWriterReturn

def initialize

def initialize
  @in_masgn = false
end

def on_masgn(node)

And this AST rewriter skips this node.

s(:int, 2)))
s(:int, 1),
s(:array,
s(:self), :b=)),
s(:send,
s(:self), :a=),
s(:send,
s(:mlhs,
s(:masgn,
For example, "self.a, self.b = 1, 2" parses to:

Multiple assignment is handled by Opal::Nodes::MassAssignNode
def on_masgn(node)
  @in_masgn = true
  result = super
  @in_masgn = false
  result
end

def on_send(node)

def on_send(node)
  return super if @in_masgn
  recv, method_name, *args = *node
  if method_name.to_s =~ /#{REGEXP_START}\w+=#{REGEXP_END}/ || method_name.to_s == "[]="
    set_args_node = s(:lvasgn, TMP_NAME, s(:array, *process_all(args)))
    s(:begin,
      set_args_node,
      node.updated(nil, [recv, method_name, s(:splat, GET_ARGS_NODE)]),
      RETURN_ARGS_NODE
    )
  else
    super
  end
end