Back: BlockClosure-unwind protection Up: Base classes Forward: BlockContext-accessing   Top: GNU Smalltalk Library Reference Contents: Table of Contents Index: Class index About: About this document

1.12 BlockContext

Defined in namespace Smalltalk
Superclass: ContextPart
Category: Language-Implementation
My instances represent executing Smalltalk blocks, which are portions of executeable code that have access to the environment that they were declared in, take parameters, and result from BlockClosure objects created to be executed by methods outside the current class. Block contexts are created by messages sent to compute a closure's value. They contain a stack and also provide some methods that can be used in inspection or debugging.

1.12.1 BlockContext: accessing  (instance)
1.12.2 BlockContext: debugging  (instance)
1.12.3 BlockContext: printing  (instance)


1.12.1 BlockContext: accessing

caller
Answer the context that called the receiver

home
Answer the MethodContext to which the receiver refers, or nil if it has been optimized away

isBlock
Answer whether the receiver is a block context

block

isDisabled
Answers false, because contexts that are skipped when doing a return are always MethodContexts. BlockContexts are removed from the chain whenever a non-local return is done, while MethodContexts need to stay there in case there is a non-local return from the #ensure: block.

isEnvironment
To create a valid execution environment for the interpreter even before it starts, GST creates a fake context whose selector is nil and which can be used as a marker for the current execution environment. Answer whether the receiver is that kind of context (always false, since those contexts are always MethodContexts).

isUnwind
Answers whether the context must continue execution even after a non-local return (a return from the enclosing method of a block, or a call to the #continue: method of ContextPart). Such contexts are created only by #ensure: and are always MethodContexts.

nthOuterContext: n
Answer the n-th outer block/method context for the receiver

outerContext
Answer the outer block/method context for the receiver


1.12.2 BlockContext: debugging

isInternalExceptionHandlingContext
Answer whether the receiver is a context that should be hidden to the user when presenting a backtrace. Such contexts are never blocks, but check the rest of the chain.


1.12.3 BlockContext: printing

printOn: aStream
Print a representation for the receiver on aStream



Back: BlockContext-debugging Up: BlockContext Forward: Boolean   Top: GNU Smalltalk Library Reference Contents: Table of Contents Index: Class index About: About this document


This document was generated on May, 22 2008 using texi2html