Index: src/objects.cc |
diff --git a/src/objects.cc b/src/objects.cc |
index f96fd83849cff3090814484757f26b352932bc87..a514e77211b4921e426266051937baa7b8cf1cea 100644 |
--- a/src/objects.cc |
+++ b/src/objects.cc |
@@ -10650,8 +10650,7 @@ void Code::ClearInlineCaches(Code::Kind kind) { |
void Code::ClearInlineCaches(Code::Kind* kind) { |
int mask = RelocInfo::ModeMask(RelocInfo::CODE_TARGET) | |
RelocInfo::ModeMask(RelocInfo::CONSTRUCT_CALL) | |
- RelocInfo::ModeMask(RelocInfo::CODE_TARGET_WITH_ID) | |
- RelocInfo::ModeMask(RelocInfo::CODE_TARGET_CONTEXT); |
+ RelocInfo::ModeMask(RelocInfo::CODE_TARGET_WITH_ID); |
for (RelocIterator it(this, mask); !it.done(); it.next()) { |
RelocInfo* info = it.rinfo(); |
Code* target(Code::GetCodeFromTargetAddress(info->target_address())); |
@@ -10864,6 +10863,16 @@ bool Code::CanDeoptAt(Address pc) { |
} |
+bool Code::IsContextual() { |
+ ASSERT(is_inline_cache_stub()); |
+ if (!needs_extended_extra_ic_state(kind())) { |
Toon Verwaest
2013/12/04 23:24:45
I still argue "needs_extended_extra_ic_state" has
mvstanton
2013/12/05 13:08:54
No problem, done.
|
+ ExtraICState extra_state = extra_ic_state(); |
+ return IC::GetContextualMode(extra_state) == CONTEXTUAL; |
+ } |
+ return false; |
+} |
+ |
+ |
// Identify kind of code. |
const char* Code::Kind2String(Kind kind) { |
switch (kind) { |