2019-10-04 21:06:22 +03:00
|
|
|
# passed in? name and cache_entry
|
2020-02-09 21:33:34 +07:00
|
|
|
word! = name_
|
|
|
|
cache_entry! = cache_entry_
|
2019-10-04 21:06:22 +03:00
|
|
|
# local var assignment
|
2020-02-13 11:59:00 +07:00
|
|
|
callable_method! = cache_entry.cached_type.methods
|
2019-10-04 21:06:22 +03:00
|
|
|
|
|
|
|
while_start_label
|
|
|
|
|
|
|
|
goto(exit_label) if( nil == callable_method)
|
|
|
|
|
|
|
|
goto(ok_label) if(callable_method.name == word)
|
|
|
|
|
|
|
|
callable_method = callable_method.next_callable
|
|
|
|
|
|
|
|
goto(while_start_label)
|
|
|
|
|
|
|
|
exit_label
|
|
|
|
|
|
|
|
MethodMissing.new(compiler.source_name , word.symbol).to_risc(compiler)
|
|
|
|
|
|
|
|
ok_label
|
2019-10-05 19:37:24 +03:00
|
|
|
cache_entry.cached_method = callable_method
|