| Index: src/compiler/bytecode-graph-builder.cc
|
| diff --git a/src/compiler/bytecode-graph-builder.cc b/src/compiler/bytecode-graph-builder.cc
|
| index 0ea14b21820489a10fd0b1a5ddf55f6f6d88cc69..ff9295479e4fd4f9945ccda36c63dcfe85619db6 100644
|
| --- a/src/compiler/bytecode-graph-builder.cc
|
| +++ b/src/compiler/bytecode-graph-builder.cc
|
| @@ -101,6 +101,7 @@ class BytecodeGraphBuilder::FrameStateBeforeAndAfter {
|
| : builder_(builder),
|
| id_after_(BailoutId::None()),
|
| added_to_node_(false),
|
| + frame_states_unused_(false),
|
| output_poke_offset_(0),
|
| output_poke_count_(0) {
|
| BailoutId id_before(builder->bytecode_iterator().current_offset());
|
| @@ -112,7 +113,8 @@ class BytecodeGraphBuilder::FrameStateBeforeAndAfter {
|
|
|
| ~FrameStateBeforeAndAfter() {
|
| DCHECK(added_to_node_);
|
| - DCHECK(builder_->environment()->StateValuesAreUpToDate(output_poke_offset_,
|
| + DCHECK(frame_states_unused_ ||
|
| + builder_->environment()->StateValuesAreUpToDate(output_poke_offset_,
|
| output_poke_count_));
|
| }
|
|
|
| @@ -143,6 +145,7 @@ class BytecodeGraphBuilder::FrameStateBeforeAndAfter {
|
| output_poke_offset_ = static_cast<int>(combine.GetOffsetToPokeAt());
|
| output_poke_count_ = node->op()->ValueOutputCount();
|
| }
|
| + frame_states_unused_ = count == 0;
|
| added_to_node_ = true;
|
| }
|
|
|
| @@ -151,6 +154,7 @@ class BytecodeGraphBuilder::FrameStateBeforeAndAfter {
|
| BailoutId id_after_;
|
|
|
| bool added_to_node_;
|
| + bool frame_states_unused_;
|
| int output_poke_offset_;
|
| int output_poke_count_;
|
| };
|
|
|