class SyntaxTree::YARV::OptLength


~~~
“”.length
~~~ruby
### Usage
pushes on the result of the method call.
either a string, hash, or array. It pops the receiver off the stack and
`length` method is called. There are fast paths when the receiver is
`opt_length` is a specialization of ‘opt_send_without_block`, when the
### Summary

def ==(other)

def ==(other)
  other.is_a?(OptLength) && 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_length", [fmt.calldata(calldata)])
end

def initialize(calldata)

def initialize(calldata)
  @calldata = calldata
end

def length

def length
  2
end

def pops

def pops
  1
end

def pushes

def pushes
  1
end

def to_a(_iseq)

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