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