| Index: src/ic.h
|
| diff --git a/src/ic.h b/src/ic.h
|
| index 6c676e60436b1365a030df50cc3260e1a2d1d3e0..4bf259a2f481f04908cdcf3774947e6611fc0474 100644
|
| --- a/src/ic.h
|
| +++ b/src/ic.h
|
| @@ -59,6 +59,7 @@ namespace internal {
|
| ICU(UnaryOp_Patch) \
|
| ICU(BinaryOp_Patch) \
|
| ICU(CompareIC_Miss) \
|
| + ICU(CompareNilIC_Miss) \
|
| ICU(Unreachable) \
|
| ICU(ToBoolean_Patch)
|
| //
|
| @@ -776,6 +777,26 @@ class CompareIC: public IC {
|
| };
|
|
|
|
|
| +class CompareNilIC: public IC {
|
| + public:
|
| + explicit CompareNilIC(Isolate* isolate) : IC(EXTRA_CALL_FRAME, isolate) {}
|
| +
|
| + MUST_USE_RESULT MaybeObject* CompareNil(Handle<Object> object);
|
| +
|
| + static Handle<Code> GetUninitialized();
|
| +
|
| + static Code* GetRawUninitialized(EqualityKind kind, NilValue nil);
|
| +
|
| + static void Clear(Address address, Code* target);
|
| +
|
| + void patch(Code* code);
|
| +
|
| + static MUST_USE_RESULT MaybeObject* DoCompareNilSlow(EqualityKind kind,
|
| + NilValue nil,
|
| + Handle<Object> object);
|
| +};
|
| +
|
| +
|
| class ToBooleanIC: public IC {
|
| public:
|
| explicit ToBooleanIC(Isolate* isolate) : IC(NO_EXTRA_FRAME, isolate) { }
|
| @@ -790,6 +811,8 @@ void PatchInlinedSmiCode(Address address, InlinedSmiCheck check);
|
|
|
| DECLARE_RUNTIME_FUNCTION(MaybeObject*, KeyedLoadIC_MissFromStubFailure);
|
| DECLARE_RUNTIME_FUNCTION(MaybeObject*, KeyedStoreIC_MissFromStubFailure);
|
| +DECLARE_RUNTIME_FUNCTION(MaybeObject*, CompareNilIC_Miss);
|
| +
|
|
|
| } } // namespace v8::internal
|
|
|
|
|