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 2873 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2884 }; | 2884 }; |
2885 | 2885 |
2886 // The test is quite slow, so run it with a reduced set of flags. | 2886 // The test is quite slow, so run it with a reduced set of flags. |
2887 static const ParserFlag empty_flags[] = {kAllowLazy}; | 2887 static const ParserFlag empty_flags[] = {kAllowLazy}; |
2888 RunParserSyncTest(context_data, statement_data, kError, empty_flags, 1); | 2888 RunParserSyncTest(context_data, statement_data, kError, empty_flags, 1); |
2889 } | 2889 } |
2890 | 2890 |
2891 | 2891 |
2892 TEST(StrictDelete) { | 2892 TEST(StrictDelete) { |
2893 // "delete <Identifier>" is not allowed in strict mode. | 2893 // "delete <Identifier>" is not allowed in strict mode. |
2894 const char* strict_context_data[][2] = { | 2894 const char* strong_context_data[][2] = { |
2895 {"\"use strict\"; ", ""}, | |
2896 {"\"use strong\"; ", ""}, | 2895 {"\"use strong\"; ", ""}, |
2897 { NULL, NULL } | 2896 { NULL, NULL } |
2898 }; | 2897 }; |
2899 | 2898 |
| 2899 const char* strict_context_data[][2] = { |
| 2900 {"\"use strict\"; ", ""}, |
| 2901 { NULL, NULL } |
| 2902 }; |
| 2903 |
2900 const char* sloppy_context_data[][2] = { | 2904 const char* sloppy_context_data[][2] = { |
2901 {"", ""}, | 2905 {"", ""}, |
2902 { NULL, NULL } | 2906 { NULL, NULL } |
2903 }; | 2907 }; |
2904 | 2908 |
2905 // These are errors in the strict mode. | 2909 // These are errors in the strict mode. |
2906 const char* sloppy_statement_data[] = { | 2910 const char* sloppy_statement_data[] = { |
2907 "delete foo;", | 2911 "delete foo;", |
2908 "delete foo + 1;", | 2912 "delete foo + 1;", |
2909 "delete (foo);", | 2913 "delete (foo);", |
(...skipping 17 matching lines...) Expand all Loading... |
2927 NULL | 2931 NULL |
2928 }; | 2932 }; |
2929 | 2933 |
2930 // These are always errors | 2934 // These are always errors |
2931 const char* bad_statement_data[] = { | 2935 const char* bad_statement_data[] = { |
2932 "delete if;", | 2936 "delete if;", |
2933 NULL | 2937 NULL |
2934 }; | 2938 }; |
2935 | 2939 |
2936 static const ParserFlag always_flags[] = {kAllowStrongMode}; | 2940 static const ParserFlag always_flags[] = {kAllowStrongMode}; |
| 2941 RunParserSyncTest(strong_context_data, sloppy_statement_data, kError, NULL, 0, |
| 2942 always_flags, arraysize(always_flags)); |
2937 RunParserSyncTest(strict_context_data, sloppy_statement_data, kError, NULL, 0, | 2943 RunParserSyncTest(strict_context_data, sloppy_statement_data, kError, NULL, 0, |
2938 always_flags, arraysize(always_flags)); | 2944 always_flags, arraysize(always_flags)); |
2939 RunParserSyncTest(sloppy_context_data, sloppy_statement_data, kSuccess, NULL, | 2945 RunParserSyncTest(sloppy_context_data, sloppy_statement_data, kSuccess, NULL, |
2940 0, always_flags, arraysize(always_flags)); | 2946 0, always_flags, arraysize(always_flags)); |
2941 | 2947 |
| 2948 RunParserSyncTest(strong_context_data, good_statement_data, kError, NULL, 0, |
| 2949 always_flags, arraysize(always_flags)); |
2942 RunParserSyncTest(strict_context_data, good_statement_data, kSuccess, NULL, 0, | 2950 RunParserSyncTest(strict_context_data, good_statement_data, kSuccess, NULL, 0, |
2943 always_flags, arraysize(always_flags)); | 2951 always_flags, arraysize(always_flags)); |
2944 RunParserSyncTest(sloppy_context_data, good_statement_data, kSuccess, NULL, 0, | 2952 RunParserSyncTest(sloppy_context_data, good_statement_data, kSuccess, NULL, 0, |
2945 always_flags, arraysize(always_flags)); | 2953 always_flags, arraysize(always_flags)); |
2946 | 2954 |
| 2955 RunParserSyncTest(strong_context_data, bad_statement_data, kError, NULL, 0, |
| 2956 always_flags, arraysize(always_flags)); |
2947 RunParserSyncTest(strict_context_data, bad_statement_data, kError, NULL, 0, | 2957 RunParserSyncTest(strict_context_data, bad_statement_data, kError, NULL, 0, |
2948 always_flags, arraysize(always_flags)); | 2958 always_flags, arraysize(always_flags)); |
2949 RunParserSyncTest(sloppy_context_data, bad_statement_data, kError, NULL, 0, | 2959 RunParserSyncTest(sloppy_context_data, bad_statement_data, kError, NULL, 0, |
2950 always_flags, arraysize(always_flags)); | 2960 always_flags, arraysize(always_flags)); |
2951 } | 2961 } |
2952 | 2962 |
2953 | 2963 |
2954 TEST(InvalidLeftHandSide) { | 2964 TEST(InvalidLeftHandSide) { |
2955 const char* assignment_context_data[][2] = { | 2965 const char* assignment_context_data[][2] = { |
2956 {"", " = 1;"}, | 2966 {"", " = 1;"}, |
(...skipping 2543 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5500 always_flags, arraysize(always_flags)); | 5510 always_flags, arraysize(always_flags)); |
5501 RunParserSyncTest(strict_context_data, let_declarations, kSuccess, NULL, 0, | 5511 RunParserSyncTest(strict_context_data, let_declarations, kSuccess, NULL, 0, |
5502 always_flags, arraysize(always_flags)); | 5512 always_flags, arraysize(always_flags)); |
5503 | 5513 |
5504 RunParserSyncTest(sloppy_context_data, var_declarations, kSuccess, NULL, 0, | 5514 RunParserSyncTest(sloppy_context_data, var_declarations, kSuccess, NULL, 0, |
5505 always_flags, arraysize(always_flags)); | 5515 always_flags, arraysize(always_flags)); |
5506 // At the moment, let declarations are only available in strict mode. | 5516 // At the moment, let declarations are only available in strict mode. |
5507 RunParserSyncTest(sloppy_context_data, let_declarations, kError, NULL, 0, | 5517 RunParserSyncTest(sloppy_context_data, let_declarations, kError, NULL, 0, |
5508 always_flags, arraysize(always_flags)); | 5518 always_flags, arraysize(always_flags)); |
5509 } | 5519 } |
OLD | NEW |