summaryrefslogtreecommitdiff
path: root/deps/v8/src/ic.h
diff options
context:
space:
mode:
authorBen Noordhuis <info@bnoordhuis.nl>2013-04-29 22:35:21 +0200
committerBen Noordhuis <info@bnoordhuis.nl>2013-04-29 22:35:21 +0200
commit2f75785c015fecc33565fe5ee3a483b0d4e5cc6d (patch)
treead66b4eaba8cedfeb7cfb40b0871307ae08d25e8 /deps/v8/src/ic.h
parent5ddf7f4200894a7304d7c07bbbd8773fac3509d1 (diff)
downloadnode-2f75785c015fecc33565fe5ee3a483b0d4e5cc6d.tar.gz
deps: upgrade v8 to 3.18.4
Diffstat (limited to 'deps/v8/src/ic.h')
-rw-r--r--deps/v8/src/ic.h24
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