| Index: src/key-accumulator.cc
|
| diff --git a/src/key-accumulator.cc b/src/key-accumulator.cc
|
| index c259edffe9da4b10a608d113b26d3ac74094a854..e7a9c3ccebccd3ba56b7a87b6cc7c1f9148deae7 100644
|
| --- a/src/key-accumulator.cc
|
| +++ b/src/key-accumulator.cc
|
| @@ -138,11 +138,10 @@
|
|
|
|
|
| bool KeyAccumulator::AddIntegerKey(uint32_t key) {
|
| - if (IsKeyHidden(key)) return false;
|
| // Make sure we do not add keys to a proxy-level (see AddKeysFromProxy).
|
| // We mark proxy-levels with a negative length
|
| DCHECK_LE(0, level_string_length_);
|
| - // Binary search over all but the last level. The last level might not be
|
| + // Binary search over all but the last level. The last one might not be
|
| // sorted yet.
|
| for (size_t i = 1; i < elements_.size(); i++) {
|
| if (AccumulatorHasKey(elements_[i - 1], key)) return false;
|
| @@ -155,10 +154,11 @@
|
|
|
| bool KeyAccumulator::AddStringKey(Handle<Object> key,
|
| AddKeyConversion convert) {
|
| - if (IsKeyHidden(key)) return false;
|
| if (string_properties_.is_null()) {
|
| string_properties_ = OrderedHashSet::Allocate(isolate_, 16);
|
| }
|
| + // TODO(cbruni): remove this conversion once we throw the correct TypeError
|
| + // for non-string/symbol elements returned by proxies
|
| if (convert == PROXY_MAGIC && key->IsNumber()) {
|
| key = isolate_->factory()->NumberToString(key);
|
| }
|
| @@ -175,7 +175,6 @@
|
|
|
|
|
| bool KeyAccumulator::AddSymbolKey(Handle<Object> key) {
|
| - if (IsKeyHidden(key)) return false;
|
| if (symbol_properties_.is_null()) {
|
| symbol_properties_ = OrderedHashSet::Allocate(isolate_, 16);
|
| }
|
| @@ -300,9 +299,6 @@
|
| }
|
|
|
|
|
| -void KeyAccumulator::Prepare() { NextPrototype(); }
|
| -
|
| -
|
| void KeyAccumulator::NextPrototype() {
|
| // Store the protoLength on the first call of this method.
|
| if (!elements_.empty()) {
|
| @@ -315,32 +311,5 @@
|
| }
|
|
|
|
|
| -void KeyAccumulator::HideKey(uint32_t key) { hidden_element_keys_.insert(key); }
|
| -
|
| -
|
| -void KeyAccumulator::HideKey(Object* key) {
|
| - HideKey(Handle<Object>(key, isolate_));
|
| -}
|
| -
|
| -
|
| -void KeyAccumulator::HideKey(Handle<Object> key) {
|
| - if (hidden_keys_.is_null()) {
|
| - hidden_keys_ = OrderedHashSet::Allocate(isolate_, 8);
|
| - }
|
| - hidden_keys_ = OrderedHashSet::Add(hidden_keys_, key);
|
| -}
|
| -
|
| -
|
| -bool KeyAccumulator::IsKeyHidden(uint32_t key) {
|
| - return hidden_element_keys_.count(key);
|
| -}
|
| -
|
| -
|
| -bool KeyAccumulator::IsKeyHidden(Handle<Object> key) {
|
| - if (hidden_keys_.is_null()) return false;
|
| - return OrderedHashSet::HasKey(hidden_keys_, key);
|
| -}
|
| -
|
| -
|
| } // namespace internal
|
| } // namespace v8
|
|
|