| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 #include "platform/assert.h" | 6 #include "platform/assert.h" |
| 7 #include "platform/utils.h" | 7 #include "platform/utils.h" |
| 8 #include "vm/class_finalizer.h" | 8 #include "vm/class_finalizer.h" |
| 9 #include "vm/dart_api_impl.h" | 9 #include "vm/dart_api_impl.h" |
| 10 #include "vm/dart_api_state.h" | 10 #include "vm/dart_api_state.h" |
| (...skipping 3179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3190 "}\n"; | 3190 "}\n"; |
| 3191 | 3191 |
| 3192 // Shared setup. | 3192 // Shared setup. |
| 3193 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL); | 3193 Dart_Handle lib = TestCase::LoadTestScript(kScriptChars, NULL); |
| 3194 Dart_Handle cls = Dart_GetClass(lib, Dart_NewString("Methods")); | 3194 Dart_Handle cls = Dart_GetClass(lib, Dart_NewString("Methods")); |
| 3195 EXPECT_VALID(cls); | 3195 EXPECT_VALID(cls); |
| 3196 Dart_Handle instance = Dart_Invoke(lib, Dart_NewString("test"), 0, NULL); | 3196 Dart_Handle instance = Dart_Invoke(lib, Dart_NewString("test"), 0, NULL); |
| 3197 EXPECT_VALID(instance); | 3197 EXPECT_VALID(instance); |
| 3198 Dart_Handle args[1]; | 3198 Dart_Handle args[1]; |
| 3199 args[0] = Dart_NewString("!!!"); | 3199 args[0] = Dart_NewString("!!!"); |
| 3200 Dart_Handle bad_args[2]; |
| 3201 bad_args[0] = Dart_NewString("bad1"); |
| 3202 bad_args[1] = Dart_NewString("bad2"); |
| 3200 Dart_Handle result; | 3203 Dart_Handle result; |
| 3201 Dart_Handle name; | 3204 Dart_Handle name; |
| 3202 const char* str; | 3205 const char* str; |
| 3203 | 3206 |
| 3204 // Instance method. | 3207 // Instance method. |
| 3205 name = Dart_NewString("instanceMethod"); | 3208 name = Dart_NewString("instanceMethod"); |
| 3206 EXPECT(Dart_IsError(Dart_Invoke(lib, name, 1, args))); | 3209 EXPECT(Dart_IsError(Dart_Invoke(lib, name, 1, args))); |
| 3207 EXPECT(Dart_IsError(Dart_Invoke(cls, name, 1, args))); | 3210 EXPECT(Dart_IsError(Dart_Invoke(cls, name, 1, args))); |
| 3208 result = Dart_Invoke(instance, name, 1, args); | 3211 result = Dart_Invoke(instance, name, 1, args); |
| 3209 EXPECT_VALID(result); | 3212 EXPECT_VALID(result); |
| 3210 result = Dart_StringToCString(result, &str); | 3213 result = Dart_StringToCString(result, &str); |
| 3211 EXPECT_STREQ("instance !!!", str); | 3214 EXPECT_STREQ("instance !!!", str); |
| 3212 | 3215 |
| 3216 // Instance method, wrong arg count. |
| 3217 EXPECT_ERROR(Dart_Invoke(instance, name, 2, bad_args), |
| 3218 "did not find instance method 'Methods.instanceMethod'"); |
| 3219 |
| 3213 // Hidden instance method. | 3220 // Hidden instance method. |
| 3214 name = Dart_NewString("_instanceMethod"); | 3221 name = Dart_NewString("_instanceMethod"); |
| 3215 EXPECT(Dart_IsError(Dart_Invoke(lib, name, 1, args))); | 3222 EXPECT(Dart_IsError(Dart_Invoke(lib, name, 1, args))); |
| 3216 EXPECT(Dart_IsError(Dart_Invoke(cls, name, 1, args))); | 3223 EXPECT(Dart_IsError(Dart_Invoke(cls, name, 1, args))); |
| 3217 result = Dart_Invoke(instance, name, 1, args); | 3224 result = Dart_Invoke(instance, name, 1, args); |
| 3218 EXPECT_VALID(result); | 3225 EXPECT_VALID(result); |
| 3219 result = Dart_StringToCString(result, &str); | 3226 result = Dart_StringToCString(result, &str); |
| 3220 EXPECT_STREQ("hidden instance !!!", str); | 3227 EXPECT_STREQ("hidden instance !!!", str); |
| 3221 | 3228 |
| 3222 // Inherited method. | 3229 // Inherited method. |
| 3223 name = Dart_NewString("inheritedMethod"); | 3230 name = Dart_NewString("inheritedMethod"); |
| 3224 EXPECT(Dart_IsError(Dart_Invoke(lib, name, 1, args))); | 3231 EXPECT(Dart_IsError(Dart_Invoke(lib, name, 1, args))); |
| 3225 EXPECT(Dart_IsError(Dart_Invoke(cls, name, 1, args))); | 3232 EXPECT(Dart_IsError(Dart_Invoke(cls, name, 1, args))); |
| 3226 result = Dart_Invoke(instance, name, 1, args); | 3233 result = Dart_Invoke(instance, name, 1, args); |
| 3227 EXPECT_VALID(result); | 3234 EXPECT_VALID(result); |
| 3228 result = Dart_StringToCString(result, &str); | 3235 result = Dart_StringToCString(result, &str); |
| 3229 EXPECT_STREQ("inherited !!!", str); | 3236 EXPECT_STREQ("inherited !!!", str); |
| 3230 | 3237 |
| 3231 // Static method. | 3238 // Static method. |
| 3232 name = Dart_NewString("staticMethod"); | 3239 name = Dart_NewString("staticMethod"); |
| 3233 EXPECT(Dart_IsError(Dart_Invoke(lib, name, 1, args))); | 3240 EXPECT(Dart_IsError(Dart_Invoke(lib, name, 1, args))); |
| 3234 EXPECT(Dart_IsError(Dart_Invoke(instance, name, 1, args))); | 3241 EXPECT(Dart_IsError(Dart_Invoke(instance, name, 1, args))); |
| 3235 result = Dart_Invoke(cls, name, 1, args); | 3242 result = Dart_Invoke(cls, name, 1, args); |
| 3236 EXPECT_VALID(result); | 3243 EXPECT_VALID(result); |
| 3237 result = Dart_StringToCString(result, &str); | 3244 result = Dart_StringToCString(result, &str); |
| 3238 EXPECT_STREQ("static !!!", str); | 3245 EXPECT_STREQ("static !!!", str); |
| 3239 | 3246 |
| 3247 // Static method, wrong arg count. |
| 3248 EXPECT_ERROR(Dart_Invoke(cls, name, 2, bad_args), |
| 3249 "did not find static method 'Methods.staticMethod'"); |
| 3250 |
| 3240 // Hidden static method. | 3251 // Hidden static method. |
| 3241 name = Dart_NewString("_staticMethod"); | 3252 name = Dart_NewString("_staticMethod"); |
| 3242 EXPECT(Dart_IsError(Dart_Invoke(lib, name, 1, args))); | 3253 EXPECT(Dart_IsError(Dart_Invoke(lib, name, 1, args))); |
| 3243 EXPECT(Dart_IsError(Dart_Invoke(instance, name, 1, args))); | 3254 EXPECT(Dart_IsError(Dart_Invoke(instance, name, 1, args))); |
| 3244 result = Dart_Invoke(cls, name, 1, args); | 3255 result = Dart_Invoke(cls, name, 1, args); |
| 3245 EXPECT_VALID(result); | 3256 EXPECT_VALID(result); |
| 3246 result = Dart_StringToCString(result, &str); | 3257 result = Dart_StringToCString(result, &str); |
| 3247 EXPECT_STREQ("hidden static !!!", str); | 3258 EXPECT_STREQ("hidden static !!!", str); |
| 3248 | 3259 |
| 3249 // Static non-inherited method. Not found at any level. | 3260 // Static non-inherited method. Not found at any level. |
| 3250 name = Dart_NewString("non_inheritedMethod"); | 3261 name = Dart_NewString("non_inheritedMethod"); |
| 3251 EXPECT(Dart_IsError(Dart_Invoke(lib, name, 1, args))); | 3262 EXPECT(Dart_IsError(Dart_Invoke(lib, name, 1, args))); |
| 3252 EXPECT(Dart_IsError(Dart_Invoke(instance, name, 1, args))); | 3263 EXPECT(Dart_IsError(Dart_Invoke(instance, name, 1, args))); |
| 3253 EXPECT(Dart_IsError(Dart_Invoke(cls, name, 1, args))); | 3264 EXPECT(Dart_IsError(Dart_Invoke(cls, name, 1, args))); |
| 3254 | 3265 |
| 3255 // Top-Level method. | 3266 // Top-Level method. |
| 3256 name = Dart_NewString("topMethod"); | 3267 name = Dart_NewString("topMethod"); |
| 3257 EXPECT(Dart_IsError(Dart_Invoke(cls, name, 1, args))); | 3268 EXPECT(Dart_IsError(Dart_Invoke(cls, name, 1, args))); |
| 3258 EXPECT(Dart_IsError(Dart_Invoke(instance, name, 1, args))); | 3269 EXPECT(Dart_IsError(Dart_Invoke(instance, name, 1, args))); |
| 3259 result = Dart_Invoke(lib, name, 1, args); | 3270 result = Dart_Invoke(lib, name, 1, args); |
| 3260 EXPECT_VALID(result); | 3271 EXPECT_VALID(result); |
| 3261 result = Dart_StringToCString(result, &str); | 3272 result = Dart_StringToCString(result, &str); |
| 3262 EXPECT_STREQ("top !!!", str); | 3273 EXPECT_STREQ("top !!!", str); |
| 3263 | 3274 |
| 3275 // Top-level method, wrong arg count. |
| 3276 EXPECT_ERROR(Dart_Invoke(lib, name, 2, bad_args), |
| 3277 "did not find top-level function 'topMethod'"); |
| 3278 |
| 3264 // Hidden top-level method. | 3279 // Hidden top-level method. |
| 3265 name = Dart_NewString("_topMethod"); | 3280 name = Dart_NewString("_topMethod"); |
| 3266 EXPECT(Dart_IsError(Dart_Invoke(cls, name, 1, args))); | 3281 EXPECT(Dart_IsError(Dart_Invoke(cls, name, 1, args))); |
| 3267 EXPECT(Dart_IsError(Dart_Invoke(instance, name, 1, args))); | 3282 EXPECT(Dart_IsError(Dart_Invoke(instance, name, 1, args))); |
| 3268 result = Dart_Invoke(lib, name, 1, args); | 3283 result = Dart_Invoke(lib, name, 1, args); |
| 3269 EXPECT_VALID(result); | 3284 EXPECT_VALID(result); |
| 3270 result = Dart_StringToCString(result, &str); | 3285 result = Dart_StringToCString(result, &str); |
| 3271 EXPECT_STREQ("hidden top !!!", str); | 3286 EXPECT_STREQ("hidden top !!!", str); |
| 3272 } | 3287 } |
| 3273 | 3288 |
| (...skipping 1682 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4956 EXPECT_VALID(result); | 4971 EXPECT_VALID(result); |
| 4957 EXPECT(Dart_IsDouble(result)); | 4972 EXPECT(Dart_IsDouble(result)); |
| 4958 double out; | 4973 double out; |
| 4959 result = Dart_DoubleValue(result, &out); | 4974 result = Dart_DoubleValue(result, &out); |
| 4960 fprintf(stderr, "Benchmark_UseDartApi: %f us per iteration\n", out); | 4975 fprintf(stderr, "Benchmark_UseDartApi: %f us per iteration\n", out); |
| 4961 } | 4976 } |
| 4962 | 4977 |
| 4963 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64). | 4978 #endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_X64). |
| 4964 | 4979 |
| 4965 } // namespace dart | 4980 } // namespace dart |
| OLD | NEW |