From 16692be6e4dc1c258b454544e5605e4c557d4177 Mon Sep 17 00:00:00 2001 From: "mstarzinger@chromium.org" Date: Thu, 31 Jul 2014 15:19:41 +0000 Subject: [PATCH] Ensure environment does not contain nil values. R=titzer@chromium.org Review URL: https://codereview.chromium.org/436553003 git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@22766 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/compiler/ast-graph-builder.cc | 8 ++------ src/compiler/graph-builder.cc | 2 -- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/src/compiler/ast-graph-builder.cc b/src/compiler/ast-graph-builder.cc index 47adab368..2bcf53a98 100644 --- a/src/compiler/ast-graph-builder.cc +++ b/src/compiler/ast-graph-builder.cc @@ -177,18 +177,14 @@ AstGraphBuilder::Environment::Environment(AstGraphBuilder* builder, ASSERT_EQ(scope->num_parameters() + 1, parameters_count()); // Bind the receiver variable. - values()->insert(values()->end(), parameters_count(), - static_cast(NULL)); Node* receiver = builder->graph()->NewNode(common()->Parameter(0)); - Bind(scope->receiver(), receiver); + values()->push_back(receiver); // Bind all parameter variables. The parameter indices are shifted by 1 // (receiver is parameter index -1 but environment index 0). for (int i = 0; i < scope->num_parameters(); ++i) { - // Unused parameters are allocated to Variable::UNALLOCATED. - if (!scope->parameter(i)->IsParameter()) continue; Node* parameter = builder->graph()->NewNode(common()->Parameter(i + 1)); - Bind(scope->parameter(i), parameter); + values()->push_back(parameter); } // Bind all local variables to undefined. diff --git a/src/compiler/graph-builder.cc b/src/compiler/graph-builder.cc index 94606ce6d..e58c7b6bd 100644 --- a/src/compiler/graph-builder.cc +++ b/src/compiler/graph-builder.cc @@ -145,7 +145,6 @@ void StructuredGraphBuilder::Environment::Merge(Environment* other) { // Introduce Phi nodes for values that have differing input at merge points, // potentially extending an existing Phi node if possible. for (int i = 0; i < static_cast(values_.size()); ++i) { - if (values_[i] == NULL) continue; values_[i] = builder_->MergeValue(values_[i], other->values_[i], control); } } @@ -154,7 +153,6 @@ void StructuredGraphBuilder::Environment::Merge(Environment* other) { void StructuredGraphBuilder::Environment::PrepareForLoop() { Node* control = GetControlDependency(); for (int i = 0; i < static_cast(values()->size()); ++i) { - if (values()->at(i) == NULL) continue; Node* phi = builder_->NewPhi(1, values()->at(i), control); values()->at(i) = phi; } -- 2.34.1