class SyntaxTree::YARV::OptEq


~~~
2 == 2
~~~ruby
### Usage
receiver and the argument off the stack and pushes on the result.
operands are integers, floats, symbols or strings. It pops both the
that occurs when the == operator is used. Fast paths exist when both
`opt_eq` is a specialization of the ‘opt_send_without_block` instruction
### Summary

def ==(other)

def ==(other)
  other.is_a?(OptEq) && other.calldata == calldata
end

def call(vm)

def call(vm)
  canonical.call(vm)
end

def canonical

def canonical
  Send.new(calldata, nil)
end

def deconstruct_keys(_keys)

def deconstruct_keys(_keys)
  { calldata: calldata }
end

def disasm(fmt)

def disasm(fmt)
  fmt.instruction("opt_eq", [fmt.calldata(calldata)])
end

def initialize(calldata)

def initialize(calldata)
  @calldata = calldata
end

def length

def length
  2
end

def pops

def pops
  2
end

def pushes

def pushes
  1
end

def to_a(_iseq)

def to_a(_iseq)
  [:opt_eq, calldata.to_h]
end