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


  createChoice: (source, id, name) ->
    # Override in subclasses
    new Choice source, id, name

  toJSON: ->
    base =

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