diff options
Diffstat (limited to 'Source/JavaScriptCore/tests/mozilla/ecma/LexicalConventions/7.6.js')
-rw-r--r-- | Source/JavaScriptCore/tests/mozilla/ecma/LexicalConventions/7.6.js | 309 |
1 files changed, 309 insertions, 0 deletions
diff --git a/Source/JavaScriptCore/tests/mozilla/ecma/LexicalConventions/7.6.js b/Source/JavaScriptCore/tests/mozilla/ecma/LexicalConventions/7.6.js new file mode 100644 index 0000000..68b66be --- /dev/null +++ b/Source/JavaScriptCore/tests/mozilla/ecma/LexicalConventions/7.6.js @@ -0,0 +1,309 @@ +/* The contents of this file are subject to the Netscape Public + * License Version 1.1 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of + * the License at http://www.mozilla.org/NPL/ + * + * Software distributed under the License is distributed on an "AS + * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or + * implied. See the License for the specific language governing + * rights and limitations under the License. + * + * The Original Code is Mozilla Communicator client code, released March + * 31, 1998. + * + * The Initial Developer of the Original Code is Netscape Communications + * Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All + * Rights Reserved. + * + * Contributor(s): + * + */ +/** + File Name: 7.6.js + ECMA Section: Punctuators + Description: + + This tests verifies that all ECMA punctutors are recognized as a + token separator, but does not attempt to verify the functionality + of any punctuator. + + Author: christine@netscape.com + Date: 12 november 1997 +*/ + + var SECTION = "7.6"; + var VERSION = "ECMA_1"; + startTest(); + var TITLE = "Punctuators"; + + writeHeaderToLog( SECTION + " "+ TITLE); + + var testcases = new Array(); + + // == + testcases[tc++] = new TestCase( SECTION, + "var c,d;c==d", + true, + eval("var c,d;c==d") ); + + // = + + testcases[tc++] = new TestCase( SECTION, + "var a=true;a", + true, + eval("var a=true;a") ); + + // > + testcases[tc++] = new TestCase( SECTION, + "var a=true,b=false;a>b", + true, + eval("var a=true,b=false;a>b") ); + + // < + testcases[tc++] = new TestCase( SECTION, + "var a=true,b=false;a<b", + false, + eval("var a=true,b=false;a<b") ); + + // <= + testcases[tc++] = new TestCase( SECTION, + "var a=0xFFFF,b=0X0FFF;a<=b", + false, + eval("var a=0xFFFF,b=0X0FFF;a<=b") ); + + // >= + testcases[tc++] = new TestCase( SECTION, + "var a=0xFFFF,b=0XFFFE;a>=b", + true, + eval("var a=0xFFFF,b=0XFFFE;a>=b") ); + + // != + testcases[tc++] = new TestCase( SECTION, + "var a=true,b=false;a!=b", + true, + eval("var a=true,b=false;a!=b") ); + + testcases[tc++] = new TestCase( SECTION, + "var a=false,b=false;a!=b", + false, + eval("var a=false,b=false;a!=b") ); + // , + testcases[tc++] = new TestCase( SECTION, + "var a=true,b=false;a,b", + false, + eval("var a=true,b=false;a,b") ); + // ! + testcases[tc++] = new TestCase( SECTION, + "var a=true,b=false;!a", + false, + eval("var a=true,b=false;!a") ); + + // ~ + testcases[tc++] = new TestCase( SECTION, + "var a=true;~a", + -2, + eval("var a=true;~a") ); + // ? + testcases[tc++] = new TestCase( SECTION, + "var a=true; (a ? 'PASS' : '')", + "PASS", + eval("var a=true; (a ? 'PASS' : '')") ); + + // : + + testcases[tc++] = new TestCase( SECTION, + "var a=false; (a ? 'FAIL' : 'PASS')", + "PASS", + eval("var a=false; (a ? 'FAIL' : 'PASS')") ); + // . + + testcases[tc++] = new TestCase( SECTION, + "var a=Number;a.NaN", + NaN, + eval("var a=Number;a.NaN") ); + + // && + testcases[tc++] = new TestCase( SECTION, + "var a=true,b=true;if(a&&b)'PASS';else'FAIL'", + "PASS", + eval("var a=true,b=true;if(a&&b)'PASS';else'FAIL'") ); + + // || + testcases[tc++] = new TestCase( SECTION, + "var a=false,b=false;if(a||b)'FAIL';else'PASS'", + "PASS", + eval("var a=false,b=false;if(a||b)'FAIL';else'PASS'") ); + // ++ + testcases[tc++] = new TestCase( SECTION, + "var a=false,b=false;++a", + 1, + eval("var a=false,b=false;++a") ); + // -- + testcases[tc++] = new TestCase( SECTION, + "var a=true,b=false--a", + 0, + eval("var a=true,b=false;--a") ); + // + + + testcases[tc++] = new TestCase( SECTION, + "var a=true,b=true;a+b", + 2, + eval("var a=true,b=true;a+b") ); + // - + testcases[tc++] = new TestCase( SECTION, + "var a=true,b=true;a-b", + 0, + eval("var a=true,b=true;a-b") ); + // * + testcases[tc++] = new TestCase( SECTION, + "var a=true,b=true;a*b", + 1, + eval("var a=true,b=true;a*b") ); + // / + testcases[tc++] = new TestCase( SECTION, + "var a=true,b=true;a/b", + 1, + eval("var a=true,b=true;a/b") ); + // & + testcases[tc++] = new TestCase( SECTION, + "var a=3,b=2;a&b", + 2, + eval("var a=3,b=2;a&b") ); + // | + testcases[tc++] = new TestCase( SECTION, + "var a=4,b=3;a|b", + 7, + eval("var a=4,b=3;a|b") ); + + // | + testcases[tc++] = new TestCase( SECTION, + "var a=4,b=3;a^b", + 7, + eval("var a=4,b=3;a^b") ); + + // % + testcases[tc++] = new TestCase( SECTION, + "var a=4,b=3;a|b", + 1, + eval("var a=4,b=3;a%b") ); + + // << + testcases[tc++] = new TestCase( SECTION, + "var a=4,b=3;a<<b", + 32, + eval("var a=4,b=3;a<<b") ); + + // >> + testcases[tc++] = new TestCase( SECTION, + "var a=4,b=1;a>>b", + 2, + eval("var a=4,b=1;a>>b") ); + + // >>> + testcases[tc++] = new TestCase( SECTION, + "var a=1,b=1;a>>>b", + 0, + eval("var a=1,b=1;a>>>b") ); + // += + testcases[tc++] = new TestCase( SECTION, + "var a=4,b=3;a+=b;a", + 7, + eval("var a=4,b=3;a+=b;a") ); + + // -= + testcases[tc++] = new TestCase( SECTION, + "var a=4,b=3;a-=b;a", + 1, + eval("var a=4,b=3;a-=b;a") ); + // *= + testcases[tc++] = new TestCase( SECTION, + "var a=4,b=3;a*=b;a", + 12, + eval("var a=4,b=3;a*=b;a") ); + // += + testcases[tc++] = new TestCase( SECTION, + "var a=4,b=3;a+=b;a", + 7, + eval("var a=4,b=3;a+=b;a") ); + // /= + testcases[tc++] = new TestCase( SECTION, + "var a=12,b=3;a/=b;a", + 4, + eval("var a=12,b=3;a/=b;a") ); + + // &= + testcases[tc++] = new TestCase( SECTION, + "var a=4,b=5;a&=b;a", + 4, + eval("var a=4,b=5;a&=b;a") ); + + // |= + testcases[tc++] = new TestCase( SECTION, + "var a=4,b=5;a&=b;a", + 5, + eval("var a=4,b=5;a|=b;a") ); + // ^= + testcases[tc++] = new TestCase( SECTION, + "var a=4,b=5;a^=b;a", + 1, + eval("var a=4,b=5;a^=b;a") ); + // %= + testcases[tc++] = new TestCase( SECTION, + "var a=12,b=5;a%=b;a", + 2, + eval("var a=12,b=5;a%=b;a") ); + // <<= + testcases[tc++] = new TestCase( SECTION, + "var a=4,b=3;a<<=b;a", + 32, + eval("var a=4,b=3;a<<=b;a") ); + + // >> + testcases[tc++] = new TestCase( SECTION, + "var a=4,b=1;a>>=b;a", + 2, + eval("var a=4,b=1;a>>=b;a") ); + + // >>> + testcases[tc++] = new TestCase( SECTION, + "var a=1,b=1;a>>>=b;a", + 0, + eval("var a=1,b=1;a>>>=b;a") ); + + // () + testcases[tc++] = new TestCase( SECTION, + "var a=4,b=3;(a)", + 4, + eval("var a=4,b=3;(a)") ); + // {} + testcases[tc++] = new TestCase( SECTION, + "var a=4,b=3;{b}", + 3, + eval("var a=4,b=3;{b}") ); + + // [] + testcases[tc++] = new TestCase( SECTION, + "var a=new Array('hi');a[0]", + "hi", + eval("var a=new Array('hi');a[0]") ); + // [] + testcases[tc++] = new TestCase( SECTION, + ";", + void 0, + eval(";") ); + test(); + +function test() { + for ( tc=0; tc < testcases.length; tc++ ) { + testcases[tc].passed = writeTestCaseResult( + testcases[tc].expect, + testcases[tc].actual, + testcases[tc].description +" = "+ + testcases[tc].actual ); + + testcases[tc].reason += ( testcases[tc].passed ) ? "" : "wrong value "; + } + stopTest(); + return ( testcases ); +} |