Index: src/interpreter/bytecode-array-builder.cc |
diff --git a/src/interpreter/bytecode-array-builder.cc b/src/interpreter/bytecode-array-builder.cc |
index 5f97bce75b2f34184e3cd99753aebe084317169a..ecdda2a3551f1cd1f768da7eb4cadcc77d9e4578 100644 |
--- a/src/interpreter/bytecode-array-builder.cc |
+++ b/src/interpreter/bytecode-array-builder.cc |
@@ -152,7 +152,7 @@ BytecodeArrayBuilder& BytecodeArrayBuilder::StoreAccumulatorInRegister( |
BytecodeArrayBuilder& BytecodeArrayBuilder::LoadNamedProperty( |
Register object, int feedback_slot, LanguageMode language_mode) { |
- if (is_strong(language_mode)) { |
+ if (!is_sloppy(language_mode)) { |
UNIMPLEMENTED(); |
} |
@@ -168,7 +168,7 @@ BytecodeArrayBuilder& BytecodeArrayBuilder::LoadNamedProperty( |
BytecodeArrayBuilder& BytecodeArrayBuilder::LoadKeyedProperty( |
Register object, int feedback_slot, LanguageMode language_mode) { |
- if (is_strong(language_mode)) { |
+ if (!is_sloppy(language_mode)) { |
UNIMPLEMENTED(); |
} |
@@ -182,6 +182,40 @@ BytecodeArrayBuilder& BytecodeArrayBuilder::LoadKeyedProperty( |
} |
+BytecodeArrayBuilder& BytecodeArrayBuilder::StoreNamedProperty( |
+ Register object, Register name, int feedback_slot, |
+ LanguageMode language_mode) { |
+ if (!is_sloppy(language_mode)) { |
+ UNIMPLEMENTED(); |
+ } |
+ |
+ if (FitsInByteOperand(feedback_slot)) { |
+ Output(Bytecode::kStoreIC, object.ToOperand(), name.ToOperand(), |
+ static_cast<uint8_t>(feedback_slot)); |
+ } else { |
+ UNIMPLEMENTED(); |
+ } |
+ return *this; |
+} |
+ |
+ |
+BytecodeArrayBuilder& BytecodeArrayBuilder::StoreKeyedProperty( |
+ Register object, Register key, int feedback_slot, |
+ LanguageMode language_mode) { |
+ if (!is_sloppy(language_mode)) { |
+ UNIMPLEMENTED(); |
+ } |
+ |
+ if (FitsInByteOperand(feedback_slot)) { |
+ Output(Bytecode::kKeyedStoreIC, object.ToOperand(), key.ToOperand(), |
+ static_cast<uint8_t>(feedback_slot)); |
+ } else { |
+ UNIMPLEMENTED(); |
+ } |
+ return *this; |
+} |
+ |
+ |
BytecodeArrayBuilder& BytecodeArrayBuilder::Return() { |
Output(Bytecode::kReturn); |
return *this; |