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 <iosfwd> | 8 #include <iosfwd> |
9 | 9 |
10 #include "src/allocation.h" | 10 #include "src/allocation.h" |
(...skipping 1095 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1106 | 1106 |
1107 // Convert to a JSObject if needed. | 1107 // Convert to a JSObject if needed. |
1108 // native_context is used when creating wrapper object. | 1108 // native_context is used when creating wrapper object. |
1109 static inline MaybeHandle<JSReceiver> ToObject(Isolate* isolate, | 1109 static inline MaybeHandle<JSReceiver> ToObject(Isolate* isolate, |
1110 Handle<Object> object); | 1110 Handle<Object> object); |
1111 static MaybeHandle<JSReceiver> ToObject(Isolate* isolate, | 1111 static MaybeHandle<JSReceiver> ToObject(Isolate* isolate, |
1112 Handle<Object> object, | 1112 Handle<Object> object, |
1113 Handle<Context> context); | 1113 Handle<Context> context); |
1114 | 1114 |
1115 // Converts this to a Smi if possible. | 1115 // Converts this to a Smi if possible. |
1116 static MUST_USE_RESULT inline MaybeHandle<Smi> ToSmi(Isolate* isolate, | 1116 MUST_USE_RESULT static inline MaybeHandle<Smi> ToSmi(Isolate* isolate, |
1117 Handle<Object> object); | 1117 Handle<Object> object); |
1118 | 1118 |
1119 MUST_USE_RESULT static MaybeHandle<Object> GetProperty(LookupIterator* it); | 1119 MUST_USE_RESULT static MaybeHandle<Object> GetProperty(LookupIterator* it); |
1120 | 1120 |
1121 // Implementation of [[Put]], ECMA-262 5th edition, section 8.12.5. | 1121 // Implementation of [[Put]], ECMA-262 5th edition, section 8.12.5. |
1122 MUST_USE_RESULT static MaybeHandle<Object> SetProperty( | 1122 MUST_USE_RESULT static MaybeHandle<Object> SetProperty( |
1123 Handle<Object> object, Handle<Name> key, Handle<Object> value, | 1123 Handle<Object> object, Handle<Name> key, Handle<Object> value, |
1124 LanguageMode language_mode, | 1124 LanguageMode language_mode, |
1125 StoreFromKeyed store_mode = MAY_BE_STORE_FROM_KEYED); | 1125 StoreFromKeyed store_mode = MAY_BE_STORE_FROM_KEYED); |
1126 | 1126 |
(...skipping 798 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1925 } | 1925 } |
1926 | 1926 |
1927 // These methods do not perform access checks! | 1927 // These methods do not perform access checks! |
1928 MUST_USE_RESULT static MaybeHandle<AccessorPair> GetOwnElementAccessorPair( | 1928 MUST_USE_RESULT static MaybeHandle<AccessorPair> GetOwnElementAccessorPair( |
1929 Handle<JSObject> object, uint32_t index); | 1929 Handle<JSObject> object, uint32_t index); |
1930 | 1930 |
1931 MUST_USE_RESULT static MaybeHandle<Object> SetFastElement( | 1931 MUST_USE_RESULT static MaybeHandle<Object> SetFastElement( |
1932 Handle<JSObject> object, uint32_t index, Handle<Object> value, | 1932 Handle<JSObject> object, uint32_t index, Handle<Object> value, |
1933 LanguageMode language_mode, bool check_prototype); | 1933 LanguageMode language_mode, bool check_prototype); |
1934 | 1934 |
| 1935 MUST_USE_RESULT static inline MaybeHandle<Object> SetOwnElement( |
| 1936 Handle<JSObject> object, uint32_t index, Handle<Object> value, |
| 1937 LanguageMode language_mode); |
| 1938 |
1935 MUST_USE_RESULT static MaybeHandle<Object> SetOwnElement( | 1939 MUST_USE_RESULT static MaybeHandle<Object> SetOwnElement( |
1936 Handle<JSObject> object, uint32_t index, Handle<Object> value, | 1940 Handle<JSObject> object, uint32_t index, Handle<Object> value, |
1937 LanguageMode language_mode); | 1941 PropertyAttributes attributes, LanguageMode language_mode); |
1938 | 1942 |
1939 // Empty handle is returned if the element cannot be set to the given value. | 1943 // Empty handle is returned if the element cannot be set to the given value. |
1940 MUST_USE_RESULT static MaybeHandle<Object> SetElement( | 1944 MUST_USE_RESULT static MaybeHandle<Object> SetElement( |
1941 Handle<JSObject> object, uint32_t index, Handle<Object> value, | 1945 Handle<JSObject> object, uint32_t index, Handle<Object> value, |
1942 PropertyAttributes attributes, LanguageMode language_mode, | 1946 PropertyAttributes attributes, LanguageMode language_mode, |
1943 bool check_prototype = true, SetPropertyMode set_mode = SET_PROPERTY); | 1947 bool check_prototype = true, SetPropertyMode set_mode = SET_PROPERTY); |
1944 | 1948 |
1945 // Returns the index'th element. | 1949 // Returns the index'th element. |
1946 // The undefined object if index is out of bounds. | 1950 // The undefined object if index is out of bounds. |
1947 MUST_USE_RESULT static MaybeHandle<Object> GetElementWithInterceptor( | 1951 MUST_USE_RESULT static MaybeHandle<Object> GetElementWithInterceptor( |
(...skipping 9005 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10953 } else { | 10957 } else { |
10954 value &= ~(1 << bit_position); | 10958 value &= ~(1 << bit_position); |
10955 } | 10959 } |
10956 return value; | 10960 return value; |
10957 } | 10961 } |
10958 }; | 10962 }; |
10959 | 10963 |
10960 } } // namespace v8::internal | 10964 } } // namespace v8::internal |
10961 | 10965 |
10962 #endif // V8_OBJECTS_H_ | 10966 #endif // V8_OBJECTS_H_ |
OLD | NEW |