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 1704 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1715 bool is_recognized() const { | 1715 bool is_recognized() const { |
1716 return RecognizedBit::decode(raw_ptr()->kind_tag_); | 1716 return RecognizedBit::decode(raw_ptr()->kind_tag_); |
1717 } | 1717 } |
1718 void set_is_recognized(bool value) const; | 1718 void set_is_recognized(bool value) const; |
1719 | 1719 |
1720 bool is_redirecting() const { | 1720 bool is_redirecting() const { |
1721 return RedirectingBit::decode(raw_ptr()->kind_tag_); | 1721 return RedirectingBit::decode(raw_ptr()->kind_tag_); |
1722 } | 1722 } |
1723 void set_is_redirecting(bool value) const; | 1723 void set_is_redirecting(bool value) const; |
1724 | 1724 |
| 1725 bool allows_hoisting_check_class() const { |
| 1726 return AllowsHoistingCheckClassBit::decode(raw_ptr()->kind_tag_); |
| 1727 } |
| 1728 void set_allows_hoisting_check_class(bool value) const; |
| 1729 |
1725 bool HasOptimizedCode() const; | 1730 bool HasOptimizedCode() const; |
1726 | 1731 |
1727 // Returns true if the argument counts are valid for calling this function. | 1732 // Returns true if the argument counts are valid for calling this function. |
1728 // Otherwise, it returns false and the reason (if error_message is not NULL). | 1733 // Otherwise, it returns false and the reason (if error_message is not NULL). |
1729 bool AreValidArgumentCounts(intptr_t num_arguments, | 1734 bool AreValidArgumentCounts(intptr_t num_arguments, |
1730 intptr_t num_named_arguments, | 1735 intptr_t num_named_arguments, |
1731 String* error_message) const; | 1736 String* error_message) const; |
1732 | 1737 |
1733 // Returns true if the total argument count and the names of optional | 1738 // Returns true if the total argument count and the names of optional |
1734 // arguments are valid for calling this function. | 1739 // arguments are valid for calling this function. |
(...skipping 150 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1885 kConstBit = 5, | 1890 kConstBit = 5, |
1886 kAbstractBit = 6, | 1891 kAbstractBit = 6, |
1887 kVisibleBit = 7, | 1892 kVisibleBit = 7, |
1888 kOptimizableBit = 8, | 1893 kOptimizableBit = 8, |
1889 kInlinableBit = 9, | 1894 kInlinableBit = 9, |
1890 kIntrinsicBit = 10, | 1895 kIntrinsicBit = 10, |
1891 kRecognizedBit = 11, | 1896 kRecognizedBit = 11, |
1892 kNativeBit = 12, | 1897 kNativeBit = 12, |
1893 kRedirectingBit = 13, | 1898 kRedirectingBit = 13, |
1894 kExternalBit = 14, | 1899 kExternalBit = 14, |
| 1900 kAllowsHoistingCheckClassBit = 15, |
1895 }; | 1901 }; |
1896 class KindBits : | 1902 class KindBits : |
1897 public BitField<RawFunction::Kind, kKindTagBit, kKindTagSize> {}; // NOLINT | 1903 public BitField<RawFunction::Kind, kKindTagBit, kKindTagSize> {}; // NOLINT |
1898 class StaticBit : public BitField<bool, kStaticBit, 1> {}; | 1904 class StaticBit : public BitField<bool, kStaticBit, 1> {}; |
1899 class ConstBit : public BitField<bool, kConstBit, 1> {}; | 1905 class ConstBit : public BitField<bool, kConstBit, 1> {}; |
1900 class AbstractBit : public BitField<bool, kAbstractBit, 1> {}; | 1906 class AbstractBit : public BitField<bool, kAbstractBit, 1> {}; |
1901 class VisibleBit : public BitField<bool, kVisibleBit, 1> {}; | 1907 class VisibleBit : public BitField<bool, kVisibleBit, 1> {}; |
1902 class OptimizableBit : public BitField<bool, kOptimizableBit, 1> {}; | 1908 class OptimizableBit : public BitField<bool, kOptimizableBit, 1> {}; |
1903 class InlinableBit : public BitField<bool, kInlinableBit, 1> {}; | 1909 class InlinableBit : public BitField<bool, kInlinableBit, 1> {}; |
1904 class IntrinsicBit : public BitField<bool, kIntrinsicBit, 1> {}; | 1910 class IntrinsicBit : public BitField<bool, kIntrinsicBit, 1> {}; |
1905 class RecognizedBit : public BitField<bool, kRecognizedBit, 1> {}; | 1911 class RecognizedBit : public BitField<bool, kRecognizedBit, 1> {}; |
1906 class NativeBit : public BitField<bool, kNativeBit, 1> {}; | 1912 class NativeBit : public BitField<bool, kNativeBit, 1> {}; |
1907 class ExternalBit : public BitField<bool, kExternalBit, 1> {}; | 1913 class ExternalBit : public BitField<bool, kExternalBit, 1> {}; |
1908 class RedirectingBit : public BitField<bool, kRedirectingBit, 1> {}; | 1914 class RedirectingBit : public BitField<bool, kRedirectingBit, 1> {}; |
| 1915 class AllowsHoistingCheckClassBit : |
| 1916 public BitField<bool, kAllowsHoistingCheckClassBit, 1> {}; // NOLINT |
1909 | 1917 |
1910 void set_name(const String& value) const; | 1918 void set_name(const String& value) const; |
1911 void set_kind(RawFunction::Kind value) const; | 1919 void set_kind(RawFunction::Kind value) const; |
1912 void set_is_static(bool value) const; | 1920 void set_is_static(bool value) const; |
1913 void set_is_const(bool value) const; | 1921 void set_is_const(bool value) const; |
1914 void set_is_external(bool value) const; | 1922 void set_is_external(bool value) const; |
1915 void set_parent_function(const Function& value) const; | 1923 void set_parent_function(const Function& value) const; |
1916 void set_owner(const Object& value) const; | 1924 void set_owner(const Object& value) const; |
1917 RawFunction* implicit_closure_function() const; | 1925 RawFunction* implicit_closure_function() const; |
1918 void set_implicit_closure_function(const Function& value) const; | 1926 void set_implicit_closure_function(const Function& value) const; |
(...skipping 4673 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6592 | 6600 |
6593 | 6601 |
6594 RawObject* MegamorphicCache::GetTargetFunction(const Array& array, | 6602 RawObject* MegamorphicCache::GetTargetFunction(const Array& array, |
6595 intptr_t index) { | 6603 intptr_t index) { |
6596 return array.At((index * kEntryLength) + kTargetFunctionIndex); | 6604 return array.At((index * kEntryLength) + kTargetFunctionIndex); |
6597 } | 6605 } |
6598 | 6606 |
6599 } // namespace dart | 6607 } // namespace dart |
6600 | 6608 |
6601 #endif // VM_OBJECT_H_ | 6609 #endif // VM_OBJECT_H_ |
OLD | NEW |