Index: src/code-stubs-hydrogen.cc |
diff --git a/src/code-stubs-hydrogen.cc b/src/code-stubs-hydrogen.cc |
index 2024d08f5c08574a2156229a9cd2d5b86b0bcbac..8ae7832a6208a2203c14f90fdab7192737ad653a 100644 |
--- a/src/code-stubs-hydrogen.cc |
+++ b/src/code-stubs-hydrogen.cc |
@@ -248,6 +248,33 @@ void CodeStubGraphBuilder<TransitionElementsKindStub>::BuildCodeStub() { |
} |
+template <> |
+void CodeStubGraphBuilder<ArrayNoArgumentConstructorStub>::BuildCodeStub() { |
+ HInstruction* deopt = new(zone()) HSoftDeoptimize(); |
+ AddInstruction(deopt); |
+ current_block()->MarkAsDeoptimizing(); |
+ HReturn* ret = new(zone()) HReturn(GetParameter(0), context()); |
+ current_block()->Finish(ret); |
+} |
+ |
+ |
+Handle<Code> ArrayNoArgumentConstructorStub::GenerateCode() { |
+ CodeStubGraphBuilder<ArrayNoArgumentConstructorStub> builder(this); |
+ LChunk* chunk = OptimizeGraph(builder.CreateGraph()); |
+ return chunk->Codegen(Code::COMPILED_STUB); |
+} |
+ |
+ |
+template <> |
+void CodeStubGraphBuilder<ArraySingleArgumentConstructorStub>::BuildCodeStub() { |
+ HInstruction* deopt = new(zone()) HSoftDeoptimize(); |
+ AddInstruction(deopt); |
+ current_block()->MarkAsDeoptimizing(); |
+ HReturn* ret = new(zone()) HReturn(GetParameter(0), context()); |
+ current_block()->Finish(ret); |
+} |
+ |
+ |
Handle<Code> TransitionElementsKindStub::GenerateCode() { |
CodeStubGraphBuilder<TransitionElementsKindStub> builder(this); |
LChunk* chunk = OptimizeGraph(builder.CreateGraph()); |
@@ -255,4 +282,27 @@ Handle<Code> TransitionElementsKindStub::GenerateCode() { |
} |
+Handle<Code> ArraySingleArgumentConstructorStub::GenerateCode() { |
+ CodeStubGraphBuilder<ArraySingleArgumentConstructorStub> builder(this); |
+ LChunk* chunk = OptimizeGraph(builder.CreateGraph()); |
+ return chunk->Codegen(Code::COMPILED_STUB); |
+} |
+ |
+ |
+template <> |
+void CodeStubGraphBuilder<ArrayNArgumentsConstructorStub>::BuildCodeStub() { |
+ HInstruction* deopt = new(zone()) HSoftDeoptimize(); |
+ AddInstruction(deopt); |
+ current_block()->MarkAsDeoptimizing(); |
+ HReturn* ret = new(zone()) HReturn(GetParameter(0), context()); |
+ current_block()->Finish(ret); |
+} |
+ |
+ |
+Handle<Code> ArrayNArgumentsConstructorStub::GenerateCode() { |
+ CodeStubGraphBuilder<ArrayNArgumentsConstructorStub> builder(this); |
+ LChunk* chunk = OptimizeGraph(builder.CreateGraph()); |
+ return chunk->Codegen(Code::COMPILED_STUB); |
+} |
+ |
} } // namespace v8::internal |