Access TNA --→ Receiver trec --→

Access
fA
!
TN A
Struct read
CMemberRead(trec , tid )
Struct write
CMemberWrite(trec , tid , tval )
Array read
CElementRead(tarr , tidx )
Array write
CElementWrite(tarr , tidx , tval )
Is null
CIsNullPointer(trec )
Function call
CCall(tfunc , . . .)
fC
7 !
TN A [N Msg
Read(trec , tid )
f
Write(trec , tid , tval )
7 C
!
f
Read(tarr , tidx )
fC
7 !
Write(tarr , tidx , tval )
f
IsNull(trec )
7 C
!
f
Execute(tfunc , . . .)
7 C
!
7 C
!
fJS
Property read
JSReadProperty(trec , tid )
7 !
Read(trec , tid )
Property write
JSWriteProperty(trec , tid , tval )
7 !
Write(trec , tid , tval )
Is null
JSIsNil(trec )
7 !
IsNull(trec )
fJS
fJS
fJS
Call
JSCall(tfunc , trec . . .)
7 !
Execute(tfunc , trec . . .)
Method call
RbDispatch(
7
Execute(Read(trec , tid ), trec . . .)
fRuby
RbResolve(trec , tid ), trec . . .)
!
Is null
Getter call
fRuby
RbIsNil(trec )
7
RbDispatch(
7
RbResolve(trec , tgetterId ), trec . . .)
Setter call
7
Read(trec , tid )
Ptr to Struct
Write(trec , tid , tval )
Ptr to Array
Read(trec , tidx )
Ptr to Array
Write(trec , tidx , tval )
Any ptr
IsNull(trec )
Function ptr
Execute(trec , . . .)
Object
Read(trec , tid )
Object
Write(trec , tid , tval )
Object
IsNull(trec )
Object
Unbox(trec )
Function
Execute(trec , trec . . .)
gB
!
!
gJS
7 !
gJS
7 !
gJS
7 !
gJS
JSIsNil(trec )
JSNumberToFloat64(trec )
RbDispatch(
Write(trec , tid , tval )
7
Object
IsNull(trec )
Array or Hash
Execute(Read(trec , tid ), trec . . .)
7
Array or Hash
Read(trec , tid )
7
Array or Hash
Write(trec , tid , tval )
7
Array or Hash
IsNull(trec )
Class
Read(trec , tid )
7
Class
Write(trec , tid , tval )
Execute(trec , . . .)
JSWriteProperty(trec , tid , tval )
JSCall(trec , trec . . .)
gRuby
Object
Function
JSReadProperty(trec , tid )
7 !
7
Unbox(trec )
CCall(trec , . . .)
gJS
Read(trec , tid )
Float
CIsNullPointer(trec )
gC
7 !
Object
Unbox(trec )
CElementWrite(trec , tidx , tval )
gC
!
7
IsNull(trec )
CElementRead(trec , tidx )
gC
!
7
CMemberRead(trec , tid )
CMemberWrite(trec , tid , tval )
!
7
TN A [N B
gC
!
7
Write(trec , tid , tval )
gC
!
7
7
7
Execute(Read(trec , tid ), trec . . .)
FixNum
Read(trec , tid )
gC
Object
Class
!
!
TN A [N Msg
Ptr to Struct
IsNull(trec )
fRuby
RbDispatch(
RbResolve(trec , tsetterId ), trec . . .)
Receiver trec
!
fRuby
!
gRuby
!
gRuby
!
gRuby
!
gRuby
7
!
gRuby
!
gRuby
!
gRuby
!
gRuby
7
!
gRuby
7
!
7
gRuby
!
gRuby
7
!
gRuby
!
7
7
gRuby
!
RbResolve(trec , tid ), trec . . .)
RbDispatch(
RbResolve(trec , tgetterId ), trec )
RbDispatch(
RbResolve(trec , tsetterId ), trec , tval )
RbIsNil(trec )
RbDispatch(
RbResolve(trec , tid ), trec . . .)
RbDispatch(
RbResolve(trec , t[] ), trec )
RbDispatch(
RbResolve(trec , t[]= ), trec , tval )
RbIsNil(trec )
RbReadClassVar(trec , tid )
RbWriteClassVar(trec , tid , tval )
RbIsNil(trec )
RbFixNumToInt64(trec )
RbFloatToFloat64(trec )
RbDispatch(trec , . . .)