| 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 |