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, invokable 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. | |
2180 // optimizable: Candidate for for going through the optimizing compiler. False | |
2181 // for some functions known to be execute infrequently and | |
2182 // functions which have been de-optimized too many times. | |
2183 // instrinsic: Has a hand-written assembly prologue. | |
2184 // inlinable: Candidate for inlining. False for functions with features we | |
2185 // don't support during inlining (e.g., optional parameters), | |
2186 // functions which are too big, etc. | |
2187 // native: Bridge to C/C++ code. | |
2188 // redirecting: Redirecting generative or factory constructor. | |
2189 // external: Expects to be defined in another patch file. | |
2190 | |
Ivan Posva
2015/01/23 19:37:07
Thanks! This explanation was needed.
| |
2191 bool is_stacktrace_visible() const { return is_debuggable(); } | |
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 5513 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
7704 | 7721 |
7705 | 7722 |
7706 RawObject* MegamorphicCache::GetTargetFunction(const Array& array, | 7723 RawObject* MegamorphicCache::GetTargetFunction(const Array& array, |
7707 intptr_t index) { | 7724 intptr_t index) { |
7708 return array.At((index * kEntryLength) + kTargetFunctionIndex); | 7725 return array.At((index * kEntryLength) + kTargetFunctionIndex); |
7709 } | 7726 } |
7710 | 7727 |
7711 } // namespace dart | 7728 } // namespace dart |
7712 | 7729 |
7713 #endif // VM_OBJECT_H_ | 7730 #endif // VM_OBJECT_H_ |
OLD | NEW |