Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(16)

Side by Side Diff: src/objects-inl.h

Issue 238063009: ES6: Add support for Map/Set forEach (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Remove explicit instantiation of private and functions in objects-inl.h Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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 678 matching lines...) Expand 10 before | Expand all | Expand 10 after
689 bool Object::IsJSProxy() { 689 bool Object::IsJSProxy() {
690 if (!Object::IsHeapObject()) return false; 690 if (!Object::IsHeapObject()) return false;
691 InstanceType type = HeapObject::cast(this)->map()->instance_type(); 691 InstanceType type = HeapObject::cast(this)->map()->instance_type();
692 return FIRST_JS_PROXY_TYPE <= type && type <= LAST_JS_PROXY_TYPE; 692 return FIRST_JS_PROXY_TYPE <= type && type <= LAST_JS_PROXY_TYPE;
693 } 693 }
694 694
695 695
696 TYPE_CHECKER(JSFunctionProxy, JS_FUNCTION_PROXY_TYPE) 696 TYPE_CHECKER(JSFunctionProxy, JS_FUNCTION_PROXY_TYPE)
697 TYPE_CHECKER(JSSet, JS_SET_TYPE) 697 TYPE_CHECKER(JSSet, JS_SET_TYPE)
698 TYPE_CHECKER(JSMap, JS_MAP_TYPE) 698 TYPE_CHECKER(JSMap, JS_MAP_TYPE)
699 TYPE_CHECKER(JSSetIterator, JS_SET_ITERATOR_TYPE)
700 TYPE_CHECKER(JSMapIterator, JS_MAP_ITERATOR_TYPE)
699 TYPE_CHECKER(JSWeakMap, JS_WEAK_MAP_TYPE) 701 TYPE_CHECKER(JSWeakMap, JS_WEAK_MAP_TYPE)
700 TYPE_CHECKER(JSWeakSet, JS_WEAK_SET_TYPE) 702 TYPE_CHECKER(JSWeakSet, JS_WEAK_SET_TYPE)
701 TYPE_CHECKER(JSContextExtensionObject, JS_CONTEXT_EXTENSION_OBJECT_TYPE) 703 TYPE_CHECKER(JSContextExtensionObject, JS_CONTEXT_EXTENSION_OBJECT_TYPE)
702 TYPE_CHECKER(Map, MAP_TYPE) 704 TYPE_CHECKER(Map, MAP_TYPE)
703 TYPE_CHECKER(FixedArray, FIXED_ARRAY_TYPE) 705 TYPE_CHECKER(FixedArray, FIXED_ARRAY_TYPE)
704 TYPE_CHECKER(FixedDoubleArray, FIXED_DOUBLE_ARRAY_TYPE) 706 TYPE_CHECKER(FixedDoubleArray, FIXED_DOUBLE_ARRAY_TYPE)
705 TYPE_CHECKER(ConstantPoolArray, CONSTANT_POOL_ARRAY_TYPE) 707 TYPE_CHECKER(ConstantPoolArray, CONSTANT_POOL_ARRAY_TYPE)
706 708
707 709
708 bool Object::IsJSWeakCollection() { 710 bool Object::IsJSWeakCollection() {
(...skipping 1200 matching lines...) Expand 10 before | Expand all | Expand 10 after
1909 case JS_ARRAY_BUFFER_TYPE: 1911 case JS_ARRAY_BUFFER_TYPE:
1910 return JSArrayBuffer::kSize; 1912 return JSArrayBuffer::kSize;
1911 case JS_TYPED_ARRAY_TYPE: 1913 case JS_TYPED_ARRAY_TYPE:
1912 return JSTypedArray::kSize; 1914 return JSTypedArray::kSize;
1913 case JS_DATA_VIEW_TYPE: 1915 case JS_DATA_VIEW_TYPE:
1914 return JSDataView::kSize; 1916 return JSDataView::kSize;
1915 case JS_SET_TYPE: 1917 case JS_SET_TYPE:
1916 return JSSet::kSize; 1918 return JSSet::kSize;
1917 case JS_MAP_TYPE: 1919 case JS_MAP_TYPE:
1918 return JSMap::kSize; 1920 return JSMap::kSize;
1921 case JS_SET_ITERATOR_TYPE:
1922 return JSSetIterator::kSize;
1923 case JS_MAP_ITERATOR_TYPE:
1924 return JSMapIterator::kSize;
1919 case JS_WEAK_MAP_TYPE: 1925 case JS_WEAK_MAP_TYPE:
1920 return JSWeakMap::kSize; 1926 return JSWeakMap::kSize;
1921 case JS_WEAK_SET_TYPE: 1927 case JS_WEAK_SET_TYPE:
1922 return JSWeakSet::kSize; 1928 return JSWeakSet::kSize;
1923 case JS_REGEXP_TYPE: 1929 case JS_REGEXP_TYPE:
1924 return JSRegExp::kSize; 1930 return JSRegExp::kSize;
1925 case JS_CONTEXT_EXTENSION_OBJECT_TYPE: 1931 case JS_CONTEXT_EXTENSION_OBJECT_TYPE:
1926 return JSObject::kHeaderSize; 1932 return JSObject::kHeaderSize;
1927 case JS_MESSAGE_OBJECT_TYPE: 1933 case JS_MESSAGE_OBJECT_TYPE:
1928 return JSMessageObject::kSize; 1934 return JSMessageObject::kSize;
(...skipping 1040 matching lines...) Expand 10 before | Expand all | Expand 10 after
2969 CAST_ACCESSOR(JSArray) 2975 CAST_ACCESSOR(JSArray)
2970 CAST_ACCESSOR(JSArrayBuffer) 2976 CAST_ACCESSOR(JSArrayBuffer)
2971 CAST_ACCESSOR(JSArrayBufferView) 2977 CAST_ACCESSOR(JSArrayBufferView)
2972 CAST_ACCESSOR(JSTypedArray) 2978 CAST_ACCESSOR(JSTypedArray)
2973 CAST_ACCESSOR(JSDataView) 2979 CAST_ACCESSOR(JSDataView)
2974 CAST_ACCESSOR(JSRegExp) 2980 CAST_ACCESSOR(JSRegExp)
2975 CAST_ACCESSOR(JSProxy) 2981 CAST_ACCESSOR(JSProxy)
2976 CAST_ACCESSOR(JSFunctionProxy) 2982 CAST_ACCESSOR(JSFunctionProxy)
2977 CAST_ACCESSOR(JSSet) 2983 CAST_ACCESSOR(JSSet)
2978 CAST_ACCESSOR(JSMap) 2984 CAST_ACCESSOR(JSMap)
2985 CAST_ACCESSOR(JSSetIterator)
2986 CAST_ACCESSOR(JSMapIterator)
2979 CAST_ACCESSOR(JSWeakMap) 2987 CAST_ACCESSOR(JSWeakMap)
2980 CAST_ACCESSOR(JSWeakSet) 2988 CAST_ACCESSOR(JSWeakSet)
2981 CAST_ACCESSOR(Foreign) 2989 CAST_ACCESSOR(Foreign)
2982 CAST_ACCESSOR(ByteArray) 2990 CAST_ACCESSOR(ByteArray)
2983 CAST_ACCESSOR(FreeSpace) 2991 CAST_ACCESSOR(FreeSpace)
2984 CAST_ACCESSOR(ExternalArray) 2992 CAST_ACCESSOR(ExternalArray)
2985 CAST_ACCESSOR(ExternalInt8Array) 2993 CAST_ACCESSOR(ExternalInt8Array)
2986 CAST_ACCESSOR(ExternalUint8Array) 2994 CAST_ACCESSOR(ExternalUint8Array)
2987 CAST_ACCESSOR(ExternalInt16Array) 2995 CAST_ACCESSOR(ExternalInt16Array)
2988 CAST_ACCESSOR(ExternalUint16Array) 2996 CAST_ACCESSOR(ExternalUint16Array)
(...skipping 2811 matching lines...) Expand 10 before | Expand all | Expand 10 after
5800 void JSProxy::InitializeBody(int object_size, Object* value) { 5808 void JSProxy::InitializeBody(int object_size, Object* value) {
5801 ASSERT(!value->IsHeapObject() || !GetHeap()->InNewSpace(value)); 5809 ASSERT(!value->IsHeapObject() || !GetHeap()->InNewSpace(value));
5802 for (int offset = kHeaderSize; offset < object_size; offset += kPointerSize) { 5810 for (int offset = kHeaderSize; offset < object_size; offset += kPointerSize) {
5803 WRITE_FIELD(this, offset, value); 5811 WRITE_FIELD(this, offset, value);
5804 } 5812 }
5805 } 5813 }
5806 5814
5807 5815
5808 ACCESSORS(JSSet, table, Object, kTableOffset) 5816 ACCESSORS(JSSet, table, Object, kTableOffset)
5809 ACCESSORS(JSMap, table, Object, kTableOffset) 5817 ACCESSORS(JSMap, table, Object, kTableOffset)
5818
5819
5820 #define ORDERED_HASH_TABLE_ITERATOR_ACCESSORS(name, type, offset) \
5821 template<class Derived, class TableType> \
5822 type* OrderedHashTableIterator<Derived, TableType>::name() { \
5823 return type::cast(READ_FIELD(this, offset)); \
5824 } \
5825 template<class Derived, class TableType> \
5826 void OrderedHashTableIterator<Derived, TableType>::set_##name( \
5827 type* value, WriteBarrierMode mode) { \
5828 WRITE_FIELD(this, offset, value); \
5829 CONDITIONAL_WRITE_BARRIER(GetHeap(), this, offset, value, mode); \
5830 }
5831
5832 ORDERED_HASH_TABLE_ITERATOR_ACCESSORS(table, Object, kTableOffset)
5833 ORDERED_HASH_TABLE_ITERATOR_ACCESSORS(index, Smi, kIndexOffset)
5834 ORDERED_HASH_TABLE_ITERATOR_ACCESSORS(count, Smi, kCountOffset)
5835 ORDERED_HASH_TABLE_ITERATOR_ACCESSORS(kind, Smi, kKindOffset)
5836 ORDERED_HASH_TABLE_ITERATOR_ACCESSORS(next_iterator, Object,
5837 kNextIteratorOffset)
5838 ORDERED_HASH_TABLE_ITERATOR_ACCESSORS(previous_iterator, Object,
5839 kPreviousIteratorOffset)
5840
5841 #undef ORDERED_HASH_TABLE_ITERATOR_ACCESSORS
5842
5843
5810 ACCESSORS(JSWeakCollection, table, Object, kTableOffset) 5844 ACCESSORS(JSWeakCollection, table, Object, kTableOffset)
5811 ACCESSORS(JSWeakCollection, next, Object, kNextOffset) 5845 ACCESSORS(JSWeakCollection, next, Object, kNextOffset)
5812 5846
5813 5847
5814 Address Foreign::foreign_address() { 5848 Address Foreign::foreign_address() {
5815 return AddressFrom<Address>(READ_INTPTR_FIELD(this, kForeignAddressOffset)); 5849 return AddressFrom<Address>(READ_INTPTR_FIELD(this, kForeignAddressOffset));
5816 } 5850 }
5817 5851
5818 5852
5819 void Foreign::set_foreign_address(Address value) { 5853 void Foreign::set_foreign_address(Address value) {
(...skipping 419 matching lines...) Expand 10 before | Expand all | Expand 10 after
6239 return NameDictionary::cast(properties()); 6273 return NameDictionary::cast(properties());
6240 } 6274 }
6241 6275
6242 6276
6243 SeededNumberDictionary* JSObject::element_dictionary() { 6277 SeededNumberDictionary* JSObject::element_dictionary() {
6244 ASSERT(HasDictionaryElements()); 6278 ASSERT(HasDictionaryElements());
6245 return SeededNumberDictionary::cast(elements()); 6279 return SeededNumberDictionary::cast(elements());
6246 } 6280 }
6247 6281
6248 6282
6283 Handle<JSSetIterator> JSSetIterator::Create(
6284 Handle<OrderedHashSet> table,
6285 int kind) {
6286 return CreateInternal(table->GetIsolate()->set_iterator_map(), table, kind);
6287 }
6288
6289
6290 Handle<JSMapIterator> JSMapIterator::Create(
6291 Handle<OrderedHashMap> table,
6292 int kind) {
6293 return CreateInternal(table->GetIsolate()->map_iterator_map(), table, kind);
6294 }
6295
6296
6249 bool Name::IsHashFieldComputed(uint32_t field) { 6297 bool Name::IsHashFieldComputed(uint32_t field) {
6250 return (field & kHashNotComputedMask) == 0; 6298 return (field & kHashNotComputedMask) == 0;
6251 } 6299 }
6252 6300
6253 6301
6254 bool Name::HasHashCode() { 6302 bool Name::HasHashCode() {
6255 return IsHashFieldComputed(hash_field()); 6303 return IsHashFieldComputed(hash_field());
6256 } 6304 }
6257 6305
6258 6306
(...skipping 721 matching lines...) Expand 10 before | Expand all | Expand 10 after
6980 #undef READ_SHORT_FIELD 7028 #undef READ_SHORT_FIELD
6981 #undef WRITE_SHORT_FIELD 7029 #undef WRITE_SHORT_FIELD
6982 #undef READ_BYTE_FIELD 7030 #undef READ_BYTE_FIELD
6983 #undef WRITE_BYTE_FIELD 7031 #undef WRITE_BYTE_FIELD
6984 #undef NOBARRIER_READ_BYTE_FIELD 7032 #undef NOBARRIER_READ_BYTE_FIELD
6985 #undef NOBARRIER_WRITE_BYTE_FIELD 7033 #undef NOBARRIER_WRITE_BYTE_FIELD
6986 7034
6987 } } // namespace v8::internal 7035 } } // namespace v8::internal
6988 7036
6989 #endif // V8_OBJECTS_INL_H_ 7037 #endif // V8_OBJECTS_INL_H_
OLDNEW
« no previous file with comments | « src/objects-debug.cc ('k') | src/objects-printer.cc » ('j') | src/objects-printer.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698