OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 #ifndef V8_OBJECTS_H_ | 5 #ifndef V8_OBJECTS_H_ |
6 #define V8_OBJECTS_H_ | 6 #define V8_OBJECTS_H_ |
7 | 7 |
8 #include "src/allocation.h" | 8 #include "src/allocation.h" |
9 #include "src/assert-scope.h" | 9 #include "src/assert-scope.h" |
10 #include "src/builtins.h" | 10 #include "src/builtins.h" |
(...skipping 2613 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2624 }; | 2624 }; |
2625 | 2625 |
2626 Context* GetCreationContext(); | 2626 Context* GetCreationContext(); |
2627 | 2627 |
2628 // Enqueue change record for Object.observe. May cause GC. | 2628 // Enqueue change record for Object.observe. May cause GC. |
2629 static void EnqueueChangeRecord(Handle<JSObject> object, | 2629 static void EnqueueChangeRecord(Handle<JSObject> object, |
2630 const char* type, | 2630 const char* type, |
2631 Handle<Name> name, | 2631 Handle<Name> name, |
2632 Handle<Object> old_value); | 2632 Handle<Object> old_value); |
2633 | 2633 |
| 2634 static void MigrateToNewProperty(Handle<JSObject> object, |
| 2635 Handle<Map> transition, |
| 2636 Handle<Object> value); |
| 2637 |
2634 private: | 2638 private: |
2635 friend class DictionaryElementsAccessor; | 2639 friend class DictionaryElementsAccessor; |
2636 friend class JSReceiver; | 2640 friend class JSReceiver; |
2637 friend class Object; | 2641 friend class Object; |
2638 | 2642 |
2639 static void UpdateAllocationSite(Handle<JSObject> object, | 2643 static void UpdateAllocationSite(Handle<JSObject> object, |
2640 ElementsKind to_kind); | 2644 ElementsKind to_kind); |
2641 | 2645 |
2642 // Used from Object::GetProperty(). | 2646 // Used from Object::GetProperty(). |
2643 MUST_USE_RESULT static MaybeHandle<Object> GetPropertyWithFailedAccessCheck( | 2647 MUST_USE_RESULT static MaybeHandle<Object> GetPropertyWithFailedAccessCheck( |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2751 | 2755 |
2752 // Add a property to a fast-case object. | 2756 // Add a property to a fast-case object. |
2753 static void AddFastProperty(Handle<JSObject> object, | 2757 static void AddFastProperty(Handle<JSObject> object, |
2754 Handle<Name> name, | 2758 Handle<Name> name, |
2755 Handle<Object> value, | 2759 Handle<Object> value, |
2756 PropertyAttributes attributes, | 2760 PropertyAttributes attributes, |
2757 StoreFromKeyed store_mode, | 2761 StoreFromKeyed store_mode, |
2758 ValueType value_type, | 2762 ValueType value_type, |
2759 TransitionFlag flag); | 2763 TransitionFlag flag); |
2760 | 2764 |
2761 static void MigrateToNewProperty(Handle<JSObject> object, | |
2762 Handle<Map> transition, | |
2763 Handle<Object> value); | |
2764 | |
2765 // Add a property to a slow-case object. | 2765 // Add a property to a slow-case object. |
2766 static void AddSlowProperty(Handle<JSObject> object, | 2766 static void AddSlowProperty(Handle<JSObject> object, |
2767 Handle<Name> name, | 2767 Handle<Name> name, |
2768 Handle<Object> value, | 2768 Handle<Object> value, |
2769 PropertyAttributes attributes); | 2769 PropertyAttributes attributes); |
2770 | 2770 |
2771 MUST_USE_RESULT static MaybeHandle<Object> DeleteProperty( | 2771 MUST_USE_RESULT static MaybeHandle<Object> DeleteProperty( |
2772 Handle<JSObject> object, | 2772 Handle<JSObject> object, |
2773 Handle<Name> name, | 2773 Handle<Name> name, |
2774 DeleteMode mode); | 2774 DeleteMode mode); |
(...skipping 8393 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11168 } else { | 11168 } else { |
11169 value &= ~(1 << bit_position); | 11169 value &= ~(1 << bit_position); |
11170 } | 11170 } |
11171 return value; | 11171 return value; |
11172 } | 11172 } |
11173 }; | 11173 }; |
11174 | 11174 |
11175 } } // namespace v8::internal | 11175 } } // namespace v8::internal |
11176 | 11176 |
11177 #endif // V8_OBJECTS_H_ | 11177 #endif // V8_OBJECTS_H_ |
OLD | NEW |