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 8062 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8073 Heap::kEmptyFixedArrayRootIndex); | 8073 Heap::kEmptyFixedArrayRootIndex); |
8074 StoreObjectFieldNoWriteBarrier(iterator, | 8074 StoreObjectFieldNoWriteBarrier(iterator, |
8075 JSArrayIterator::kIteratedObjectOffset, array); | 8075 JSArrayIterator::kIteratedObjectOffset, array); |
8076 StoreObjectFieldNoWriteBarrier(iterator, JSArrayIterator::kNextIndexOffset, | 8076 StoreObjectFieldNoWriteBarrier(iterator, JSArrayIterator::kNextIndexOffset, |
8077 SmiConstant(Smi::FromInt(0))); | 8077 SmiConstant(Smi::FromInt(0))); |
8078 StoreObjectFieldNoWriteBarrier( | 8078 StoreObjectFieldNoWriteBarrier( |
8079 iterator, JSArrayIterator::kIteratedObjectMapOffset, array_map); | 8079 iterator, JSArrayIterator::kIteratedObjectMapOffset, array_map); |
8080 return iterator; | 8080 return iterator; |
8081 } | 8081 } |
8082 | 8082 |
| 8083 Node* CodeStubAssembler::ArraySpeciesCreate(Node* context, Node* originalArray, |
| 8084 Node* len) { |
| 8085 // TODO(mvstanton): Install a fast path as well, which avoids the runtime |
| 8086 // call. |
| 8087 Node* constructor = |
| 8088 CallRuntime(Runtime::kArraySpeciesConstructor, context, originalArray); |
| 8089 return ConstructJS(CodeFactory::Construct(isolate()), context, constructor, |
| 8090 len); |
| 8091 } |
| 8092 |
8083 Node* CodeStubAssembler::IsDetachedBuffer(Node* buffer) { | 8093 Node* CodeStubAssembler::IsDetachedBuffer(Node* buffer) { |
8084 CSA_ASSERT(this, HasInstanceType(buffer, JS_ARRAY_BUFFER_TYPE)); | 8094 CSA_ASSERT(this, HasInstanceType(buffer, JS_ARRAY_BUFFER_TYPE)); |
8085 | 8095 |
8086 Node* buffer_bit_field = LoadObjectField( | 8096 Node* buffer_bit_field = LoadObjectField( |
8087 buffer, JSArrayBuffer::kBitFieldOffset, MachineType::Uint32()); | 8097 buffer, JSArrayBuffer::kBitFieldOffset, MachineType::Uint32()); |
8088 return IsSetWord32<JSArrayBuffer::WasNeutered>(buffer_bit_field); | 8098 return IsSetWord32<JSArrayBuffer::WasNeutered>(buffer_bit_field); |
8089 } | 8099 } |
8090 | 8100 |
8091 CodeStubArguments::CodeStubArguments(CodeStubAssembler* assembler, Node* argc, | 8101 CodeStubArguments::CodeStubArguments(CodeStubAssembler* assembler, Node* argc, |
8092 Node* fp, | 8102 Node* fp, |
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8277 formatted.c_str(), TENURED); | 8287 formatted.c_str(), TENURED); |
8278 CallRuntime(Runtime::kGlobalPrint, NoContextConstant(), | 8288 CallRuntime(Runtime::kGlobalPrint, NoContextConstant(), |
8279 HeapConstant(string)); | 8289 HeapConstant(string)); |
8280 } | 8290 } |
8281 CallRuntime(Runtime::kDebugPrint, NoContextConstant(), tagged_value); | 8291 CallRuntime(Runtime::kDebugPrint, NoContextConstant(), tagged_value); |
8282 #endif | 8292 #endif |
8283 } | 8293 } |
8284 | 8294 |
8285 } // namespace internal | 8295 } // namespace internal |
8286 } // namespace v8 | 8296 } // namespace v8 |
OLD | NEW |