Chromium Code Reviews| Index: src/crankshaft/hydrogen.cc |
| diff --git a/src/crankshaft/hydrogen.cc b/src/crankshaft/hydrogen.cc |
| index dbbddf3ba697fe97f08856fe6f16eebb393c4686..4fb84c57f42cff6774926ffacf1e1f4ae61de1ce 100644 |
| --- a/src/crankshaft/hydrogen.cc |
| +++ b/src/crankshaft/hydrogen.cc |
| @@ -9924,6 +9924,23 @@ void HOptimizedGraphBuilder::GenerateArrayBufferViewGetByteOffset( |
| FieldIndex::ForInObjectOffset(JSArrayBufferView::kByteOffsetOffset))); |
| } |
| +void HOptimizedGraphBuilder::GenerateArrayBufferViewWasNeutered( |
| + CallRuntime* expr) { |
| + NoObservableSideEffectsScope scope(this); |
| + DCHECK(expr->arguments()->length() == 1); |
|
Camillo Bruni
2017/04/03 08:19:23
nit: DHECK_EQ(...)
Choongwoo Han
2017/04/03 08:42:29
Done.
|
| + CHECK_ALIVE(VisitForValue(expr->arguments()->at(0))); |
| + HValue* view = Pop(); |
| + |
| + HInstruction* buffer = Add<HLoadNamedField>( |
| + view, nullptr, HObjectAccess::ForJSArrayBufferViewBuffer()); |
| + HInstruction* flags = Add<HLoadNamedField>( |
| + buffer, nullptr, HObjectAccess::ForJSArrayBufferBitField()); |
| + HValue* was_neutered_mask = |
| + Add<HConstant>(1 << JSArrayBuffer::WasNeutered::kShift); |
| + HValue* was_neutered = |
| + AddUncasted<HBitwise>(Token::BIT_AND, flags, was_neutered_mask); |
| + return ast_context()->ReturnValue(was_neutered); |
| +} |
| void HOptimizedGraphBuilder::GenerateTypedArrayGetLength( |
| CallRuntime* expr) { |