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 2224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2235 static const int kCtorPhaseAll = (kCtorPhaseInit | kCtorPhaseBody); | 2235 static const int kCtorPhaseAll = (kCtorPhaseInit | kCtorPhaseBody); |
2236 | 2236 |
2237 void set_modifier(RawFunction::AsyncModifier value) const; | 2237 void set_modifier(RawFunction::AsyncModifier value) const; |
2238 | 2238 |
2239 // static: Considered during class-side or top-level resolution rather than | 2239 // static: Considered during class-side or top-level resolution rather than |
2240 // instance-side resolution. | 2240 // instance-side resolution. |
2241 // const: Valid target of a const constructor call. | 2241 // const: Valid target of a const constructor call. |
2242 // abstract: Skipped during instance-side resolution. | 2242 // abstract: Skipped during instance-side resolution. |
2243 // reflectable: Enumerated by mirrors, invocable by mirrors. False for private | 2243 // reflectable: Enumerated by mirrors, invocable by mirrors. False for private |
2244 // functions of dart: libraries. | 2244 // functions of dart: libraries. |
2245 // debuggable: Valid location of a break point. True for functions with source | 2245 // debuggable: Valid location of a breakpoint. Synthetic code is not |
2246 // code; false for synthetic functions such as dispatchers. Also | 2246 // debuggable. |
2247 // used to decide whether to include a frame in stack traces. | 2247 // visible: Frame is included in stack traces. Synthetic code such as |
| 2248 // dispatchers is not visible. Synthetic code that can trigger |
| 2249 // exceptions such as the outer async functions that create Futures |
| 2250 // is visible. |
2248 // optimizable: Candidate for going through the optimizing compiler. False for | 2251 // optimizable: Candidate for going through the optimizing compiler. False for |
2249 // some functions known to be execute infrequently and functions | 2252 // some functions known to be execute infrequently and functions |
2250 // which have been de-optimized too many times. | 2253 // which have been de-optimized too many times. |
2251 // instrinsic: Has a hand-written assembly prologue. | 2254 // instrinsic: Has a hand-written assembly prologue. |
2252 // inlinable: Candidate for inlining. False for functions with features we | 2255 // inlinable: Candidate for inlining. False for functions with features we |
2253 // don't support during inlining (e.g., optional parameters), | 2256 // don't support during inlining (e.g., optional parameters), |
2254 // functions which are too big, etc. | 2257 // functions which are too big, etc. |
2255 // native: Bridge to C/C++ code. | 2258 // native: Bridge to C/C++ code. |
2256 // redirecting: Redirecting generative or factory constructor. | 2259 // redirecting: Redirecting generative or factory constructor. |
2257 // external: Just a declaration that expects to be defined in another patch | 2260 // external: Just a declaration that expects to be defined in another patch |
2258 // file. | 2261 // file. |
2259 | 2262 |
2260 #define FOR_EACH_FUNCTION_KIND_BIT(V) \ | 2263 #define FOR_EACH_FUNCTION_KIND_BIT(V) \ |
2261 V(Static, is_static) \ | 2264 V(Static, is_static) \ |
2262 V(Const, is_const) \ | 2265 V(Const, is_const) \ |
2263 V(Abstract, is_abstract) \ | 2266 V(Abstract, is_abstract) \ |
2264 V(Reflectable, is_reflectable) \ | 2267 V(Reflectable, is_reflectable) \ |
| 2268 V(Visible, is_visible) \ |
2265 V(Debuggable, is_debuggable) \ | 2269 V(Debuggable, is_debuggable) \ |
2266 V(Optimizable, is_optimizable) \ | 2270 V(Optimizable, is_optimizable) \ |
2267 V(Inlinable, is_inlinable) \ | 2271 V(Inlinable, is_inlinable) \ |
2268 V(Intrinsic, is_intrinsic) \ | 2272 V(Intrinsic, is_intrinsic) \ |
2269 V(Native, is_native) \ | 2273 V(Native, is_native) \ |
2270 V(Redirecting, is_redirecting) \ | 2274 V(Redirecting, is_redirecting) \ |
2271 V(External, is_external) \ | 2275 V(External, is_external) \ |
2272 V(AllowsHoistingCheckClass, allows_hoisting_check_class) \ | 2276 V(AllowsHoistingCheckClass, allows_hoisting_check_class) \ |
2273 V(AllowsBoundsCheckGeneralization, allows_bounds_check_generalization) \ | 2277 V(AllowsBoundsCheckGeneralization, allows_bounds_check_generalization) \ |
2274 V(GeneratedBody, is_generated_body) \ | 2278 V(GeneratedBody, is_generated_body) \ |
(...skipping 5561 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7836 | 7840 |
7837 | 7841 |
7838 RawObject* MegamorphicCache::GetTargetFunction(const Array& array, | 7842 RawObject* MegamorphicCache::GetTargetFunction(const Array& array, |
7839 intptr_t index) { | 7843 intptr_t index) { |
7840 return array.At((index * kEntryLength) + kTargetFunctionIndex); | 7844 return array.At((index * kEntryLength) + kTargetFunctionIndex); |
7841 } | 7845 } |
7842 | 7846 |
7843 } // namespace dart | 7847 } // namespace dart |
7844 | 7848 |
7845 #endif // VM_OBJECT_H_ | 7849 #endif // VM_OBJECT_H_ |
OLD | NEW |