Package org.jruby.ir.targets
Interface InvocationCompiler
- All Known Implementing Classes:
IndyInvocationCompiler,NormalInvocationCompiler
public interface InvocationCompiler
-
Method Summary
Modifier and TypeMethodDescriptionvoidasString(AsStringInstr call, String scopeFieldName, String file) Coerces the receiver to a String using to_s, unless it is already a String Stack required: context, caller, receivervoidinvokeArrayDeref(String file, String scopeFieldName, CallBase call) Invoke the array dereferencing method ([]) on an object other than self.voidinvokeBlockGiven(String methodName, String file) Invoke block_given? or iterator? with awareness of any built-in methods.voidinvokeClassSuper(String file, String name, int arity, boolean hasClosure, boolean literalClosure, boolean[] splatmap, int flags) Invoke a superclass method from a class context.voidPerform a === call appropriate for a case/when statement.voidinvokeFrameName(String methodName, String file) Invoke __method__ or __callee__ with awareness of any built-in methods.voidinvokeInstanceSuper(String file, String name, int arity, boolean hasClosure, boolean literalClosure, boolean[] splatmap, int flags) Invoke a superclass method from an instance context.voidinvokeOther(String file, String scopeFieldName, CallBase call, int arity) Invoke a method on an object other than self.voidinvokeOtherOneFixnum(String file, CallBase call, long fixnum) Invoke a fixnum-receiving method on an object other than self.voidinvokeOtherOneFloat(String file, CallBase call, double flote) Invoke a float-receiving method on an object other than self.voidinvokeSelf(String file, String scopeFieldName, CallBase call, int arity) Invoke a method on self.voidinvokeUnresolvedSuper(String file, String name, int arity, boolean hasClosure, boolean literalClosure, boolean[] splatmap, int flags) Invoke a superclass method from an unresolved context.voidinvokeZSuper(String file, String name, int arity, boolean hasClosure, boolean[] splatmap, int flags) Invoke a superclass method from a zsuper in a block.voidsetCallInfo(int flags) Sets the current callInfo, when it cannot be passed other ways Stack required: none
-
Method Details
-
invokeOther
Invoke a method on an object other than self.Stack required: context, self, all arguments, optional block
- Parameters:
call- the call to be invoked
-
invokeArrayDeref
Invoke the array dereferencing method ([]) on an object other than self.If this invokes against a Hash with a frozen string, it will follow an optimized path.
Stack required: context, self, target, arg0
- Parameters:
file-
-
invokeOtherOneFixnum
Invoke a fixnum-receiving method on an object other than self.Stack required: context, self, receiver (fixnum will be handled separately)
-
invokeOtherOneFloat
Invoke a float-receiving method on an object other than self.Stack required: context, self, receiver (float will be handled separately)
-
invokeSelf
Invoke a method on self. Stack required: context, caller, self, all arguments, optional block- Parameters:
file- the filename of the script making this callcall- to be invoked on selfarity- of the call.
-
invokeInstanceSuper
void invokeInstanceSuper(String file, String name, int arity, boolean hasClosure, boolean literalClosure, boolean[] splatmap, int flags) Invoke a superclass method from an instance context.Stack required: context, caller, self, start class, arguments[, block]
- Parameters:
file- the filename of the script making this callname- name of the method to invokearity- arity of the arguments on the stackhasClosure- whether a block is passedliteralClosure- whether the block passed is a literal closuresplatmap- a map of arguments to be splatted back into arg listflags-
-
invokeClassSuper
void invokeClassSuper(String file, String name, int arity, boolean hasClosure, boolean literalClosure, boolean[] splatmap, int flags) Invoke a superclass method from a class context.Stack required: context, caller, self, start class, arguments[, block]
- Parameters:
file- the filename of the script making this callname- name of the method to invokearity- arity of the arguments on the stackhasClosure- whether a block is passedliteralClosure- whether the block passed is a literal closuresplatmap- a map of arguments to be splatted back into arg listflags-
-
invokeUnresolvedSuper
void invokeUnresolvedSuper(String file, String name, int arity, boolean hasClosure, boolean literalClosure, boolean[] splatmap, int flags) Invoke a superclass method from an unresolved context.Stack required: context, caller, self, arguments[, block]
- Parameters:
file- the filename of the script making this callname- name of the method to invokearity- arity of the arguments on the stackhasClosure- whether a block is passedliteralClosure- whether the block passed is a literal closuresplatmap- a map of arguments to be splatted back into arg listflags-
-
invokeZSuper
void invokeZSuper(String file, String name, int arity, boolean hasClosure, boolean[] splatmap, int flags) Invoke a superclass method from a zsuper in a block.Stack required: context, caller, self, arguments[, block]
- Parameters:
file- the filename of the script making this callname- name of the method to invokearity- arity of the arguments on the stackhasClosure- whether a block is passedsplatmap- a map of arguments to be splatted back into arg listflags-
-
invokeEQQ
Perform a === call appropriate for a case/when statement. Stack required: context, case value, when value -
asString
Coerces the receiver to a String using to_s, unless it is already a String Stack required: context, caller, receiver -
setCallInfo
void setCallInfo(int flags) Sets the current callInfo, when it cannot be passed other ways Stack required: none -
invokeBlockGiven
Invoke block_given? or iterator? with awareness of any built-in methods. -
invokeFrameName
Invoke __method__ or __callee__ with awareness of any built-in methods.
-