Package org.jruby.ir.targets.indy
Class IndyInvocationCompiler
java.lang.Object
org.jruby.ir.targets.indy.IndyInvocationCompiler
- All Implemented Interfaces:
InvocationCompiler
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final IRBytecodeAdapterprivate final InvocationCompiler -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidinvokeArrayDeref(String file, String scopeFieldName, CallBase call) Invoke the array dereferencing method ([]) on an object other than self.voidinvokeClassSuper(String file, String name, int arity, boolean hasClosure, boolean literalClosure, boolean[] splatmap) Invoke a superclass method from a class context.voidPerform a === call appropriate for a case/when statement.voidinvokeInstanceSuper(String file, String name, int arity, boolean hasClosure, boolean literalClosure, boolean[] splatmap) 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.private voidinvokeOtherOrSelfArity1(String file, int line, CallBase call) 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) Invoke a superclass method from an unresolved context.voidinvokeZSuper(String file, String name, int arity, boolean hasClosure, boolean[] splatmap) Invoke a superclass method from a zsuper in a block.
-
Field Details
-
compiler
-
normalCompiler
-
-
Constructor Details
-
IndyInvocationCompiler
-
-
Method Details
-
invokeOther
Description copied from interface:InvocationCompilerInvoke a method on an object other than self.Stack required: context, self, all arguments, optional block
- Specified by:
invokeOtherin interfaceInvocationCompilercall- the call to be invoked
-
invokeArrayDeref
Description copied from interface:InvocationCompilerInvoke 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
- Specified by:
invokeArrayDerefin interfaceInvocationCompiler
-
invokeOtherOneFixnum
Description copied from interface:InvocationCompilerInvoke a fixnum-receiving method on an object other than self.Stack required: context, self, receiver (fixnum will be handled separately)
- Specified by:
invokeOtherOneFixnumin interfaceInvocationCompiler
-
invokeOtherOneFloat
Description copied from interface:InvocationCompilerInvoke a float-receiving method on an object other than self.Stack required: context, self, receiver (float will be handled separately)
- Specified by:
invokeOtherOneFloatin interfaceInvocationCompiler
-
invokeOtherOrSelfArity1
-
invokeSelf
Description copied from interface:InvocationCompilerInvoke a method on self. Stack required: context, caller, self, all arguments, optional block- Specified by:
invokeSelfin interfaceInvocationCompiler- Parameters:
file- the filename of the script making this callcall- to be invoked on selfarity- of the call.
-
invokeInstanceSuper
public void invokeInstanceSuper(String file, String name, int arity, boolean hasClosure, boolean literalClosure, boolean[] splatmap) Description copied from interface:InvocationCompilerInvoke a superclass method from an instance context. Stack required: context, caller, self, start class, arguments[, block]- Specified by:
invokeInstanceSuperin interfaceInvocationCompiler- 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 list
-
invokeClassSuper
public void invokeClassSuper(String file, String name, int arity, boolean hasClosure, boolean literalClosure, boolean[] splatmap) Description copied from interface:InvocationCompilerInvoke a superclass method from a class context. Stack required: context, caller, self, start class, arguments[, block]- Specified by:
invokeClassSuperin interfaceInvocationCompiler- 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 list
-
invokeUnresolvedSuper
public void invokeUnresolvedSuper(String file, String name, int arity, boolean hasClosure, boolean literalClosure, boolean[] splatmap) Description copied from interface:InvocationCompilerInvoke a superclass method from an unresolved context. Stack required: context, caller, self, arguments[, block]- Specified by:
invokeUnresolvedSuperin interfaceInvocationCompiler- 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 list
-
invokeZSuper
public void invokeZSuper(String file, String name, int arity, boolean hasClosure, boolean[] splatmap) Description copied from interface:InvocationCompilerInvoke a superclass method from a zsuper in a block. Stack required: context, caller, self, arguments[, block]- Specified by:
invokeZSuperin interfaceInvocationCompiler- 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 list
-
invokeEQQ
Description copied from interface:InvocationCompilerPerform a === call appropriate for a case/when statement. Stack required: context, case value, when value- Specified by:
invokeEQQin interfaceInvocationCompiler
-