| 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/bigint_operations.h" | 10 #include "vm/bigint_operations.h" |
| (...skipping 760 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 771 RegisterClass(cls, name, core_lib); | 771 RegisterClass(cls, name, core_lib); |
| 772 pending_classes.Add(cls, Heap::kOld); | 772 pending_classes.Add(cls, Heap::kOld); |
| 773 type = Type::NewNonParameterizedType(cls); | 773 type = Type::NewNonParameterizedType(cls); |
| 774 object_store->set_number_type(type); | 774 object_store->set_number_type(type); |
| 775 | 775 |
| 776 cls = CreateAndRegisterInterface("int", script, core_lib); | 776 cls = CreateAndRegisterInterface("int", script, core_lib); |
| 777 pending_classes.Add(cls, Heap::kOld); | 777 pending_classes.Add(cls, Heap::kOld); |
| 778 type = Type::NewNonParameterizedType(cls); | 778 type = Type::NewNonParameterizedType(cls); |
| 779 object_store->set_int_interface(type); | 779 object_store->set_int_interface(type); |
| 780 | 780 |
| 781 cls = CreateAndRegisterInterface("double", script, core_lib); | 781 name = Symbols::New("double"); |
| 782 cls = Class::New<Instance>(name, script, Scanner::kDummyTokenIndex); |
| 783 RegisterClass(cls, name, core_lib); |
| 782 pending_classes.Add(cls, Heap::kOld); | 784 pending_classes.Add(cls, Heap::kOld); |
| 783 type = Type::NewNonParameterizedType(cls); | 785 type = Type::NewNonParameterizedType(cls); |
| 784 object_store->set_double_interface(type); | 786 object_store->set_double_type(type); |
| 785 | 787 |
| 786 cls = CreateAndRegisterInterface("String", script, core_lib); | 788 cls = CreateAndRegisterInterface("String", script, core_lib); |
| 787 pending_classes.Add(cls, Heap::kOld); | 789 pending_classes.Add(cls, Heap::kOld); |
| 788 type = Type::NewNonParameterizedType(cls); | 790 type = Type::NewNonParameterizedType(cls); |
| 789 object_store->set_string_interface(type); | 791 object_store->set_string_interface(type); |
| 790 | 792 |
| 791 cls = CreateAndRegisterInterface("List", script, core_lib); | 793 cls = CreateAndRegisterInterface("List", script, core_lib); |
| 792 pending_classes.Add(cls, Heap::kOld); | 794 pending_classes.Add(cls, Heap::kOld); |
| 793 type = Type::NewNonParameterizedType(cls); | 795 type = Type::NewNonParameterizedType(cls); |
| 794 object_store->set_list_interface(type); | 796 object_store->set_list_interface(type); |
| 795 | 797 |
| 796 cls = CreateAndRegisterInterface("ByteArray", script, core_lib); | 798 cls = CreateAndRegisterInterface("ByteArray", script, core_lib); |
| 797 pending_classes.Add(cls, Heap::kOld); | 799 pending_classes.Add(cls, Heap::kOld); |
| 798 type = Type::NewNonParameterizedType(cls); | 800 type = Type::NewNonParameterizedType(cls); |
| 799 object_store->set_byte_array_interface(type); | 801 object_store->set_byte_array_interface(type); |
| 800 | 802 |
| 801 cls = object_store->bool_class(); | 803 cls = object_store->bool_class(); |
| 802 type = Type::NewNonParameterizedType(cls); | 804 type = Type::NewNonParameterizedType(cls); |
| 803 object_store->set_bool_type(type); | 805 object_store->set_bool_type(type); |
| 804 | 806 |
| 805 cls = object_store->smi_class(); | 807 cls = object_store->smi_class(); |
| 806 type = Type::NewNonParameterizedType(cls); | 808 type = Type::NewNonParameterizedType(cls); |
| 807 object_store->set_smi_type(type); | 809 object_store->set_smi_type(type); |
| 808 | 810 |
| 809 cls = object_store->double_class(); | |
| 810 type = Type::NewNonParameterizedType(cls); | |
| 811 object_store->set_double_type(type); | |
| 812 | |
| 813 cls = object_store->mint_class(); | 811 cls = object_store->mint_class(); |
| 814 type = Type::NewNonParameterizedType(cls); | 812 type = Type::NewNonParameterizedType(cls); |
| 815 object_store->set_mint_type(type); | 813 object_store->set_mint_type(type); |
| 816 | 814 |
| 817 // The classes 'Null' and 'void' are not registered in the class dictionary, | 815 // The classes 'Null' and 'void' are not registered in the class dictionary, |
| 818 // because their names are reserved keywords. Their names are not heap | 816 // because their names are reserved keywords. Their names are not heap |
| 819 // allocated, because the classes reside in the VM isolate. | 817 // allocated, because the classes reside in the VM isolate. |
| 820 // The corresponding types are stored in the object store. | 818 // The corresponding types are stored in the object store. |
| 821 cls = null_class(); | 819 cls = null_class(); |
| 822 type = Type::NewNonParameterizedType(cls); | 820 type = Type::NewNonParameterizedType(cls); |
| (...skipping 1735 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2558 (type_class() == Type::Handle(Type::BoolType()).type_class()); | 2556 (type_class() == Type::Handle(Type::BoolType()).type_class()); |
| 2559 } | 2557 } |
| 2560 | 2558 |
| 2561 | 2559 |
| 2562 bool AbstractType::IsIntInterface() const { | 2560 bool AbstractType::IsIntInterface() const { |
| 2563 return HasResolvedTypeClass() && | 2561 return HasResolvedTypeClass() && |
| 2564 (type_class() == Type::Handle(Type::IntInterface()).type_class()); | 2562 (type_class() == Type::Handle(Type::IntInterface()).type_class()); |
| 2565 } | 2563 } |
| 2566 | 2564 |
| 2567 | 2565 |
| 2568 bool AbstractType::IsDoubleInterface() const { | 2566 bool AbstractType::IsDoubleType() const { |
| 2569 return HasResolvedTypeClass() && | 2567 return HasResolvedTypeClass() && |
| 2570 (type_class() == Type::Handle(Type::DoubleInterface()).type_class()); | 2568 (type_class() == Type::Handle(Type::Double()).type_class()); |
| 2571 } | 2569 } |
| 2572 | 2570 |
| 2573 | 2571 |
| 2574 bool AbstractType::IsNumberType() const { | 2572 bool AbstractType::IsNumberType() const { |
| 2575 return HasResolvedTypeClass() && | 2573 return HasResolvedTypeClass() && |
| 2576 (type_class() == Type::Handle(Type::Number()).type_class()); | 2574 (type_class() == Type::Handle(Type::Number()).type_class()); |
| 2577 } | 2575 } |
| 2578 | 2576 |
| 2579 | 2577 |
| 2580 bool AbstractType::IsStringInterface() const { | 2578 bool AbstractType::IsStringInterface() const { |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2699 RawType* Type::SmiType() { | 2697 RawType* Type::SmiType() { |
| 2700 return Isolate::Current()->object_store()->smi_type(); | 2698 return Isolate::Current()->object_store()->smi_type(); |
| 2701 } | 2699 } |
| 2702 | 2700 |
| 2703 | 2701 |
| 2704 RawType* Type::MintType() { | 2702 RawType* Type::MintType() { |
| 2705 return Isolate::Current()->object_store()->mint_type(); | 2703 return Isolate::Current()->object_store()->mint_type(); |
| 2706 } | 2704 } |
| 2707 | 2705 |
| 2708 | 2706 |
| 2709 RawType* Type::DoubleInterface() { | 2707 RawType* Type::Double() { |
| 2710 return Isolate::Current()->object_store()->double_interface(); | 2708 return Isolate::Current()->object_store()->double_type(); |
| 2711 } | 2709 } |
| 2712 | 2710 |
| 2713 | 2711 |
| 2714 RawType* Type::Number() { | 2712 RawType* Type::Number() { |
| 2715 return Isolate::Current()->object_store()->number_type(); | 2713 return Isolate::Current()->object_store()->number_type(); |
| 2716 } | 2714 } |
| 2717 | 2715 |
| 2718 | 2716 |
| 2719 RawType* Type::StringInterface() { | 2717 RawType* Type::StringInterface() { |
| 2720 return Isolate::Current()->object_store()->string_interface(); | 2718 return Isolate::Current()->object_store()->string_interface(); |
| (...skipping 8462 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11183 } | 11181 } |
| 11184 return result.raw(); | 11182 return result.raw(); |
| 11185 } | 11183 } |
| 11186 | 11184 |
| 11187 | 11185 |
| 11188 const char* WeakProperty::ToCString() const { | 11186 const char* WeakProperty::ToCString() const { |
| 11189 return "_WeakProperty"; | 11187 return "_WeakProperty"; |
| 11190 } | 11188 } |
| 11191 | 11189 |
| 11192 } // namespace dart | 11190 } // namespace dart |
| OLD | NEW |