code: function(kind, isForkingAsResult) {
  			this.choiceContext = {
  				upper: this.choiceContext,
  				kind: kind,
  				isForkingAsResult: isForkingAsResult,
  				trueForkContext: ForkContext.newEmpty(this.forkContext),
  				falseForkContext: ForkContext.newEmpty(this.forkContext),
  				processed: false
  			};
  		}
docs: -------------------------------------------------------------------------- ConditionalExpression, LogicalExpression, IfStatement -------------------------------------------------------------------------- 
  Creates a context for ConditionalExpression, LogicalExpression,
  IfStatement, WhileStatement, DoWhileStatement, or ForStatement.
  
  LogicalExpressions have cases that it goes different paths between the
  `true` case and the `false` case.
  
  For Example:
  
  if (a || b) {
  foo();
  } else {
  bar();
  }
  
  In this case, `b` is evaluated always in the code path of the `else`
  block, but it's not so in the code path of the `if` block.
  So there are 3 paths.
  
  a -> foo();
  a -> b -> foo();
  a -> b -> bar();
  
  @param {string} kind - A kind string.
  If the new context is LogicalExpression's, this is `"&&"` or `"||"`.
  If it's IfStatement's or ConditionalExpression's, this is `"test"`.
  Otherwise, this is `"loop"`.
  @param {boolean} isForkingAsResult - A flag that shows that goes different
  paths between `true` and `false`.
  @returns {void}