Merge V8 5.2.361.47 DO NOT MERGE
https://chromium.googlesource.com/v8/v8/+/5.2.361.47
FPIIM-449
Change-Id: Ibec421b85a9b88cb3a432ada642e469fe7e78346
(cherry picked from commit bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8)
diff --git a/src/lookup.h b/src/lookup.h
index 8005f32..bb65639 100644
--- a/src/lookup.h
+++ b/src/lookup.h
@@ -16,17 +16,14 @@
public:
enum Configuration {
// Configuration bits.
- kHidden = 1 << 0,
- kInterceptor = 1 << 1,
- kPrototypeChain = 1 << 2,
+ kInterceptor = 1 << 0,
+ kPrototypeChain = 1 << 1,
// Convience combinations of bits.
OWN_SKIP_INTERCEPTOR = 0,
OWN = kInterceptor,
- HIDDEN_SKIP_INTERCEPTOR = kHidden,
- HIDDEN = kHidden | kInterceptor,
- PROTOTYPE_CHAIN_SKIP_INTERCEPTOR = kHidden | kPrototypeChain,
- PROTOTYPE_CHAIN = kHidden | kPrototypeChain | kInterceptor,
+ PROTOTYPE_CHAIN_SKIP_INTERCEPTOR = kPrototypeChain,
+ PROTOTYPE_CHAIN = kPrototypeChain | kInterceptor,
DEFAULT = PROTOTYPE_CHAIN
};
@@ -229,8 +226,8 @@
void ReconfigureDataProperty(Handle<Object> value,
PropertyAttributes attributes);
void Delete();
- void TransitionToAccessorProperty(AccessorComponent component,
- Handle<Object> accessor,
+ void TransitionToAccessorProperty(Handle<Object> getter,
+ Handle<Object> setter,
PropertyAttributes attributes);
void TransitionToAccessorPair(Handle<Object> pair,
PropertyAttributes attributes);
@@ -263,9 +260,12 @@
Handle<Object> GetDataValue() const;
void WriteDataValue(Handle<Object> value);
inline void UpdateProtector() {
- if (FLAG_harmony_species && !IsElement() &&
- (*name_ == heap()->constructor_string() ||
- *name_ == heap()->species_symbol())) {
+ if (IsElement()) return;
+ if (*name_ == heap()->is_concat_spreadable_symbol() ||
+ (FLAG_harmony_species && (*name_ == heap()->constructor_string() ||
+ *name_ == heap()->species_symbol())) ||
+ (FLAG_harmony_instanceof &&
+ (*name_ == heap()->has_instance_symbol()))) {
InternalUpdateProtector();
}
}
@@ -315,7 +315,6 @@
: holder->GetNamedInterceptor();
}
- bool check_hidden() const { return (configuration_ & kHidden) != 0; }
bool check_interceptor() const {
return (configuration_ & kInterceptor) != 0;
}
@@ -334,12 +333,7 @@
static Configuration ComputeConfiguration(
Configuration configuration, Handle<Name> name) {
- if (name->IsPrivate()) {
- return static_cast<Configuration>(configuration &
- HIDDEN_SKIP_INTERCEPTOR);
- } else {
- return configuration;
- }
+ return name->IsPrivate() ? OWN_SKIP_INTERCEPTOR : configuration;
}
static Handle<JSReceiver> GetRootForNonJSReceiver(
@@ -353,8 +347,6 @@
State NotFound(JSReceiver* const holder) const;
- bool HolderIsInContextIndex(uint32_t index) const;
-
// If configuration_ becomes mutable, update
// HolderIsReceiverOrHiddenPrototype.
const Configuration configuration_;