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 2151 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2162 | 2162 |
2163 RawArray* ic_data_array() const; | 2163 RawArray* ic_data_array() const; |
2164 void ClearICData() const; | 2164 void ClearICData() const; |
2165 | 2165 |
2166 static const int kCtorPhaseInit = 1 << 0; | 2166 static const int kCtorPhaseInit = 1 << 0; |
2167 static const int kCtorPhaseBody = 1 << 1; | 2167 static const int kCtorPhaseBody = 1 << 1; |
2168 static const int kCtorPhaseAll = (kCtorPhaseInit | kCtorPhaseBody); | 2168 static const int kCtorPhaseAll = (kCtorPhaseInit | kCtorPhaseBody); |
2169 | 2169 |
2170 void set_modifier(RawFunction::AsyncModifier value) const; | 2170 void set_modifier(RawFunction::AsyncModifier value) const; |
2171 | 2171 |
2172 // An invisible function is hidden from stack traces, will not be enumerated | 2172 // static: Considered during class-side or top-level resolution rather than |
2173 // by mirrors, and cannot be directly invoked by mirrors. All private | 2173 // instance-side resolution. |
2174 // functions in dart:* libraries are marked invisible by the parser. | 2174 // const: Valid target of a const constructor call. |
| 2175 // abstract: Skipped during instance-side resolution. |
| 2176 // reflectable: Enumerated by mirrors, invocable by mirrors. False for private |
| 2177 // functions of dart: libraries. |
| 2178 // debuggable: Valid location of a break point. True for functions with source |
| 2179 // code; false for synthetic functions such as dispatchers. Also |
| 2180 // used to decide whether to include a frame in stack traces. |
| 2181 // optimizable: Candidate for going through the optimizing compiler. False for |
| 2182 // some functions known to be execute infrequently and functions |
| 2183 // which have been de-optimized too many times. |
| 2184 // instrinsic: Has a hand-written assembly prologue. |
| 2185 // inlinable: Candidate for inlining. False for functions with features we |
| 2186 // don't support during inlining (e.g., optional parameters), |
| 2187 // functions which are too big, etc. |
| 2188 // native: Bridge to C/C++ code. |
| 2189 // redirecting: Redirecting generative or factory constructor. |
| 2190 // external: Just a declaration that expects to be defined in another patch |
| 2191 // file. |
2175 | 2192 |
2176 #define FOR_EACH_FUNCTION_KIND_BIT(V) \ | 2193 #define FOR_EACH_FUNCTION_KIND_BIT(V) \ |
2177 V(Static, is_static) \ | 2194 V(Static, is_static) \ |
2178 V(Const, is_const) \ | 2195 V(Const, is_const) \ |
2179 V(Abstract, is_abstract) \ | 2196 V(Abstract, is_abstract) \ |
2180 V(Visible, is_visible) \ | 2197 V(Reflectable, is_reflectable) \ |
2181 V(Debuggable, is_debuggable) \ | 2198 V(Debuggable, is_debuggable) \ |
2182 V(Optimizable, is_optimizable) \ | 2199 V(Optimizable, is_optimizable) \ |
2183 V(Inlinable, is_inlinable) \ | 2200 V(Inlinable, is_inlinable) \ |
2184 V(Intrinsic, is_intrinsic) \ | 2201 V(Intrinsic, is_intrinsic) \ |
2185 V(Native, is_native) \ | 2202 V(Native, is_native) \ |
2186 V(Redirecting, is_redirecting) \ | 2203 V(Redirecting, is_redirecting) \ |
2187 V(External, is_external) \ | 2204 V(External, is_external) \ |
2188 V(AllowsHoistingCheckClass, allows_hoisting_check_class) \ | 2205 V(AllowsHoistingCheckClass, allows_hoisting_check_class) \ |
2189 V(AllowsBoundsCheckGeneralization, allows_bounds_check_generalization) \ | 2206 V(AllowsBoundsCheckGeneralization, allows_bounds_check_generalization) \ |
2190 V(AsyncClosure, is_async_closure) \ | 2207 V(AsyncClosure, is_async_closure) \ |
(...skipping 5510 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7701 | 7718 |
7702 | 7719 |
7703 RawObject* MegamorphicCache::GetTargetFunction(const Array& array, | 7720 RawObject* MegamorphicCache::GetTargetFunction(const Array& array, |
7704 intptr_t index) { | 7721 intptr_t index) { |
7705 return array.At((index * kEntryLength) + kTargetFunctionIndex); | 7722 return array.At((index * kEntryLength) + kTargetFunctionIndex); |
7706 } | 7723 } |
7707 | 7724 |
7708 } // namespace dart | 7725 } // namespace dart |
7709 | 7726 |
7710 #endif // VM_OBJECT_H_ | 7727 #endif // VM_OBJECT_H_ |
OLD | NEW |