| Index: src/objects-inl.h
|
| diff --git a/src/objects-inl.h b/src/objects-inl.h
|
| index bef807eaf688cd14d0278f34d3a79277dcebdb5a..20a44c32166c6dd4411f3c76f9ce2af586df9502 100644
|
| --- a/src/objects-inl.h
|
| +++ b/src/objects-inl.h
|
| @@ -1330,6 +1330,7 @@ bool JSObject::ShouldTrackAllocationInfo() {
|
|
|
|
|
| void AllocationSite::Initialize() {
|
| + set_transition_info(Smi::FromInt(0));
|
| SetElementsKind(GetInitialFastElementsKind());
|
| set_nested_site(Smi::FromInt(0));
|
| set_dependent_code(DependentCode::cast(GetHeap()->empty_fixed_array()),
|
| @@ -1367,6 +1368,21 @@ inline bool AllocationSite::CanTrack(InstanceType type) {
|
| }
|
|
|
|
|
| +inline DependentCode::DependencyGroup AllocationSite::ToDependencyGroup(
|
| + Reason reason) {
|
| + switch (reason) {
|
| + case TENURING:
|
| + return DependentCode::kAllocationSiteTenuringChangedGroup;
|
| + break;
|
| + case TRANSITIONS:
|
| + return DependentCode::kAllocationSiteTransitionChangedGroup;
|
| + break;
|
| + }
|
| + UNREACHABLE();
|
| + return DependentCode::kAllocationSiteTransitionChangedGroup;
|
| +}
|
| +
|
| +
|
| void JSObject::EnsureCanContainHeapObjectElements(Handle<JSObject> object) {
|
| object->ValidateElements();
|
| ElementsKind elements_kind = object->map()->elements_kind();
|
| @@ -2692,6 +2708,8 @@ bool Name::Equals(Name* other) {
|
|
|
|
|
| ACCESSORS(Symbol, name, Object, kNameOffset)
|
| +ACCESSORS(Symbol, flags, Smi, kFlagsOffset)
|
| +BOOL_ACCESSORS(Symbol, flags, is_private, kPrivateBit)
|
|
|
|
|
| bool String::Equals(String* other) {
|
| @@ -3649,16 +3667,13 @@ bool Map::owns_descriptors() {
|
| }
|
|
|
|
|
| -void Map::set_is_observed(bool is_observed) {
|
| - ASSERT(instance_type() < FIRST_JS_OBJECT_TYPE ||
|
| - instance_type() > LAST_JS_OBJECT_TYPE ||
|
| - has_slow_elements_kind() || has_external_array_elements());
|
| - set_bit_field3(IsObserved::update(bit_field3(), is_observed));
|
| +void Map::set_has_instance_call_handler() {
|
| + set_bit_field3(HasInstanceCallHandler::update(bit_field3(), true));
|
| }
|
|
|
|
|
| -bool Map::is_observed() {
|
| - return IsObserved::decode(bit_field3());
|
| +bool Map::has_instance_call_handler() {
|
| + return HasInstanceCallHandler::decode(bit_field3());
|
| }
|
|
|
|
|
| @@ -3886,6 +3901,7 @@ int Code::major_key() {
|
| kind() == STORE_IC ||
|
| kind() == LOAD_IC ||
|
| kind() == KEYED_LOAD_IC ||
|
| + kind() == KEYED_CALL_IC ||
|
| kind() == TO_BOOLEAN_IC);
|
| return StubMajorKeyField::decode(
|
| READ_UINT32_FIELD(this, kKindSpecificFlags2Offset));
|
| @@ -3902,6 +3918,7 @@ void Code::set_major_key(int major) {
|
| kind() == KEYED_LOAD_IC ||
|
| kind() == STORE_IC ||
|
| kind() == KEYED_STORE_IC ||
|
| + kind() == KEYED_CALL_IC ||
|
| kind() == TO_BOOLEAN_IC);
|
| ASSERT(0 <= major && major < 256);
|
| int previous = READ_UINT32_FIELD(this, kKindSpecificFlags2Offset);
|
| @@ -4167,9 +4184,9 @@ Code::Flags Code::ComputeFlags(Kind kind,
|
|
|
| Code::Flags Code::ComputeMonomorphicFlags(Kind kind,
|
| ExtraICState extra_ic_state,
|
| + InlineCacheHolderFlag holder,
|
| StubType type,
|
| - int argc,
|
| - InlineCacheHolderFlag holder) {
|
| + int argc) {
|
| return ComputeFlags(kind, MONOMORPHIC, extra_ic_state, type, argc, holder);
|
| }
|
|
|
| @@ -4807,6 +4824,8 @@ bool SharedFunctionInfo::is_classic_mode() {
|
| BOOL_GETTER(SharedFunctionInfo, compiler_hints, is_extended_mode,
|
| kExtendedModeFunction)
|
| BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, native, kNative)
|
| +BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, inline_builtin,
|
| + kInlineBuiltin)
|
| BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints,
|
| name_should_print_as_anonymous,
|
| kNameShouldPrintAsAnonymous)
|
| @@ -4867,6 +4886,7 @@ Code* SharedFunctionInfo::code() {
|
|
|
|
|
| void SharedFunctionInfo::set_code(Code* value, WriteBarrierMode mode) {
|
| + ASSERT(value->kind() != Code::OPTIMIZED_FUNCTION);
|
| WRITE_FIELD(this, kCodeOffset, value);
|
| CONDITIONAL_WRITE_BARRIER(value->GetHeap(), this, kCodeOffset, value, mode);
|
| }
|
|
|