OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 // | 4 // |
5 // Review notes: | 5 // Review notes: |
6 // | 6 // |
7 // - The use of macros in these inline functions may seem superfluous | 7 // - The use of macros in these inline functions may seem superfluous |
8 // but it is absolutely needed to make sure gcc generates optimal | 8 // but it is absolutely needed to make sure gcc generates optimal |
9 // code. gcc is not happy when attempting to inline too deep. | 9 // code. gcc is not happy when attempting to inline too deep. |
10 // | 10 // |
(...skipping 774 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
785 } | 785 } |
786 | 786 |
787 bool HeapObject::IsScriptContextTable() const { | 787 bool HeapObject::IsScriptContextTable() const { |
788 return map() == GetHeap()->script_context_table_map(); | 788 return map() == GetHeap()->script_context_table_map(); |
789 } | 789 } |
790 | 790 |
791 bool HeapObject::IsScopeInfo() const { | 791 bool HeapObject::IsScopeInfo() const { |
792 return map() == GetHeap()->scope_info_map(); | 792 return map() == GetHeap()->scope_info_map(); |
793 } | 793 } |
794 | 794 |
| 795 bool HeapObject::IsModuleInfoEntry() const { |
| 796 return map() == GetHeap()->module_info_entry_map(); |
| 797 } |
| 798 |
795 bool HeapObject::IsModuleInfo() const { | 799 bool HeapObject::IsModuleInfo() const { |
796 return map() == GetHeap()->module_info_map(); | 800 return map() == GetHeap()->module_info_map(); |
797 } | 801 } |
798 | 802 |
799 TYPE_CHECKER(JSBoundFunction, JS_BOUND_FUNCTION_TYPE) | 803 TYPE_CHECKER(JSBoundFunction, JS_BOUND_FUNCTION_TYPE) |
800 TYPE_CHECKER(JSFunction, JS_FUNCTION_TYPE) | 804 TYPE_CHECKER(JSFunction, JS_FUNCTION_TYPE) |
801 | 805 |
802 | 806 |
803 template <> inline bool Is<JSFunction>(Object* obj) { | 807 template <> inline bool Is<JSFunction>(Object* obj) { |
804 return obj->IsJSFunction(); | 808 return obj->IsJSFunction(); |
(...skipping 2459 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3264 CAST_ACCESSOR(JSBoundFunction) | 3268 CAST_ACCESSOR(JSBoundFunction) |
3265 CAST_ACCESSOR(JSDataView) | 3269 CAST_ACCESSOR(JSDataView) |
3266 CAST_ACCESSOR(JSDate) | 3270 CAST_ACCESSOR(JSDate) |
3267 CAST_ACCESSOR(JSFunction) | 3271 CAST_ACCESSOR(JSFunction) |
3268 CAST_ACCESSOR(JSGeneratorObject) | 3272 CAST_ACCESSOR(JSGeneratorObject) |
3269 CAST_ACCESSOR(JSGlobalObject) | 3273 CAST_ACCESSOR(JSGlobalObject) |
3270 CAST_ACCESSOR(JSGlobalProxy) | 3274 CAST_ACCESSOR(JSGlobalProxy) |
3271 CAST_ACCESSOR(JSMap) | 3275 CAST_ACCESSOR(JSMap) |
3272 CAST_ACCESSOR(JSMapIterator) | 3276 CAST_ACCESSOR(JSMapIterator) |
3273 CAST_ACCESSOR(JSMessageObject) | 3277 CAST_ACCESSOR(JSMessageObject) |
| 3278 CAST_ACCESSOR(JSModule) |
3274 CAST_ACCESSOR(JSObject) | 3279 CAST_ACCESSOR(JSObject) |
3275 CAST_ACCESSOR(JSProxy) | 3280 CAST_ACCESSOR(JSProxy) |
3276 CAST_ACCESSOR(JSReceiver) | 3281 CAST_ACCESSOR(JSReceiver) |
3277 CAST_ACCESSOR(JSRegExp) | 3282 CAST_ACCESSOR(JSRegExp) |
3278 CAST_ACCESSOR(JSSet) | 3283 CAST_ACCESSOR(JSSet) |
3279 CAST_ACCESSOR(JSSetIterator) | 3284 CAST_ACCESSOR(JSSetIterator) |
3280 CAST_ACCESSOR(JSTypedArray) | 3285 CAST_ACCESSOR(JSTypedArray) |
3281 CAST_ACCESSOR(JSValue) | 3286 CAST_ACCESSOR(JSValue) |
3282 CAST_ACCESSOR(JSWeakCollection) | 3287 CAST_ACCESSOR(JSWeakCollection) |
3283 CAST_ACCESSOR(JSWeakMap) | 3288 CAST_ACCESSOR(JSWeakMap) |
3284 CAST_ACCESSOR(JSWeakSet) | 3289 CAST_ACCESSOR(JSWeakSet) |
3285 CAST_ACCESSOR(LayoutDescriptor) | 3290 CAST_ACCESSOR(LayoutDescriptor) |
3286 CAST_ACCESSOR(Map) | 3291 CAST_ACCESSOR(Map) |
| 3292 CAST_ACCESSOR(ModuleInfoEntry) |
3287 CAST_ACCESSOR(ModuleInfo) | 3293 CAST_ACCESSOR(ModuleInfo) |
3288 CAST_ACCESSOR(Name) | 3294 CAST_ACCESSOR(Name) |
3289 CAST_ACCESSOR(NameDictionary) | 3295 CAST_ACCESSOR(NameDictionary) |
3290 CAST_ACCESSOR(NormalizedMapCache) | 3296 CAST_ACCESSOR(NormalizedMapCache) |
3291 CAST_ACCESSOR(Object) | 3297 CAST_ACCESSOR(Object) |
3292 CAST_ACCESSOR(ObjectHashTable) | 3298 CAST_ACCESSOR(ObjectHashTable) |
3293 CAST_ACCESSOR(ObjectHashSet) | 3299 CAST_ACCESSOR(ObjectHashSet) |
3294 CAST_ACCESSOR(Oddball) | 3300 CAST_ACCESSOR(Oddball) |
3295 CAST_ACCESSOR(OrderedHashMap) | 3301 CAST_ACCESSOR(OrderedHashMap) |
3296 CAST_ACCESSOR(OrderedHashSet) | 3302 CAST_ACCESSOR(OrderedHashSet) |
(...skipping 3344 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6641 } | 6647 } |
6642 | 6648 |
6643 bool JSGeneratorObject::is_closed() const { | 6649 bool JSGeneratorObject::is_closed() const { |
6644 return continuation() == kGeneratorClosed; | 6650 return continuation() == kGeneratorClosed; |
6645 } | 6651 } |
6646 | 6652 |
6647 bool JSGeneratorObject::is_executing() const { | 6653 bool JSGeneratorObject::is_executing() const { |
6648 return continuation() == kGeneratorExecuting; | 6654 return continuation() == kGeneratorExecuting; |
6649 } | 6655 } |
6650 | 6656 |
| 6657 TYPE_CHECKER(JSModule, JS_MODULE_TYPE) |
| 6658 |
6651 ACCESSORS(JSValue, value, Object, kValueOffset) | 6659 ACCESSORS(JSValue, value, Object, kValueOffset) |
6652 | 6660 |
6653 | 6661 |
6654 HeapNumber* HeapNumber::cast(Object* object) { | 6662 HeapNumber* HeapNumber::cast(Object* object) { |
6655 SLOW_DCHECK(object->IsHeapNumber() || object->IsMutableHeapNumber()); | 6663 SLOW_DCHECK(object->IsHeapNumber() || object->IsMutableHeapNumber()); |
6656 return reinterpret_cast<HeapNumber*>(object); | 6664 return reinterpret_cast<HeapNumber*>(object); |
6657 } | 6665 } |
6658 | 6666 |
6659 | 6667 |
6660 const HeapNumber* HeapNumber::cast(const Object* object) { | 6668 const HeapNumber* HeapNumber::cast(const Object* object) { |
(...skipping 1252 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7913 int ScopeInfo::name() { \ | 7921 int ScopeInfo::name() { \ |
7914 if (length() > 0) { \ | 7922 if (length() > 0) { \ |
7915 return Smi::cast(get(k##name))->value(); \ | 7923 return Smi::cast(get(k##name))->value(); \ |
7916 } else { \ | 7924 } else { \ |
7917 return 0; \ | 7925 return 0; \ |
7918 } \ | 7926 } \ |
7919 } | 7927 } |
7920 FOR_EACH_SCOPE_INFO_NUMERIC_FIELD(SCOPE_INFO_FIELD_ACCESSORS) | 7928 FOR_EACH_SCOPE_INFO_NUMERIC_FIELD(SCOPE_INFO_FIELD_ACCESSORS) |
7921 #undef SCOPE_INFO_FIELD_ACCESSORS | 7929 #undef SCOPE_INFO_FIELD_ACCESSORS |
7922 | 7930 |
| 7931 Object* ModuleInfoEntry::export_name() const { return get(kExportNameIndex); } |
| 7932 |
| 7933 Object* ModuleInfoEntry::local_name() const { return get(kLocalNameIndex); } |
| 7934 |
| 7935 Object* ModuleInfoEntry::import_name() const { return get(kImportNameIndex); } |
| 7936 |
| 7937 Object* ModuleInfoEntry::module_request() const { |
| 7938 return get(kModuleRequestIndex); |
| 7939 } |
| 7940 |
7923 FixedArray* ModuleInfo::special_exports() const { | 7941 FixedArray* ModuleInfo::special_exports() const { |
7924 return FixedArray::cast(get(kSpecialExportsIndex)); | 7942 return FixedArray::cast(get(kSpecialExportsIndex)); |
7925 } | 7943 } |
7926 | 7944 |
7927 FixedArray* ModuleInfo::regular_exports() const { | 7945 FixedArray* ModuleInfo::regular_exports() const { |
7928 return FixedArray::cast(get(kRegularExportsIndex)); | 7946 return FixedArray::cast(get(kRegularExportsIndex)); |
7929 } | 7947 } |
7930 | 7948 |
7931 void Map::ClearCodeCache(Heap* heap) { | 7949 void Map::ClearCodeCache(Heap* heap) { |
7932 // No write barrier is needed since empty_fixed_array is not in new space. | 7950 // No write barrier is needed since empty_fixed_array is not in new space. |
(...skipping 323 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8256 #undef WRITE_INT64_FIELD | 8274 #undef WRITE_INT64_FIELD |
8257 #undef READ_BYTE_FIELD | 8275 #undef READ_BYTE_FIELD |
8258 #undef WRITE_BYTE_FIELD | 8276 #undef WRITE_BYTE_FIELD |
8259 #undef NOBARRIER_READ_BYTE_FIELD | 8277 #undef NOBARRIER_READ_BYTE_FIELD |
8260 #undef NOBARRIER_WRITE_BYTE_FIELD | 8278 #undef NOBARRIER_WRITE_BYTE_FIELD |
8261 | 8279 |
8262 } // namespace internal | 8280 } // namespace internal |
8263 } // namespace v8 | 8281 } // namespace v8 |
8264 | 8282 |
8265 #endif // V8_OBJECTS_INL_H_ | 8283 #endif // V8_OBJECTS_INL_H_ |
OLD | NEW |