Top Methods
org.jruby.ir.targets

public Interface InvocationCompiler

Known Direct Implementers
org.jruby.ir.targets.indy.IndyInvocationCompiler, org.jruby.ir.targets.simple.NormalInvocationCompiler
Imports
org.jruby.ir.instructions.AsStringInstr, .CallBase, .EQQInstr

Method Summary

Modifier and TypeMethod and Description
public void
asString(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, receiver

public void
invokeArrayDeref(String file, String scopeFieldName, CallBase call)

Invoke the array dereferencing method ([]) on an object other than self.

public void
invokeBlockGiven(String methodName, String file)

Invoke block_given?

public void
invokeClassSuper(String
the filename of the script making this call
file
,
String
name of the method to invoke
name
,
int
arity of the arguments on the stack
arity
,
boolean
whether a block is passed
hasClosure
,
boolean
whether the block passed is a literal closure
literalClosure
,
boolean[]
a map of arguments to be splatted back into arg list
splatmap
,
int flags)

Invoke a superclass method from a class context.

public void
invokeEQQ(EQQInstr call)

Perform a === call appropriate for a case/when statement.

public void
invokeFrameName(String methodName, String file)

Invoke __method__ or __callee__ with awareness of any built-in methods.

public void
invokeInstanceSuper(String
the filename of the script making this call
file
,
String
name of the method to invoke
name
,
int
arity of the arguments on the stack
arity
,
boolean
whether a block is passed
hasClosure
,
boolean
whether the block passed is a literal closure
literalClosure
,
boolean[]
a map of arguments to be splatted back into arg list
splatmap
,
int flags)

Invoke a superclass method from an instance context.

public void
invokeOther(String file, String scopeFieldName, CallBase
the call to be invoked
call
,
int arity)

Invoke a method on an object other than self.

public void
invokeOtherOneFixnum(String file, CallBase call, long fixnum)

Invoke a fixnum-receiving method on an object other than self.

public void
invokeOtherOneFloat(String file, CallBase call, double flote)

Invoke a float-receiving method on an object other than self.

public void
invokeSelf(String
the filename of the script making this call
file
,
String scopeFieldName, CallBase
to be invoked on self
call
,
int
of the call.
arity
)

Invoke a method on self.

public void
invokeUnresolvedSuper(String
the filename of the script making this call
file
,
String
name of the method to invoke
name
,
int
arity of the arguments on the stack
arity
,
boolean
whether a block is passed
hasClosure
,
boolean
whether the block passed is a literal closure
literalClosure
,
boolean[]
a map of arguments to be splatted back into arg list
splatmap
,
int flags)

Invoke a superclass method from an unresolved context.

public void
invokeZSuper(String
the filename of the script making this call
file
,
String
name of the method to invoke
name
,
int
arity of the arguments on the stack
arity
,
boolean
whether a block is passed
hasClosure
,
boolean[]
a map of arguments to be splatted back into arg list
splatmap
,
int flags)

Invoke a superclass method from a zsuper in a block.

public void
setCallInfo(int flags)

Sets the current callInfo, when it cannot be passed other ways Stack required: none

Method Detail

asStringback to summary
public void asString(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, receiver

invokeArrayDerefback to summary
public void invokeArrayDeref(String file, String scopeFieldName, CallBase call)

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

invokeBlockGivenback to summary
public void invokeBlockGiven(String methodName, String file)

Invoke block_given? or iterator? with awareness of any built-in methods.

invokeClassSuperback to summary
public 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:String

the filename of the script making this call

name:String

name of the method to invoke

arity:int

arity of the arguments on the stack

hasClosure:boolean

whether a block is passed

literalClosure:boolean

whether the block passed is a literal closure

splatmap:boolean[]

a map of arguments to be splatted back into arg list

invokeEQQback to summary
public void invokeEQQ(EQQInstr call)

Perform a === call appropriate for a case/when statement. Stack required: context, case value, when value

invokeFrameNameback to summary
public void invokeFrameName(String methodName, String file)

Invoke __method__ or __callee__ with awareness of any built-in methods.

invokeInstanceSuperback to summary
public 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:String

the filename of the script making this call

name:String

name of the method to invoke

arity:int

arity of the arguments on the stack

hasClosure:boolean

whether a block is passed

literalClosure:boolean

whether the block passed is a literal closure

splatmap:boolean[]

a map of arguments to be splatted back into arg list

invokeOtherback to summary
public void invokeOther(String file, String scopeFieldName, CallBase call, int arity)

Invoke a method on an object other than self.

Stack required: context, self, all arguments, optional block

Parameters
call:CallBase

the call to be invoked

invokeOtherOneFixnumback to summary
public void invokeOtherOneFixnum(String file, CallBase call, long fixnum)

Invoke a fixnum-receiving method on an object other than self.

Stack required: context, self, receiver (fixnum will be handled separately)

invokeOtherOneFloatback to summary
public void invokeOtherOneFloat(String file, CallBase call, double flote)

Invoke a float-receiving method on an object other than self.

Stack required: context, self, receiver (float will be handled separately)

invokeSelfback to summary
public void invokeSelf(String file, String scopeFieldName, CallBase call, int arity)

Invoke a method on self. Stack required: context, caller, self, all arguments, optional block

Parameters
file:String

the filename of the script making this call

call:CallBase

to be invoked on self

arity:int

of the call.

invokeUnresolvedSuperback to summary
public 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:String

the filename of the script making this call

name:String

name of the method to invoke

arity:int

arity of the arguments on the stack

hasClosure:boolean

whether a block is passed

literalClosure:boolean

whether the block passed is a literal closure

splatmap:boolean[]

a map of arguments to be splatted back into arg list

invokeZSuperback to summary
public 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:String

the filename of the script making this call

name:String

name of the method to invoke

arity:int

arity of the arguments on the stack

hasClosure:boolean

whether a block is passed

splatmap:boolean[]

a map of arguments to be splatted back into arg list

setCallInfoback to summary
public void setCallInfo(int flags)

Sets the current callInfo, when it cannot be passed other ways Stack required: none