| 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 "vm/object.h" | 5 #include "vm/object.h" |
| 6 | 6 |
| 7 #include "include/dart_api.h" | 7 #include "include/dart_api.h" |
| 8 #include "platform/assert.h" | 8 #include "platform/assert.h" |
| 9 #include "vm/assembler.h" | 9 #include "vm/assembler.h" |
| 10 #include "vm/cpu.h" | 10 #include "vm/cpu.h" |
| (...skipping 824 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 835 object_store->set_libraries(libraries); | 835 object_store->set_libraries(libraries); |
| 836 | 836 |
| 837 // Pre-register the core library. | 837 // Pre-register the core library. |
| 838 Library::InitCoreLibrary(isolate); | 838 Library::InitCoreLibrary(isolate); |
| 839 | 839 |
| 840 // Basic infrastructure has been setup, initialize the class dictionary. | 840 // Basic infrastructure has been setup, initialize the class dictionary. |
| 841 Library& core_lib = Library::Handle(Library::CoreLibrary()); | 841 Library& core_lib = Library::Handle(Library::CoreLibrary()); |
| 842 ASSERT(!core_lib.IsNull()); | 842 ASSERT(!core_lib.IsNull()); |
| 843 | 843 |
| 844 const GrowableObjectArray& pending_classes = | 844 const GrowableObjectArray& pending_classes = |
| 845 GrowableObjectArray::Handle(GrowableObjectArray::New(Heap::kOld)); | 845 GrowableObjectArray::Handle(GrowableObjectArray::New()); |
| 846 object_store->set_pending_classes(pending_classes); | 846 object_store->set_pending_classes(pending_classes); |
| 847 | 847 |
| 848 Context& context = Context::Handle(Context::New(0, Heap::kOld)); | 848 Context& context = Context::Handle(Context::New(0, Heap::kOld)); |
| 849 object_store->set_empty_context(context); | 849 object_store->set_empty_context(context); |
| 850 | 850 |
| 851 // Now that the symbol table is initialized and that the core dictionary as | 851 // Now that the symbol table is initialized and that the core dictionary as |
| 852 // well as the core implementation dictionary have been setup, preallocate | 852 // well as the core implementation dictionary have been setup, preallocate |
| 853 // remaining classes and register them by name in the dictionaries. | 853 // remaining classes and register them by name in the dictionaries. |
| 854 String& name = String::Handle(); | 854 String& name = String::Handle(); |
| 855 cls = object_store->array_class(); // Was allocated above. | 855 cls = object_store->array_class(); // Was allocated above. |
| 856 RegisterPrivateClass(cls, Symbols::ObjectArray(), core_lib); | 856 RegisterPrivateClass(cls, Symbols::ObjectArray(), core_lib); |
| 857 pending_classes.Add(cls, Heap::kOld); | 857 pending_classes.Add(cls); |
| 858 // We cannot use NewNonParameterizedType(cls), because Array is parameterized. | 858 // We cannot use NewNonParameterizedType(cls), because Array is parameterized. |
| 859 type ^= Type::New(Object::Handle(cls.raw()), | 859 type ^= Type::New(Object::Handle(cls.raw()), |
| 860 TypeArguments::Handle(), | 860 TypeArguments::Handle(), |
| 861 Scanner::kDummyTokenIndex); | 861 Scanner::kDummyTokenIndex); |
| 862 type.SetIsFinalized(); | 862 type.SetIsFinalized(); |
| 863 type ^= type.Canonicalize(); | 863 type ^= type.Canonicalize(); |
| 864 object_store->set_array_type(type); | 864 object_store->set_array_type(type); |
| 865 | 865 |
| 866 cls = object_store->growable_object_array_class(); // Was allocated above. | 866 cls = object_store->growable_object_array_class(); // Was allocated above. |
| 867 RegisterPrivateClass(cls, Symbols::GrowableObjectArray(), core_lib); | 867 RegisterPrivateClass(cls, Symbols::GrowableObjectArray(), core_lib); |
| 868 pending_classes.Add(cls, Heap::kOld); | 868 pending_classes.Add(cls); |
| 869 | 869 |
| 870 cls = Class::New<Array>(kImmutableArrayCid); | 870 cls = Class::New<Array>(kImmutableArrayCid); |
| 871 object_store->set_immutable_array_class(cls); | 871 object_store->set_immutable_array_class(cls); |
| 872 cls.set_type_arguments_field_offset(Array::type_arguments_offset()); | 872 cls.set_type_arguments_field_offset(Array::type_arguments_offset()); |
| 873 ASSERT(object_store->immutable_array_class() != object_store->array_class()); | 873 ASSERT(object_store->immutable_array_class() != object_store->array_class()); |
| 874 cls.set_is_prefinalized(); | 874 cls.set_is_prefinalized(); |
| 875 RegisterPrivateClass(cls, Symbols::ImmutableArray(), core_lib); | 875 RegisterPrivateClass(cls, Symbols::ImmutableArray(), core_lib); |
| 876 pending_classes.Add(cls, Heap::kOld); | 876 pending_classes.Add(cls); |
| 877 | 877 |
| 878 cls = object_store->one_byte_string_class(); // Was allocated above. | 878 cls = object_store->one_byte_string_class(); // Was allocated above. |
| 879 RegisterPrivateClass(cls, Symbols::OneByteString(), core_lib); | 879 RegisterPrivateClass(cls, Symbols::OneByteString(), core_lib); |
| 880 pending_classes.Add(cls, Heap::kOld); | 880 pending_classes.Add(cls); |
| 881 | 881 |
| 882 cls = object_store->two_byte_string_class(); // Was allocated above. | 882 cls = object_store->two_byte_string_class(); // Was allocated above. |
| 883 RegisterPrivateClass(cls, Symbols::TwoByteString(), core_lib); | 883 RegisterPrivateClass(cls, Symbols::TwoByteString(), core_lib); |
| 884 pending_classes.Add(cls, Heap::kOld); | 884 pending_classes.Add(cls); |
| 885 | 885 |
| 886 cls = Class::NewStringClass(kExternalOneByteStringCid); | 886 cls = Class::NewStringClass(kExternalOneByteStringCid); |
| 887 object_store->set_external_one_byte_string_class(cls); | 887 object_store->set_external_one_byte_string_class(cls); |
| 888 RegisterPrivateClass(cls, Symbols::ExternalOneByteString(), core_lib); | 888 RegisterPrivateClass(cls, Symbols::ExternalOneByteString(), core_lib); |
| 889 pending_classes.Add(cls, Heap::kOld); | 889 pending_classes.Add(cls); |
| 890 | 890 |
| 891 cls = Class::NewStringClass(kExternalTwoByteStringCid); | 891 cls = Class::NewStringClass(kExternalTwoByteStringCid); |
| 892 object_store->set_external_two_byte_string_class(cls); | 892 object_store->set_external_two_byte_string_class(cls); |
| 893 RegisterPrivateClass(cls, Symbols::ExternalTwoByteString(), core_lib); | 893 RegisterPrivateClass(cls, Symbols::ExternalTwoByteString(), core_lib); |
| 894 pending_classes.Add(cls, Heap::kOld); | 894 pending_classes.Add(cls); |
| 895 | 895 |
| 896 cls = Class::New<Stacktrace>(); | 896 cls = Class::New<Stacktrace>(); |
| 897 object_store->set_stacktrace_class(cls); | 897 object_store->set_stacktrace_class(cls); |
| 898 RegisterClass(cls, Symbols::StackTrace(), core_lib); | 898 RegisterClass(cls, Symbols::StackTrace(), core_lib); |
| 899 pending_classes.Add(cls, Heap::kOld); | 899 pending_classes.Add(cls); |
| 900 // Super type set below, after Object is allocated. | 900 // Super type set below, after Object is allocated. |
| 901 | 901 |
| 902 cls = Class::New<JSRegExp>(); | 902 cls = Class::New<JSRegExp>(); |
| 903 object_store->set_jsregexp_class(cls); | 903 object_store->set_jsregexp_class(cls); |
| 904 RegisterPrivateClass(cls, Symbols::JSSyntaxRegExp(), core_lib); | 904 RegisterPrivateClass(cls, Symbols::JSSyntaxRegExp(), core_lib); |
| 905 pending_classes.Add(cls, Heap::kOld); | 905 pending_classes.Add(cls); |
| 906 | 906 |
| 907 // Initialize the base interfaces used by the core VM classes. | 907 // Initialize the base interfaces used by the core VM classes. |
| 908 | 908 |
| 909 // Allocate and initialize the pre-allocated classes in the core library. | 909 // Allocate and initialize the pre-allocated classes in the core library. |
| 910 // The script and token index of these pre-allocated classes is set up in | 910 // The script and token index of these pre-allocated classes is set up in |
| 911 // the parser when the corelib script is compiled (see | 911 // the parser when the corelib script is compiled (see |
| 912 // Parser::ParseClassDefinition). | 912 // Parser::ParseClassDefinition). |
| 913 cls = Class::New<Instance>(kInstanceCid); | 913 cls = Class::New<Instance>(kInstanceCid); |
| 914 object_store->set_object_class(cls); | 914 object_store->set_object_class(cls); |
| 915 cls.set_name(Symbols::Object()); | 915 cls.set_name(Symbols::Object()); |
| 916 cls.set_is_prefinalized(); | 916 cls.set_is_prefinalized(); |
| 917 core_lib.AddClass(cls); | 917 core_lib.AddClass(cls); |
| 918 pending_classes.Add(cls, Heap::kOld); | 918 pending_classes.Add(cls); |
| 919 type = Type::NewNonParameterizedType(cls); | 919 type = Type::NewNonParameterizedType(cls); |
| 920 object_store->set_object_type(type); | 920 object_store->set_object_type(type); |
| 921 | 921 |
| 922 cls = Class::New<Bool>(); | 922 cls = Class::New<Bool>(); |
| 923 object_store->set_bool_class(cls); | 923 object_store->set_bool_class(cls); |
| 924 RegisterClass(cls, Symbols::Bool(), core_lib); | 924 RegisterClass(cls, Symbols::Bool(), core_lib); |
| 925 pending_classes.Add(cls, Heap::kOld); | 925 pending_classes.Add(cls); |
| 926 | 926 |
| 927 cls = Class::New<Instance>(kNullCid); | 927 cls = Class::New<Instance>(kNullCid); |
| 928 cls.set_is_prefinalized(); | 928 cls.set_is_prefinalized(); |
| 929 object_store->set_null_class(cls); | 929 object_store->set_null_class(cls); |
| 930 RegisterClass(cls, Symbols::Null(), core_lib); | 930 RegisterClass(cls, Symbols::Null(), core_lib); |
| 931 pending_classes.Add(cls, Heap::kOld); | 931 pending_classes.Add(cls); |
| 932 | 932 |
| 933 cls = object_store->type_class(); | 933 cls = object_store->type_class(); |
| 934 RegisterPrivateClass(cls, Symbols::Type(), core_lib); | 934 RegisterPrivateClass(cls, Symbols::Type(), core_lib); |
| 935 pending_classes.Add(cls, Heap::kOld); | 935 pending_classes.Add(cls); |
| 936 | 936 |
| 937 cls = object_store->type_parameter_class(); | 937 cls = object_store->type_parameter_class(); |
| 938 RegisterPrivateClass(cls, Symbols::TypeParameter(), core_lib); | 938 RegisterPrivateClass(cls, Symbols::TypeParameter(), core_lib); |
| 939 pending_classes.Add(cls, Heap::kOld); | 939 pending_classes.Add(cls); |
| 940 | 940 |
| 941 cls = object_store->bounded_type_class(); | 941 cls = object_store->bounded_type_class(); |
| 942 RegisterPrivateClass(cls, Symbols::BoundedType(), core_lib); | 942 RegisterPrivateClass(cls, Symbols::BoundedType(), core_lib); |
| 943 pending_classes.Add(cls, Heap::kOld); | 943 pending_classes.Add(cls); |
| 944 | 944 |
| 945 cls = object_store->mixin_app_type_class(); | 945 cls = object_store->mixin_app_type_class(); |
| 946 RegisterPrivateClass(cls, Symbols::MixinAppType(), core_lib); | 946 RegisterPrivateClass(cls, Symbols::MixinAppType(), core_lib); |
| 947 pending_classes.Add(cls, Heap::kOld); | 947 pending_classes.Add(cls); |
| 948 | 948 |
| 949 cls = Class::New<Integer>(); | 949 cls = Class::New<Integer>(); |
| 950 object_store->set_integer_implementation_class(cls); | 950 object_store->set_integer_implementation_class(cls); |
| 951 RegisterPrivateClass(cls, Symbols::IntegerImplementation(), core_lib); | 951 RegisterPrivateClass(cls, Symbols::IntegerImplementation(), core_lib); |
| 952 pending_classes.Add(cls, Heap::kOld); | 952 pending_classes.Add(cls); |
| 953 | 953 |
| 954 cls = Class::New<Smi>(); | 954 cls = Class::New<Smi>(); |
| 955 object_store->set_smi_class(cls); | 955 object_store->set_smi_class(cls); |
| 956 RegisterPrivateClass(cls, Symbols::_Smi(), core_lib); | 956 RegisterPrivateClass(cls, Symbols::_Smi(), core_lib); |
| 957 pending_classes.Add(cls, Heap::kOld); | 957 pending_classes.Add(cls); |
| 958 | 958 |
| 959 cls = Class::New<Mint>(); | 959 cls = Class::New<Mint>(); |
| 960 object_store->set_mint_class(cls); | 960 object_store->set_mint_class(cls); |
| 961 RegisterPrivateClass(cls, Symbols::_Mint(), core_lib); | 961 RegisterPrivateClass(cls, Symbols::_Mint(), core_lib); |
| 962 pending_classes.Add(cls, Heap::kOld); | 962 pending_classes.Add(cls); |
| 963 | 963 |
| 964 cls = Class::New<Bigint>(); | 964 cls = Class::New<Bigint>(); |
| 965 object_store->set_bigint_class(cls); | 965 object_store->set_bigint_class(cls); |
| 966 RegisterPrivateClass(cls, Symbols::_Bigint(), core_lib); | 966 RegisterPrivateClass(cls, Symbols::_Bigint(), core_lib); |
| 967 pending_classes.Add(cls, Heap::kOld); | 967 pending_classes.Add(cls); |
| 968 | 968 |
| 969 cls = Class::New<Double>(); | 969 cls = Class::New<Double>(); |
| 970 object_store->set_double_class(cls); | 970 object_store->set_double_class(cls); |
| 971 RegisterPrivateClass(cls, Symbols::_Double(), core_lib); | 971 RegisterPrivateClass(cls, Symbols::_Double(), core_lib); |
| 972 pending_classes.Add(cls, Heap::kOld); | 972 pending_classes.Add(cls); |
| 973 | 973 |
| 974 // Abstract super class for all signature classes. | 974 // Abstract super class for all signature classes. |
| 975 cls = Class::New<Instance>(kIllegalCid); | 975 cls = Class::New<Instance>(kIllegalCid); |
| 976 cls.set_is_prefinalized(); | 976 cls.set_is_prefinalized(); |
| 977 RegisterPrivateClass(cls, Symbols::FunctionImpl(), core_lib); | 977 RegisterPrivateClass(cls, Symbols::FunctionImpl(), core_lib); |
| 978 pending_classes.Add(cls, Heap::kOld); | 978 pending_classes.Add(cls); |
| 979 type = Type::NewNonParameterizedType(cls); | 979 type = Type::NewNonParameterizedType(cls); |
| 980 object_store->set_function_impl_type(type); | 980 object_store->set_function_impl_type(type); |
| 981 | 981 |
| 982 cls = Class::New<WeakProperty>(); | 982 cls = Class::New<WeakProperty>(); |
| 983 object_store->set_weak_property_class(cls); | 983 object_store->set_weak_property_class(cls); |
| 984 RegisterPrivateClass(cls, Symbols::_WeakProperty(), core_lib); | 984 RegisterPrivateClass(cls, Symbols::_WeakProperty(), core_lib); |
| 985 | 985 |
| 986 // Pre-register the mirrors library so we can place the vm class | 986 // Pre-register the mirrors library so we can place the vm class |
| 987 // MirrorReference there rather than the core library. | 987 // MirrorReference there rather than the core library. |
| 988 lib = Library::LookupLibrary(Symbols::DartMirrors()); | 988 lib = Library::LookupLibrary(Symbols::DartMirrors()); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1026 typed_data_classes.SetAt(index, cls); \ | 1026 typed_data_classes.SetAt(index, cls); \ |
| 1027 RegisterPrivateClass(cls, Symbols::_##clazz(), lib); \ | 1027 RegisterPrivateClass(cls, Symbols::_##clazz(), lib); \ |
| 1028 | 1028 |
| 1029 CLASS_LIST_TYPED_DATA(REGISTER_TYPED_DATA_CLASS); | 1029 CLASS_LIST_TYPED_DATA(REGISTER_TYPED_DATA_CLASS); |
| 1030 #undef REGISTER_TYPED_DATA_CLASS | 1030 #undef REGISTER_TYPED_DATA_CLASS |
| 1031 #define REGISTER_TYPED_DATA_VIEW_CLASS(clazz) \ | 1031 #define REGISTER_TYPED_DATA_VIEW_CLASS(clazz) \ |
| 1032 cls = Class::NewTypedDataViewClass(kTypedData##clazz##ViewCid); \ | 1032 cls = Class::NewTypedDataViewClass(kTypedData##clazz##ViewCid); \ |
| 1033 index = kTypedData##clazz##ViewCid - kTypedDataInt8ArrayCid; \ | 1033 index = kTypedData##clazz##ViewCid - kTypedDataInt8ArrayCid; \ |
| 1034 typed_data_classes.SetAt(index, cls); \ | 1034 typed_data_classes.SetAt(index, cls); \ |
| 1035 RegisterPrivateClass(cls, Symbols::_##clazz##View(), lib); \ | 1035 RegisterPrivateClass(cls, Symbols::_##clazz##View(), lib); \ |
| 1036 pending_classes.Add(cls, Heap::kOld); \ | 1036 pending_classes.Add(cls); \ |
| 1037 | 1037 |
| 1038 CLASS_LIST_TYPED_DATA(REGISTER_TYPED_DATA_VIEW_CLASS); | 1038 CLASS_LIST_TYPED_DATA(REGISTER_TYPED_DATA_VIEW_CLASS); |
| 1039 cls = Class::NewTypedDataViewClass(kByteDataViewCid); | 1039 cls = Class::NewTypedDataViewClass(kByteDataViewCid); |
| 1040 index = kByteDataViewCid - kTypedDataInt8ArrayCid; | 1040 index = kByteDataViewCid - kTypedDataInt8ArrayCid; |
| 1041 typed_data_classes.SetAt(index, cls); | 1041 typed_data_classes.SetAt(index, cls); |
| 1042 RegisterPrivateClass(cls, Symbols::_ByteDataView(), lib); | 1042 RegisterPrivateClass(cls, Symbols::_ByteDataView(), lib); |
| 1043 pending_classes.Add(cls, Heap::kOld); | 1043 pending_classes.Add(cls); |
| 1044 #undef REGISTER_TYPED_DATA_VIEW_CLASS | 1044 #undef REGISTER_TYPED_DATA_VIEW_CLASS |
| 1045 #define REGISTER_EXT_TYPED_DATA_CLASS(clazz) \ | 1045 #define REGISTER_EXT_TYPED_DATA_CLASS(clazz) \ |
| 1046 cls = Class::NewExternalTypedDataClass(kExternalTypedData##clazz##Cid); \ | 1046 cls = Class::NewExternalTypedDataClass(kExternalTypedData##clazz##Cid); \ |
| 1047 index = kExternalTypedData##clazz##Cid - kTypedDataInt8ArrayCid; \ | 1047 index = kExternalTypedData##clazz##Cid - kTypedDataInt8ArrayCid; \ |
| 1048 typed_data_classes.SetAt(index, cls); \ | 1048 typed_data_classes.SetAt(index, cls); \ |
| 1049 RegisterPrivateClass(cls, Symbols::_External##clazz(), lib); \ | 1049 RegisterPrivateClass(cls, Symbols::_External##clazz(), lib); \ |
| 1050 | 1050 |
| 1051 CLASS_LIST_TYPED_DATA(REGISTER_EXT_TYPED_DATA_CLASS); | 1051 CLASS_LIST_TYPED_DATA(REGISTER_EXT_TYPED_DATA_CLASS); |
| 1052 #undef REGISTER_EXT_TYPED_DATA_CLASS | 1052 #undef REGISTER_EXT_TYPED_DATA_CLASS |
| 1053 // Register Float32x4 and Uint32x4 in the object store. | 1053 // Register Float32x4 and Uint32x4 in the object store. |
| 1054 cls = Class::New<Float32x4>(); | 1054 cls = Class::New<Float32x4>(); |
| 1055 object_store->set_float32x4_class(cls); | 1055 object_store->set_float32x4_class(cls); |
| 1056 RegisterPrivateClass(cls, Symbols::_Float32x4(), lib); | 1056 RegisterPrivateClass(cls, Symbols::_Float32x4(), lib); |
| 1057 cls = Class::New<Uint32x4>(); | 1057 cls = Class::New<Uint32x4>(); |
| 1058 object_store->set_uint32x4_class(cls); | 1058 object_store->set_uint32x4_class(cls); |
| 1059 RegisterPrivateClass(cls, Symbols::_Uint32x4(), lib); | 1059 RegisterPrivateClass(cls, Symbols::_Uint32x4(), lib); |
| 1060 | 1060 |
| 1061 cls = Class::New<Instance>(kIllegalCid); | 1061 cls = Class::New<Instance>(kIllegalCid); |
| 1062 RegisterClass(cls, Symbols::Float32x4(), lib); | 1062 RegisterClass(cls, Symbols::Float32x4(), lib); |
| 1063 cls.set_is_prefinalized(); | 1063 cls.set_is_prefinalized(); |
| 1064 pending_classes.Add(cls, Heap::kOld); | 1064 pending_classes.Add(cls); |
| 1065 type = Type::NewNonParameterizedType(cls); | 1065 type = Type::NewNonParameterizedType(cls); |
| 1066 object_store->set_float32x4_type(type); | 1066 object_store->set_float32x4_type(type); |
| 1067 | 1067 |
| 1068 cls = Class::New<Instance>(kIllegalCid); | 1068 cls = Class::New<Instance>(kIllegalCid); |
| 1069 RegisterClass(cls, Symbols::Uint32x4(), lib); | 1069 RegisterClass(cls, Symbols::Uint32x4(), lib); |
| 1070 cls.set_is_prefinalized(); | 1070 cls.set_is_prefinalized(); |
| 1071 pending_classes.Add(cls, Heap::kOld); | 1071 pending_classes.Add(cls); |
| 1072 type = Type::NewNonParameterizedType(cls); | 1072 type = Type::NewNonParameterizedType(cls); |
| 1073 object_store->set_uint32x4_type(type); | 1073 object_store->set_uint32x4_type(type); |
| 1074 | 1074 |
| 1075 object_store->set_typed_data_classes(typed_data_classes); | 1075 object_store->set_typed_data_classes(typed_data_classes); |
| 1076 | 1076 |
| 1077 // Set the super type of class Stacktrace to Object type so that the | 1077 // Set the super type of class Stacktrace to Object type so that the |
| 1078 // 'toString' method is implemented. | 1078 // 'toString' method is implemented. |
| 1079 cls = object_store->stacktrace_class(); | 1079 cls = object_store->stacktrace_class(); |
| 1080 type = object_store->object_type(); | 1080 type = object_store->object_type(); |
| 1081 cls.set_super_type(type); | 1081 cls.set_super_type(type); |
| 1082 | 1082 |
| 1083 // Abstract class that represents the Dart class Function. | 1083 // Abstract class that represents the Dart class Function. |
| 1084 cls = Class::New<Instance>(kIllegalCid); | 1084 cls = Class::New<Instance>(kIllegalCid); |
| 1085 cls.set_is_prefinalized(); | 1085 cls.set_is_prefinalized(); |
| 1086 RegisterClass(cls, Symbols::Function(), core_lib); | 1086 RegisterClass(cls, Symbols::Function(), core_lib); |
| 1087 pending_classes.Add(cls, Heap::kOld); | 1087 pending_classes.Add(cls); |
| 1088 type = Type::NewNonParameterizedType(cls); | 1088 type = Type::NewNonParameterizedType(cls); |
| 1089 object_store->set_function_type(type); | 1089 object_store->set_function_type(type); |
| 1090 | 1090 |
| 1091 cls = Class::New<Number>(); | 1091 cls = Class::New<Number>(); |
| 1092 RegisterClass(cls, Symbols::Number(), core_lib); | 1092 RegisterClass(cls, Symbols::Number(), core_lib); |
| 1093 pending_classes.Add(cls, Heap::kOld); | 1093 pending_classes.Add(cls); |
| 1094 type = Type::NewNonParameterizedType(cls); | 1094 type = Type::NewNonParameterizedType(cls); |
| 1095 object_store->set_number_type(type); | 1095 object_store->set_number_type(type); |
| 1096 | 1096 |
| 1097 cls = Class::New<Instance>(kIllegalCid); | 1097 cls = Class::New<Instance>(kIllegalCid); |
| 1098 RegisterClass(cls, Symbols::Int(), core_lib); | 1098 RegisterClass(cls, Symbols::Int(), core_lib); |
| 1099 cls.set_is_prefinalized(); | 1099 cls.set_is_prefinalized(); |
| 1100 pending_classes.Add(cls, Heap::kOld); | 1100 pending_classes.Add(cls); |
| 1101 type = Type::NewNonParameterizedType(cls); | 1101 type = Type::NewNonParameterizedType(cls); |
| 1102 object_store->set_int_type(type); | 1102 object_store->set_int_type(type); |
| 1103 | 1103 |
| 1104 cls = Class::New<Instance>(kIllegalCid); | 1104 cls = Class::New<Instance>(kIllegalCid); |
| 1105 RegisterClass(cls, Symbols::Double(), core_lib); | 1105 RegisterClass(cls, Symbols::Double(), core_lib); |
| 1106 cls.set_is_prefinalized(); | 1106 cls.set_is_prefinalized(); |
| 1107 pending_classes.Add(cls, Heap::kOld); | 1107 pending_classes.Add(cls); |
| 1108 type = Type::NewNonParameterizedType(cls); | 1108 type = Type::NewNonParameterizedType(cls); |
| 1109 object_store->set_double_type(type); | 1109 object_store->set_double_type(type); |
| 1110 | 1110 |
| 1111 name = Symbols::New("String"); | 1111 name = Symbols::New("String"); |
| 1112 cls = Class::New<Instance>(kIllegalCid); | 1112 cls = Class::New<Instance>(kIllegalCid); |
| 1113 RegisterClass(cls, name, core_lib); | 1113 RegisterClass(cls, name, core_lib); |
| 1114 cls.set_is_prefinalized(); | 1114 cls.set_is_prefinalized(); |
| 1115 pending_classes.Add(cls, Heap::kOld); | 1115 pending_classes.Add(cls); |
| 1116 type = Type::NewNonParameterizedType(cls); | 1116 type = Type::NewNonParameterizedType(cls); |
| 1117 object_store->set_string_type(type); | 1117 object_store->set_string_type(type); |
| 1118 | 1118 |
| 1119 cls = object_store->bool_class(); | 1119 cls = object_store->bool_class(); |
| 1120 type = Type::NewNonParameterizedType(cls); | 1120 type = Type::NewNonParameterizedType(cls); |
| 1121 object_store->set_bool_type(type); | 1121 object_store->set_bool_type(type); |
| 1122 | 1122 |
| 1123 cls = object_store->smi_class(); | 1123 cls = object_store->smi_class(); |
| 1124 type = Type::NewNonParameterizedType(cls); | 1124 type = Type::NewNonParameterizedType(cls); |
| 1125 object_store->set_smi_type(type); | 1125 object_store->set_smi_type(type); |
| (...skipping 13785 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 14911 return "_MirrorReference"; | 14911 return "_MirrorReference"; |
| 14912 } | 14912 } |
| 14913 | 14913 |
| 14914 | 14914 |
| 14915 void MirrorReference::PrintToJSONStream(JSONStream* stream, bool ref) const { | 14915 void MirrorReference::PrintToJSONStream(JSONStream* stream, bool ref) const { |
| 14916 JSONObject jsobj(stream); | 14916 JSONObject jsobj(stream); |
| 14917 } | 14917 } |
| 14918 | 14918 |
| 14919 | 14919 |
| 14920 } // namespace dart | 14920 } // namespace dart |
| OLD | NEW |