| Index: src/objects-inl.h
|
| diff --git a/src/objects-inl.h b/src/objects-inl.h
|
| index 41fe7b155136aa3759f679181bcdf982b1ea11ff..e9676d4bf6714d3b7024d3588c5f2bf037c0d0d4 100644
|
| --- a/src/objects-inl.h
|
| +++ b/src/objects-inl.h
|
| @@ -4627,6 +4627,34 @@ void Code::set_marked_for_deoptimization(bool flag) {
|
| }
|
|
|
|
|
| +bool Code::is_weak_stub() {
|
| + return can_be_weak_stub() && WeakStubField::decode(
|
| + READ_UINT32_FIELD(this, kKindSpecificFlags1Offset));
|
| +}
|
| +
|
| +
|
| +void Code::mark_as_weak_stub() {
|
| + ASSERT(can_be_weak_stub());
|
| + int previous = READ_UINT32_FIELD(this, kKindSpecificFlags1Offset);
|
| + int updated = WeakStubField::update(previous, true);
|
| + WRITE_UINT32_FIELD(this, kKindSpecificFlags1Offset, updated);
|
| +}
|
| +
|
| +
|
| +bool Code::is_invalidated_weak_stub() {
|
| + return is_weak_stub() && InvalidatedWeakStubField::decode(
|
| + READ_UINT32_FIELD(this, kKindSpecificFlags1Offset));
|
| +}
|
| +
|
| +
|
| +void Code::mark_as_invalidated_weak_stub() {
|
| + ASSERT(is_inline_cache_stub());
|
| + int previous = READ_UINT32_FIELD(this, kKindSpecificFlags1Offset);
|
| + int updated = InvalidatedWeakStubField::update(previous, true);
|
| + WRITE_UINT32_FIELD(this, kKindSpecificFlags1Offset, updated);
|
| +}
|
| +
|
| +
|
| bool Code::is_inline_cache_stub() {
|
| Kind kind = this->kind();
|
| switch (kind) {
|
| @@ -4771,6 +4799,14 @@ class Code::FindAndReplacePattern {
|
| };
|
|
|
|
|
| +bool Code::IsWeakObjectInIC(Object* object) {
|
| + ASSERT(can_be_weak_stub());
|
| + return object->IsMap() && Map::cast(object)->CanTransition() &&
|
| + FLAG_collect_maps &&
|
| + FLAG_weak_embedded_maps_in_ic;
|
| +}
|
| +
|
| +
|
| Object* Map::prototype() {
|
| return READ_FIELD(this, kPrototypeOffset);
|
| }
|
| @@ -5021,6 +5057,7 @@ HeapObject* Map::UncheckedPrototypeTransitions() {
|
|
|
| ACCESSORS(Map, code_cache, Object, kCodeCacheOffset)
|
| ACCESSORS(Map, dependent_code, DependentCode, kDependentCodeOffset)
|
| +ACCESSORS(Map, dependent_ic, Object, kDependentICOffset)
|
| ACCESSORS(Map, constructor, Object, kConstructorOffset)
|
|
|
| ACCESSORS(JSFunction, shared, SharedFunctionInfo, kSharedFunctionInfoOffset)
|
|
|