diff options
Diffstat (limited to 'deps/v8/src/ic.h')
-rw-r--r-- | deps/v8/src/ic.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/deps/v8/src/ic.h b/deps/v8/src/ic.h index 55b566192..4bf259a2f 100644 --- a/deps/v8/src/ic.h +++ b/deps/v8/src/ic.h @@ -59,6 +59,8 @@ namespace internal { ICU(UnaryOp_Patch) \ ICU(BinaryOp_Patch) \ ICU(CompareIC_Miss) \ + ICU(CompareNilIC_Miss) \ + ICU(Unreachable) \ ICU(ToBoolean_Patch) // // IC is the base class for LoadIC, StoreIC, CallIC, KeyedLoadIC, @@ -775,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) { } @@ -789,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 |