This has nothing to do with the overloading of operator[], because this is a pointer to itself, and *this is an instance of ExecState.
Then the question is how to understand it from the C language level. this[JSStack::Callee]Actually *(this + JSStack::Callee). Although I have not understood the code of webkit, I guess that the calling condition of calleeAsValue() is that this instance is in an array (perhaps a stack implemented with an array?), so that code makes sense.
This has nothing to do with the overloading of
operator[]
, becausethis
is a pointer to itself, and*this
is an instance ofExecState
.Then the question is how to understand it from the C language level.
this[JSStack::Callee]
Actually*(this + JSStack::Callee)
. Although I have not understood the code of webkit, I guess that the calling condition ofcalleeAsValue()
is that this instance is in an array (perhaps a stack implemented with an array?), so that code makes sense.