Class: SyntaxTree::YARV::Legacy::OptSetInlineCache
Overview
### Summary
opt_setinlinecache sets an inline cache for a constant lookup. It pops the value it should set off the top of the stack. It uses this value to set the cache. It then pushes that value back onto the top of the stack.
This instruction is no longer used since in Ruby 3.2 it was replaced by the consolidated opt_getconstant_path instruction.
### Usage
~~~ruby Constant ~~~
Instance Attribute Summary collapse
Instance Method Summary
collapse
Methods inherited from Instruction
#branch_targets, #canonical, #falls_through?, #leaves?, #side_effects?
Constructor Details
145
146
147
|
# File 'lib/syntax_tree/yarv/legacy.rb', line 145
def initialize(cache)
@cache = cache
end
|
Instance Attribute Details
#cache ⇒ Object
Returns the value of attribute cache.
143
144
145
|
# File 'lib/syntax_tree/yarv/legacy.rb', line 143
def cache
@cache
end
|
Instance Method Details
#==(other) ⇒ Object
161
162
163
|
# File 'lib/syntax_tree/yarv/legacy.rb', line 161
def ==(other)
other.is_a?(OptSetInlineCache) && other.cache == cache
end
|
#call(vm) ⇒ Object
177
178
|
# File 'lib/syntax_tree/yarv/legacy.rb', line 177
def call(vm)
end
|
#deconstruct_keys(_keys) ⇒ Object
157
158
159
|
# File 'lib/syntax_tree/yarv/legacy.rb', line 157
def deconstruct_keys(_keys)
{ cache: cache }
end
|
#disasm(fmt) ⇒ Object
149
150
151
|
# File 'lib/syntax_tree/yarv/legacy.rb', line 149
def disasm(fmt)
fmt.instruction("opt_setinlinecache", [fmt.inline_storage(cache)])
end
|
#length ⇒ Object
165
166
167
|
# File 'lib/syntax_tree/yarv/legacy.rb', line 165
def length
2
end
|
#pops ⇒ Object
169
170
171
|
# File 'lib/syntax_tree/yarv/legacy.rb', line 169
def pops
1
end
|
#pushes ⇒ Object
173
174
175
|
# File 'lib/syntax_tree/yarv/legacy.rb', line 173
def pushes
1
end
|
#to_a(_iseq) ⇒ Object
153
154
155
|
# File 'lib/syntax_tree/yarv/legacy.rb', line 153
def to_a(_iseq)
[:opt_setinlinecache, cache]
end
|