File: expression-001.js

package info (click to toggle)
qtwebkit-opensource-src 5.3.2%2Bdfsg-2~bpo70%2B1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy-backports
  • size: 291,472 kB
  • sloc: cpp: 1,358,084; python: 70,286; ansic: 42,964; perl: 35,474; ruby: 12,229; objc: 9,465; xml: 8,396; asm: 3,866; yacc: 2,397; sh: 1,647; makefile: 644; lex: 644; java: 110
file content (47 lines) | stat: -rw-r--r-- 1,459 bytes parent folder | download | duplicates (8)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/**
    File Name:          expression-001.js
    Corresponds to:     ecma/Expressions/11.12-2-n.js
    ECMA Section:       11.12
    Description:

    The grammar for a ConditionalExpression in ECMAScript is a little bit
    different from that in C and Java, which each allow the second
    subexpression to be an Expression but restrict the third expression to
    be a ConditionalExpression.  The motivation for this difference in
    ECMAScript is to allow an assignment expression to be governed by either
    arm of a conditional and to eliminate the confusing and fairly useless
    case of a comma expression as the center expression.

    Author:             christine@netscape.com
    Date:               09 september 1998
*/
    var SECTION = "expression-001";
    var VERSION = "JS1_4";
    var TITLE   = "Conditional operator ( ? : )"
    startTest();
    writeHeaderToLog( SECTION + " " + TITLE );

    var tc = 0;
    var testcases = new Array();

    // the following expression should be an error in JS.

    var result = "Failed"
    var exception = "No exception was thrown";

    try {
        eval("var MY_VAR = true ? \"EXPR1\", \"EXPR2\" : \"EXPR3\"");
    } catch ( e ) {
        result = "Passed";
        exception = e.toString();
    }

    testcases[tc++] = new TestCase(
        SECTION,
        "comma expression in a conditional statement "+
        "(threw "+ exception +")",
        "Passed",
        result );


    test();