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 | 6 |
7 #include "vm/bigint_operations.h" | 7 #include "vm/bigint_operations.h" |
8 #include "vm/class_finalizer.h" | 8 #include "vm/class_finalizer.h" |
9 #include "vm/compiler.h" | 9 #include "vm/compiler.h" |
10 #include "vm/dart.h" | 10 #include "vm/dart.h" |
(...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
262 | 262 |
263 // --- Handles --- | 263 // --- Handles --- |
264 | 264 |
265 | 265 |
266 DART_EXPORT bool Dart_IsError(Dart_Handle handle) { | 266 DART_EXPORT bool Dart_IsError(Dart_Handle handle) { |
267 return RawObject::IsErrorClassId(Api::ClassId(handle)); | 267 return RawObject::IsErrorClassId(Api::ClassId(handle)); |
268 } | 268 } |
269 | 269 |
270 | 270 |
271 DART_EXPORT bool Dart_IsApiError(Dart_Handle object) { | 271 DART_EXPORT bool Dart_IsApiError(Dart_Handle object) { |
272 return Api::ClassId(object) == kApiError; | 272 return Api::ClassId(object) == kApiErrorCid; |
273 } | 273 } |
274 | 274 |
275 | 275 |
276 DART_EXPORT bool Dart_IsUnhandledExceptionError(Dart_Handle object) { | 276 DART_EXPORT bool Dart_IsUnhandledExceptionError(Dart_Handle object) { |
277 return Api::ClassId(object) == kUnhandledException; | 277 return Api::ClassId(object) == kUnhandledExceptionCid; |
278 } | 278 } |
279 | 279 |
280 | 280 |
281 DART_EXPORT bool Dart_IsCompilationError(Dart_Handle object) { | 281 DART_EXPORT bool Dart_IsCompilationError(Dart_Handle object) { |
282 return Api::ClassId(object) == kLanguageError; | 282 return Api::ClassId(object) == kLanguageErrorCid; |
283 } | 283 } |
284 | 284 |
285 | 285 |
286 DART_EXPORT bool Dart_IsFatalError(Dart_Handle object) { | 286 DART_EXPORT bool Dart_IsFatalError(Dart_Handle object) { |
287 return Api::ClassId(object) == kUnwindError; | 287 return Api::ClassId(object) == kUnwindErrorCid; |
288 } | 288 } |
289 | 289 |
290 | 290 |
291 DART_EXPORT const char* Dart_GetError(Dart_Handle handle) { | 291 DART_EXPORT const char* Dart_GetError(Dart_Handle handle) { |
292 Isolate* isolate = Isolate::Current(); | 292 Isolate* isolate = Isolate::Current(); |
293 DARTSCOPE(isolate); | 293 DARTSCOPE(isolate); |
294 const Object& obj = Object::Handle(isolate, Api::UnwrapHandle(handle)); | 294 const Object& obj = Object::Handle(isolate, Api::UnwrapHandle(handle)); |
295 if (obj.IsError()) { | 295 if (obj.IsError()) { |
296 const Error& error = Error::Cast(obj); | 296 const Error& error = Error::Cast(obj); |
297 const char* str = error.ToErrorCString(); | 297 const char* str = error.ToErrorCString(); |
(...skipping 810 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1108 | 1108 |
1109 | 1109 |
1110 DART_EXPORT Dart_Handle Dart_Null() { | 1110 DART_EXPORT Dart_Handle Dart_Null() { |
1111 Isolate* isolate = Isolate::Current(); | 1111 Isolate* isolate = Isolate::Current(); |
1112 CHECK_ISOLATE_SCOPE(isolate); | 1112 CHECK_ISOLATE_SCOPE(isolate); |
1113 return Api::Null(isolate); | 1113 return Api::Null(isolate); |
1114 } | 1114 } |
1115 | 1115 |
1116 | 1116 |
1117 DART_EXPORT bool Dart_IsNull(Dart_Handle object) { | 1117 DART_EXPORT bool Dart_IsNull(Dart_Handle object) { |
1118 return Api::ClassId(object) == kNullClassId; | 1118 return Api::ClassId(object) == kNullCid; |
1119 } | 1119 } |
1120 | 1120 |
1121 | 1121 |
1122 DART_EXPORT Dart_Handle Dart_ObjectEquals(Dart_Handle obj1, Dart_Handle obj2, | 1122 DART_EXPORT Dart_Handle Dart_ObjectEquals(Dart_Handle obj1, Dart_Handle obj2, |
1123 bool* value) { | 1123 bool* value) { |
1124 Isolate* isolate = Isolate::Current(); | 1124 Isolate* isolate = Isolate::Current(); |
1125 DARTSCOPE(isolate); | 1125 DARTSCOPE(isolate); |
1126 const Instance& expected = | 1126 const Instance& expected = |
1127 Instance::CheckedHandle(isolate, Api::UnwrapHandle(obj1)); | 1127 Instance::CheckedHandle(isolate, Api::UnwrapHandle(obj1)); |
1128 const Instance& actual = | 1128 const Instance& actual = |
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1219 return RawObject::IsIntegerClassId(Api::ClassId(object)); | 1219 return RawObject::IsIntegerClassId(Api::ClassId(object)); |
1220 } | 1220 } |
1221 | 1221 |
1222 | 1222 |
1223 DART_EXPORT Dart_Handle Dart_IntegerFitsIntoInt64(Dart_Handle integer, | 1223 DART_EXPORT Dart_Handle Dart_IntegerFitsIntoInt64(Dart_Handle integer, |
1224 bool* fits) { | 1224 bool* fits) { |
1225 // Fast path for Smis and Mints. | 1225 // Fast path for Smis and Mints. |
1226 Isolate* isolate = Isolate::Current(); | 1226 Isolate* isolate = Isolate::Current(); |
1227 CHECK_ISOLATE(isolate); | 1227 CHECK_ISOLATE(isolate); |
1228 intptr_t class_id = Api::ClassId(integer); | 1228 intptr_t class_id = Api::ClassId(integer); |
1229 if (class_id == kSmi || class_id == kMint) { | 1229 if (class_id == kSmiCid || class_id == kMintCid) { |
1230 *fits = true; | 1230 *fits = true; |
1231 return Api::Success(isolate); | 1231 return Api::Success(isolate); |
1232 } | 1232 } |
1233 | 1233 |
1234 DARTSCOPE_NOCHECKS(isolate); | 1234 DARTSCOPE_NOCHECKS(isolate); |
1235 const Integer& int_obj = Api::UnwrapIntegerHandle(isolate, integer); | 1235 const Integer& int_obj = Api::UnwrapIntegerHandle(isolate, integer); |
1236 if (int_obj.IsNull()) { | 1236 if (int_obj.IsNull()) { |
1237 RETURN_TYPE_ERROR(isolate, integer, Integer); | 1237 RETURN_TYPE_ERROR(isolate, integer, Integer); |
1238 } | 1238 } |
1239 ASSERT(!BigintOperations::FitsIntoMint(Bigint::Cast(int_obj))); | 1239 ASSERT(!BigintOperations::FitsIntoMint(Bigint::Cast(int_obj))); |
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1389 | 1389 |
1390 | 1390 |
1391 DART_EXPORT Dart_Handle Dart_False() { | 1391 DART_EXPORT Dart_Handle Dart_False() { |
1392 Isolate* isolate = Isolate::Current(); | 1392 Isolate* isolate = Isolate::Current(); |
1393 CHECK_ISOLATE_SCOPE(isolate); | 1393 CHECK_ISOLATE_SCOPE(isolate); |
1394 return Api::False(isolate); | 1394 return Api::False(isolate); |
1395 } | 1395 } |
1396 | 1396 |
1397 | 1397 |
1398 DART_EXPORT bool Dart_IsBoolean(Dart_Handle object) { | 1398 DART_EXPORT bool Dart_IsBoolean(Dart_Handle object) { |
1399 return Api::ClassId(object) == kBool; | 1399 return Api::ClassId(object) == kBoolCid; |
1400 } | 1400 } |
1401 | 1401 |
1402 | 1402 |
1403 DART_EXPORT Dart_Handle Dart_NewBoolean(bool value) { | 1403 DART_EXPORT Dart_Handle Dart_NewBoolean(bool value) { |
1404 Isolate* isolate = Isolate::Current(); | 1404 Isolate* isolate = Isolate::Current(); |
1405 CHECK_ISOLATE_SCOPE(isolate); | 1405 CHECK_ISOLATE_SCOPE(isolate); |
1406 return value ? Api::True(isolate) : Api::False(isolate); | 1406 return value ? Api::True(isolate) : Api::False(isolate); |
1407 } | 1407 } |
1408 | 1408 |
1409 | 1409 |
1410 DART_EXPORT Dart_Handle Dart_BooleanValue(Dart_Handle boolean_obj, | 1410 DART_EXPORT Dart_Handle Dart_BooleanValue(Dart_Handle boolean_obj, |
1411 bool* value) { | 1411 bool* value) { |
1412 Isolate* isolate = Isolate::Current(); | 1412 Isolate* isolate = Isolate::Current(); |
1413 DARTSCOPE(isolate); | 1413 DARTSCOPE(isolate); |
1414 const Bool& obj = Api::UnwrapBoolHandle(isolate, boolean_obj); | 1414 const Bool& obj = Api::UnwrapBoolHandle(isolate, boolean_obj); |
1415 if (obj.IsNull()) { | 1415 if (obj.IsNull()) { |
1416 RETURN_TYPE_ERROR(isolate, boolean_obj, Bool); | 1416 RETURN_TYPE_ERROR(isolate, boolean_obj, Bool); |
1417 } | 1417 } |
1418 *value = obj.value(); | 1418 *value = obj.value(); |
1419 return Api::Success(isolate); | 1419 return Api::Success(isolate); |
1420 } | 1420 } |
1421 | 1421 |
1422 | 1422 |
1423 // --- Doubles --- | 1423 // --- Doubles --- |
1424 | 1424 |
1425 | 1425 |
1426 DART_EXPORT bool Dart_IsDouble(Dart_Handle object) { | 1426 DART_EXPORT bool Dart_IsDouble(Dart_Handle object) { |
1427 return Api::ClassId(object) == kDouble; | 1427 return Api::ClassId(object) == kDoubleCid; |
1428 } | 1428 } |
1429 | 1429 |
1430 | 1430 |
1431 DART_EXPORT Dart_Handle Dart_NewDouble(double value) { | 1431 DART_EXPORT Dart_Handle Dart_NewDouble(double value) { |
1432 Isolate* isolate = Isolate::Current(); | 1432 Isolate* isolate = Isolate::Current(); |
1433 DARTSCOPE(isolate); | 1433 DARTSCOPE(isolate); |
1434 return Api::NewHandle(isolate, Double::New(value)); | 1434 return Api::NewHandle(isolate, Double::New(value)); |
1435 } | 1435 } |
1436 | 1436 |
1437 | 1437 |
(...skipping 1215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2653 func_kind == RawFunction::kGetterFunction || | 2653 func_kind == RawFunction::kGetterFunction || |
2654 func_kind == RawFunction::kSetterFunction || | 2654 func_kind == RawFunction::kSetterFunction || |
2655 func_kind == RawFunction::kConstructor); | 2655 func_kind == RawFunction::kConstructor); |
2656 } | 2656 } |
2657 #endif | 2657 #endif |
2658 return Api::NewHandle(isolate, func.raw()); | 2658 return Api::NewHandle(isolate, func.raw()); |
2659 } | 2659 } |
2660 | 2660 |
2661 | 2661 |
2662 DART_EXPORT bool Dart_IsFunction(Dart_Handle handle) { | 2662 DART_EXPORT bool Dart_IsFunction(Dart_Handle handle) { |
2663 return Api::ClassId(handle) == kFunction; | 2663 return Api::ClassId(handle) == kFunctionCid; |
2664 } | 2664 } |
2665 | 2665 |
2666 | 2666 |
2667 DART_EXPORT Dart_Handle Dart_FunctionName(Dart_Handle function) { | 2667 DART_EXPORT Dart_Handle Dart_FunctionName(Dart_Handle function) { |
2668 Isolate* isolate = Isolate::Current(); | 2668 Isolate* isolate = Isolate::Current(); |
2669 DARTSCOPE(isolate); | 2669 DARTSCOPE(isolate); |
2670 const Function& func = Api::UnwrapFunctionHandle(isolate, function); | 2670 const Function& func = Api::UnwrapFunctionHandle(isolate, function); |
2671 if (func.IsNull()) { | 2671 if (func.IsNull()) { |
2672 RETURN_TYPE_ERROR(isolate, function, Function); | 2672 RETURN_TYPE_ERROR(isolate, function, Function); |
2673 } | 2673 } |
(...skipping 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2885 const Library& lib = Library::Cast(obj); | 2885 const Library& lib = Library::Cast(obj); |
2886 return Api::NewHandle(isolate, lib.LookupFieldAllowPrivate(var_name)); | 2886 return Api::NewHandle(isolate, lib.LookupFieldAllowPrivate(var_name)); |
2887 } | 2887 } |
2888 return Api::NewError( | 2888 return Api::NewError( |
2889 "%s expects argument 'target' to be a class or library.", | 2889 "%s expects argument 'target' to be a class or library.", |
2890 CURRENT_FUNC); | 2890 CURRENT_FUNC); |
2891 } | 2891 } |
2892 | 2892 |
2893 | 2893 |
2894 DART_EXPORT bool Dart_IsVariable(Dart_Handle handle) { | 2894 DART_EXPORT bool Dart_IsVariable(Dart_Handle handle) { |
2895 return Api::ClassId(handle) == kField; | 2895 return Api::ClassId(handle) == kFieldCid; |
2896 } | 2896 } |
2897 | 2897 |
2898 | 2898 |
2899 DART_EXPORT Dart_Handle Dart_VariableName(Dart_Handle variable) { | 2899 DART_EXPORT Dart_Handle Dart_VariableName(Dart_Handle variable) { |
2900 Isolate* isolate = Isolate::Current(); | 2900 Isolate* isolate = Isolate::Current(); |
2901 DARTSCOPE(isolate); | 2901 DARTSCOPE(isolate); |
2902 const Field& var = Api::UnwrapFieldHandle(isolate, variable); | 2902 const Field& var = Api::UnwrapFieldHandle(isolate, variable); |
2903 if (var.IsNull()) { | 2903 if (var.IsNull()) { |
2904 RETURN_TYPE_ERROR(isolate, variable, Field); | 2904 RETURN_TYPE_ERROR(isolate, variable, Field); |
2905 } | 2905 } |
(...skipping 929 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3835 const char* msg = CheckIsolateState(isolate); | 3835 const char* msg = CheckIsolateState(isolate); |
3836 if (msg != NULL) { | 3836 if (msg != NULL) { |
3837 return Api::NewError(msg); | 3837 return Api::NewError(msg); |
3838 } | 3838 } |
3839 CompileAll(isolate, &result); | 3839 CompileAll(isolate, &result); |
3840 return result; | 3840 return result; |
3841 } | 3841 } |
3842 | 3842 |
3843 | 3843 |
3844 DART_EXPORT bool Dart_IsLibrary(Dart_Handle object) { | 3844 DART_EXPORT bool Dart_IsLibrary(Dart_Handle object) { |
3845 return Api::ClassId(object) == kLibrary; | 3845 return Api::ClassId(object) == kLibraryCid; |
3846 } | 3846 } |
3847 | 3847 |
3848 | 3848 |
3849 DART_EXPORT Dart_Handle Dart_GetClass(Dart_Handle library, | 3849 DART_EXPORT Dart_Handle Dart_GetClass(Dart_Handle library, |
3850 Dart_Handle class_name) { | 3850 Dart_Handle class_name) { |
3851 Isolate* isolate = Isolate::Current(); | 3851 Isolate* isolate = Isolate::Current(); |
3852 DARTSCOPE(isolate); | 3852 DARTSCOPE(isolate); |
3853 const Library& lib = Api::UnwrapLibraryHandle(isolate, library); | 3853 const Library& lib = Api::UnwrapLibraryHandle(isolate, library); |
3854 if (lib.IsNull()) { | 3854 if (lib.IsNull()) { |
3855 RETURN_TYPE_ERROR(isolate, library, Library); | 3855 RETURN_TYPE_ERROR(isolate, library, Library); |
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
4081 DART_EXPORT void Dart_InitPerfEventsSupport(Dart_FileWriterFunction function) { | 4081 DART_EXPORT void Dart_InitPerfEventsSupport(Dart_FileWriterFunction function) { |
4082 Dart::set_perf_events_writer(function); | 4082 Dart::set_perf_events_writer(function); |
4083 } | 4083 } |
4084 | 4084 |
4085 | 4085 |
4086 DART_EXPORT void Dart_InitFlowGraphPrinting(Dart_FileWriterFunction function) { | 4086 DART_EXPORT void Dart_InitFlowGraphPrinting(Dart_FileWriterFunction function) { |
4087 Dart::set_flow_graph_writer(function); | 4087 Dart::set_flow_graph_writer(function); |
4088 } | 4088 } |
4089 | 4089 |
4090 } // namespace dart | 4090 } // namespace dart |
OLD | NEW |