11510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org// Copyright 2013 the V8 project authors. All rights reserved.
21510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org// Copyright (C) 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserved.
31510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org//
41510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org// Redistribution and use in source and binary forms, with or without
51510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org// modification, are permitted provided that the following conditions
61510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org// are met:
71510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org// 1.  Redistributions of source code must retain the above copyright
81510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org//     notice, this list of conditions and the following disclaimer.
91510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org// 2.  Redistributions in binary form must reproduce the above copyright
101510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org//     notice, this list of conditions and the following disclaimer in the
111510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org//     documentation and/or other materials provided with the distribution.
121510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org//
131510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org// THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
141510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
151510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
161510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org// DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
171510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
181510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
191510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
201510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
211510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
221510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
231510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org
241510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.orgdescription(
251510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org"This test checks that toString() round-trip on a function that has a expression of form 4..x does not lose its meaning."
261510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org+ " The expression accesses the property 'x' from number '4'."
271510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org);
281510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org
291510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org// construct same test-case for different kinds of number literals. the switch is used to avoid
301510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org// individual returns getting optimized away (if the interpreter would do dead code elimination)
311510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org
321510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org// testcase for number literal with decimal point, i.e '4.'
331510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.orgfunction f1(a) {
341510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    switch(a) {
351510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "member":
361510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4..x;
371510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "arrayget":
381510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4.["x"];
391510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "constr":
401510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4.();
411510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "funccall":
421510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4..f();
431510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "parenfunccall":
441510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return (4..x)();
451510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "assignment":
461510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4..x = 33;
471510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "assignment2":
481510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4..x >>>= 1;
491510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "prefix":
501510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return ++4..x;
511510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "postfix":
521510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4..x++;
531510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org   case "delete":
541510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        delete 4..x;
551510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4..x;
561510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    }
571510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org
581510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    return 0;
591510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org}
601510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org
611510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org// '4. .'
621510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.orgfunction f2(a) {
631510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    switch(a) {
641510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "member":
651510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4. .x;
661510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "arrayget":
671510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4. ["x"];
681510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "constr":
691510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4.();
701510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "funccall":
711510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4. .f();
721510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "parenfunccall":
731510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return (4. .x)();
741510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "assignment":
751510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4. .x = 33;
761510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "assignment2":
771510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4. .x >>>= 1;
781510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "prefix":
791510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return ++4. .x;
801510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "postfix":
811510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4. .x++;
821510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "delete":
831510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        delete 4. .x;
841510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4. .x;
851510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    }
861510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org
871510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    return 0;
881510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org}
891510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org
901510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org// '4e20'
911510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.orgfunction f2(a) {
921510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    switch(a) {
931510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "member":
941510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4e20.x;
951510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "arrayget":
961510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4e20["x"];
971510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "constr":
981510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4e20();
991510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "funccall":
1001510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4e20.f();
1011510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "parenfunccall":
1021510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return (4e20.x)();
1031510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "assignment":
1041510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4e20.x = 33;
1051510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "assignment2":
1061510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4e20.x >>>= 1;
1071510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "prefix":
1081510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return ++4e20.x;
1091510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "postfix":
1101510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4e20.x++;
1111510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "delete":
1121510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        delete 4e20.x;
1131510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4e20.x;
1141510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    }
1151510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org
1161510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    return 0;
1171510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org}
1181510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org
1191510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org// '4.1e-20'
1201510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.orgfunction f3(a) {
1211510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    switch(a) {
1221510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "member":
1231510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4.1e-20.x;
1241510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "arrayget":
1251510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4.1e-20["x"];
1261510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "constr":
1271510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4.1e-20();
1281510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "funccall":
1291510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4.1e-20.f();
1301510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "parenfunccall":
1311510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return (4.1e-20.x)();
1321510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "assignment":
1331510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4.1e-20.x = 33;
1341510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "assignment2":
1351510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4.1e-20.x >>>= 1;
1361510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "prefix":
1371510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return ++4.1e-20.x;
1381510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "postfix":
1391510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4.1e-20.x++;
1401510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org   case "delete":
1411510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        delete 4.1e-20.x;
1421510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4.1e-20.x;
1431510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    }
1441510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org
1451510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    return 0;
1461510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org}
1471510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org
1481510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org// '4'
1491510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.orgfunction f4(a) {
1501510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    switch(a) {
1511510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "member":
1521510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4 .x;
1531510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "arrayget":
1541510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4["x"];
1551510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "constr":
1561510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4();
1571510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "funccall":
1581510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4 .f();
1591510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "parenfunccall":
1601510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return (4 .x)();
1611510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "assignment":
1621510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4 .x = 33;
1631510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "assignment2":
1641510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4 .x >>>= 1;
1651510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "prefix":
1661510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return ++4 .x;
1671510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "postfix":
1681510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4 .x++;
1691510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "delete":
1701510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        delete 4 .x;
1711510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return 4 .x;
1721510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org
1731510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    }
1741510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org
1751510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    return 0;
1761510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org}
1771510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org
1781510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org// '(4)'
1791510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.orgfunction f5(a) {
1801510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    switch(a) {
1811510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "member":
1821510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return (4).x;
1831510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "arrayget":
1841510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return (4)["x"];
1851510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "constr":
1861510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return (4)();
1871510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "funccall":
1881510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return (4).f();
1891510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "parenfunccall":
1901510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return ((4).x)();
1911510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "assignment":
1921510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return (4).x = 33;
1931510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "assignment2":
1941510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return (4).x >>>= 1;
1951510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "prefix":
1961510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return ++(4).x;
1971510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "postfix":
1981510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return (4).x++;
1991510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    case "delete":
2001510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        delete (4).x;
2011510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org        return (4).x;
2021510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    }
2031510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org
2041510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    return 0;
2051510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org}
2061510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.orgunevalf = function(x) { return '(' + x.toString() + ')'; };
2071510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org
2081510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.orgfunction testToString(fn)
2091510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org{
2101510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    shouldBe("unevalf(eval(unevalf(" + fn + ")))", "unevalf(" + fn + ")");
2111510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org}
2121510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org
2131510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.orgfor(var i = 1; i < 6; ++i)
2141510d58cbcf57c82a10e7d390bfe21a7ae68ba43mstarzinger@chromium.org    testToString("f" + i);
215