| 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 1168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1179 // TODO(koda): Unite w/ hash table. | 1179 // TODO(koda): Unite w/ hash table. |
| 1180 RawArray* functions() const { return raw_ptr()->functions_; } | 1180 RawArray* functions() const { return raw_ptr()->functions_; } |
| 1181 void SetFunctions(const Array& value) const; | 1181 void SetFunctions(const Array& value) const; |
| 1182 void AddFunction(const Function& function) const; | 1182 void AddFunction(const Function& function) const; |
| 1183 void RemoveFunction(const Function& function) const; | 1183 void RemoveFunction(const Function& function) const; |
| 1184 RawFunction* FunctionFromIndex(intptr_t idx) const; | 1184 RawFunction* FunctionFromIndex(intptr_t idx) const; |
| 1185 intptr_t FindImplicitClosureFunctionIndex(const Function& needle) const; | 1185 intptr_t FindImplicitClosureFunctionIndex(const Function& needle) const; |
| 1186 RawFunction* ImplicitClosureFunctionFromIndex(intptr_t idx) const; | 1186 RawFunction* ImplicitClosureFunctionFromIndex(intptr_t idx) const; |
| 1187 | 1187 |
| 1188 RawFunction* LookupDynamicFunction(const String& name) const; | 1188 RawFunction* LookupDynamicFunction(const String& name) const; |
| 1189 RawFunction* LookupDynamicFunctionAllowAbstract(const String& name) const; |
| 1189 RawFunction* LookupDynamicFunctionAllowPrivate(const String& name) const; | 1190 RawFunction* LookupDynamicFunctionAllowPrivate(const String& name) const; |
| 1190 RawFunction* LookupStaticFunction(const String& name) const; | 1191 RawFunction* LookupStaticFunction(const String& name) const; |
| 1191 RawFunction* LookupStaticFunctionAllowPrivate(const String& name) const; | 1192 RawFunction* LookupStaticFunctionAllowPrivate(const String& name) const; |
| 1192 RawFunction* LookupConstructor(const String& name) const; | 1193 RawFunction* LookupConstructor(const String& name) const; |
| 1193 RawFunction* LookupConstructorAllowPrivate(const String& name) const; | 1194 RawFunction* LookupConstructorAllowPrivate(const String& name) const; |
| 1194 RawFunction* LookupFactory(const String& name) const; | 1195 RawFunction* LookupFactory(const String& name) const; |
| 1195 RawFunction* LookupFactoryAllowPrivate(const String& name) const; | 1196 RawFunction* LookupFactoryAllowPrivate(const String& name) const; |
| 1196 RawFunction* LookupFunction(const String& name) const; | 1197 RawFunction* LookupFunction(const String& name) const; |
| 1197 RawFunction* LookupFunctionAllowPrivate(const String& name) const; | 1198 RawFunction* LookupFunctionAllowPrivate(const String& name) const; |
| 1198 RawFunction* LookupGetterFunction(const String& name) const; | 1199 RawFunction* LookupGetterFunction(const String& name) const; |
| (...skipping 167 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1366 void set_cha_codes(const Array& value) const; | 1367 void set_cha_codes(const Array& value) const; |
| 1367 | 1368 |
| 1368 bool TraceAllocation(Isolate* isolate) const; | 1369 bool TraceAllocation(Isolate* isolate) const; |
| 1369 void SetTraceAllocation(bool trace_allocation) const; | 1370 void SetTraceAllocation(bool trace_allocation) const; |
| 1370 | 1371 |
| 1371 private: | 1372 private: |
| 1372 enum MemberKind { | 1373 enum MemberKind { |
| 1373 kAny = 0, | 1374 kAny = 0, |
| 1374 kStatic, | 1375 kStatic, |
| 1375 kInstance, | 1376 kInstance, |
| 1377 kInstanceAllowAbstract, |
| 1376 kConstructor, | 1378 kConstructor, |
| 1377 kFactory, | 1379 kFactory, |
| 1378 }; | 1380 }; |
| 1379 enum StateBits { | 1381 enum StateBits { |
| 1380 kConstBit = 0, | 1382 kConstBit = 0, |
| 1381 kImplementedBit = 1, | 1383 kImplementedBit = 1, |
| 1382 kTypeFinalizedBit = 2, | 1384 kTypeFinalizedBit = 2, |
| 1383 kClassFinalizedPos = 3, | 1385 kClassFinalizedPos = 3, |
| 1384 kClassFinalizedSize = 2, | 1386 kClassFinalizedSize = 2, |
| 1385 kAbstractBit = kClassFinalizedPos + kClassFinalizedSize, // = 5 | 1387 kAbstractBit = kClassFinalizedPos + kClassFinalizedSize, // = 5 |
| (...skipping 922 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2308 | 2310 |
| 2309 static const char* KindToCString(RawFunction::Kind kind); | 2311 static const char* KindToCString(RawFunction::Kind kind); |
| 2310 | 2312 |
| 2311 bool IsGenerativeConstructor() const { | 2313 bool IsGenerativeConstructor() const { |
| 2312 return (kind() == RawFunction::kConstructor) && !is_static(); | 2314 return (kind() == RawFunction::kConstructor) && !is_static(); |
| 2313 } | 2315 } |
| 2314 bool IsImplicitConstructor() const; | 2316 bool IsImplicitConstructor() const; |
| 2315 bool IsFactory() const { | 2317 bool IsFactory() const { |
| 2316 return (kind() == RawFunction::kConstructor) && is_static(); | 2318 return (kind() == RawFunction::kConstructor) && is_static(); |
| 2317 } | 2319 } |
| 2318 bool IsDynamicFunction() const { | 2320 bool IsDynamicFunction(bool allow_abstract = false) const { |
| 2319 if (is_static() || is_abstract()) { | 2321 if (is_static() || (!allow_abstract && is_abstract())) { |
| 2320 return false; | 2322 return false; |
| 2321 } | 2323 } |
| 2322 switch (kind()) { | 2324 switch (kind()) { |
| 2323 case RawFunction::kRegularFunction: | 2325 case RawFunction::kRegularFunction: |
| 2324 case RawFunction::kGetterFunction: | 2326 case RawFunction::kGetterFunction: |
| 2325 case RawFunction::kSetterFunction: | 2327 case RawFunction::kSetterFunction: |
| 2326 case RawFunction::kImplicitGetter: | 2328 case RawFunction::kImplicitGetter: |
| 2327 case RawFunction::kImplicitSetter: | 2329 case RawFunction::kImplicitSetter: |
| 2328 case RawFunction::kMethodExtractor: | 2330 case RawFunction::kMethodExtractor: |
| 2329 case RawFunction::kNoSuchMethodDispatcher: | 2331 case RawFunction::kNoSuchMethodDispatcher: |
| (...skipping 6115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8445 | 8447 |
| 8446 | 8448 |
| 8447 RawObject* MegamorphicCache::GetTargetFunction(const Array& array, | 8449 RawObject* MegamorphicCache::GetTargetFunction(const Array& array, |
| 8448 intptr_t index) { | 8450 intptr_t index) { |
| 8449 return array.At((index * kEntryLength) + kTargetFunctionIndex); | 8451 return array.At((index * kEntryLength) + kTargetFunctionIndex); |
| 8450 } | 8452 } |
| 8451 | 8453 |
| 8452 } // namespace dart | 8454 } // namespace dart |
| 8453 | 8455 |
| 8454 #endif // VM_OBJECT_H_ | 8456 #endif // VM_OBJECT_H_ |
| OLD | NEW |