Chromium Code Reviews| 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); | |
|
siva
2012/08/29 23:49:36
TODO to remove this once patching of double class
| |
| 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("bool", script, core_lib); | 793 cls = CreateAndRegisterInterface("bool", 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_bool_interface(type); | 796 object_store->set_bool_interface(type); |
| 795 | 797 |
| 796 cls = CreateAndRegisterInterface("List", script, core_lib); | 798 cls = CreateAndRegisterInterface("List", 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_list_interface(type); | 801 object_store->set_list_interface(type); |
| 800 | 802 |
| 801 cls = CreateAndRegisterInterface("ByteArray", script, core_lib); | 803 cls = CreateAndRegisterInterface("ByteArray", script, core_lib); |
| 802 pending_classes.Add(cls, Heap::kOld); | 804 pending_classes.Add(cls, Heap::kOld); |
| 803 type = Type::NewNonParameterizedType(cls); | 805 type = Type::NewNonParameterizedType(cls); |
| 804 object_store->set_byte_array_interface(type); | 806 object_store->set_byte_array_interface(type); |
| 805 | 807 |
| 806 cls = object_store->smi_class(); | 808 cls = object_store->smi_class(); |
| 807 type = Type::NewNonParameterizedType(cls); | 809 type = Type::NewNonParameterizedType(cls); |
| 808 object_store->set_smi_type(type); | 810 object_store->set_smi_type(type); |
| 809 | 811 |
| 810 cls = object_store->double_class(); | |
| 811 type = Type::NewNonParameterizedType(cls); | |
| 812 object_store->set_double_type(type); | |
| 813 | |
| 814 cls = object_store->mint_class(); | 812 cls = object_store->mint_class(); |
| 815 type = Type::NewNonParameterizedType(cls); | 813 type = Type::NewNonParameterizedType(cls); |
| 816 object_store->set_mint_type(type); | 814 object_store->set_mint_type(type); |
| 817 | 815 |
| 818 // The classes 'Null' and 'void' are not registered in the class dictionary, | 816 // The classes 'Null' and 'void' are not registered in the class dictionary, |
| 819 // because their names are reserved keywords. Their names are not heap | 817 // because their names are reserved keywords. Their names are not heap |
| 820 // allocated, because the classes reside in the VM isolate. | 818 // allocated, because the classes reside in the VM isolate. |
| 821 // The corresponding types are stored in the object store. | 819 // The corresponding types are stored in the object store. |
| 822 cls = null_class(); | 820 cls = null_class(); |
| 823 type = Type::NewNonParameterizedType(cls); | 821 type = Type::NewNonParameterizedType(cls); |
| (...skipping 1737 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2561 (type_class() == Type::Handle(Type::BoolInterface()).type_class()); | 2559 (type_class() == Type::Handle(Type::BoolInterface()).type_class()); |
| 2562 } | 2560 } |
| 2563 | 2561 |
| 2564 | 2562 |
| 2565 bool AbstractType::IsIntInterface() const { | 2563 bool AbstractType::IsIntInterface() const { |
| 2566 return HasResolvedTypeClass() && | 2564 return HasResolvedTypeClass() && |
| 2567 (type_class() == Type::Handle(Type::IntInterface()).type_class()); | 2565 (type_class() == Type::Handle(Type::IntInterface()).type_class()); |
| 2568 } | 2566 } |
| 2569 | 2567 |
| 2570 | 2568 |
| 2571 bool AbstractType::IsDoubleInterface() const { | 2569 bool AbstractType::IsDoubleType() const { |
| 2572 return HasResolvedTypeClass() && | 2570 return HasResolvedTypeClass() && |
| 2573 (type_class() == Type::Handle(Type::DoubleInterface()).type_class()); | 2571 (type_class() == Type::Handle(Type::Double()).type_class()); |
| 2574 } | 2572 } |
| 2575 | 2573 |
| 2576 | 2574 |
| 2577 bool AbstractType::IsNumberType() const { | 2575 bool AbstractType::IsNumberType() const { |
| 2578 return HasResolvedTypeClass() && | 2576 return HasResolvedTypeClass() && |
| 2579 (type_class() == Type::Handle(Type::Number()).type_class()); | 2577 (type_class() == Type::Handle(Type::Number()).type_class()); |
| 2580 } | 2578 } |
| 2581 | 2579 |
| 2582 | 2580 |
| 2583 bool AbstractType::IsStringInterface() const { | 2581 bool AbstractType::IsStringInterface() const { |
| (...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2702 RawType* Type::SmiType() { | 2700 RawType* Type::SmiType() { |
| 2703 return Isolate::Current()->object_store()->smi_type(); | 2701 return Isolate::Current()->object_store()->smi_type(); |
| 2704 } | 2702 } |
| 2705 | 2703 |
| 2706 | 2704 |
| 2707 RawType* Type::MintType() { | 2705 RawType* Type::MintType() { |
| 2708 return Isolate::Current()->object_store()->mint_type(); | 2706 return Isolate::Current()->object_store()->mint_type(); |
| 2709 } | 2707 } |
| 2710 | 2708 |
| 2711 | 2709 |
| 2712 RawType* Type::DoubleInterface() { | 2710 RawType* Type::Double() { |
| 2713 return Isolate::Current()->object_store()->double_interface(); | 2711 return Isolate::Current()->object_store()->double_type(); |
| 2714 } | 2712 } |
| 2715 | 2713 |
| 2716 | 2714 |
| 2717 RawType* Type::Number() { | 2715 RawType* Type::Number() { |
| 2718 return Isolate::Current()->object_store()->number_type(); | 2716 return Isolate::Current()->object_store()->number_type(); |
| 2719 } | 2717 } |
| 2720 | 2718 |
| 2721 | 2719 |
| 2722 RawType* Type::StringInterface() { | 2720 RawType* Type::StringInterface() { |
| 2723 return Isolate::Current()->object_store()->string_interface(); | 2721 return Isolate::Current()->object_store()->string_interface(); |
| (...skipping 8459 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 |