diff options
Diffstat (limited to 'Source/JavaScriptCore/tests/mozilla/ecma_2/Exceptions/expression-001.js')
-rw-r--r-- | Source/JavaScriptCore/tests/mozilla/ecma_2/Exceptions/expression-001.js | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/Source/JavaScriptCore/tests/mozilla/ecma_2/Exceptions/expression-001.js b/Source/JavaScriptCore/tests/mozilla/ecma_2/Exceptions/expression-001.js new file mode 100644 index 0000000..b1baf6f --- /dev/null +++ b/Source/JavaScriptCore/tests/mozilla/ecma_2/Exceptions/expression-001.js @@ -0,0 +1,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(); |