OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 549 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
560 if (!Object::IsHeapObject()) return false; | 560 if (!Object::IsHeapObject()) return false; |
561 InstanceType type = HeapObject::cast(this)->map()->instance_type(); | 561 InstanceType type = HeapObject::cast(this)->map()->instance_type(); |
562 return FIRST_JS_PROXY_TYPE <= type && type <= LAST_JS_PROXY_TYPE; | 562 return FIRST_JS_PROXY_TYPE <= type && type <= LAST_JS_PROXY_TYPE; |
563 } | 563 } |
564 | 564 |
565 | 565 |
566 TYPE_CHECKER(JSFunctionProxy, JS_FUNCTION_PROXY_TYPE) | 566 TYPE_CHECKER(JSFunctionProxy, JS_FUNCTION_PROXY_TYPE) |
567 TYPE_CHECKER(JSSet, JS_SET_TYPE) | 567 TYPE_CHECKER(JSSet, JS_SET_TYPE) |
568 TYPE_CHECKER(JSMap, JS_MAP_TYPE) | 568 TYPE_CHECKER(JSMap, JS_MAP_TYPE) |
569 TYPE_CHECKER(JSWeakMap, JS_WEAK_MAP_TYPE) | 569 TYPE_CHECKER(JSWeakMap, JS_WEAK_MAP_TYPE) |
| 570 TYPE_CHECKER(JSWeakSet, JS_WEAK_SET_TYPE) |
570 TYPE_CHECKER(JSContextExtensionObject, JS_CONTEXT_EXTENSION_OBJECT_TYPE) | 571 TYPE_CHECKER(JSContextExtensionObject, JS_CONTEXT_EXTENSION_OBJECT_TYPE) |
571 TYPE_CHECKER(Map, MAP_TYPE) | 572 TYPE_CHECKER(Map, MAP_TYPE) |
572 TYPE_CHECKER(FixedArray, FIXED_ARRAY_TYPE) | 573 TYPE_CHECKER(FixedArray, FIXED_ARRAY_TYPE) |
573 TYPE_CHECKER(FixedDoubleArray, FIXED_DOUBLE_ARRAY_TYPE) | 574 TYPE_CHECKER(FixedDoubleArray, FIXED_DOUBLE_ARRAY_TYPE) |
574 | 575 |
575 | 576 |
| 577 bool Object::IsWeakCollection() { |
| 578 return IsJSWeakMap() || IsJSWeakSet(); |
| 579 } |
| 580 |
| 581 |
576 bool Object::IsDescriptorArray() { | 582 bool Object::IsDescriptorArray() { |
577 return IsFixedArray(); | 583 return IsFixedArray(); |
578 } | 584 } |
579 | 585 |
580 | 586 |
581 bool Object::IsTransitionArray() { | 587 bool Object::IsTransitionArray() { |
582 return IsFixedArray(); | 588 return IsFixedArray(); |
583 } | 589 } |
584 | 590 |
585 | 591 |
(...skipping 1095 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1681 case JS_TYPED_ARRAY_TYPE: | 1687 case JS_TYPED_ARRAY_TYPE: |
1682 return JSTypedArray::kSize; | 1688 return JSTypedArray::kSize; |
1683 case JS_DATA_VIEW_TYPE: | 1689 case JS_DATA_VIEW_TYPE: |
1684 return JSDataView::kSize; | 1690 return JSDataView::kSize; |
1685 case JS_SET_TYPE: | 1691 case JS_SET_TYPE: |
1686 return JSSet::kSize; | 1692 return JSSet::kSize; |
1687 case JS_MAP_TYPE: | 1693 case JS_MAP_TYPE: |
1688 return JSMap::kSize; | 1694 return JSMap::kSize; |
1689 case JS_WEAK_MAP_TYPE: | 1695 case JS_WEAK_MAP_TYPE: |
1690 return JSWeakMap::kSize; | 1696 return JSWeakMap::kSize; |
| 1697 case JS_WEAK_SET_TYPE: |
| 1698 return JSWeakSet::kSize; |
1691 case JS_REGEXP_TYPE: | 1699 case JS_REGEXP_TYPE: |
1692 return JSRegExp::kSize; | 1700 return JSRegExp::kSize; |
1693 case JS_CONTEXT_EXTENSION_OBJECT_TYPE: | 1701 case JS_CONTEXT_EXTENSION_OBJECT_TYPE: |
1694 return JSObject::kHeaderSize; | 1702 return JSObject::kHeaderSize; |
1695 case JS_MESSAGE_OBJECT_TYPE: | 1703 case JS_MESSAGE_OBJECT_TYPE: |
1696 return JSMessageObject::kSize; | 1704 return JSMessageObject::kSize; |
1697 default: | 1705 default: |
1698 UNREACHABLE(); | 1706 UNREACHABLE(); |
1699 return 0; | 1707 return 0; |
1700 } | 1708 } |
(...skipping 861 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2562 CAST_ACCESSOR(JSArrayBuffer) | 2570 CAST_ACCESSOR(JSArrayBuffer) |
2563 CAST_ACCESSOR(JSArrayBufferView) | 2571 CAST_ACCESSOR(JSArrayBufferView) |
2564 CAST_ACCESSOR(JSTypedArray) | 2572 CAST_ACCESSOR(JSTypedArray) |
2565 CAST_ACCESSOR(JSDataView) | 2573 CAST_ACCESSOR(JSDataView) |
2566 CAST_ACCESSOR(JSRegExp) | 2574 CAST_ACCESSOR(JSRegExp) |
2567 CAST_ACCESSOR(JSProxy) | 2575 CAST_ACCESSOR(JSProxy) |
2568 CAST_ACCESSOR(JSFunctionProxy) | 2576 CAST_ACCESSOR(JSFunctionProxy) |
2569 CAST_ACCESSOR(JSSet) | 2577 CAST_ACCESSOR(JSSet) |
2570 CAST_ACCESSOR(JSMap) | 2578 CAST_ACCESSOR(JSMap) |
2571 CAST_ACCESSOR(JSWeakMap) | 2579 CAST_ACCESSOR(JSWeakMap) |
| 2580 CAST_ACCESSOR(JSWeakSet) |
2572 CAST_ACCESSOR(Foreign) | 2581 CAST_ACCESSOR(Foreign) |
2573 CAST_ACCESSOR(ByteArray) | 2582 CAST_ACCESSOR(ByteArray) |
2574 CAST_ACCESSOR(FreeSpace) | 2583 CAST_ACCESSOR(FreeSpace) |
2575 CAST_ACCESSOR(ExternalArray) | 2584 CAST_ACCESSOR(ExternalArray) |
2576 CAST_ACCESSOR(ExternalByteArray) | 2585 CAST_ACCESSOR(ExternalByteArray) |
2577 CAST_ACCESSOR(ExternalUnsignedByteArray) | 2586 CAST_ACCESSOR(ExternalUnsignedByteArray) |
2578 CAST_ACCESSOR(ExternalShortArray) | 2587 CAST_ACCESSOR(ExternalShortArray) |
2579 CAST_ACCESSOR(ExternalUnsignedShortArray) | 2588 CAST_ACCESSOR(ExternalUnsignedShortArray) |
2580 CAST_ACCESSOR(ExternalIntArray) | 2589 CAST_ACCESSOR(ExternalIntArray) |
2581 CAST_ACCESSOR(ExternalUnsignedIntArray) | 2590 CAST_ACCESSOR(ExternalUnsignedIntArray) |
(...skipping 2503 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5085 void JSProxy::InitializeBody(int object_size, Object* value) { | 5094 void JSProxy::InitializeBody(int object_size, Object* value) { |
5086 ASSERT(!value->IsHeapObject() || !GetHeap()->InNewSpace(value)); | 5095 ASSERT(!value->IsHeapObject() || !GetHeap()->InNewSpace(value)); |
5087 for (int offset = kHeaderSize; offset < object_size; offset += kPointerSize) { | 5096 for (int offset = kHeaderSize; offset < object_size; offset += kPointerSize) { |
5088 WRITE_FIELD(this, offset, value); | 5097 WRITE_FIELD(this, offset, value); |
5089 } | 5098 } |
5090 } | 5099 } |
5091 | 5100 |
5092 | 5101 |
5093 ACCESSORS(JSSet, table, Object, kTableOffset) | 5102 ACCESSORS(JSSet, table, Object, kTableOffset) |
5094 ACCESSORS(JSMap, table, Object, kTableOffset) | 5103 ACCESSORS(JSMap, table, Object, kTableOffset) |
5095 ACCESSORS(JSWeakMap, table, Object, kTableOffset) | 5104 ACCESSORS(WeakCollection, table, Object, kTableOffset) |
5096 ACCESSORS(JSWeakMap, next, Object, kNextOffset) | 5105 ACCESSORS(WeakCollection, next, Object, kNextOffset) |
5097 | 5106 |
5098 | 5107 |
5099 Address Foreign::foreign_address() { | 5108 Address Foreign::foreign_address() { |
5100 return AddressFrom<Address>(READ_INTPTR_FIELD(this, kForeignAddressOffset)); | 5109 return AddressFrom<Address>(READ_INTPTR_FIELD(this, kForeignAddressOffset)); |
5101 } | 5110 } |
5102 | 5111 |
5103 | 5112 |
5104 void Foreign::set_foreign_address(Address value) { | 5113 void Foreign::set_foreign_address(Address value) { |
5105 WRITE_INTPTR_FIELD(this, kForeignAddressOffset, OffsetFrom(value)); | 5114 WRITE_INTPTR_FIELD(this, kForeignAddressOffset, OffsetFrom(value)); |
5106 } | 5115 } |
(...skipping 1078 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6185 #undef WRITE_UINT32_FIELD | 6194 #undef WRITE_UINT32_FIELD |
6186 #undef READ_SHORT_FIELD | 6195 #undef READ_SHORT_FIELD |
6187 #undef WRITE_SHORT_FIELD | 6196 #undef WRITE_SHORT_FIELD |
6188 #undef READ_BYTE_FIELD | 6197 #undef READ_BYTE_FIELD |
6189 #undef WRITE_BYTE_FIELD | 6198 #undef WRITE_BYTE_FIELD |
6190 | 6199 |
6191 | 6200 |
6192 } } // namespace v8::internal | 6201 } } // namespace v8::internal |
6193 | 6202 |
6194 #endif // V8_OBJECTS_INL_H_ | 6203 #endif // V8_OBJECTS_INL_H_ |
OLD | NEW |