OLD | NEW |
1 // Copyright 2016 the V8 project authors. All rights reserved. | 1 // Copyright 2016 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 #include "src/code-stub-assembler.h" | 4 #include "src/code-stub-assembler.h" |
5 #include "src/code-factory.h" | 5 #include "src/code-factory.h" |
6 #include "src/frames-inl.h" | 6 #include "src/frames-inl.h" |
7 #include "src/frames.h" | 7 #include "src/frames.h" |
8 | 8 |
9 namespace v8 { | 9 namespace v8 { |
10 namespace internal { | 10 namespace internal { |
(...skipping 8165 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8176 Heap::kEmptyFixedArrayRootIndex); | 8176 Heap::kEmptyFixedArrayRootIndex); |
8177 StoreObjectFieldNoWriteBarrier(iterator, | 8177 StoreObjectFieldNoWriteBarrier(iterator, |
8178 JSArrayIterator::kIteratedObjectOffset, array); | 8178 JSArrayIterator::kIteratedObjectOffset, array); |
8179 StoreObjectFieldNoWriteBarrier(iterator, JSArrayIterator::kNextIndexOffset, | 8179 StoreObjectFieldNoWriteBarrier(iterator, JSArrayIterator::kNextIndexOffset, |
8180 SmiConstant(Smi::FromInt(0))); | 8180 SmiConstant(Smi::FromInt(0))); |
8181 StoreObjectFieldNoWriteBarrier( | 8181 StoreObjectFieldNoWriteBarrier( |
8182 iterator, JSArrayIterator::kIteratedObjectMapOffset, array_map); | 8182 iterator, JSArrayIterator::kIteratedObjectMapOffset, array_map); |
8183 return iterator; | 8183 return iterator; |
8184 } | 8184 } |
8185 | 8185 |
| 8186 Node* CodeStubAssembler::AllocateJSIteratorResult(Node* context, Node* value, |
| 8187 Node* done) { |
| 8188 Node* const iter_result = Allocate(JSIteratorResult::kSize); |
| 8189 Node* const map = LoadContextElement(LoadNativeContext(context), |
| 8190 Context::ITERATOR_RESULT_MAP_INDEX); |
| 8191 StoreMapNoWriteBarrier(iter_result, map); |
| 8192 StoreObjectFieldRoot(iter_result, JSIteratorResult::kPropertiesOffset, |
| 8193 Heap::kEmptyFixedArrayRootIndex); |
| 8194 StoreObjectFieldRoot(iter_result, JSIteratorResult::kElementsOffset, |
| 8195 Heap::kEmptyFixedArrayRootIndex); |
| 8196 StoreObjectFieldNoWriteBarrier(iter_result, JSIteratorResult::kValueOffset, |
| 8197 value); |
| 8198 StoreObjectFieldNoWriteBarrier(iter_result, JSIteratorResult::kDoneOffset, |
| 8199 done); |
| 8200 return iter_result; |
| 8201 } |
| 8202 |
8186 Node* CodeStubAssembler::IsDetachedBuffer(Node* buffer) { | 8203 Node* CodeStubAssembler::IsDetachedBuffer(Node* buffer) { |
8187 CSA_ASSERT(this, HasInstanceType(buffer, JS_ARRAY_BUFFER_TYPE)); | 8204 CSA_ASSERT(this, HasInstanceType(buffer, JS_ARRAY_BUFFER_TYPE)); |
8188 | 8205 |
8189 Node* buffer_bit_field = LoadObjectField( | 8206 Node* buffer_bit_field = LoadObjectField( |
8190 buffer, JSArrayBuffer::kBitFieldOffset, MachineType::Uint32()); | 8207 buffer, JSArrayBuffer::kBitFieldOffset, MachineType::Uint32()); |
8191 return IsSetWord32<JSArrayBuffer::WasNeutered>(buffer_bit_field); | 8208 return IsSetWord32<JSArrayBuffer::WasNeutered>(buffer_bit_field); |
8192 } | 8209 } |
8193 | 8210 |
8194 CodeStubArguments::CodeStubArguments(CodeStubAssembler* assembler, Node* argc) | 8211 CodeStubArguments::CodeStubArguments(CodeStubAssembler* assembler, Node* argc) |
8195 : assembler_(assembler), | 8212 : assembler_(assembler), |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8344 StoreObjectFieldNoWriteBarrier(result, | 8361 StoreObjectFieldNoWriteBarrier(result, |
8345 PromiseReactionJobInfo::kDebugNameOffset, | 8362 PromiseReactionJobInfo::kDebugNameOffset, |
8346 SmiConstant(kDebugNotActive)); | 8363 SmiConstant(kDebugNotActive)); |
8347 StoreObjectFieldNoWriteBarrier(result, PromiseReactionJobInfo::kContextOffset, | 8364 StoreObjectFieldNoWriteBarrier(result, PromiseReactionJobInfo::kContextOffset, |
8348 context); | 8365 context); |
8349 return result; | 8366 return result; |
8350 } | 8367 } |
8351 | 8368 |
8352 } // namespace internal | 8369 } // namespace internal |
8353 } // namespace v8 | 8370 } // namespace v8 |
OLD | NEW |