| Index: src/code-stubs-hydrogen.cc
|
| diff --git a/src/code-stubs-hydrogen.cc b/src/code-stubs-hydrogen.cc
|
| index 531c25c2b1e26d608f828925f94a07688d12b9f1..4401ae481228ab0ae971dae83dbe2473c50291ba 100644
|
| --- a/src/code-stubs-hydrogen.cc
|
| +++ b/src/code-stubs-hydrogen.cc
|
| @@ -178,7 +178,7 @@ bool CodeStubGraphBuilderBase::BuildGraph() {
|
| AddInstruction(context_);
|
| start_environment->BindContext(context_);
|
|
|
| - AddSimulate(BailoutId::StubEntry());
|
| + Add<HSimulate>(BailoutId::StubEntry());
|
|
|
| NoObservableSideEffectsScope no_effects(this);
|
|
|
| @@ -366,9 +366,11 @@ HValue* CodeStubGraphBuilder<FastCloneShallowArrayStub>::BuildCodeStub() {
|
| length));
|
| }
|
|
|
| - HValue* result = environment()->Pop();
|
| checker.ElseDeopt();
|
| - return result;
|
| + environment()->Push(undefined);
|
| + checker.End();
|
| +
|
| + return environment()->Pop();
|
| }
|
|
|
|
|
| @@ -416,8 +418,12 @@ HValue* CodeStubGraphBuilder<FastCloneShallowObjectStub>::BuildCodeStub() {
|
| AddStore(object, access, AddLoad(boilerplate, access));
|
| }
|
|
|
| + environment()->Push(object);
|
| checker.ElseDeopt();
|
| - return object;
|
| + environment()->Push(undefined);
|
| + checker.End();
|
| +
|
| + return environment()->Pop();
|
| }
|
|
|
|
|
| @@ -852,8 +858,7 @@ HValue* CodeStubGraphBuilder<StoreGlobalStub>::BuildCodeInitializedStub() {
|
|
|
| if (stub->is_constant()) {
|
| // Assume every store to a constant value changes it.
|
| - current_block()->FinishExitWithDeoptimization(HDeoptimize::kUseAll);
|
| - set_current_block(NULL);
|
| + Add<HDeoptimize>(Deoptimizer::EAGER);
|
| } else {
|
| HValue* cell = Add<HConstant>(placeholder_cell, Representation::Tagged());
|
|
|
| @@ -894,8 +899,7 @@ HValue* CodeStubGraphBuilder<ElementsTransitionAndStoreStub>::BuildCodeStub() {
|
|
|
| if (FLAG_trace_elements_transitions) {
|
| // Tracing elements transitions is the job of the runtime.
|
| - current_block()->FinishExitWithDeoptimization(HDeoptimize::kUseAll);
|
| - set_current_block(NULL);
|
| + Add<HDeoptimize>(Deoptimizer::EAGER);
|
| } else {
|
| info()->MarkAsSavesCallerDoubles();
|
|
|
|
|