summaryrefslogtreecommitdiff
path: root/deps/v8/src/compiler/wasm-escape-analysis.cc
diff options
context:
space:
mode:
Diffstat (limited to 'deps/v8/src/compiler/wasm-escape-analysis.cc')
-rw-r--r--deps/v8/src/compiler/wasm-escape-analysis.cc7
1 files changed, 4 insertions, 3 deletions
diff --git a/deps/v8/src/compiler/wasm-escape-analysis.cc b/deps/v8/src/compiler/wasm-escape-analysis.cc
index e05a792fba..450590d7d0 100644
--- a/deps/v8/src/compiler/wasm-escape-analysis.cc
+++ b/deps/v8/src/compiler/wasm-escape-analysis.cc
@@ -29,8 +29,8 @@ Reduction WasmEscapeAnalysis::ReduceAllocateRaw(Node* node) {
for (Edge edge : node->use_edges()) {
if (NodeProperties::IsValueEdge(edge)) {
if (edge.index() != 0 ||
- edge.from()->opcode() != IrOpcode::kStoreToObject) {
- // The allocated object is used for something other than storing into.
+ (edge.from()->opcode() != IrOpcode::kStoreToObject &&
+ edge.from()->opcode() != IrOpcode::kInitializeImmutableInObject)) {
return NoChange();
}
value_edges.push_back(edge);
@@ -43,7 +43,8 @@ Reduction WasmEscapeAnalysis::ReduceAllocateRaw(Node* node) {
DCHECK_EQ(edge.index(), 0);
Node* use = edge.from();
DCHECK(!use->IsDead());
- DCHECK_EQ(use->opcode(), IrOpcode::kStoreToObject);
+ DCHECK(use->opcode() == IrOpcode::kStoreToObject ||
+ use->opcode() == IrOpcode::kInitializeImmutableInObject);
// The value stored by this StoreToObject node might be another allocation
// which has no more uses. Therefore we have to revisit it. Note that this
// will not happen automatically: ReplaceWithValue does not trigger revisits