| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "src/keys.h" | 5 #include "src/keys.h" |
| 6 | 6 |
| 7 #include "src/api-arguments.h" | 7 #include "src/api-arguments.h" |
| 8 #include "src/elements.h" | 8 #include "src/elements.h" |
| 9 #include "src/factory.h" | 9 #include "src/factory.h" |
| 10 #include "src/identity-map.h" | 10 #include "src/identity-map.h" |
| (...skipping 776 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 787 // (No-op, just keep it in |target_keys|.) | 787 // (No-op, just keep it in |target_keys|.) |
| 788 } | 788 } |
| 789 } | 789 } |
| 790 // 15. If extensibleTarget is true and targetNonconfigurableKeys is empty, | 790 // 15. If extensibleTarget is true and targetNonconfigurableKeys is empty, |
| 791 // then: | 791 // then: |
| 792 if (extensible_target && nonconfigurable_keys_length == 0) { | 792 if (extensible_target && nonconfigurable_keys_length == 0) { |
| 793 // 15a. Return trapResult. | 793 // 15a. Return trapResult. |
| 794 return AddKeysFromJSProxy(proxy, trap_result); | 794 return AddKeysFromJSProxy(proxy, trap_result); |
| 795 } | 795 } |
| 796 // 16. Let uncheckedResultKeys be a new List which is a copy of trapResult. | 796 // 16. Let uncheckedResultKeys be a new List which is a copy of trapResult. |
| 797 Zone set_zone(isolate_->allocator()); | 797 Zone set_zone(isolate_->allocator(), ZONE_NAME); |
| 798 const int kPresent = 1; | 798 const int kPresent = 1; |
| 799 const int kGone = 0; | 799 const int kGone = 0; |
| 800 IdentityMap<int> unchecked_result_keys(isolate_->heap(), &set_zone); | 800 IdentityMap<int> unchecked_result_keys(isolate_->heap(), &set_zone); |
| 801 int unchecked_result_keys_size = 0; | 801 int unchecked_result_keys_size = 0; |
| 802 for (int i = 0; i < trap_result->length(); ++i) { | 802 for (int i = 0; i < trap_result->length(); ++i) { |
| 803 DCHECK(trap_result->get(i)->IsUniqueName()); | 803 DCHECK(trap_result->get(i)->IsUniqueName()); |
| 804 Object* key = trap_result->get(i); | 804 Object* key = trap_result->get(i); |
| 805 int* entry = unchecked_result_keys.Get(key); | 805 int* entry = unchecked_result_keys.Get(key); |
| 806 if (*entry != kPresent) { | 806 if (*entry != kPresent) { |
| 807 *entry = kPresent; | 807 *entry = kPresent; |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 862 isolate_, keys, | 862 isolate_, keys, |
| 863 KeyAccumulator::GetKeys(target, KeyCollectionMode::kOwnOnly, filter_, | 863 KeyAccumulator::GetKeys(target, KeyCollectionMode::kOwnOnly, filter_, |
| 864 GetKeysConversion::kConvertToString, is_for_in_), | 864 GetKeysConversion::kConvertToString, is_for_in_), |
| 865 Nothing<bool>()); | 865 Nothing<bool>()); |
| 866 Maybe<bool> result = AddKeysFromJSProxy(proxy, keys); | 866 Maybe<bool> result = AddKeysFromJSProxy(proxy, keys); |
| 867 return result; | 867 return result; |
| 868 } | 868 } |
| 869 | 869 |
| 870 } // namespace internal | 870 } // namespace internal |
| 871 } // namespace v8 | 871 } // namespace v8 |
| OLD | NEW |