=== Top of the Swiki === Attachments ===

FAQ: Message Sends Inlined by the Compiler

Which message sends are inlined by the compiler(i.e. translated directly into byte code)?

Andreas Raab gave the hint to look at the method

MessageNode class>>initialize


The inlined messages are defined as follows:

MacroSelectors _
#(ifTrue: ifFalse: ifTrue:ifFalse: ifFalse:ifTrue:
and: or:
whileFalse: whileTrue: whileFalse whileTrue
to:do: to:by:do:
caseOf: caseOf:otherwise: as: ).

In addition, one should look at the class variable StdSelectors of ParseNode. These are translated into special bytecodes, some of which are handled specially by the VM.