Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(221)

Side by Side Diff: runtime/vm/object.cc

Issue 10876100: Convert double interface into abstract class (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 8 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698