Squeak Class Documentation category index | class index  
 
MessageAsTempNode
  category: System-Compiler
  superclass: MessageNode
  subclasses:

This node represents accesses to temporary variables for do-its in the debugger. Since they execute in another context, they must send a message to the original context to access the value of the temporary variable in that context.

instance methods
  access to remote temps
  asStorableNode:
code
emitStorePop:on:
isTemp
nowHasDef
nowHasRef
scope
scope:
sizeForStorePop:
store:from:

class methods
  no messages
 

instance methods
  access to remote temps top  
 

asStorableNode:

This node is a message masquerading as a temporary variable.
It currently has the form {homeContext tempAt: offset}.
We need to generate code for {expr storeAt: offset inTempFrame: homeContext},
where the expr, the block argument, is already on the stack.
This, in turn will get turned into {homeContext tempAt: offset put: expr}
at runtime if nobody disturbs storeAt:inTempFrame: in Object (not clean)


 

code

Allow synthetic temp nodes to be sorted by code


 

emitStorePop:on:

This node has the form {expr storeAt: offset inTempFrame: homeContext},
where the expr, the block argument, is already on the stack.


 

isTemp

Masquerading for debugger access to temps.


 

nowHasDef

For compatibility with temp scope protocol


 

nowHasRef

For compatibility with temp scope protocol


 

scope

For compatibility with temp scope protocol


 

scope:

For compatibility with temp scope protocol


 

sizeForStorePop:

This node has the form {expr storeAt: offset inTempFrame: homeContext},
where the expr, the block argument, is already on the stack.


 

store:from:

ctxt tempAt: n -> ctxt tempAt: n put: expr (see Assignment).
For assigning into temps of a context being debugged.


class methods
  no messages top