code: function parseConditionalExpression() {
          var expr, previousAllowIn, consequent;
  
          expr = parseLogicalORExpression();
  
          if (match('?')) {
              lex();
              previousAllowIn = state.allowIn;
              state.allowIn = true;
              consequent = parseAssignmentExpression();
              state.allowIn = previousAllowIn;
              expect(':');
  
              expr = {
                  type: Syntax.ConditionalExpression,
                  test: expr,
                  consequent: consequent,
                  alternate: parseAssignmentExpression()
              };
          }
  
          return expr;
      }
docs: 11.12 Conditional Operator