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

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

Issue 2348493003: [builtins] move String.prototype[@@iterator] to C++ builtin (Closed)
Patch Set: V8 (rebase + fix bytecode expectations) Created 4 years, 3 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
« no previous file with comments | « src/objects-debug.cc ('k') | src/v8.gyp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 683 matching lines...) Expand 10 before | Expand all | Expand 10 after
694 TYPE_CHECKER(JSMap, JS_MAP_TYPE) 694 TYPE_CHECKER(JSMap, JS_MAP_TYPE)
695 TYPE_CHECKER(JSSetIterator, JS_SET_ITERATOR_TYPE) 695 TYPE_CHECKER(JSSetIterator, JS_SET_ITERATOR_TYPE)
696 TYPE_CHECKER(JSMapIterator, JS_MAP_ITERATOR_TYPE) 696 TYPE_CHECKER(JSMapIterator, JS_MAP_ITERATOR_TYPE)
697 TYPE_CHECKER(JSWeakMap, JS_WEAK_MAP_TYPE) 697 TYPE_CHECKER(JSWeakMap, JS_WEAK_MAP_TYPE)
698 TYPE_CHECKER(JSWeakSet, JS_WEAK_SET_TYPE) 698 TYPE_CHECKER(JSWeakSet, JS_WEAK_SET_TYPE)
699 TYPE_CHECKER(JSContextExtensionObject, JS_CONTEXT_EXTENSION_OBJECT_TYPE) 699 TYPE_CHECKER(JSContextExtensionObject, JS_CONTEXT_EXTENSION_OBJECT_TYPE)
700 TYPE_CHECKER(Map, MAP_TYPE) 700 TYPE_CHECKER(Map, MAP_TYPE)
701 TYPE_CHECKER(FixedDoubleArray, FIXED_DOUBLE_ARRAY_TYPE) 701 TYPE_CHECKER(FixedDoubleArray, FIXED_DOUBLE_ARRAY_TYPE)
702 TYPE_CHECKER(WeakFixedArray, FIXED_ARRAY_TYPE) 702 TYPE_CHECKER(WeakFixedArray, FIXED_ARRAY_TYPE)
703 TYPE_CHECKER(TransitionArray, TRANSITION_ARRAY_TYPE) 703 TYPE_CHECKER(TransitionArray, TRANSITION_ARRAY_TYPE)
704 TYPE_CHECKER(JSStringIterator, JS_STRING_ITERATOR_TYPE)
704 705
705 bool HeapObject::IsJSWeakCollection() const { 706 bool HeapObject::IsJSWeakCollection() const {
706 return IsJSWeakMap() || IsJSWeakSet(); 707 return IsJSWeakMap() || IsJSWeakSet();
707 } 708 }
708 709
709 bool HeapObject::IsJSCollection() const { return IsJSMap() || IsJSSet(); } 710 bool HeapObject::IsJSCollection() const { return IsJSMap() || IsJSSet(); }
710 711
711 bool HeapObject::IsDescriptorArray() const { return IsFixedArray(); } 712 bool HeapObject::IsDescriptorArray() const { return IsFixedArray(); }
712 713
713 bool HeapObject::IsFrameArray() const { return IsFixedArray(); } 714 bool HeapObject::IsFrameArray() const { return IsFixedArray(); }
(...skipping 1392 matching lines...) Expand 10 before | Expand all | Expand 10 after
2106 case JS_REGEXP_TYPE: 2107 case JS_REGEXP_TYPE:
2107 return JSRegExp::kSize; 2108 return JSRegExp::kSize;
2108 case JS_CONTEXT_EXTENSION_OBJECT_TYPE: 2109 case JS_CONTEXT_EXTENSION_OBJECT_TYPE:
2109 return JSObject::kHeaderSize; 2110 return JSObject::kHeaderSize;
2110 case JS_MESSAGE_OBJECT_TYPE: 2111 case JS_MESSAGE_OBJECT_TYPE:
2111 return JSMessageObject::kSize; 2112 return JSMessageObject::kSize;
2112 case JS_ARGUMENTS_TYPE: 2113 case JS_ARGUMENTS_TYPE:
2113 return JSArgumentsObject::kHeaderSize; 2114 return JSArgumentsObject::kHeaderSize;
2114 case JS_ERROR_TYPE: 2115 case JS_ERROR_TYPE:
2115 return JSObject::kHeaderSize; 2116 return JSObject::kHeaderSize;
2117 case JS_STRING_ITERATOR_TYPE:
2118 return JSStringIterator::kSize;
2116 default: 2119 default:
2117 UNREACHABLE(); 2120 UNREACHABLE();
2118 return 0; 2121 return 0;
2119 } 2122 }
2120 } 2123 }
2121 2124
2122 2125
2123 int JSObject::GetInternalFieldCount(Map* map) { 2126 int JSObject::GetInternalFieldCount(Map* map) {
2124 int instance_size = map->instance_size(); 2127 int instance_size = map->instance_size();
2125 if (instance_size == kVariableSizeSentinel) return 0; 2128 if (instance_size == kVariableSizeSentinel) return 0;
(...skipping 1149 matching lines...) Expand 10 before | Expand all | Expand 10 after
3275 CAST_ACCESSOR(JSGlobalProxy) 3278 CAST_ACCESSOR(JSGlobalProxy)
3276 CAST_ACCESSOR(JSMap) 3279 CAST_ACCESSOR(JSMap)
3277 CAST_ACCESSOR(JSMapIterator) 3280 CAST_ACCESSOR(JSMapIterator)
3278 CAST_ACCESSOR(JSMessageObject) 3281 CAST_ACCESSOR(JSMessageObject)
3279 CAST_ACCESSOR(JSObject) 3282 CAST_ACCESSOR(JSObject)
3280 CAST_ACCESSOR(JSProxy) 3283 CAST_ACCESSOR(JSProxy)
3281 CAST_ACCESSOR(JSReceiver) 3284 CAST_ACCESSOR(JSReceiver)
3282 CAST_ACCESSOR(JSRegExp) 3285 CAST_ACCESSOR(JSRegExp)
3283 CAST_ACCESSOR(JSSet) 3286 CAST_ACCESSOR(JSSet)
3284 CAST_ACCESSOR(JSSetIterator) 3287 CAST_ACCESSOR(JSSetIterator)
3288 CAST_ACCESSOR(JSStringIterator)
3285 CAST_ACCESSOR(JSTypedArray) 3289 CAST_ACCESSOR(JSTypedArray)
3286 CAST_ACCESSOR(JSValue) 3290 CAST_ACCESSOR(JSValue)
3287 CAST_ACCESSOR(JSWeakCollection) 3291 CAST_ACCESSOR(JSWeakCollection)
3288 CAST_ACCESSOR(JSWeakMap) 3292 CAST_ACCESSOR(JSWeakMap)
3289 CAST_ACCESSOR(JSWeakSet) 3293 CAST_ACCESSOR(JSWeakSet)
3290 CAST_ACCESSOR(LayoutDescriptor) 3294 CAST_ACCESSOR(LayoutDescriptor)
3291 CAST_ACCESSOR(Map) 3295 CAST_ACCESSOR(Map)
3292 CAST_ACCESSOR(ModuleInfoEntry) 3296 CAST_ACCESSOR(ModuleInfoEntry)
3293 CAST_ACCESSOR(ModuleInfo) 3297 CAST_ACCESSOR(ModuleInfo)
3294 CAST_ACCESSOR(Name) 3298 CAST_ACCESSOR(Name)
(...skipping 4968 matching lines...) Expand 10 before | Expand all | Expand 10 after
8263 Handle<FixedArray> entry_storage = 8267 Handle<FixedArray> entry_storage =
8264 isolate->factory()->NewUninitializedFixedArray(2); 8268 isolate->factory()->NewUninitializedFixedArray(2);
8265 { 8269 {
8266 entry_storage->set(0, *key, SKIP_WRITE_BARRIER); 8270 entry_storage->set(0, *key, SKIP_WRITE_BARRIER);
8267 entry_storage->set(1, *value, SKIP_WRITE_BARRIER); 8271 entry_storage->set(1, *value, SKIP_WRITE_BARRIER);
8268 } 8272 }
8269 return isolate->factory()->NewJSArrayWithElements(entry_storage, 8273 return isolate->factory()->NewJSArrayWithElements(entry_storage,
8270 FAST_ELEMENTS, 2); 8274 FAST_ELEMENTS, 2);
8271 } 8275 }
8272 8276
8277 ACCESSORS(JSIteratorResult, value, Object, kValueOffset)
8278 ACCESSORS(JSIteratorResult, done, Object, kDoneOffset)
8279
8280 ACCESSORS(JSStringIterator, string, String, kStringOffset)
8281 SMI_ACCESSORS(JSStringIterator, index, kNextIndexOffset)
8282
8273 #undef TYPE_CHECKER 8283 #undef TYPE_CHECKER
8274 #undef CAST_ACCESSOR 8284 #undef CAST_ACCESSOR
8275 #undef INT_ACCESSORS 8285 #undef INT_ACCESSORS
8276 #undef ACCESSORS 8286 #undef ACCESSORS
8277 #undef SMI_ACCESSORS 8287 #undef SMI_ACCESSORS
8278 #undef SYNCHRONIZED_SMI_ACCESSORS 8288 #undef SYNCHRONIZED_SMI_ACCESSORS
8279 #undef NOBARRIER_SMI_ACCESSORS 8289 #undef NOBARRIER_SMI_ACCESSORS
8280 #undef BOOL_GETTER 8290 #undef BOOL_GETTER
8281 #undef BOOL_ACCESSORS 8291 #undef BOOL_ACCESSORS
8282 #undef FIELD_ADDR 8292 #undef FIELD_ADDR
(...skipping 30 matching lines...) Expand all
8313 #undef WRITE_INT64_FIELD 8323 #undef WRITE_INT64_FIELD
8314 #undef READ_BYTE_FIELD 8324 #undef READ_BYTE_FIELD
8315 #undef WRITE_BYTE_FIELD 8325 #undef WRITE_BYTE_FIELD
8316 #undef NOBARRIER_READ_BYTE_FIELD 8326 #undef NOBARRIER_READ_BYTE_FIELD
8317 #undef NOBARRIER_WRITE_BYTE_FIELD 8327 #undef NOBARRIER_WRITE_BYTE_FIELD
8318 8328
8319 } // namespace internal 8329 } // namespace internal
8320 } // namespace v8 8330 } // namespace v8
8321 8331
8322 #endif // V8_OBJECTS_INL_H_ 8332 #endif // V8_OBJECTS_INL_H_
OLDNEW
« no previous file with comments | « src/objects-debug.cc ('k') | src/v8.gyp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698