| Index: src/code-stubs-hydrogen.cc
|
| diff --git a/src/code-stubs-hydrogen.cc b/src/code-stubs-hydrogen.cc
|
| index f8661566e041714a46ea5543405dca69507a4e66..7edbee7efe298baf6364a759c7a39440fa495f6f 100644
|
| --- a/src/code-stubs-hydrogen.cc
|
| +++ b/src/code-stubs-hydrogen.cc
|
| @@ -509,4 +509,31 @@ Handle<Code> ArrayNArgumentsConstructorStub::GenerateCode() {
|
| return DoGenerateCode(this);
|
| }
|
|
|
| +
|
| +template <>
|
| +HValue* CodeStubGraphBuilder<CompareNilICStub>::BuildCodeUninitializedStub() {
|
| + CompareNilICStub* stub = casted_stub();
|
| + HIfContinuation continuation;
|
| + Handle<Map> sentinel_map(graph()->isolate()->heap()->meta_map());
|
| + BuildCompareNil(GetParameter(2), stub->Kind(),
|
| + stub->GetTypes(), sentinel_map,
|
| + RelocInfo::kNoPosition, &continuation);
|
| + IfBuilder if_nil(this, &continuation);
|
| + if_nil.Then();
|
| + if (continuation.IsTrueReachable()) {
|
| + environment()->Push(graph()->GetConstantSmi1());
|
| + }
|
| + if (continuation.IsFalseReachable()) {
|
| + if_nil.Else();
|
| + environment()->Push(graph()->GetConstantSmi0());
|
| + }
|
| + if_nil.End();
|
| + return environment()->Pop();
|
| +}
|
| +
|
| +
|
| +Handle<Code> CompareNilICStub::GenerateCode() {
|
| + return DoGenerateCode(this);
|
| +}
|
| +
|
| } } // namespace v8::internal
|
|
|