aboutsummaryrefslogtreecommitdiff
path: root/deps/v8/src/ic/keyed-store-generic.cc
diff options
context:
space:
mode:
authorMichaël Zasso <targos@protonmail.com>2018-03-07 08:54:53 +0100
committerMichaël Zasso <targos@protonmail.com>2018-03-07 16:48:52 +0100
commit88786fecff336342a56e6f2e7ff3b286be716e47 (patch)
tree92e6ba5b8ac8dae1a058988d20c9d27bfa654390 /deps/v8/src/ic/keyed-store-generic.cc
parent4e86f9b5ab83cbabf43839385bf383e6a7ef7d19 (diff)
downloadandroid-node-v8-88786fecff336342a56e6f2e7ff3b286be716e47.tar.gz
android-node-v8-88786fecff336342a56e6f2e7ff3b286be716e47.tar.bz2
android-node-v8-88786fecff336342a56e6f2e7ff3b286be716e47.zip
deps: update V8 to 6.5.254.31
PR-URL: https://github.com/nodejs/node/pull/18453 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Yang Guo <yangguo@chromium.org> Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com> Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com>
Diffstat (limited to 'deps/v8/src/ic/keyed-store-generic.cc')
-rw-r--r--deps/v8/src/ic/keyed-store-generic.cc44
1 files changed, 15 insertions, 29 deletions
diff --git a/deps/v8/src/ic/keyed-store-generic.cc b/deps/v8/src/ic/keyed-store-generic.cc
index 4263dd8552..b9a11c2ec7 100644
--- a/deps/v8/src/ic/keyed-store-generic.cc
+++ b/deps/v8/src/ic/keyed-store-generic.cc
@@ -751,8 +751,8 @@ void KeyedStoreGenericAssembler::EmitGenericPropertyStore(
Label stub_cache(this), fast_properties(this), dictionary_properties(this),
accessor(this), readonly(this);
Node* bitfield3 = LoadMapBitField3(receiver_map);
- Branch(IsSetWord32<Map::DictionaryMap>(bitfield3), &dictionary_properties,
- &fast_properties);
+ Branch(IsSetWord32<Map::IsDictionaryMapBit>(bitfield3),
+ &dictionary_properties, &fast_properties);
BIND(&fast_properties);
{
@@ -795,38 +795,22 @@ void KeyedStoreGenericAssembler::EmitGenericPropertyStore(
{
Comment("lookup transition");
VARIABLE(var_handler, MachineRepresentation::kTagged);
- Label tuple3(this), fixedarray(this), found_handler(this, &var_handler);
+ Label check_key(this), found_handler(this, &var_handler);
Node* maybe_handler =
LoadObjectField(receiver_map, Map::kTransitionsOrPrototypeInfoOffset);
GotoIf(TaggedIsSmi(maybe_handler), notfound);
- Node* handler_map = LoadMap(maybe_handler);
- GotoIf(WordEqual(handler_map, Tuple3MapConstant()), &tuple3);
- GotoIf(WordEqual(handler_map, FixedArrayMapConstant()), &fixedarray);
+ GotoIf(HasInstanceType(maybe_handler, STORE_HANDLER_TYPE), &check_key);
// TODO(jkummerow): Consider implementing TransitionArray search.
Goto(notfound);
- VARIABLE(var_transition_cell, MachineRepresentation::kTagged);
- Label check_key(this, &var_transition_cell);
- BIND(&tuple3);
- {
- var_transition_cell.Bind(
- LoadObjectField(maybe_handler, StoreHandler::kDataOffset));
- Goto(&check_key);
- }
-
- BIND(&fixedarray);
- {
- var_transition_cell.Bind(
- LoadFixedArrayElement(maybe_handler, StoreHandler::kDataIndex));
- Goto(&check_key);
- }
-
BIND(&check_key);
{
- Node* transition = LoadWeakCellValue(var_transition_cell.value(), slow);
+ Node* transition_cell =
+ LoadObjectField(maybe_handler, StoreHandler::kData1Offset);
+ Node* transition = LoadWeakCellValue(transition_cell, slow);
Node* transition_bitfield3 = LoadMapBitField3(transition);
- GotoIf(IsSetWord32<Map::Deprecated>(transition_bitfield3), slow);
+ GotoIf(IsSetWord32<Map::IsDeprecatedBit>(transition_bitfield3), slow);
Node* nof =
DecodeWord32<Map::NumberOfOwnDescriptorsBits>(transition_bitfield3);
Node* last_added = Int32Sub(nof, Int32Constant(1));
@@ -840,7 +824,8 @@ void KeyedStoreGenericAssembler::EmitGenericPropertyStore(
BIND(&found_handler);
{
Comment("KeyedStoreGeneric found transition handler");
- HandleStoreICHandlerCase(p, var_handler.value(), notfound);
+ HandleStoreICHandlerCase(p, var_handler.value(), notfound,
+ ICMode::kNonGlobalIC);
}
}
}
@@ -882,16 +867,16 @@ void KeyedStoreGenericAssembler::EmitGenericPropertyStore(
{
CheckForAssociatedProtector(p->name, slow);
Label extensible(this);
- GotoIf(IsPrivateSymbol(p->name), &extensible);
Node* bitfield2 = LoadMapBitField2(receiver_map);
- Branch(IsSetWord32(bitfield2, 1 << Map::kIsExtensible), &extensible,
- slow);
+ GotoIf(IsPrivateSymbol(p->name), &extensible);
+ Branch(IsSetWord32<Map::IsExtensibleBit>(bitfield2), &extensible, slow);
BIND(&extensible);
LookupPropertyOnPrototypeChain(receiver_map, p->name, &accessor,
&var_accessor_pair, &var_accessor_holder,
&readonly, slow);
Label add_dictionary_property_slow(this);
+ InvalidateValidityCellIfPrototype(receiver_map, bitfield2);
Add<NameDictionary>(properties, p->name, p->value,
&add_dictionary_property_slow);
Return(p->value);
@@ -958,7 +943,8 @@ void KeyedStoreGenericAssembler::EmitGenericPropertyStore(
BIND(&found_handler);
{
Comment("KeyedStoreGeneric found handler");
- HandleStoreICHandlerCase(p, var_handler.value(), &stub_cache_miss);
+ HandleStoreICHandlerCase(p, var_handler.value(), &stub_cache_miss,
+ ICMode::kNonGlobalIC);
}
BIND(&stub_cache_miss);
{