| Index: src/compiler/bytecode-graph-builder.cc
|
| diff --git a/src/compiler/bytecode-graph-builder.cc b/src/compiler/bytecode-graph-builder.cc
|
| index 5ec3e67e4220f8225e6532290848f7442da7f7ad..064b4b85585e55ef1dea765ad6841e876c3a7d4d 100644
|
| --- a/src/compiler/bytecode-graph-builder.cc
|
| +++ b/src/compiler/bytecode-graph-builder.cc
|
| @@ -757,25 +757,43 @@ void BytecodeGraphBuilder::VisitDec(
|
|
|
| void BytecodeGraphBuilder::VisitLogicalNot(
|
| const interpreter::BytecodeArrayIterator& iterator) {
|
| - UNIMPLEMENTED();
|
| + Node* node =
|
| + NewNode(javascript()->UnaryNot(), environment()->LookupAccumulator());
|
| + environment()->BindAccumulator(node);
|
| }
|
|
|
|
|
| void BytecodeGraphBuilder::VisitTypeOf(
|
| const interpreter::BytecodeArrayIterator& iterator) {
|
| - UNIMPLEMENTED();
|
| + Node* node =
|
| + NewNode(javascript()->TypeOf(), environment()->LookupAccumulator());
|
| + environment()->BindAccumulator(node);
|
| +}
|
| +
|
| +
|
| +void BytecodeGraphBuilder::BuildDelete(
|
| + const interpreter::BytecodeArrayIterator& iterator) {
|
| + Node* key = environment()->LookupAccumulator();
|
| + Node* object = environment()->LookupRegister(iterator.GetRegisterOperand(0));
|
| +
|
| + Node* node =
|
| + NewNode(javascript()->DeleteProperty(language_mode()), object, key);
|
| + AddEmptyFrameStateInputs(node);
|
| + environment()->BindAccumulator(node);
|
| }
|
|
|
|
|
| void BytecodeGraphBuilder::VisitDeletePropertyStrict(
|
| const interpreter::BytecodeArrayIterator& iterator) {
|
| - UNIMPLEMENTED();
|
| + DCHECK(is_strict(language_mode()));
|
| + BuildDelete(iterator);
|
| }
|
|
|
|
|
| void BytecodeGraphBuilder::VisitDeletePropertySloppy(
|
| const interpreter::BytecodeArrayIterator& iterator) {
|
| - UNIMPLEMENTED();
|
| + DCHECK(is_sloppy(language_mode()));
|
| + BuildDelete(iterator);
|
| }
|
|
|
|
|
|
|