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 #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 #include <memory> | 9 #include <memory> |
10 | 10 |
(...skipping 1946 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1957 MUST_USE_RESULT static Maybe<bool> DeleteProperty(LookupIterator* it, | 1957 MUST_USE_RESULT static Maybe<bool> DeleteProperty(LookupIterator* it, |
1958 LanguageMode language_mode); | 1958 LanguageMode language_mode); |
1959 MUST_USE_RESULT static Maybe<bool> DeleteElement( | 1959 MUST_USE_RESULT static Maybe<bool> DeleteElement( |
1960 Handle<JSReceiver> object, uint32_t index, | 1960 Handle<JSReceiver> object, uint32_t index, |
1961 LanguageMode language_mode = SLOPPY); | 1961 LanguageMode language_mode = SLOPPY); |
1962 | 1962 |
1963 MUST_USE_RESULT static Object* DefineProperty(Isolate* isolate, | 1963 MUST_USE_RESULT static Object* DefineProperty(Isolate* isolate, |
1964 Handle<Object> object, | 1964 Handle<Object> object, |
1965 Handle<Object> name, | 1965 Handle<Object> name, |
1966 Handle<Object> attributes); | 1966 Handle<Object> attributes); |
1967 | |
1968 MUST_USE_RESULT static Object* DefinePropertyWithoutInterceptors( | |
1969 Isolate* isolate, Handle<Object> object, Handle<Object> name, | |
1970 Handle<Object> attributes); | |
1971 | |
1967 MUST_USE_RESULT static MaybeHandle<Object> DefineProperties( | 1972 MUST_USE_RESULT static MaybeHandle<Object> DefineProperties( |
1968 Isolate* isolate, Handle<Object> object, Handle<Object> properties); | 1973 Isolate* isolate, Handle<Object> object, Handle<Object> properties); |
1969 | 1974 |
1970 // "virtual" dispatcher to the correct [[DefineOwnProperty]] implementation. | 1975 // "virtual" dispatcher to the correct [[DefineOwnProperty]] implementation. |
1971 MUST_USE_RESULT static Maybe<bool> DefineOwnProperty( | 1976 MUST_USE_RESULT static Maybe<bool> DefineOwnProperty( |
1972 Isolate* isolate, Handle<JSReceiver> object, Handle<Object> key, | 1977 Isolate* isolate, Handle<JSReceiver> object, Handle<Object> key, |
1973 PropertyDescriptor* desc, ShouldThrow should_throw); | 1978 PropertyDescriptor* desc, ShouldThrow should_throw); |
1974 | 1979 |
1980 // "virtual" dispatcher to the correct [[DefineOwnPropertyWithoutIntercept]] | |
1981 // implementation. | |
1982 MUST_USE_RESULT static Maybe<bool> DefineOwnPropertyWithoutIntercept( | |
1983 Isolate* isolate, Handle<JSReceiver> object, Handle<Object> key, | |
1984 PropertyDescriptor* desc, ShouldThrow should_throw); | |
Franzi
2017/04/12 08:58:17
I think you call this function only with dont_thro
| |
1985 | |
1975 // ES6 7.3.4 (when passed DONT_THROW) | 1986 // ES6 7.3.4 (when passed DONT_THROW) |
1976 MUST_USE_RESULT static Maybe<bool> CreateDataProperty( | 1987 MUST_USE_RESULT static Maybe<bool> CreateDataProperty( |
1977 LookupIterator* it, Handle<Object> value, ShouldThrow should_throw); | 1988 LookupIterator* it, Handle<Object> value, ShouldThrow should_throw); |
1978 | 1989 |
1979 // ES6 9.1.6.1 | 1990 // ES6 9.1.6.1 |
1980 MUST_USE_RESULT static Maybe<bool> OrdinaryDefineOwnProperty( | 1991 MUST_USE_RESULT static Maybe<bool> OrdinaryDefineOwnProperty( |
1981 Isolate* isolate, Handle<JSObject> object, Handle<Object> key, | 1992 Isolate* isolate, Handle<JSObject> object, Handle<Object> key, |
1982 PropertyDescriptor* desc, ShouldThrow should_throw); | 1993 PropertyDescriptor* desc, ShouldThrow should_throw); |
1983 MUST_USE_RESULT static Maybe<bool> OrdinaryDefineOwnProperty( | 1994 MUST_USE_RESULT static Maybe<bool> OrdinaryDefineOwnProperty( |
1984 LookupIterator* it, PropertyDescriptor* desc, ShouldThrow should_throw); | 1995 LookupIterator* it, PropertyDescriptor* desc, ShouldThrow should_throw); |
1996 | |
1997 MUST_USE_RESULT static Maybe<bool> OrdinaryDefineOwnPropertyWithoutIntercept( | |
1998 Isolate* isolate, Handle<JSObject> object, Handle<Object> key, | |
1999 PropertyDescriptor* desc, ShouldThrow should_throw); | |
2000 | |
1985 // ES6 9.1.6.2 | 2001 // ES6 9.1.6.2 |
1986 MUST_USE_RESULT static Maybe<bool> IsCompatiblePropertyDescriptor( | 2002 MUST_USE_RESULT static Maybe<bool> IsCompatiblePropertyDescriptor( |
1987 Isolate* isolate, bool extensible, PropertyDescriptor* desc, | 2003 Isolate* isolate, bool extensible, PropertyDescriptor* desc, |
1988 PropertyDescriptor* current, Handle<Name> property_name, | 2004 PropertyDescriptor* current, Handle<Name> property_name, |
1989 ShouldThrow should_throw); | 2005 ShouldThrow should_throw); |
1990 // ES6 9.1.6.3 | 2006 // ES6 9.1.6.3 |
1991 // |it| can be NULL in cases where the ES spec passes |undefined| as the | 2007 // |it| can be NULL in cases where the ES spec passes |undefined| as the |
1992 // receiver. Exactly one of |it| and |property_name| must be provided. | 2008 // receiver. Exactly one of |it| and |property_name| must be provided. |
1993 MUST_USE_RESULT static Maybe<bool> ValidateAndApplyPropertyDescriptor( | 2009 MUST_USE_RESULT static Maybe<bool> ValidateAndApplyPropertyDescriptor( |
1994 Isolate* isolate, LookupIterator* it, bool extensible, | 2010 Isolate* isolate, LookupIterator* it, bool extensible, |
(...skipping 8146 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
10141 // ES6 9.5.5 | 10157 // ES6 9.5.5 |
10142 MUST_USE_RESULT static Maybe<bool> GetOwnPropertyDescriptor( | 10158 MUST_USE_RESULT static Maybe<bool> GetOwnPropertyDescriptor( |
10143 Isolate* isolate, Handle<JSProxy> proxy, Handle<Name> name, | 10159 Isolate* isolate, Handle<JSProxy> proxy, Handle<Name> name, |
10144 PropertyDescriptor* desc); | 10160 PropertyDescriptor* desc); |
10145 | 10161 |
10146 // ES6 9.5.6 | 10162 // ES6 9.5.6 |
10147 MUST_USE_RESULT static Maybe<bool> DefineOwnProperty( | 10163 MUST_USE_RESULT static Maybe<bool> DefineOwnProperty( |
10148 Isolate* isolate, Handle<JSProxy> object, Handle<Object> key, | 10164 Isolate* isolate, Handle<JSProxy> object, Handle<Object> key, |
10149 PropertyDescriptor* desc, ShouldThrow should_throw); | 10165 PropertyDescriptor* desc, ShouldThrow should_throw); |
10150 | 10166 |
10167 MUST_USE_RESULT static Maybe<bool> DefineOwnPropertyWithoutIntercept( | |
10168 Isolate* isolate, Handle<JSProxy> object, Handle<Object> key, | |
10169 PropertyDescriptor* desc, ShouldThrow should_throw); | |
10170 | |
10151 // ES6 9.5.7 | 10171 // ES6 9.5.7 |
10152 MUST_USE_RESULT static Maybe<bool> HasProperty(Isolate* isolate, | 10172 MUST_USE_RESULT static Maybe<bool> HasProperty(Isolate* isolate, |
10153 Handle<JSProxy> proxy, | 10173 Handle<JSProxy> proxy, |
10154 Handle<Name> name); | 10174 Handle<Name> name); |
10155 | 10175 |
10156 // ES6 9.5.8 | 10176 // ES6 9.5.8 |
10157 MUST_USE_RESULT static MaybeHandle<Object> GetProperty( | 10177 MUST_USE_RESULT static MaybeHandle<Object> GetProperty( |
10158 Isolate* isolate, Handle<JSProxy> proxy, Handle<Name> name, | 10178 Isolate* isolate, Handle<JSProxy> proxy, Handle<Name> name, |
10159 Handle<Object> receiver, bool* was_found); | 10179 Handle<Object> receiver, bool* was_found); |
10160 | 10180 |
(...skipping 461 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
10622 public: | 10642 public: |
10623 // [length]: length of typed array in elements. | 10643 // [length]: length of typed array in elements. |
10624 DECL_ACCESSORS(length, Object) | 10644 DECL_ACCESSORS(length, Object) |
10625 inline uint32_t length_value() const; | 10645 inline uint32_t length_value() const; |
10626 | 10646 |
10627 // ES6 9.4.5.3 | 10647 // ES6 9.4.5.3 |
10628 MUST_USE_RESULT static Maybe<bool> DefineOwnProperty( | 10648 MUST_USE_RESULT static Maybe<bool> DefineOwnProperty( |
10629 Isolate* isolate, Handle<JSTypedArray> o, Handle<Object> key, | 10649 Isolate* isolate, Handle<JSTypedArray> o, Handle<Object> key, |
10630 PropertyDescriptor* desc, ShouldThrow should_throw); | 10650 PropertyDescriptor* desc, ShouldThrow should_throw); |
10631 | 10651 |
10652 MUST_USE_RESULT static Maybe<bool> DefineOwnPropertyWithoutIntercept( | |
10653 Isolate* isolate, Handle<JSTypedArray> o, Handle<Object> key, | |
10654 PropertyDescriptor* desc, ShouldThrow should_throw); | |
10655 | |
10632 DECLARE_CAST(JSTypedArray) | 10656 DECLARE_CAST(JSTypedArray) |
10633 | 10657 |
10634 ExternalArrayType type(); | 10658 ExternalArrayType type(); |
10635 V8_EXPORT_PRIVATE size_t element_size(); | 10659 V8_EXPORT_PRIVATE size_t element_size(); |
10636 | 10660 |
10637 Handle<JSArrayBuffer> GetBuffer(); | 10661 Handle<JSArrayBuffer> GetBuffer(); |
10638 | 10662 |
10639 static inline MaybeHandle<JSTypedArray> Validate(Isolate* isolate, | 10663 static inline MaybeHandle<JSTypedArray> Validate(Isolate* isolate, |
10640 Handle<Object> receiver, | 10664 Handle<Object> receiver, |
10641 const char* method_name); | 10665 const char* method_name); |
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
10740 | 10764 |
10741 // Set the content of the array to the content of storage. | 10765 // Set the content of the array to the content of storage. |
10742 static inline void SetContent(Handle<JSArray> array, | 10766 static inline void SetContent(Handle<JSArray> array, |
10743 Handle<FixedArrayBase> storage); | 10767 Handle<FixedArrayBase> storage); |
10744 | 10768 |
10745 // ES6 9.4.2.1 | 10769 // ES6 9.4.2.1 |
10746 MUST_USE_RESULT static Maybe<bool> DefineOwnProperty( | 10770 MUST_USE_RESULT static Maybe<bool> DefineOwnProperty( |
10747 Isolate* isolate, Handle<JSArray> o, Handle<Object> name, | 10771 Isolate* isolate, Handle<JSArray> o, Handle<Object> name, |
10748 PropertyDescriptor* desc, ShouldThrow should_throw); | 10772 PropertyDescriptor* desc, ShouldThrow should_throw); |
10749 | 10773 |
10774 MUST_USE_RESULT static Maybe<bool> DefineOwnPropertyWithoutIntercept( | |
10775 Isolate* isolate, Handle<JSArray> o, Handle<Object> name, | |
10776 PropertyDescriptor* desc, ShouldThrow should_throw); | |
10777 | |
10750 static bool AnythingToArrayLength(Isolate* isolate, | 10778 static bool AnythingToArrayLength(Isolate* isolate, |
10751 Handle<Object> length_object, | 10779 Handle<Object> length_object, |
10752 uint32_t* output); | 10780 uint32_t* output); |
10753 MUST_USE_RESULT static Maybe<bool> ArraySetLength(Isolate* isolate, | 10781 MUST_USE_RESULT static Maybe<bool> ArraySetLength(Isolate* isolate, |
10754 Handle<JSArray> a, | 10782 Handle<JSArray> a, |
10755 PropertyDescriptor* desc, | 10783 PropertyDescriptor* desc, |
10756 ShouldThrow should_throw); | 10784 ShouldThrow should_throw); |
10757 | 10785 |
10758 // Checks whether the Array has the current realm's Array.prototype as its | 10786 // Checks whether the Array has the current realm's Array.prototype as its |
10759 // prototype. This function is best-effort and only gives a conservative | 10787 // prototype. This function is best-effort and only gives a conservative |
(...skipping 679 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
11439 } | 11467 } |
11440 }; | 11468 }; |
11441 | 11469 |
11442 | 11470 |
11443 } // NOLINT, false-positive due to second-order macros. | 11471 } // NOLINT, false-positive due to second-order macros. |
11444 } // NOLINT, false-positive due to second-order macros. | 11472 } // NOLINT, false-positive due to second-order macros. |
11445 | 11473 |
11446 #include "src/objects/object-macros-undef.h" | 11474 #include "src/objects/object-macros-undef.h" |
11447 | 11475 |
11448 #endif // V8_OBJECTS_H_ | 11476 #endif // V8_OBJECTS_H_ |
OLD | NEW |