Index: src/interpreter/bytecode-array-builder.cc |
diff --git a/src/interpreter/bytecode-array-builder.cc b/src/interpreter/bytecode-array-builder.cc |
index 26b5414b3a6b79305c066696a13cc0ef1a6622c9..0502c0b047eaadac516aa168fa797f7a88146025 100644 |
--- a/src/interpreter/bytecode-array-builder.cc |
+++ b/src/interpreter/bytecode-array-builder.cc |
@@ -696,6 +696,13 @@ BytecodeArrayBuilder& BytecodeArrayBuilder::CallRuntime( |
} |
+BytecodeArrayBuilder& BytecodeArrayBuilder::Delete(Register object, |
+ LanguageMode language_mode) { |
+ Output(BytecodeForDelete(language_mode), object.ToOperand()); |
+ return *this; |
+} |
+ |
+ |
size_t BytecodeArrayBuilder::GetConstantPoolEntry(Handle<Object> object) { |
// These constants shouldn't be added to the constant pool, the should use |
// specialzed bytecodes instead. |
@@ -1016,6 +1023,22 @@ Bytecode BytecodeArrayBuilder::BytecodeForCreateArguments( |
// static |
+Bytecode BytecodeArrayBuilder::BytecodeForDelete(LanguageMode language_mode) { |
+ switch (language_mode) { |
+ case SLOPPY: |
+ return Bytecode::kDeletePropertySloppy; |
+ case STRICT: |
+ return Bytecode::kDeletePropertyStrict; |
+ case STRONG: |
+ UNIMPLEMENTED(); |
+ default: |
+ UNREACHABLE(); |
+ } |
+ return static_cast<Bytecode>(-1); |
+} |
+ |
+ |
+// static |
bool BytecodeArrayBuilder::FitsInIdx8Operand(int value) { |
return kMinUInt8 <= value && value <= kMaxUInt8; |
} |