# BlockClosure

BlockClosure inherits from Object and defines instance variables ownerClass, offset, argumentCount. It has a subclass: FullBlockClosure.

BlockClosures are "clean" block closures which do not refer to outer variables or execute nonlocal returns. They are statically allocated at compile time.

## Methods defined in BlockClosure:

### Methods for accessing:

- argumentCount
  Perhaps move this into the block instructions instead.

### Methods for error handling:

- contextAlreadyReturned
  Sent by the VM when a block tries to return from, or access a variable from, a context that has already returned.

### Methods for evaluating:

- value
- value: arg1
- value: arg1 value: arg2
- valueWithArguments: array

### Methods for flow control:

- repeat
- whileFalse: block
- whileTrue: block

Pocket Smalltalk Documentation