| 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 #ifndef VM_OBJECT_H_ | 5 #ifndef VM_OBJECT_H_ |
| 6 #define VM_OBJECT_H_ | 6 #define VM_OBJECT_H_ |
| 7 | 7 |
| 8 #include "include/dart_api.h" | 8 #include "include/dart_api.h" |
| 9 #include "platform/assert.h" | 9 #include "platform/assert.h" |
| 10 #include "platform/utils.h" | 10 #include "platform/utils.h" |
| (...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 255 static intptr_t tags_offset() { return OFFSET_OF(RawObject, tags_); } | 255 static intptr_t tags_offset() { return OFFSET_OF(RawObject, tags_); } |
| 256 | 256 |
| 257 // Class testers. | 257 // Class testers. |
| 258 #define DEFINE_CLASS_TESTER(clazz) \ | 258 #define DEFINE_CLASS_TESTER(clazz) \ |
| 259 virtual bool Is##clazz() const { return false; } | 259 virtual bool Is##clazz() const { return false; } |
| 260 CLASS_LIST_FOR_HANDLES(DEFINE_CLASS_TESTER); | 260 CLASS_LIST_FOR_HANDLES(DEFINE_CLASS_TESTER); |
| 261 #undef DEFINE_CLASS_TESTER | 261 #undef DEFINE_CLASS_TESTER |
| 262 | 262 |
| 263 bool IsNull() const { return raw_ == null_; } | 263 bool IsNull() const { return raw_ == null_; } |
| 264 | 264 |
| 265 // Matches Object.toString on instances (except String::ToCString, bug 20583). |
| 265 virtual const char* ToCString() const { | 266 virtual const char* ToCString() const { |
| 266 if (IsNull()) { | 267 if (IsNull()) { |
| 267 return "null"; | 268 return "null"; |
| 268 } else { | 269 } else { |
| 269 return "Object"; | 270 return "Object"; |
| 270 } | 271 } |
| 271 } | 272 } |
| 272 | 273 |
| 273 void PrintJSON(JSONStream* stream, bool ref = true) const; | 274 void PrintJSON(JSONStream* stream, bool ref = true) const; |
| 274 | 275 |
| (...skipping 4722 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4997 | 4998 |
| 4998 static RawMixinAppType* New(); | 4999 static RawMixinAppType* New(); |
| 4999 | 5000 |
| 5000 FINAL_HEAP_OBJECT_IMPLEMENTATION(MixinAppType, AbstractType); | 5001 FINAL_HEAP_OBJECT_IMPLEMENTATION(MixinAppType, AbstractType); |
| 5001 friend class Class; | 5002 friend class Class; |
| 5002 }; | 5003 }; |
| 5003 | 5004 |
| 5004 | 5005 |
| 5005 class Number : public Instance { | 5006 class Number : public Instance { |
| 5006 public: | 5007 public: |
| 5007 // TODO(iposva): Fill in a useful Number interface. | 5008 // TODO(iposva): Add more useful Number methods. |
| 5009 RawString* ToString(Heap::Space space) const; |
| 5008 | 5010 |
| 5009 private: | 5011 private: |
| 5010 OBJECT_IMPLEMENTATION(Number, Instance); | 5012 OBJECT_IMPLEMENTATION(Number, Instance); |
| 5011 friend class Class; | 5013 friend class Class; |
| 5012 }; | 5014 }; |
| 5013 | 5015 |
| 5014 | 5016 |
| 5015 class Integer : public Number { | 5017 class Integer : public Number { |
| 5016 public: | 5018 public: |
| 5017 static RawInteger* New(const String& str, Heap::Space space = Heap::kNew); | 5019 static RawInteger* New(const String& str, Heap::Space space = Heap::kNew); |
| (...skipping 2301 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7319 | 7321 |
| 7320 | 7322 |
| 7321 RawObject* MegamorphicCache::GetTargetFunction(const Array& array, | 7323 RawObject* MegamorphicCache::GetTargetFunction(const Array& array, |
| 7322 intptr_t index) { | 7324 intptr_t index) { |
| 7323 return array.At((index * kEntryLength) + kTargetFunctionIndex); | 7325 return array.At((index * kEntryLength) + kTargetFunctionIndex); |
| 7324 } | 7326 } |
| 7325 | 7327 |
| 7326 } // namespace dart | 7328 } // namespace dart |
| 7327 | 7329 |
| 7328 #endif // VM_OBJECT_H_ | 7330 #endif // VM_OBJECT_H_ |
| OLD | NEW |