Home | History | Annotate | Download | only in Exceptions
      1 /**
      2     File Name:          expression-001.js
      3     Corresponds to:     ecma/Expressions/11.12-2-n.js
      4     ECMA Section:       11.12
      5     Description:
      6 
      7     The grammar for a ConditionalExpression in ECMAScript is a little bit
      8     different from that in C and Java, which each allow the second
      9     subexpression to be an Expression but restrict the third expression to
     10     be a ConditionalExpression.  The motivation for this difference in
     11     ECMAScript is to allow an assignment expression to be governed by either
     12     arm of a conditional and to eliminate the confusing and fairly useless
     13     case of a comma expression as the center expression.
     14 
     15     Author:             christine (at) netscape.com
     16     Date:               09 september 1998
     17 */
     18     var SECTION = "expression-001";
     19     var VERSION = "JS1_4";
     20     var TITLE   = "Conditional operator ( ? : )"
     21     startTest();
     22     writeHeaderToLog( SECTION + " " + TITLE );
     23 
     24     var tc = 0;
     25     var testcases = new Array();
     26 
     27     // the following expression should be an error in JS.
     28 
     29     var result = "Failed"
     30     var exception = "No exception was thrown";
     31 
     32     try {
     33         eval("var MY_VAR = true ? \"EXPR1\", \"EXPR2\" : \"EXPR3\"");
     34     } catch ( e ) {
     35         result = "Passed";
     36         exception = e.toString();
     37     }
     38 
     39     testcases[tc++] = new TestCase(
     40         SECTION,
     41         "comma expression in a conditional statement "+
     42         "(threw "+ exception +")",
     43         "Passed",
     44         result );
     45 
     46 
     47     test();
     48