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

Side by Side Diff: vm/dart_api_impl_test.cc

Issue 8537023: Implement automatic loading of dart:core_native_fields library (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/runtime/
Patch Set: '' Created 9 years, 1 month 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 | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "include/dart_api.h" 5 #include "include/dart_api.h"
6 6
7 #include "vm/assert.h" 7 #include "vm/assert.h"
8 #include "vm/dart_api_impl.h" 8 #include "vm/dart_api_impl.h"
9 #include "vm/dart_api_state.h" 9 #include "vm/dart_api_state.h"
10 #include "vm/unit_test.h" 10 #include "vm/unit_test.h"
(...skipping 970 matching lines...) Expand 10 before | Expand all | Expand 10 after
981 EXPECT_VALID(result); 981 EXPECT_VALID(result);
982 result = Dart_IntegerValue(result, &value); 982 result = Dart_IntegerValue(result, &value);
983 EXPECT_EQ(40, value); 983 EXPECT_EQ(40, value);
984 984
985 Dart_ExitScope(); // Exit the Dart API scope. 985 Dart_ExitScope(); // Exit the Dart API scope.
986 } 986 }
987 Dart_ShutdownIsolate(); 987 Dart_ShutdownIsolate();
988 } 988 }
989 989
990 990
991 void NativeFieldLookup(Dart_NativeArguments args) {
Ivan Posva 2011/11/16 19:19:53 ?
siva 2011/11/17 00:04:28 See below. On 2011/11/16 19:19:53, Ivan Posva wro
992 UNREACHABLE();
993 }
994
995
996 static Dart_NativeFunction native_field_lookup(Dart_Handle name,
997 int argument_count) {
998 return reinterpret_cast<Dart_NativeFunction>(&native_field_lookup);
Ivan Posva 2011/11/16 19:19:53 This points to itself?
siva 2011/11/17 00:04:28 Changed native_field_lookup to &NativeFieldLookup
999 }
1000
1001
991 UNIT_TEST_CASE(InjectNativeFields1) { 1002 UNIT_TEST_CASE(InjectNativeFields1) {
992 const char* kScriptChars = 1003 const char* kScriptChars =
993 "class NativeFields extends NativeFieldsWrapper {\n" 1004 "class NativeFields extends NativeFieldsWrapper {\n"
994 " NativeFields(int i, int j) : fld1 = i, fld2 = j {}\n" 1005 " NativeFields(int i, int j) : fld1 = i, fld2 = j {}\n"
995 " int fld1;\n" 1006 " int fld1;\n"
996 " final int fld2;\n" 1007 " final int fld2;\n"
997 " static int fld3;\n" 1008 " static int fld3;\n"
998 " static final int fld4 = 10;\n" 1009 " static final int fld4 = 10;\n"
999 "}\n" 1010 "}\n"
1000 "class NativeFieldsTest {\n" 1011 "class NativeFieldsTest {\n"
1001 " static NativeFields testMain() {\n" 1012 " static NativeFields testMain() {\n"
1002 " NativeFields obj = new NativeFields(10, 20);\n" 1013 " NativeFields obj = new NativeFields(10, 20);\n"
1003 " return obj;\n" 1014 " return obj;\n"
1004 " }\n" 1015 " }\n"
1005 "}\n"; 1016 "}\n";
1006 Dart_Handle result; 1017 Dart_Handle result;
1007 1018
1008 Dart_CreateIsolate(NULL, NULL); 1019 Dart_CreateIsolate(NULL, NULL);
1009 { 1020 {
1010 DARTSCOPE(Isolate::Current());
1011 Dart_EnterScope(); // Start a Dart API scope for invoking API functions. 1021 Dart_EnterScope(); // Start a Dart API scope for invoking API functions.
1012 const int kNumNativeFields = 4; 1022 const int kNumNativeFields = 4;
1013 1023
1014 // Create a test library. 1024 // Create a test library.
1015 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL); 1025 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars,
1026 native_field_lookup);
1016 1027
1017 // Create a native wrapper class with native fields. 1028 // Create a native wrapper class with native fields.
1018 result = Dart_CreateNativeWrapperClass( 1029 result = Dart_CreateNativeWrapperClass(
1019 lib, 1030 lib,
1020 Dart_NewString("NativeFieldsWrapper"), 1031 Dart_NewString("NativeFieldsWrapper"),
1021 kNumNativeFields); 1032 kNumNativeFields);
1022 1033
1023 // Load up a test script in the test library. 1034 // Load up a test script in the test library.
1024 1035
1025 // Invoke a function which returns an object of type NativeFields. 1036 // Invoke a function which returns an object of type NativeFields.
1026 result = Dart_InvokeStatic(lib, 1037 result = Dart_InvokeStatic(lib,
1027 Dart_NewString("NativeFieldsTest"), 1038 Dart_NewString("NativeFieldsTest"),
1028 Dart_NewString("testMain"), 1039 Dart_NewString("testMain"),
1029 0, 1040 0,
1030 NULL); 1041 NULL);
1031 EXPECT_VALID(result); 1042 EXPECT_VALID(result);
1043 DARTSCOPE(Isolate::Current());
1032 Instance& obj = Instance::Handle(); 1044 Instance& obj = Instance::Handle();
1033 obj ^= Api::UnwrapHandle(result); 1045 obj ^= Api::UnwrapHandle(result);
1034 const Class& cls = Class::Handle(obj.clazz()); 1046 const Class& cls = Class::Handle(obj.clazz());
1035 // We expect the newly created "NativeFields" object to have 1047 // We expect the newly created "NativeFields" object to have
1036 // 2 dart instance fields (fld1, fld2) and kNumNativeFields native fields. 1048 // 2 dart instance fields (fld1, fld2) and kNumNativeFields native fields.
1037 // Hence the size of an instance of "NativeFields" should be 1049 // Hence the size of an instance of "NativeFields" should be
1038 // (kNumNativeFields + 2) * kWordSize + sizeof the header word. 1050 // (kNumNativeFields + 2) * kWordSize + sizeof the header word.
1039 // We check to make sure the instance size computed by the VM matches 1051 // We check to make sure the instance size computed by the VM matches
1040 // our expectations. 1052 // our expectations.
1041 EXPECT_EQ(Utils::RoundUp(((kNumNativeFields + 2) * kWordSize) + kWordSize, 1053 EXPECT_EQ(Utils::RoundUp(((kNumNativeFields + 2) * kWordSize) + kWordSize,
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after
1082 // "NativeFieldsWrapper" and there is no definition of it either 1094 // "NativeFieldsWrapper" and there is no definition of it either
1083 // in the dart code or through the native field injection mechanism. 1095 // in the dart code or through the native field injection mechanism.
1084 EXPECT(Dart_IsError(result)); 1096 EXPECT(Dart_IsError(result));
1085 1097
1086 Dart_ExitScope(); // Exit the Dart API scope. 1098 Dart_ExitScope(); // Exit the Dart API scope.
1087 } 1099 }
1088 Dart_ShutdownIsolate(); 1100 Dart_ShutdownIsolate();
1089 } 1101 }
1090 1102
1091 1103
1104 UNIT_TEST_CASE(InjectNativeFields3) {
1105 const char* kScriptChars =
1106 "#import('dart:core-native-fields');"
1107 "class NativeFields extends NativeFieldWrapperClass2 {\n"
1108 " NativeFields(int i, int j) : fld1 = i, fld2 = j {}\n"
1109 " int fld1;\n"
1110 " final int fld2;\n"
1111 " static int fld3;\n"
1112 " static final int fld4 = 10;\n"
1113 "}\n"
1114 "class NativeFieldsTest {\n"
1115 " static NativeFields testMain() {\n"
1116 " NativeFields obj = new NativeFields(10, 20);\n"
1117 " return obj;\n"
1118 " }\n"
1119 "}\n";
1120 Dart_Handle result;
1121
1122 Dart_CreateIsolate(NULL, NULL);
1123 {
1124 Dart_EnterScope(); // Start a Dart API scope for invoking API functions.
1125 const int kNumNativeFields = 2;
1126
1127 // Load up a test script in the test library.
1128 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars,
1129 native_field_lookup);
1130
1131 // Invoke a function which returns an object of type NativeFields.
1132 result = Dart_InvokeStatic(lib,
1133 Dart_NewString("NativeFieldsTest"),
1134 Dart_NewString("testMain"),
1135 0,
1136 NULL);
1137 EXPECT_VALID(result);
1138 DARTSCOPE(Isolate::Current());
1139 Instance& obj = Instance::Handle();
1140 obj ^= Api::UnwrapHandle(result);
1141 const Class& cls = Class::Handle(obj.clazz());
1142 // We expect the newly created "NativeFields" object to have
1143 // 2 dart instance fields (fld1, fld2) and kNumNativeFields native fields.
1144 // Hence the size of an instance of "NativeFields" should be
1145 // (kNumNativeFields + 2) * kWordSize + sizeof the header word.
1146 // We check to make sure the instance size computed by the VM matches
1147 // our expectations.
1148 EXPECT_EQ(Utils::RoundUp(((kNumNativeFields + 2) * kWordSize) + kWordSize,
1149 kObjectAlignment),
1150 cls.instance_size());
1151
1152 Dart_ExitScope(); // Exit the Dart API scope.
1153 }
1154 Dart_ShutdownIsolate();
1155 }
1156
1157
1158 UNIT_TEST_CASE(InjectNativeFields4) {
1159 const char* kScriptChars =
1160 "#import('dart:core-native-fields');"
1161 "class NativeFields extends NativeFieldWrapperClass2 {\n"
1162 " NativeFields(int i, int j) : fld1 = i, fld2 = j {}\n"
1163 " int fld1;\n"
1164 " final int fld2;\n"
1165 " static int fld3;\n"
1166 " static final int fld4 = 10;\n"
1167 "}\n"
1168 "class NativeFieldsTest {\n"
1169 " static NativeFields testMain() {\n"
1170 " NativeFields obj = new NativeFields(10, 20);\n"
1171 " return obj;\n"
1172 " }\n"
1173 "}\n";
1174 Dart_Handle result;
1175
1176 Dart_CreateIsolate(NULL, NULL);
1177 {
1178 Dart_EnterScope(); // Start a Dart API scope for invoking API functions.
1179
1180 // Load up a test script in the test library.
1181 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL);
1182
1183 // Invoke a function which returns an object of type NativeFields.
1184 result = Dart_InvokeStatic(lib,
1185 Dart_NewString("NativeFieldsTest"),
1186 Dart_NewString("testMain"),
1187 0,
1188 NULL);
1189 EXPECT(Dart_IsError(result));
Ivan Posva 2011/11/16 19:19:53 Please specify at least what kind of error you exp
siva 2011/11/17 00:04:28 Done.
1190 Dart_ExitScope(); // Exit the Dart API scope.
1191 }
1192 Dart_ShutdownIsolate();
1193 }
1194
1195
1196 static void TestNativeFields(Dart_Handle retobj) {
1197 // Access and set various instance fields of the object.
1198 Dart_Handle result = Dart_GetInstanceField(retobj, Dart_NewString("fld3"));
1199 EXPECT(Dart_IsError(result));
1200 result = Dart_GetInstanceField(retobj, Dart_NewString("fld1"));
1201 EXPECT_VALID(result);
1202 int64_t value = 0;
1203 result = Dart_IntegerValue(result, &value);
1204 EXPECT_EQ(10, value);
1205 result = Dart_GetInstanceField(retobj, Dart_NewString("fld2"));
1206 EXPECT_VALID(result);
1207 result = Dart_IntegerValue(result, &value);
1208 EXPECT_EQ(20, value);
1209 result = Dart_SetInstanceField(retobj,
1210 Dart_NewString("fld2"),
1211 Dart_NewInteger(40));
1212 EXPECT(Dart_IsError(result));
1213 result = Dart_SetInstanceField(retobj,
1214 Dart_NewString("fld1"),
1215 Dart_NewInteger(40));
1216 EXPECT_VALID(result);
1217 result = Dart_GetInstanceField(retobj, Dart_NewString("fld1"));
1218 EXPECT_VALID(result);
1219 result = Dart_IntegerValue(result, &value);
1220 EXPECT_EQ(40, value);
1221
1222 // Now access and set various native instance fields of the returned object.
1223 const int kNativeFld0 = 0;
1224 const int kNativeFld1 = 1;
1225 const int kNativeFld2 = 2;
1226 const int kNativeFld3 = 3;
1227 const int kNativeFld4 = 4;
1228 intptr_t field_value = 0;
1229 result = Dart_GetNativeInstanceField(retobj, kNativeFld4, &field_value);
1230 EXPECT(Dart_IsError(result));
1231 result = Dart_GetNativeInstanceField(retobj, kNativeFld0, &field_value);
1232 EXPECT_VALID(result);
1233 EXPECT_EQ(0, field_value);
1234 result = Dart_GetNativeInstanceField(retobj, kNativeFld1, &field_value);
1235 EXPECT_VALID(result);
1236 EXPECT_EQ(0, field_value);
1237 result = Dart_GetNativeInstanceField(retobj, kNativeFld2, &field_value);
1238 EXPECT_VALID(result);
1239 EXPECT_EQ(0, field_value);
1240 result = Dart_SetNativeInstanceField(retobj, kNativeFld4, 40);
1241 EXPECT(Dart_IsError(result));
1242 result = Dart_SetNativeInstanceField(retobj, kNativeFld0, 4);
1243 EXPECT_VALID(result);
1244 result = Dart_SetNativeInstanceField(retobj, kNativeFld1, 40);
1245 EXPECT_VALID(result);
1246 result = Dart_SetNativeInstanceField(retobj, kNativeFld2, 400);
1247 EXPECT_VALID(result);
1248 result = Dart_SetNativeInstanceField(retobj, kNativeFld3, 4000);
1249 EXPECT_VALID(result);
1250 result = Dart_GetNativeInstanceField(retobj, kNativeFld3, &field_value);
1251 EXPECT_VALID(result);
1252 EXPECT_EQ(4000, field_value);
1253
1254 // Now re-access various dart instance fields of the returned object
1255 // to ensure that there was no corruption while setting native fields.
1256 result = Dart_GetInstanceField(retobj, Dart_NewString("fld1"));
1257 EXPECT_VALID(result);
1258 result = Dart_IntegerValue(result, &value);
1259 EXPECT_EQ(40, value);
1260 result = Dart_GetInstanceField(retobj, Dart_NewString("fld2"));
1261 EXPECT_VALID(result);
1262 result = Dart_IntegerValue(result, &value);
1263 EXPECT_EQ(20, value);
1264 }
1265
1266
1092 UNIT_TEST_CASE(NativeFieldAccess) { 1267 UNIT_TEST_CASE(NativeFieldAccess) {
1093 const char* kScriptChars = 1268 const char* kScriptChars =
1094 "class NativeFields extends NativeFieldsWrapper {\n" 1269 "class NativeFields extends NativeFieldsWrapper {\n"
1095 " NativeFields(int i, int j) : fld1 = i, fld2 = j {}\n" 1270 " NativeFields(int i, int j) : fld1 = i, fld2 = j {}\n"
1096 " int fld1;\n" 1271 " int fld1;\n"
1097 " final int fld2;\n" 1272 " final int fld2;\n"
1098 " static int fld3;\n" 1273 " static int fld3;\n"
1099 " static final int fld4 = 10;\n" 1274 " static final int fld4 = 10;\n"
1100 "}\n" 1275 "}\n"
1101 "class NativeFieldsTest {\n" 1276 "class NativeFieldsTest {\n"
1102 " static NativeFields testMain() {\n" 1277 " static NativeFields testMain() {\n"
1103 " NativeFields obj = new NativeFields(10, 20);\n" 1278 " NativeFields obj = new NativeFields(10, 20);\n"
1104 " return obj;\n" 1279 " return obj;\n"
1105 " }\n" 1280 " }\n"
1106 "}\n"; 1281 "}\n";
1107 Dart_Handle result; 1282 Dart_Handle result;
1108 1283
1109 Dart_CreateIsolate(NULL, NULL); 1284 Dart_CreateIsolate(NULL, NULL);
1110 { 1285 {
1111 Dart_EnterScope(); // Start a Dart API scope for invoking API functions. 1286 Dart_EnterScope(); // Start a Dart API scope for invoking API functions.
1112 const int kNumNativeFields = 4; 1287 const int kNumNativeFields = 4;
1113 1288
1114 // Create a test library. 1289 // Create a test library.
1115 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL); 1290 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars,
1291 native_field_lookup);
1116 1292
1117 // Create a native wrapper class with native fields. 1293 // Create a native wrapper class with native fields.
1118 result = Dart_CreateNativeWrapperClass( 1294 result = Dart_CreateNativeWrapperClass(
1119 lib, 1295 lib,
1120 Dart_NewString("NativeFieldsWrapper"), 1296 Dart_NewString("NativeFieldsWrapper"),
1121 kNumNativeFields); 1297 kNumNativeFields);
1122 1298
1123 // Load up a test script in it. 1299 // Load up a test script in it.
1124 1300
1125 // Invoke a function which returns an object of type NativeFields. 1301 // Invoke a function which returns an object of type NativeFields.
1126 Dart_Handle retobj = Dart_InvokeStatic(lib, 1302 Dart_Handle retobj = Dart_InvokeStatic(lib,
1127 Dart_NewString("NativeFieldsTest"), 1303 Dart_NewString("NativeFieldsTest"),
1128 Dart_NewString("testMain"), 1304 Dart_NewString("testMain"),
1129 0, 1305 0,
1130 NULL); 1306 NULL);
1131 EXPECT_VALID(retobj); 1307 EXPECT_VALID(retobj);
1132 1308
1133 // Now access and set various instance fields of the returned object. 1309 // Now access and set various instance fields of the returned object.
1134 result = Dart_GetInstanceField(retobj, Dart_NewString("fld3")); 1310 TestNativeFields(retobj);
1135 EXPECT(Dart_IsError(result));
1136 result = Dart_GetInstanceField(retobj, Dart_NewString("fld1"));
1137 EXPECT_VALID(result);
1138 int64_t value = 0;
1139 result = Dart_IntegerValue(result, &value);
1140 EXPECT_EQ(10, value);
1141 result = Dart_GetInstanceField(retobj, Dart_NewString("fld2"));
1142 EXPECT_VALID(result);
1143 result = Dart_IntegerValue(result, &value);
1144 EXPECT_EQ(20, value);
1145 result = Dart_SetInstanceField(retobj,
1146 Dart_NewString("fld2"),
1147 Dart_NewInteger(40));
1148 EXPECT(Dart_IsError(result));
1149 result = Dart_SetInstanceField(retobj,
1150 Dart_NewString("fld1"),
1151 Dart_NewInteger(40));
1152 EXPECT_VALID(result);
1153 result = Dart_GetInstanceField(retobj, Dart_NewString("fld1"));
1154 EXPECT_VALID(result);
1155 result = Dart_IntegerValue(result, &value);
1156 EXPECT_EQ(40, value);
1157
1158 // Now access and set various native instance fields of the returned object.
1159 const int kNativeFld0 = 0;
1160 const int kNativeFld1 = 1;
1161 const int kNativeFld2 = 2;
1162 const int kNativeFld3 = 3;
1163 const int kNativeFld4 = 4;
1164 intptr_t field_value = 0;
1165 result = Dart_GetNativeInstanceField(retobj, kNativeFld4, &field_value);
1166 EXPECT(Dart_IsError(result));
1167 result = Dart_GetNativeInstanceField(retobj, kNativeFld0, &field_value);
1168 EXPECT_VALID(result);
1169 EXPECT_EQ(0, field_value);
1170 result = Dart_GetNativeInstanceField(retobj, kNativeFld1, &field_value);
1171 EXPECT_VALID(result);
1172 EXPECT_EQ(0, field_value);
1173 result = Dart_GetNativeInstanceField(retobj, kNativeFld2, &field_value);
1174 EXPECT_VALID(result);
1175 EXPECT_EQ(0, field_value);
1176 result = Dart_SetNativeInstanceField(retobj, kNativeFld4, 40);
1177 EXPECT(Dart_IsError(result));
1178 result = Dart_SetNativeInstanceField(retobj, kNativeFld0, 4);
1179 EXPECT_VALID(result);
1180 result = Dart_SetNativeInstanceField(retobj, kNativeFld1, 40);
1181 EXPECT_VALID(result);
1182 result = Dart_SetNativeInstanceField(retobj, kNativeFld2, 400);
1183 EXPECT_VALID(result);
1184 result = Dart_SetNativeInstanceField(retobj, kNativeFld3, 4000);
1185 EXPECT_VALID(result);
1186 result = Dart_GetNativeInstanceField(retobj, kNativeFld3, &field_value);
1187 EXPECT_VALID(result);
1188 EXPECT_EQ(4000, field_value);
1189
1190 // Now re-access various dart instance fields of the returned object
1191 // to ensure that there was no corruption while setting native fields.
1192 result = Dart_GetInstanceField(retobj, Dart_NewString("fld1"));
1193 EXPECT_VALID(result);
1194 result = Dart_IntegerValue(result, &value);
1195 EXPECT_EQ(40, value);
1196 result = Dart_GetInstanceField(retobj, Dart_NewString("fld2"));
1197 EXPECT_VALID(result);
1198 result = Dart_IntegerValue(result, &value);
1199 EXPECT_EQ(20, value);
1200 1311
1201 Dart_ExitScope(); // Exit the Dart API scope. 1312 Dart_ExitScope(); // Exit the Dart API scope.
1202 } 1313 }
1203 Dart_ShutdownIsolate(); 1314 Dart_ShutdownIsolate();
1315 }
1316
1317
1318 UNIT_TEST_CASE(ImplicitNativeFieldAccess) {
1319 const char* kScriptChars =
1320 "#import('dart:core-native-fields');"
1321 "class NativeFields extends NativeFieldWrapperClass4 {\n"
1322 " NativeFields(int i, int j) : fld1 = i, fld2 = j {}\n"
1323 " int fld1;\n"
1324 " final int fld2;\n"
1325 " static int fld3;\n"
1326 " static final int fld4 = 10;\n"
1327 "}\n"
1328 "class NativeFieldsTest {\n"
1329 " static NativeFields testMain() {\n"
1330 " NativeFields obj = new NativeFields(10, 20);\n"
1331 " return obj;\n"
1332 " }\n"
1333 "}\n";
1334 Dart_CreateIsolate(NULL, NULL);
1335 {
1336 Dart_EnterScope(); // Start a Dart API scope for invoking API functions.
1337
1338 // Load up a test script in the test library.
1339 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars,
1340 native_field_lookup);
1341
1342 // Invoke a function which returns an object of type NativeFields.
1343 Dart_Handle retobj = Dart_InvokeStatic(lib,
1344 Dart_NewString("NativeFieldsTest"),
1345 Dart_NewString("testMain"),
1346 0,
1347 NULL);
1348 EXPECT_VALID(retobj);
1349
1350 // Now access and set various instance fields of the returned object.
1351 TestNativeFields(retobj);
1352
1353 Dart_ExitScope(); // Exit the Dart API scope.
1354 }
1355 Dart_ShutdownIsolate();
1204 } 1356 }
1205 1357
1206 1358
1207 UNIT_TEST_CASE(NegativeNativeFieldAccess) { 1359 UNIT_TEST_CASE(NegativeNativeFieldAccess) {
1208 const char* kScriptChars = 1360 const char* kScriptChars =
1209 "class NativeFields {\n" 1361 "class NativeFields {\n"
1210 " NativeFields(int i, int j) : fld1 = i, fld2 = j {}\n" 1362 " NativeFields(int i, int j) : fld1 = i, fld2 = j {}\n"
1211 " int fld1;\n" 1363 " int fld1;\n"
1212 " final int fld2;\n" 1364 " final int fld2;\n"
1213 " static int fld3;\n" 1365 " static int fld3;\n"
(...skipping 905 matching lines...) Expand 10 before | Expand all | Expand 10 after
2119 NULL); 2271 NULL);
2120 EXPECT_VALID(result); 2272 EXPECT_VALID(result);
2121 2273
2122 Dart_ExitScope(); // Exit the Dart API scope. 2274 Dart_ExitScope(); // Exit the Dart API scope.
2123 } 2275 }
2124 Dart_ShutdownIsolate(); 2276 Dart_ShutdownIsolate();
2125 } 2277 }
2126 #endif // TARGET_ARCH_IA32. 2278 #endif // TARGET_ARCH_IA32.
2127 2279
2128 } // namespace dart 2280 } // namespace dart
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698