Merge V8 5.3.332.45. DO NOT MERGE
Test: Manual
FPIIM-449
Change-Id: Id3254828b068abdea3cb10442e0172a8c9a98e03
(cherry picked from commit 13e2dadd00298019ed862f2b2fc5068bba730bcf)
diff --git a/src/compiler/node-properties.cc b/src/compiler/node-properties.cc
index 2cf899b..dc33d60 100644
--- a/src/compiler/node-properties.cc
+++ b/src/compiler/node-properties.cc
@@ -180,13 +180,6 @@
// static
-void NodeProperties::RemoveFrameStateInput(Node* node, int index) {
- DCHECK_LT(index, OperatorProperties::GetFrameStateInputCount(node->op()));
- node->RemoveInput(FirstFrameStateIndex(node) + index);
-}
-
-
-// static
void NodeProperties::RemoveNonValueInputs(Node* node) {
node->TrimInputCount(node->op()->ValueInputCount());
}
@@ -222,7 +215,8 @@
DCHECK_NOT_NULL(exception);
edge.UpdateTo(exception);
} else {
- UNREACHABLE();
+ DCHECK_NOT_NULL(success);
+ edge.UpdateTo(success);
}
} else if (IsEffectEdge(edge)) {
DCHECK_NOT_NULL(effect);
@@ -243,6 +237,18 @@
// static
+Node* NodeProperties::FindFrameStateBefore(Node* node) {
+ Node* effect = NodeProperties::GetEffectInput(node);
+ while (effect->opcode() != IrOpcode::kCheckpoint) {
+ if (effect->opcode() == IrOpcode::kDead) return effect;
+ DCHECK_EQ(1, effect->op()->EffectInputCount());
+ effect = NodeProperties::GetEffectInput(effect);
+ }
+ Node* frame_state = GetFrameStateInput(effect, 0);
+ return frame_state;
+}
+
+// static
Node* NodeProperties::FindProjection(Node* node, size_t projection_index) {
for (auto use : node->uses()) {
if (use->opcode() == IrOpcode::kProjection &&