OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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/objects.h" | 5 #include "src/objects.h" |
6 | 6 |
7 #include <cmath> | 7 #include <cmath> |
8 #include <iomanip> | 8 #include <iomanip> |
9 #include <memory> | 9 #include <memory> |
10 #include <sstream> | 10 #include <sstream> |
(...skipping 6384 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6395 if (!object->IsJSReceiver()) { | 6395 if (!object->IsJSReceiver()) { |
6396 Handle<String> fun_name = | 6396 Handle<String> fun_name = |
6397 isolate->factory()->InternalizeUtf8String("Object.defineProperties"); | 6397 isolate->factory()->InternalizeUtf8String("Object.defineProperties"); |
6398 THROW_NEW_ERROR(isolate, | 6398 THROW_NEW_ERROR(isolate, |
6399 NewTypeError(MessageTemplate::kCalledOnNonObject, fun_name), | 6399 NewTypeError(MessageTemplate::kCalledOnNonObject, fun_name), |
6400 Object); | 6400 Object); |
6401 } | 6401 } |
6402 // 2. Let props be ToObject(Properties). | 6402 // 2. Let props be ToObject(Properties). |
6403 // 3. ReturnIfAbrupt(props). | 6403 // 3. ReturnIfAbrupt(props). |
6404 Handle<JSReceiver> props; | 6404 Handle<JSReceiver> props; |
6405 if (!Object::ToObject(isolate, properties).ToHandle(&props)) { | 6405 ASSIGN_RETURN_ON_EXCEPTION(isolate, props, |
6406 THROW_NEW_ERROR(isolate, | 6406 Object::ToObject(isolate, properties), Object); |
6407 NewTypeError(MessageTemplate::kUndefinedOrNullToObject), | 6407 |
6408 Object); | |
6409 } | |
6410 // 4. Let keys be props.[[OwnPropertyKeys]](). | 6408 // 4. Let keys be props.[[OwnPropertyKeys]](). |
6411 // 5. ReturnIfAbrupt(keys). | 6409 // 5. ReturnIfAbrupt(keys). |
6412 Handle<FixedArray> keys; | 6410 Handle<FixedArray> keys; |
6413 ASSIGN_RETURN_ON_EXCEPTION( | 6411 ASSIGN_RETURN_ON_EXCEPTION( |
6414 isolate, keys, KeyAccumulator::GetKeys(props, KeyCollectionMode::kOwnOnly, | 6412 isolate, keys, KeyAccumulator::GetKeys(props, KeyCollectionMode::kOwnOnly, |
6415 ALL_PROPERTIES), | 6413 ALL_PROPERTIES), |
6416 Object); | 6414 Object); |
6417 // 6. Let descriptors be an empty List. | 6415 // 6. Let descriptors be an empty List. |
6418 int capacity = keys->length(); | 6416 int capacity = keys->length(); |
6419 std::vector<PropertyDescriptor> descriptors(capacity); | 6417 std::vector<PropertyDescriptor> descriptors(capacity); |
(...skipping 12765 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
19185 for (PrototypeIterator iter(isolate, this, kStartAtReceiver, | 19183 for (PrototypeIterator iter(isolate, this, kStartAtReceiver, |
19186 PrototypeIterator::END_AT_NULL); | 19184 PrototypeIterator::END_AT_NULL); |
19187 !iter.IsAtEnd(); iter.AdvanceIgnoringProxies()) { | 19185 !iter.IsAtEnd(); iter.AdvanceIgnoringProxies()) { |
19188 if (iter.GetCurrent<Object>()->IsJSProxy()) return true; | 19186 if (iter.GetCurrent<Object>()->IsJSProxy()) return true; |
19189 } | 19187 } |
19190 return false; | 19188 return false; |
19191 } | 19189 } |
19192 | 19190 |
19193 } // namespace internal | 19191 } // namespace internal |
19194 } // namespace v8 | 19192 } // namespace v8 |
OLD | NEW |