       blocksEaten: []
       globalsSet: []
       paths: []
+
+    @continuation = false
 
   namedPath: (includeSelf = false) ->
     path = if @source then @source.namedPath() else []

    id = name.replace /-/g, '_' if name
    id = "#{@id}_b#{@branches}" unless name
    branch = @createChoice @source, id, name
    branch.state = State.PENDING
    branch.onBranch = @onBranch
    branch.onSubtree = @onSubtree


  createChoice: (source, id, name) ->
    # Override in subclasses
    c = new Choice source, id, name
    c.continuation = @continuation
    c

  toJSON: ->
    base =
