OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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/runtime/runtime-utils.h" | 5 #include "src/runtime/runtime-utils.h" |
6 | 6 |
7 #include "src/arguments.h" | 7 #include "src/arguments.h" |
8 #include "src/bootstrapper.h" | 8 #include "src/bootstrapper.h" |
9 #include "src/debug/debug.h" | 9 #include "src/debug/debug.h" |
10 #include "src/isolate-inl.h" | 10 #include "src/isolate-inl.h" |
(...skipping 732 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
743 Maybe<bool> maybe = JSReceiver::HasProperty(receiver, name); | 743 Maybe<bool> maybe = JSReceiver::HasProperty(receiver, name); |
744 if (!maybe.IsJust()) return isolate->heap()->exception(); | 744 if (!maybe.IsJust()) return isolate->heap()->exception(); |
745 return isolate->heap()->ToBoolean(maybe.FromJust()); | 745 return isolate->heap()->ToBoolean(maybe.FromJust()); |
746 } | 746 } |
747 | 747 |
748 | 748 |
749 RUNTIME_FUNCTION(Runtime_IsPropertyEnumerable) { | 749 RUNTIME_FUNCTION(Runtime_IsPropertyEnumerable) { |
750 HandleScope scope(isolate); | 750 HandleScope scope(isolate); |
751 DCHECK(args.length() == 2); | 751 DCHECK(args.length() == 2); |
752 | 752 |
753 CONVERT_ARG_HANDLE_CHECKED(JSObject, object, 0); | 753 CONVERT_ARG_HANDLE_CHECKED(JSReceiver, object, 0); |
754 CONVERT_ARG_HANDLE_CHECKED(Name, key, 1); | 754 CONVERT_ARG_HANDLE_CHECKED(Name, key, 1); |
755 | 755 |
756 Maybe<PropertyAttributes> maybe = | 756 Maybe<PropertyAttributes> maybe = |
757 JSReceiver::GetOwnPropertyAttributes(object, key); | 757 JSReceiver::GetOwnPropertyAttributes(object, key); |
758 if (!maybe.IsJust()) return isolate->heap()->exception(); | 758 if (!maybe.IsJust()) return isolate->heap()->exception(); |
759 if (maybe.FromJust() == ABSENT) maybe = Just(DONT_ENUM); | 759 if (maybe.FromJust() == ABSENT) return isolate->heap()->false_value(); |
760 return isolate->heap()->ToBoolean((maybe.FromJust() & DONT_ENUM) == 0); | 760 return isolate->heap()->ToBoolean((maybe.FromJust() & DONT_ENUM) == 0); |
761 } | 761 } |
762 | 762 |
763 | 763 |
764 // Returns either a FixedArray or, if the given object has an enum cache that | 764 // Returns either a FixedArray or, if the given object has an enum cache that |
765 // contains all enumerable properties of the object and its prototypes have | 765 // contains all enumerable properties of the object and its prototypes have |
766 // none, the map of the object. This is used to speed up the check for | 766 // none, the map of the object. This is used to speed up the check for |
767 // deletions during a for-in. | 767 // deletions during a for-in. |
768 RUNTIME_FUNCTION(Runtime_GetPropertyNamesFast) { | 768 RUNTIME_FUNCTION(Runtime_GetPropertyNamesFast) { |
769 SealHandleScope shs(isolate); | 769 SealHandleScope shs(isolate); |
(...skipping 804 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1574 | 1574 |
1575 RUNTIME_FUNCTION(Runtime_ObjectDefineProperties) { | 1575 RUNTIME_FUNCTION(Runtime_ObjectDefineProperties) { |
1576 HandleScope scope(isolate); | 1576 HandleScope scope(isolate); |
1577 DCHECK(args.length() == 2); | 1577 DCHECK(args.length() == 2); |
1578 CONVERT_ARG_HANDLE_CHECKED(Object, o, 0); | 1578 CONVERT_ARG_HANDLE_CHECKED(Object, o, 0); |
1579 CONVERT_ARG_HANDLE_CHECKED(Object, properties, 1); | 1579 CONVERT_ARG_HANDLE_CHECKED(Object, properties, 1); |
1580 return JSReceiver::DefineProperties(isolate, o, properties); | 1580 return JSReceiver::DefineProperties(isolate, o, properties); |
1581 } | 1581 } |
1582 } // namespace internal | 1582 } // namespace internal |
1583 } // namespace v8 | 1583 } // namespace v8 |
OLD | NEW |