Index: src/crankshaft/hydrogen.cc |
diff --git a/src/crankshaft/hydrogen.cc b/src/crankshaft/hydrogen.cc |
index 1d1a66e642bf3f4289402d089c2215dca7c7fbe7..6bcd1633037077c1aad8ce7ecf0fd2dd7a739ecd 100644 |
--- a/src/crankshaft/hydrogen.cc |
+++ b/src/crankshaft/hydrogen.cc |
@@ -9923,6 +9923,23 @@ void HOptimizedGraphBuilder::GenerateArrayBufferViewGetByteOffset( |
FieldIndex::ForInObjectOffset(JSArrayBufferView::kByteOffsetOffset))); |
} |
+void HOptimizedGraphBuilder::GenerateArrayBufferViewWasNeutered( |
+ CallRuntime* expr) { |
+ NoObservableSideEffectsScope scope(this); |
+ DCHECK(expr->arguments()->length() == 1); |
+ 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) { |