test/script/basic/JDK-8012083.js

Wed, 03 Jul 2013 19:20:29 +0530

author
sundar
date
Wed, 03 Jul 2013 19:20:29 +0530
changeset 408
fcb484c43348
parent 0
b1a7da25b547
child 962
ac62e33a99b0
permissions
-rw-r--r--

8019814: Add regression test for passing cases
Reviewed-by: jlaskey, lagergren

     1 /*
     2  * Copyright (c) 2010, 2013, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  * 
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     8  * 
     9  * This code is distributed in the hope that it will be useful, but WITHOUT
    10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
    11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
    12  * version 2 for more details (a copy is included in the LICENSE file that
    13  * accompanied this code).
    14  * 
    15  * You should have received a copy of the GNU General Public License version
    16  * 2 along with this work; if not, write to the Free Software Foundation,
    17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
    18  * 
    19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
    20  * or visit www.oracle.com if you need additional information or have any
    21  * questions.
    22  */
    24 /**
    25  * JDK-8012093 - array literals can only be subject to constant evaluation under very special
    26  * circumstances.
    27  *
    28  * @test
    29  * @run
    30  */
    33 var w00t = 17;
    34 print(+[w00t]);
    36 var empty = [];
    37 print(empty == false);
    39 print([] == false);
    40 print([] === false);
    41 print(!![]);
    43 print(~[]);
    44 print(![]);
    45 print(![17]);
    46 print(![17,1,2]);
    48 var one = 1;
    49 var two = 2;
    50 var a1 = [one];
    51 var a2 = [two];
    52 print(+a1 + +a2); //3
    54 var x = 1;
    55 print(+["apa"]);
    56 print(+[]);  //0
    57 print(+[1]); //1
    58 print(+[x]); //1
    59 print(+[1,2,3]); //NaN
    60 var a = [];
    61 var b = [1];
    62 print(a/b);
    63 print(++[[]][+[]]+[+[]]); //10
    64 print(+[] == 0);
    66 var first = [![]+[]][+[]][+[]]+[![]+[]][+[]][+!+[]]+[!+[]+[]][+![]][+![]]+[![]+[]][+[]][+!+[]]+[![]+[]][+[]][+!+[]+!+[]];
    67 var second =(![]+[])[+[]]+(![]+[])[+!+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]];
    69 print(first + " " + second);

mercurial