| Index: src/hydrogen.cc
|
| diff --git a/src/hydrogen.cc b/src/hydrogen.cc
|
| index 44f9b8a64be51c79fd50bb24d569d57c5730ebc2..57fd079d13eada739da5bf06d2005b636563b46e 100644
|
| --- a/src/hydrogen.cc
|
| +++ b/src/hydrogen.cc
|
| @@ -168,9 +168,10 @@ void HBasicBlock::Finish(HControlInstruction* end) {
|
| void HBasicBlock::Goto(HBasicBlock* block, FunctionState* state) {
|
| bool drop_extra = state != NULL &&
|
| state->inlining_kind() == DROP_EXTRA_ON_RETURN;
|
| + bool arguments_pushed = state != NULL && state->arguments_pushed();
|
|
|
| if (block->IsInlineReturnTarget()) {
|
| - AddInstruction(new(zone()) HLeaveInlined());
|
| + AddInstruction(new(zone()) HLeaveInlined(arguments_pushed));
|
| last_environment_ = last_environment()->DiscardInlined(drop_extra);
|
| }
|
|
|
| @@ -184,10 +185,11 @@ void HBasicBlock::AddLeaveInlined(HValue* return_value,
|
| FunctionState* state) {
|
| HBasicBlock* target = state->function_return();
|
| bool drop_extra = state->inlining_kind() == DROP_EXTRA_ON_RETURN;
|
| + bool arguments_pushed = state->arguments_pushed();
|
|
|
| ASSERT(target->IsInlineReturnTarget());
|
| ASSERT(return_value != NULL);
|
| - AddInstruction(new(zone()) HLeaveInlined());
|
| + AddInstruction(new(zone()) HLeaveInlined(arguments_pushed));
|
| last_environment_ = last_environment()->DiscardInlined(drop_extra);
|
| last_environment()->Push(return_value);
|
| AddSimulate(BailoutId::None());
|
| @@ -3430,8 +3432,6 @@ class BoundsCheckKey : public ZoneObject {
|
| static BoundsCheckKey* Create(Zone* zone,
|
| HBoundsCheck* check,
|
| int32_t* offset) {
|
| - if (!check->index()->representation().IsInteger32()) return NULL;
|
| -
|
| HValue* index_base = NULL;
|
| HConstant* constant = NULL;
|
| bool is_sub = false;
|
| @@ -3682,7 +3682,6 @@ void HGraph::EliminateRedundantBoundsChecks(HBasicBlock* bb,
|
| int32_t offset;
|
| BoundsCheckKey* key =
|
| BoundsCheckKey::Create(zone(), check, &offset);
|
| - if (key == NULL) continue;
|
| BoundsCheckBbData** data_p = table->LookupOrInsert(key, zone());
|
| BoundsCheckBbData* data = *data_p;
|
| if (data == NULL) {
|
| @@ -6551,7 +6550,6 @@ void HGraphBuilder::EnsureArgumentsArePushedForAccess() {
|
|
|
| // Push arguments when entering inlined function.
|
| HEnterInlined* entry = function_state()->entry();
|
| - entry->set_arguments_pushed();
|
|
|
| ZoneList<HValue*>* arguments_values = entry->arguments_values();
|
|
|
| @@ -9394,7 +9392,6 @@ HEnvironment::HEnvironment(HEnvironment* outer,
|
| specials_count_(1),
|
| local_count_(0),
|
| outer_(outer),
|
| - entry_(NULL),
|
| pop_count_(0),
|
| push_count_(0),
|
| ast_id_(BailoutId::None()),
|
| @@ -9411,7 +9408,6 @@ HEnvironment::HEnvironment(const HEnvironment* other, Zone* zone)
|
| specials_count_(1),
|
| local_count_(0),
|
| outer_(NULL),
|
| - entry_(NULL),
|
| pop_count_(0),
|
| push_count_(0),
|
| ast_id_(other->ast_id()),
|
| @@ -9432,7 +9428,6 @@ HEnvironment::HEnvironment(HEnvironment* outer,
|
| parameter_count_(arguments),
|
| local_count_(0),
|
| outer_(outer),
|
| - entry_(NULL),
|
| pop_count_(0),
|
| push_count_(0),
|
| ast_id_(BailoutId::None()),
|
| @@ -9461,7 +9456,6 @@ void HEnvironment::Initialize(const HEnvironment* other) {
|
| parameter_count_ = other->parameter_count_;
|
| local_count_ = other->local_count_;
|
| if (other->outer_ != NULL) outer_ = other->outer_->Copy(); // Deep copy.
|
| - entry_ = other->entry_;
|
| pop_count_ = other->pop_count_;
|
| push_count_ = other->push_count_;
|
| ast_id_ = other->ast_id_;
|
|
|