| Index: src/hydrogen.h
|
| diff --git a/src/hydrogen.h b/src/hydrogen.h
|
| index a2dbe7de1df27f45fa1650555a05d3f06b98073f..23619c8a8ad0b78f32eab845ebaea773d0f6ae29 100644
|
| --- a/src/hydrogen.h
|
| +++ b/src/hydrogen.h
|
| @@ -304,10 +304,13 @@ class HGraph: public ZoneObject {
|
| HConstant* GetConstantUndefined() const { return undefined_constant_.get(); }
|
| HConstant* GetConstant0();
|
| HConstant* GetConstant1();
|
| + HConstant* GetConstantSmi0();
|
| + HConstant* GetConstantSmi1();
|
| HConstant* GetConstantMinus1();
|
| HConstant* GetConstantTrue();
|
| HConstant* GetConstantFalse();
|
| HConstant* GetConstantHole();
|
| + HConstant* GetConstantNull();
|
| HConstant* GetInvalidContext();
|
|
|
| HBasicBlock* CreateBasicBlock();
|
| @@ -395,6 +398,8 @@ class HGraph: public ZoneObject {
|
| private:
|
| HConstant* GetConstantInt32(SetOncePointer<HConstant>* pointer,
|
| int32_t integer_value);
|
| + HConstant* GetConstantSmi(SetOncePointer<HConstant>* pointer,
|
| + int32_t integer_value);
|
|
|
| void MarkAsDeoptimizingRecursively(HBasicBlock* block);
|
| void NullifyUnreachableInstructions();
|
| @@ -424,10 +429,13 @@ class HGraph: public ZoneObject {
|
| SetOncePointer<HConstant> undefined_constant_;
|
| SetOncePointer<HConstant> constant_0_;
|
| SetOncePointer<HConstant> constant_1_;
|
| + SetOncePointer<HConstant> constant_smi_0_;
|
| + SetOncePointer<HConstant> constant_smi_1_;
|
| SetOncePointer<HConstant> constant_minus1_;
|
| SetOncePointer<HConstant> constant_true_;
|
| SetOncePointer<HConstant> constant_false_;
|
| SetOncePointer<HConstant> constant_the_hole_;
|
| + SetOncePointer<HConstant> constant_null_;
|
| SetOncePointer<HConstant> constant_invalid_context_;
|
| SetOncePointer<HArgumentsObject> arguments_object_;
|
|
|
| @@ -890,7 +898,6 @@ class HIfContinuation {
|
| HBasicBlock* false_branch,
|
| int position) {
|
| ASSERT(!continuation_captured_);
|
| - ASSERT(true_branch != NULL || false_branch != NULL);
|
| true_branch_ = true_branch;
|
| false_branch_ = false_branch;
|
| position_ = position;
|
| @@ -1023,6 +1030,7 @@ class HGraphBuilder {
|
| HValue* CheckNotUndefined(HValue* value);
|
| HValue* CheckIntegerCompare(HValue* left, HValue* right, Token::Value op);
|
| HValue* CheckIntegerEq(HValue* left, HValue* right);
|
| +
|
| void End();
|
|
|
| private:
|
| @@ -1129,6 +1137,7 @@ class HGraphBuilder {
|
| void End();
|
|
|
| void Deopt();
|
| + void Return(HValue* value);
|
|
|
| private:
|
| void AddCompare(HControlInstruction* compare);
|
| @@ -1246,6 +1255,14 @@ class HGraphBuilder {
|
| ElementsKind kind,
|
| int length);
|
|
|
| + void BuildCompareNil(
|
| + HValue* value,
|
| + EqualityKind kind,
|
| + CompareNilICStub::Types types,
|
| + Handle<Map> map,
|
| + int position,
|
| + HIfContinuation* continuation);
|
| +
|
| private:
|
| HGraphBuilder();
|
| CompilationInfo* info_;
|
|
|