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 8098 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8109 Heap::kEmptyFixedArrayRootIndex); | 8109 Heap::kEmptyFixedArrayRootIndex); |
8110 StoreObjectFieldNoWriteBarrier(iterator, | 8110 StoreObjectFieldNoWriteBarrier(iterator, |
8111 JSArrayIterator::kIteratedObjectOffset, array); | 8111 JSArrayIterator::kIteratedObjectOffset, array); |
8112 StoreObjectFieldNoWriteBarrier(iterator, JSArrayIterator::kNextIndexOffset, | 8112 StoreObjectFieldNoWriteBarrier(iterator, JSArrayIterator::kNextIndexOffset, |
8113 SmiConstant(Smi::FromInt(0))); | 8113 SmiConstant(Smi::FromInt(0))); |
8114 StoreObjectFieldNoWriteBarrier( | 8114 StoreObjectFieldNoWriteBarrier( |
8115 iterator, JSArrayIterator::kIteratedObjectMapOffset, array_map); | 8115 iterator, JSArrayIterator::kIteratedObjectMapOffset, array_map); |
8116 return iterator; | 8116 return iterator; |
8117 } | 8117 } |
8118 | 8118 |
| 8119 Node* CodeStubAssembler::AllocateJSIteratorResult(Node* context, Node* value, |
| 8120 Node* done) { |
| 8121 Node* const iter_result = Allocate(JSIteratorResult::kSize); |
| 8122 Node* const map = LoadContextElement(LoadNativeContext(context), |
| 8123 Context::ITERATOR_RESULT_MAP_INDEX); |
| 8124 StoreMapNoWriteBarrier(iter_result, map); |
| 8125 StoreObjectFieldRoot(iter_result, JSIteratorResult::kPropertiesOffset, |
| 8126 Heap::kEmptyFixedArrayRootIndex); |
| 8127 StoreObjectFieldRoot(iter_result, JSIteratorResult::kElementsOffset, |
| 8128 Heap::kEmptyFixedArrayRootIndex); |
| 8129 StoreObjectFieldNoWriteBarrier(iter_result, JSIteratorResult::kValueOffset, |
| 8130 value); |
| 8131 StoreObjectFieldNoWriteBarrier(iter_result, JSIteratorResult::kDoneOffset, |
| 8132 done); |
| 8133 return iter_result; |
| 8134 } |
| 8135 |
8119 Node* CodeStubAssembler::IsDetachedBuffer(Node* buffer) { | 8136 Node* CodeStubAssembler::IsDetachedBuffer(Node* buffer) { |
8120 CSA_ASSERT(this, HasInstanceType(buffer, JS_ARRAY_BUFFER_TYPE)); | 8137 CSA_ASSERT(this, HasInstanceType(buffer, JS_ARRAY_BUFFER_TYPE)); |
8121 | 8138 |
8122 Node* buffer_bit_field = LoadObjectField( | 8139 Node* buffer_bit_field = LoadObjectField( |
8123 buffer, JSArrayBuffer::kBitFieldOffset, MachineType::Uint32()); | 8140 buffer, JSArrayBuffer::kBitFieldOffset, MachineType::Uint32()); |
8124 return IsSetWord32<JSArrayBuffer::WasNeutered>(buffer_bit_field); | 8141 return IsSetWord32<JSArrayBuffer::WasNeutered>(buffer_bit_field); |
8125 } | 8142 } |
8126 | 8143 |
8127 CodeStubArguments::CodeStubArguments(CodeStubAssembler* assembler, Node* argc) | 8144 CodeStubArguments::CodeStubArguments(CodeStubAssembler* assembler, Node* argc) |
8128 : assembler_(assembler), | 8145 : assembler_(assembler), |
(...skipping 148 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8277 StoreObjectFieldNoWriteBarrier(result, | 8294 StoreObjectFieldNoWriteBarrier(result, |
8278 PromiseReactionJobInfo::kDebugNameOffset, | 8295 PromiseReactionJobInfo::kDebugNameOffset, |
8279 SmiConstant(kDebugNotActive)); | 8296 SmiConstant(kDebugNotActive)); |
8280 StoreObjectFieldNoWriteBarrier(result, PromiseReactionJobInfo::kContextOffset, | 8297 StoreObjectFieldNoWriteBarrier(result, PromiseReactionJobInfo::kContextOffset, |
8281 context); | 8298 context); |
8282 return result; | 8299 return result; |
8283 } | 8300 } |
8284 | 8301 |
8285 } // namespace internal | 8302 } // namespace internal |
8286 } // namespace v8 | 8303 } // namespace v8 |
OLD | NEW |