Each of these messages evaluates source code in the context of an object. To evaluate in the context of an object means that the compiler will try to interpret variable references as instance, class, or pool variables of the designated object's class, and that instance variable references is bound to the values of the object's instance variables when the compiled code is run. The first parameter of each of these messages is always the source code to be evaluated. The message
evaluate: evaluates in the context of the special object
nil. Error handling follows the same model as for compiling, that is, if a warning or error is detected during compilation, either a
CompilerError or the result of evaluating a fail block is returned.