| OLD | NEW | 
|---|
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. | 
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without | 
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are | 
| 4 // met: | 4 // met: | 
| 5 // | 5 // | 
| 6 //     * Redistributions of source code must retain the above copyright | 6 //     * Redistributions of source code must retain the above copyright | 
| 7 //       notice, this list of conditions and the following disclaimer. | 7 //       notice, this list of conditions and the following disclaimer. | 
| 8 //     * Redistributions in binary form must reproduce the above | 8 //     * Redistributions in binary form must reproduce the above | 
| 9 //       copyright notice, this list of conditions and the following | 9 //       copyright notice, this list of conditions and the following | 
| 10 //       disclaimer in the documentation and/or other materials provided | 10 //       disclaimer in the documentation and/or other materials provided | 
| (...skipping 1731 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1742     "++super;", | 1742     "++super;", | 
| 1743     "super++;", | 1743     "super++;", | 
| 1744     "function foo super", | 1744     "function foo super", | 
| 1745     NULL | 1745     NULL | 
| 1746   }; | 1746   }; | 
| 1747 | 1747 | 
| 1748   RunParserSyncTest(context_data, statement_data, kError); | 1748   RunParserSyncTest(context_data, statement_data, kError); | 
| 1749 } | 1749 } | 
| 1750 | 1750 | 
| 1751 | 1751 | 
|  | 1752 TEST(NoErrorsLetSloppyAllModes) { | 
|  | 1753   // In sloppy mode, it's okay to use "let" as identifier. | 
|  | 1754   const char* context_data[][2] = { | 
|  | 1755     { "", "" }, | 
|  | 1756     { "function f() {", "}" }, | 
|  | 1757     { "(function f() {", "})" }, | 
|  | 1758     { NULL, NULL } | 
|  | 1759   }; | 
|  | 1760 | 
|  | 1761   const char* statement_data[] = { | 
|  | 1762     "var let;", | 
|  | 1763     "var foo, let;", | 
|  | 1764     "try { } catch (let) { }", | 
|  | 1765     "function let() { }", | 
|  | 1766     "(function let() { })", | 
|  | 1767     "function foo(let) { }", | 
|  | 1768     "function foo(bar, let) { }", | 
|  | 1769     "let = 1;", | 
|  | 1770     "var foo = let = 1;", | 
|  | 1771     "let * 2;", | 
|  | 1772     "++let;", | 
|  | 1773     "let++;", | 
|  | 1774     "let: 34", | 
|  | 1775     "function let(let) { let: let(let + let(0)); }", | 
|  | 1776     "({ let: 1 })", | 
|  | 1777     "({ get let() { 1 } })", | 
|  | 1778     "let(100)", | 
|  | 1779     NULL | 
|  | 1780   }; | 
|  | 1781 | 
|  | 1782   RunParserSyncTest(context_data, statement_data, kSuccess); | 
|  | 1783 } | 
|  | 1784 | 
|  | 1785 | 
| 1752 TEST(NoErrorsYieldSloppyAllModes) { | 1786 TEST(NoErrorsYieldSloppyAllModes) { | 
| 1753   // In sloppy mode, it's okay to use "yield" as identifier, *except* inside a | 1787   // In sloppy mode, it's okay to use "yield" as identifier, *except* inside a | 
| 1754   // generator (see next test). | 1788   // generator (see other test). | 
| 1755   const char* context_data[][2] = { | 1789   const char* context_data[][2] = { | 
| 1756     { "", "" }, | 1790     { "", "" }, | 
| 1757     { "function not_gen() {", "}" }, | 1791     { "function not_gen() {", "}" }, | 
| 1758     { "(function not_gen() {", "})" }, | 1792     { "(function not_gen() {", "})" }, | 
| 1759     { NULL, NULL } | 1793     { NULL, NULL } | 
| 1760   }; | 1794   }; | 
| 1761 | 1795 | 
| 1762   const char* statement_data[] = { | 1796   const char* statement_data[] = { | 
| 1763     "var yield;", | 1797     "var yield;", | 
| 1764     "var foo, yield;", | 1798     "var foo, yield;", | 
| 1765     "try { } catch (yield) { }", | 1799     "try { } catch (yield) { }", | 
| 1766     "function yield() { }", | 1800     "function yield() { }", | 
| 1767     "(function yield() { })", | 1801     "(function yield() { })", | 
| 1768     "function foo(yield) { }", | 1802     "function foo(yield) { }", | 
| 1769     "function foo(bar, yield) { }", | 1803     "function foo(bar, yield) { }", | 
| 1770     "yield = 1;", | 1804     "yield = 1;", | 
| 1771     "var foo = yield = 1;", | 1805     "var foo = yield = 1;", | 
|  | 1806     "yield * 2;", | 
| 1772     "++yield;", | 1807     "++yield;", | 
| 1773     "yield++;", | 1808     "yield++;", | 
| 1774     "yield: 34", | 1809     "yield: 34", | 
| 1775     "function yield(yield) { yield: yield (yield + yield (0)); }", | 1810     "function yield(yield) { yield: yield (yield + yield(0)); }", | 
| 1776     "({ yield: 1 })", | 1811     "({ yield: 1 })", | 
| 1777     "({ get yield() { 1 } })", | 1812     "({ get yield() { 1 } })", | 
| 1778     "yield (100)", | 1813     "yield(100)", | 
|  | 1814     "yield[100]", | 
| 1779     NULL | 1815     NULL | 
| 1780   }; | 1816   }; | 
| 1781 | 1817 | 
| 1782   static const ParserFlag always_flags[] = {kAllowArrowFunctions}; | 1818   RunParserSyncTest(context_data, statement_data, kSuccess); | 
| 1783   RunParserSyncTest(context_data, statement_data, kSuccess, NULL, 0, |  | 
| 1784                     always_flags, ARRAY_SIZE(always_flags)); |  | 
| 1785 } | 1819 } | 
| 1786 | 1820 | 
| 1787 | 1821 | 
| 1788 TEST(NoErrorsYieldSloppyGeneratorsEnabled) { | 1822 TEST(NoErrorsYieldSloppyGeneratorsEnabled) { | 
| 1789   // In sloppy mode, it's okay to use "yield" as identifier, *except* inside a | 1823   // In sloppy mode, it's okay to use "yield" as identifier, *except* inside a | 
| 1790   // generator (see next test). | 1824   // generator (see next test). | 
| 1791   const char* context_data[][2] = { | 1825   const char* context_data[][2] = { | 
| 1792     { "", "" }, | 1826     { "", "" }, | 
| 1793     { "function not_gen() {", "}" }, | 1827     { "function not_gen() {", "}" }, | 
| 1794     { "function * gen() { function not_gen() {", "} }" }, | 1828     { "function * gen() { function not_gen() {", "} }" }, | 
| 1795     { "(function not_gen() {", "})" }, | 1829     { "(function not_gen() {", "})" }, | 
| 1796     { "(function * gen() { (function not_gen() {", "}) })" }, | 1830     { "(function * gen() { (function not_gen() {", "}) })" }, | 
| 1797     { NULL, NULL } | 1831     { NULL, NULL } | 
| 1798   }; | 1832   }; | 
| 1799 | 1833 | 
| 1800   const char* statement_data[] = { | 1834   const char* statement_data[] = { | 
| 1801     "var yield;", | 1835     "var yield;", | 
| 1802     "var foo, yield;", | 1836     "var foo, yield;", | 
| 1803     "try { } catch (yield) { }", | 1837     "try { } catch (yield) { }", | 
| 1804     "function yield() { }", | 1838     "function yield() { }", | 
| 1805     "(function yield() { })", | 1839     "(function yield() { })", | 
| 1806     "function foo(yield) { }", | 1840     "function foo(yield) { }", | 
| 1807     "function foo(bar, yield) { }", | 1841     "function foo(bar, yield) { }", | 
| 1808     "function * yield() { }", | 1842     "function * yield() { }", | 
| 1809     "(function * yield() { })", | 1843     "(function * yield() { })", | 
| 1810     "yield = 1;", | 1844     "yield = 1;", | 
| 1811     "var foo = yield = 1;", | 1845     "var foo = yield = 1;", | 
|  | 1846     "yield * 2;", | 
| 1812     "++yield;", | 1847     "++yield;", | 
| 1813     "yield++;", | 1848     "yield++;", | 
| 1814     "yield: 34", | 1849     "yield: 34", | 
| 1815     "function yield(yield) { yield: yield (yield + yield (0)); }", | 1850     "function yield(yield) { yield: yield (yield + yield(0)); }", | 
| 1816     "({ yield: 1 })", | 1851     "({ yield: 1 })", | 
| 1817     "({ get yield() { 1 } })", | 1852     "({ get yield() { 1 } })", | 
| 1818     "yield (100)", | 1853     "yield(100)", | 
|  | 1854     "yield[100]", | 
| 1819     NULL | 1855     NULL | 
| 1820   }; | 1856   }; | 
| 1821 | 1857 | 
| 1822   // This test requires kAllowGenerators to succeed. | 1858   // This test requires kAllowGenerators to succeed. | 
| 1823   static const ParserFlag always_true_flags[] = { | 1859   static const ParserFlag always_true_flags[] = { kAllowGenerators }; | 
| 1824     kAllowGenerators |  | 
| 1825   }; |  | 
| 1826   RunParserSyncTest(context_data, statement_data, kSuccess, NULL, 0, | 1860   RunParserSyncTest(context_data, statement_data, kSuccess, NULL, 0, | 
| 1827                     always_true_flags, 1); | 1861                     always_true_flags, 1); | 
| 1828 } | 1862 } | 
| 1829 | 1863 | 
| 1830 | 1864 | 
| 1831 TEST(ErrorsYieldStrict) { | 1865 TEST(ErrorsYieldStrict) { | 
| 1832   const char* context_data[][2] = { | 1866   const char* context_data[][2] = { | 
| 1833     { "\"use strict\";", "" }, | 1867     { "\"use strict\";", "" }, | 
| 1834     { "\"use strict\"; function not_gen() {", "}" }, | 1868     { "\"use strict\"; function not_gen() {", "}" }, | 
| 1835     { "function test_func() {\"use strict\"; ", "}"}, | 1869     { "function test_func() {\"use strict\"; ", "}"}, | 
| (...skipping 1265 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 3101 | 3135 | 
| 3102     // Arrow has more precedence, this is the same as: foo ? bar : (baz = {}) | 3136     // Arrow has more precedence, this is the same as: foo ? bar : (baz = {}) | 
| 3103     "foo ? bar : baz => {}", | 3137     "foo ? bar : baz => {}", | 
| 3104     NULL | 3138     NULL | 
| 3105   }; | 3139   }; | 
| 3106 | 3140 | 
| 3107   static const ParserFlag always_flags[] = {kAllowArrowFunctions}; | 3141   static const ParserFlag always_flags[] = {kAllowArrowFunctions}; | 
| 3108   RunParserSyncTest(context_data, statement_data, kSuccess, NULL, 0, | 3142   RunParserSyncTest(context_data, statement_data, kSuccess, NULL, 0, | 
| 3109                     always_flags, ARRAY_SIZE(always_flags)); | 3143                     always_flags, ARRAY_SIZE(always_flags)); | 
| 3110 } | 3144 } | 
| OLD | NEW | 
|---|