Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Side by Side Diff: test/cctest/test-decls.cc

Issue 1007783002: Remove --harmony-scoping flag. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: CR feedback Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « test/cctest/test-debug.cc ('k') | test/cctest/test-parsing.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2007-2008 the V8 project authors. All rights reserved. 1 // Copyright 2007-2008 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 619 matching lines...) Expand 10 before | Expand all | Expand 10 after
630 EXPECT_RESULT, Number::New(isolate, 1)); 630 EXPECT_RESULT, Number::New(isolate, 1));
631 context.Check("this.x", 631 context.Check("this.x",
632 EXPECT_RESULT, Number::New(isolate, 1)); 632 EXPECT_RESULT, Number::New(isolate, 1));
633 context.Check("function x() { return 7 }; x", 633 context.Check("function x() { return 7 }; x",
634 EXPECT_EXCEPTION); 634 EXPECT_EXCEPTION);
635 } 635 }
636 } 636 }
637 637
638 638
639 TEST(CrossScriptReferences_Simple) { 639 TEST(CrossScriptReferences_Simple) {
640 i::FLAG_harmony_scoping = true;
641 i::FLAG_use_strict = true; 640 i::FLAG_use_strict = true;
642 641
643 v8::Isolate* isolate = CcTest::isolate(); 642 v8::Isolate* isolate = CcTest::isolate();
644 HandleScope scope(isolate); 643 HandleScope scope(isolate);
645 644
646 { 645 {
647 SimpleContext context; 646 SimpleContext context;
648 context.Check("let x = 1; x", EXPECT_RESULT, Number::New(isolate, 1)); 647 context.Check("let x = 1; x", EXPECT_RESULT, Number::New(isolate, 1));
649 context.Check("let x = 5; x", EXPECT_EXCEPTION); 648 context.Check("let x = 5; x", EXPECT_EXCEPTION);
650 } 649 }
651 } 650 }
652 651
653 652
654 TEST(CrossScriptReferences_Simple2) { 653 TEST(CrossScriptReferences_Simple2) {
655 i::FLAG_harmony_scoping = true;
656 i::FLAG_use_strict = true; 654 i::FLAG_use_strict = true;
657 655
658 v8::Isolate* isolate = CcTest::isolate(); 656 v8::Isolate* isolate = CcTest::isolate();
659 HandleScope scope(isolate); 657 HandleScope scope(isolate);
660 658
661 for (int k = 0; k < 100; k++) { 659 for (int k = 0; k < 100; k++) {
662 SimpleContext context; 660 SimpleContext context;
663 bool cond = (k % 2) == 0; 661 bool cond = (k % 2) == 0;
664 if (cond) { 662 if (cond) {
665 context.Check("let x = 1; x", EXPECT_RESULT, Number::New(isolate, 1)); 663 context.Check("let x = 1; x", EXPECT_RESULT, Number::New(isolate, 1));
666 context.Check("let z = 4; z", EXPECT_RESULT, Number::New(isolate, 4)); 664 context.Check("let z = 4; z", EXPECT_RESULT, Number::New(isolate, 4));
667 } else { 665 } else {
668 context.Check("let z = 1; z", EXPECT_RESULT, Number::New(isolate, 1)); 666 context.Check("let z = 1; z", EXPECT_RESULT, Number::New(isolate, 1));
669 context.Check("let x = 4; x", EXPECT_RESULT, Number::New(isolate, 4)); 667 context.Check("let x = 4; x", EXPECT_RESULT, Number::New(isolate, 4));
670 } 668 }
671 context.Check("let y = 2; x", EXPECT_RESULT, 669 context.Check("let y = 2; x", EXPECT_RESULT,
672 Number::New(isolate, cond ? 1 : 4)); 670 Number::New(isolate, cond ? 1 : 4));
673 } 671 }
674 } 672 }
675 673
676 674
677 TEST(CrossScriptReferencesHarmony) { 675 TEST(CrossScriptReferencesHarmony) {
678 i::FLAG_harmony_scoping = true;
679
680 v8::Isolate* isolate = CcTest::isolate(); 676 v8::Isolate* isolate = CcTest::isolate();
681 HandleScope scope(isolate); 677 HandleScope scope(isolate);
682 678
683 // Check that simple cross-script global scope access works. 679 // Check that simple cross-script global scope access works.
684 const char* decs[] = { 680 const char* decs[] = {
685 "'use strict'; var x = 1; x", "x", 681 "'use strict'; var x = 1; x", "x",
686 "'use strict'; function x() { return 1 }; x()", "x()", 682 "'use strict'; function x() { return 1 }; x()", "x()",
687 "'use strict'; let x = 1; x", "x", 683 "'use strict'; let x = 1; x", "x",
688 "'use strict'; const x = 1; x", "x", 684 "'use strict'; const x = 1; x", "x",
689 NULL 685 NULL
(...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after
812 EXPECT_RESULT, Number::New(isolate, 0)); 808 EXPECT_RESULT, Number::New(isolate, 0));
813 context.Check(script1, 809 context.Check(script1,
814 EXPECT_RESULT, Number::New(isolate, 4)); 810 EXPECT_RESULT, Number::New(isolate, 4));
815 context.Check(script2, 811 context.Check(script2,
816 EXPECT_RESULT, Number::New(isolate, 5)); 812 EXPECT_RESULT, Number::New(isolate, 5));
817 } 813 }
818 } 814 }
819 815
820 816
821 TEST(CrossScriptReferencesHarmonyRegress) { 817 TEST(CrossScriptReferencesHarmonyRegress) {
822 i::FLAG_harmony_scoping = true;
823 v8::Isolate* isolate = CcTest::isolate(); 818 v8::Isolate* isolate = CcTest::isolate();
824 HandleScope scope(isolate); 819 HandleScope scope(isolate);
825 SimpleContext context; 820 SimpleContext context;
826 context.Check( 821 context.Check(
827 "'use strict';" 822 "'use strict';"
828 "function i1() { " 823 "function i1() { "
829 " let y = 10; return (typeof x2 === 'undefined' ? 0 : 2) + y" 824 " let y = 10; return (typeof x2 === 'undefined' ? 0 : 2) + y"
830 "}" 825 "}"
831 "i1();" 826 "i1();"
832 "i1();", 827 "i1();",
833 EXPECT_RESULT, Number::New(isolate, 10)); 828 EXPECT_RESULT, Number::New(isolate, 10));
834 context.Check( 829 context.Check(
835 "'use strict';" 830 "'use strict';"
836 "let x2 = 2; i1();", 831 "let x2 = 2; i1();",
837 EXPECT_RESULT, Number::New(isolate, 12)); 832 EXPECT_RESULT, Number::New(isolate, 12));
838 } 833 }
839 834
840 835
841 TEST(GlobalLexicalOSR) { 836 TEST(GlobalLexicalOSR) {
842 i::FLAG_use_strict = true; 837 i::FLAG_use_strict = true;
843 i::FLAG_harmony_scoping = true;
844 838
845 v8::Isolate* isolate = CcTest::isolate(); 839 v8::Isolate* isolate = CcTest::isolate();
846 HandleScope scope(isolate); 840 HandleScope scope(isolate);
847 SimpleContext context; 841 SimpleContext context;
848 842
849 context.Check("'use strict';" 843 context.Check("'use strict';"
850 "let x = 1; x;", 844 "let x = 1; x;",
851 EXPECT_RESULT, Number::New(isolate, 1)); 845 EXPECT_RESULT, Number::New(isolate, 1));
852 context.Check("'use strict';" 846 context.Check("'use strict';"
853 "let y = 2*x;" 847 "let y = 2*x;"
854 "++x;" 848 "++x;"
855 "let z = 0;" 849 "let z = 0;"
856 "const limit = 100000;" 850 "const limit = 100000;"
857 "for (var i = 0; i < limit; ++i) {" 851 "for (var i = 0; i < limit; ++i) {"
858 " z += x + y;" 852 " z += x + y;"
859 "}" 853 "}"
860 "z;", 854 "z;",
861 EXPECT_RESULT, Number::New(isolate, 400000)); 855 EXPECT_RESULT, Number::New(isolate, 400000));
862 } 856 }
863 857
864 858
865 TEST(CrossScriptConflicts) { 859 TEST(CrossScriptConflicts) {
866 i::FLAG_use_strict = true; 860 i::FLAG_use_strict = true;
867 i::FLAG_harmony_scoping = true;
868 861
869 HandleScope scope(CcTest::isolate()); 862 HandleScope scope(CcTest::isolate());
870 863
871 const char* firsts[] = { 864 const char* firsts[] = {
872 "var x = 1; x", 865 "var x = 1; x",
873 "function x() { return 1 }; x()", 866 "function x() { return 1 }; x()",
874 "let x = 1; x", 867 "let x = 1; x",
875 "const x = 1; x", 868 "const x = 1; x",
876 NULL 869 NULL
877 }; 870 };
(...skipping 15 matching lines...) Expand all
893 if (success_case) success_result = Number::New(CcTest::isolate(), 2); 886 if (success_case) success_result = Number::New(CcTest::isolate(), 2);
894 887
895 context.Check(seconds[j], success_case ? EXPECT_RESULT : EXPECT_EXCEPTION, 888 context.Check(seconds[j], success_case ? EXPECT_RESULT : EXPECT_EXCEPTION,
896 success_result); 889 success_result);
897 } 890 }
898 } 891 }
899 } 892 }
900 893
901 894
902 TEST(CrossScriptDynamicLookup) { 895 TEST(CrossScriptDynamicLookup) {
903 i::FLAG_harmony_scoping = true;
904
905 HandleScope handle_scope(CcTest::isolate()); 896 HandleScope handle_scope(CcTest::isolate());
906 897
907 { 898 {
908 SimpleContext context; 899 SimpleContext context;
909 Local<String> undefined_string = String::NewFromUtf8( 900 Local<String> undefined_string = String::NewFromUtf8(
910 CcTest::isolate(), "undefined", String::kInternalizedString); 901 CcTest::isolate(), "undefined", String::kInternalizedString);
911 Local<String> number_string = String::NewFromUtf8( 902 Local<String> number_string = String::NewFromUtf8(
912 CcTest::isolate(), "number", String::kInternalizedString); 903 CcTest::isolate(), "number", String::kInternalizedString);
913 904
914 context.Check( 905 context.Check(
(...skipping 11 matching lines...) Expand all
926 "'use strict';" 917 "'use strict';"
927 "g({});0", 918 "g({});0",
928 EXPECT_RESULT, Number::New(CcTest::isolate(), 0)); 919 EXPECT_RESULT, Number::New(CcTest::isolate(), 0));
929 context.Check("f({})", EXPECT_RESULT, Number::New(CcTest::isolate(), 15)); 920 context.Check("f({})", EXPECT_RESULT, Number::New(CcTest::isolate(), 15));
930 context.Check("h({})", EXPECT_RESULT, number_string); 921 context.Check("h({})", EXPECT_RESULT, number_string);
931 } 922 }
932 } 923 }
933 924
934 925
935 TEST(CrossScriptGlobal) { 926 TEST(CrossScriptGlobal) {
936 i::FLAG_harmony_scoping = true;
937
938 HandleScope handle_scope(CcTest::isolate()); 927 HandleScope handle_scope(CcTest::isolate());
939 { 928 {
940 SimpleContext context; 929 SimpleContext context;
941 930
942 context.Check( 931 context.Check(
943 "var global = this;" 932 "var global = this;"
944 "global.x = 255;" 933 "global.x = 255;"
945 "x", 934 "x",
946 EXPECT_RESULT, Number::New(CcTest::isolate(), 255)); 935 EXPECT_RESULT, Number::New(CcTest::isolate(), 255));
947 context.Check( 936 context.Check(
(...skipping 22 matching lines...) Expand all
970 context.Check( 959 context.Check(
971 "'use strict';" 960 "'use strict';"
972 "const konst = 255;" 961 "const konst = 255;"
973 "f()", 962 "f()",
974 EXPECT_EXCEPTION); 963 EXPECT_EXCEPTION);
975 } 964 }
976 } 965 }
977 966
978 967
979 TEST(CrossScriptStaticLookupUndeclared) { 968 TEST(CrossScriptStaticLookupUndeclared) {
980 i::FLAG_harmony_scoping = true;
981
982 HandleScope handle_scope(CcTest::isolate()); 969 HandleScope handle_scope(CcTest::isolate());
983 970
984 { 971 {
985 SimpleContext context; 972 SimpleContext context;
986 Local<String> undefined_string = String::NewFromUtf8( 973 Local<String> undefined_string = String::NewFromUtf8(
987 CcTest::isolate(), "undefined", String::kInternalizedString); 974 CcTest::isolate(), "undefined", String::kInternalizedString);
988 Local<String> number_string = String::NewFromUtf8( 975 Local<String> number_string = String::NewFromUtf8(
989 CcTest::isolate(), "number", String::kInternalizedString); 976 CcTest::isolate(), "number", String::kInternalizedString);
990 977
991 context.Check( 978 context.Check(
(...skipping 12 matching lines...) Expand all
1004 "g(15);x", 991 "g(15);x",
1005 EXPECT_RESULT, Number::New(CcTest::isolate(), 15)); 992 EXPECT_RESULT, Number::New(CcTest::isolate(), 15));
1006 context.Check("h({})", EXPECT_RESULT, number_string); 993 context.Check("h({})", EXPECT_RESULT, number_string);
1007 context.Check("f({})", EXPECT_RESULT, Number::New(CcTest::isolate(), 15)); 994 context.Check("f({})", EXPECT_RESULT, Number::New(CcTest::isolate(), 15));
1008 context.Check("h({})", EXPECT_RESULT, number_string); 995 context.Check("h({})", EXPECT_RESULT, number_string);
1009 } 996 }
1010 } 997 }
1011 998
1012 999
1013 TEST(CrossScriptLoadICs) { 1000 TEST(CrossScriptLoadICs) {
1014 i::FLAG_harmony_scoping = true;
1015 i::FLAG_allow_natives_syntax = true; 1001 i::FLAG_allow_natives_syntax = true;
1016 1002
1017 HandleScope handle_scope(CcTest::isolate()); 1003 HandleScope handle_scope(CcTest::isolate());
1018 1004
1019 { 1005 {
1020 SimpleContext context; 1006 SimpleContext context;
1021 context.Check( 1007 context.Check(
1022 "x = 15;" 1008 "x = 15;"
1023 "function f() { return x; }" 1009 "function f() { return x; }"
1024 "function g() { return x; }" 1010 "function g() { return x; }"
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1060 for (int k = 0; k < 3; k++) { 1046 for (int k = 0; k < 3; k++) {
1061 context.Check("f()", EXPECT_RESULT, Number::New(CcTest::isolate(), 5)); 1047 context.Check("f()", EXPECT_RESULT, Number::New(CcTest::isolate(), 5));
1062 } 1048 }
1063 context.Check("%OptimizeFunctionOnNextCall(f); f()", EXPECT_RESULT, 1049 context.Check("%OptimizeFunctionOnNextCall(f); f()", EXPECT_RESULT,
1064 Number::New(CcTest::isolate(), 5)); 1050 Number::New(CcTest::isolate(), 5));
1065 } 1051 }
1066 } 1052 }
1067 1053
1068 1054
1069 TEST(CrossScriptStoreICs) { 1055 TEST(CrossScriptStoreICs) {
1070 i::FLAG_harmony_scoping = true;
1071 i::FLAG_allow_natives_syntax = true; 1056 i::FLAG_allow_natives_syntax = true;
1072 1057
1073 HandleScope handle_scope(CcTest::isolate()); 1058 HandleScope handle_scope(CcTest::isolate());
1074 1059
1075 { 1060 {
1076 SimpleContext context; 1061 SimpleContext context;
1077 context.Check( 1062 context.Check(
1078 "var global = this;" 1063 "var global = this;"
1079 "x = 15;" 1064 "x = 15;"
1080 "function f(v) { x = v; }" 1065 "function f(v) { x = v; }"
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
1138 Number::New(CcTest::isolate(), 20)); 1123 Number::New(CcTest::isolate(), 20));
1139 context.Check("%OptimizeFunctionOnNextCall(f); f(41); x", EXPECT_RESULT, 1124 context.Check("%OptimizeFunctionOnNextCall(f); f(41); x", EXPECT_RESULT,
1140 Number::New(CcTest::isolate(), 41)); 1125 Number::New(CcTest::isolate(), 41));
1141 context.Check("global.x", EXPECT_RESULT, 1126 context.Check("global.x", EXPECT_RESULT,
1142 Number::New(CcTest::isolate(), 20)); 1127 Number::New(CcTest::isolate(), 20));
1143 } 1128 }
1144 } 1129 }
1145 1130
1146 1131
1147 TEST(CrossScriptAssignmentToConst) { 1132 TEST(CrossScriptAssignmentToConst) {
1148 i::FLAG_harmony_scoping = true;
1149 i::FLAG_allow_natives_syntax = true; 1133 i::FLAG_allow_natives_syntax = true;
1150 1134
1151 HandleScope handle_scope(CcTest::isolate()); 1135 HandleScope handle_scope(CcTest::isolate());
1152 1136
1153 { 1137 {
1154 SimpleContext context; 1138 SimpleContext context;
1155 1139
1156 context.Check("function f() { x = 27; }", EXPECT_RESULT, 1140 context.Check("function f() { x = 27; }", EXPECT_RESULT,
1157 Undefined(CcTest::isolate())); 1141 Undefined(CcTest::isolate()));
1158 context.Check("'use strict';const x = 1; x", EXPECT_RESULT, 1142 context.Check("'use strict';const x = 1; x", EXPECT_RESULT,
1159 Number::New(CcTest::isolate(), 1)); 1143 Number::New(CcTest::isolate(), 1));
1160 context.Check("f();", EXPECT_EXCEPTION); 1144 context.Check("f();", EXPECT_EXCEPTION);
1161 context.Check("x", EXPECT_RESULT, Number::New(CcTest::isolate(), 1)); 1145 context.Check("x", EXPECT_RESULT, Number::New(CcTest::isolate(), 1));
1162 context.Check("f();", EXPECT_EXCEPTION); 1146 context.Check("f();", EXPECT_EXCEPTION);
1163 context.Check("x", EXPECT_RESULT, Number::New(CcTest::isolate(), 1)); 1147 context.Check("x", EXPECT_RESULT, Number::New(CcTest::isolate(), 1));
1164 context.Check("%OptimizeFunctionOnNextCall(f);f();", EXPECT_EXCEPTION); 1148 context.Check("%OptimizeFunctionOnNextCall(f);f();", EXPECT_EXCEPTION);
1165 context.Check("x", EXPECT_RESULT, Number::New(CcTest::isolate(), 1)); 1149 context.Check("x", EXPECT_RESULT, Number::New(CcTest::isolate(), 1));
1166 } 1150 }
1167 } 1151 }
1168 1152
1169 1153
1170 TEST(Regress425510) { 1154 TEST(Regress425510) {
1171 i::FLAG_harmony_scoping = true;
1172 i::FLAG_allow_natives_syntax = true; 1155 i::FLAG_allow_natives_syntax = true;
1173 1156
1174 HandleScope handle_scope(CcTest::isolate()); 1157 HandleScope handle_scope(CcTest::isolate());
1175 1158
1176 { 1159 {
1177 SimpleContext context; 1160 SimpleContext context;
1178 1161
1179 context.Check("'use strict'; o; const o = 10", EXPECT_EXCEPTION); 1162 context.Check("'use strict'; o; const o = 10", EXPECT_EXCEPTION);
1180 1163
1181 for (int i = 0; i < 100; i++) { 1164 for (int i = 0; i < 100; i++) {
1182 context.Check("o.prototype", EXPECT_EXCEPTION); 1165 context.Check("o.prototype", EXPECT_EXCEPTION);
1183 } 1166 }
1184 } 1167 }
1185 } 1168 }
1186 1169
1187 1170
1188 TEST(Regress3941) { 1171 TEST(Regress3941) {
1189 i::FLAG_harmony_scoping = true;
1190 i::FLAG_allow_natives_syntax = true; 1172 i::FLAG_allow_natives_syntax = true;
1191 1173
1192 HandleScope handle_scope(CcTest::isolate()); 1174 HandleScope handle_scope(CcTest::isolate());
1193 1175
1194 { 1176 {
1195 SimpleContext context; 1177 SimpleContext context;
1196 context.Check("function f() { x = 1; }", EXPECT_RESULT, 1178 context.Check("function f() { x = 1; }", EXPECT_RESULT,
1197 Undefined(CcTest::isolate())); 1179 Undefined(CcTest::isolate()));
1198 context.Check("'use strict'; f(); let x = 2; x", EXPECT_EXCEPTION); 1180 context.Check("'use strict'; f(); let x = 2; x", EXPECT_EXCEPTION);
1199 } 1181 }
(...skipping 21 matching lines...) Expand all
1221 } 1203 }
1222 context.Check("%OptimizeFunctionOnNextCall(f); f(); x", EXPECT_RESULT, 1204 context.Check("%OptimizeFunctionOnNextCall(f); f(); x", EXPECT_RESULT,
1223 Number::New(CcTest::isolate(), 1)); 1205 Number::New(CcTest::isolate(), 1));
1224 1206
1225 context.Check("'use strict'; f(); let x = 2; x", EXPECT_EXCEPTION); 1207 context.Check("'use strict'; f(); let x = 2; x", EXPECT_EXCEPTION);
1226 } 1208 }
1227 } 1209 }
1228 1210
1229 1211
1230 TEST(Regress3941_Reads) { 1212 TEST(Regress3941_Reads) {
1231 i::FLAG_harmony_scoping = true;
1232 i::FLAG_allow_natives_syntax = true; 1213 i::FLAG_allow_natives_syntax = true;
1233 1214
1234 HandleScope handle_scope(CcTest::isolate()); 1215 HandleScope handle_scope(CcTest::isolate());
1235 1216
1236 { 1217 {
1237 SimpleContext context; 1218 SimpleContext context;
1238 context.Check("function f() { return x; }", EXPECT_RESULT, 1219 context.Check("function f() { return x; }", EXPECT_RESULT,
1239 Undefined(CcTest::isolate())); 1220 Undefined(CcTest::isolate()));
1240 context.Check("'use strict'; f(); let x = 2; x", EXPECT_EXCEPTION); 1221 context.Check("'use strict'; f(); let x = 2; x", EXPECT_EXCEPTION);
1241 } 1222 }
(...skipping 18 matching lines...) Expand all
1260 Undefined(CcTest::isolate())); 1241 Undefined(CcTest::isolate()));
1261 for (int i = 0; i < 4; i++) { 1242 for (int i = 0; i < 4; i++) {
1262 context.Check("f()", EXPECT_EXCEPTION); 1243 context.Check("f()", EXPECT_EXCEPTION);
1263 } 1244 }
1264 context.Check("%OptimizeFunctionOnNextCall(f);", EXPECT_RESULT, 1245 context.Check("%OptimizeFunctionOnNextCall(f);", EXPECT_RESULT,
1265 Undefined(CcTest::isolate())); 1246 Undefined(CcTest::isolate()));
1266 1247
1267 context.Check("'use strict'; f(); let x = 2; x", EXPECT_EXCEPTION); 1248 context.Check("'use strict'; f(); let x = 2; x", EXPECT_EXCEPTION);
1268 } 1249 }
1269 } 1250 }
OLDNEW
« no previous file with comments | « test/cctest/test-debug.cc ('k') | test/cctest/test-parsing.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698