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 | 9 |
10 #include "src/assert-scope.h" | 10 #include "src/assert-scope.h" |
(...skipping 1897 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1908 // 'level' must be SEALED or FROZEN. | 1908 // 'level' must be SEALED or FROZEN. |
1909 MUST_USE_RESULT static Maybe<bool> TestIntegrityLevel( | 1909 MUST_USE_RESULT static Maybe<bool> TestIntegrityLevel( |
1910 Handle<JSReceiver> object, IntegrityLevel lvl); | 1910 Handle<JSReceiver> object, IntegrityLevel lvl); |
1911 | 1911 |
1912 // ES6 [[PreventExtensions]] (when passed DONT_THROW) | 1912 // ES6 [[PreventExtensions]] (when passed DONT_THROW) |
1913 MUST_USE_RESULT static Maybe<bool> PreventExtensions( | 1913 MUST_USE_RESULT static Maybe<bool> PreventExtensions( |
1914 Handle<JSReceiver> object, ShouldThrow should_throw); | 1914 Handle<JSReceiver> object, ShouldThrow should_throw); |
1915 | 1915 |
1916 MUST_USE_RESULT static Maybe<bool> IsExtensible(Handle<JSReceiver> object); | 1916 MUST_USE_RESULT static Maybe<bool> IsExtensible(Handle<JSReceiver> object); |
1917 | 1917 |
1918 // Tests for the fast common case for property enumeration. | |
1919 bool IsSimpleEnum(); | |
1920 | |
1921 // Returns the class name ([[Class]] property in the specification). | 1918 // Returns the class name ([[Class]] property in the specification). |
1922 String* class_name(); | 1919 String* class_name(); |
1923 | 1920 |
1924 // Returns the builtin string tag used in Object.prototype.toString. | 1921 // Returns the builtin string tag used in Object.prototype.toString. |
1925 MUST_USE_RESULT static MaybeHandle<String> BuiltinStringTag( | 1922 MUST_USE_RESULT static MaybeHandle<String> BuiltinStringTag( |
1926 Handle<JSReceiver> object); | 1923 Handle<JSReceiver> object); |
1927 | 1924 |
1928 // Returns the constructor name (the name (possibly, inferred name) of the | 1925 // Returns the constructor name (the name (possibly, inferred name) of the |
1929 // function that was used to instantiate the object). | 1926 // function that was used to instantiate the object). |
1930 static Handle<String> GetConstructorName(Handle<JSReceiver> receiver); | 1927 static Handle<String> GetConstructorName(Handle<JSReceiver> receiver); |
(...skipping 5967 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7898 kSticky = 1 << 3, | 7895 kSticky = 1 << 3, |
7899 kUnicode = 1 << 4, | 7896 kUnicode = 1 << 4, |
7900 }; | 7897 }; |
7901 typedef base::Flags<Flag> Flags; | 7898 typedef base::Flags<Flag> Flags; |
7902 | 7899 |
7903 DECL_ACCESSORS(data, Object) | 7900 DECL_ACCESSORS(data, Object) |
7904 DECL_ACCESSORS(flags, Object) | 7901 DECL_ACCESSORS(flags, Object) |
7905 DECL_ACCESSORS(source, Object) | 7902 DECL_ACCESSORS(source, Object) |
7906 | 7903 |
7907 static MaybeHandle<JSRegExp> New(Handle<String> source, Flags flags); | 7904 static MaybeHandle<JSRegExp> New(Handle<String> source, Flags flags); |
7908 static MaybeHandle<JSRegExp> New(Handle<String> source, Handle<String> flags); | |
7909 static Handle<JSRegExp> Copy(Handle<JSRegExp> regexp); | 7905 static Handle<JSRegExp> Copy(Handle<JSRegExp> regexp); |
7910 | 7906 |
7911 static MaybeHandle<JSRegExp> Initialize(Handle<JSRegExp> regexp, | 7907 static MaybeHandle<JSRegExp> Initialize(Handle<JSRegExp> regexp, |
7912 Handle<String> source, Flags flags); | 7908 Handle<String> source, Flags flags); |
7913 static MaybeHandle<JSRegExp> Initialize(Handle<JSRegExp> regexp, | 7909 static MaybeHandle<JSRegExp> Initialize(Handle<JSRegExp> regexp, |
7914 Handle<String> source, | 7910 Handle<String> source, |
7915 Handle<String> flags_string); | 7911 Handle<String> flags_string); |
7916 | 7912 |
7917 inline Type TypeTag(); | 7913 inline Type TypeTag(); |
7918 inline int CaptureCount(); | 7914 inline int CaptureCount(); |
(...skipping 923 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8842 // do any heap allocations. This is useful when printing stack traces. | 8838 // do any heap allocations. This is useful when printing stack traces. |
8843 base::SmartArrayPointer<char> ToCString(AllowNullsFlag allow_nulls, | 8839 base::SmartArrayPointer<char> ToCString(AllowNullsFlag allow_nulls, |
8844 RobustnessFlag robustness_flag, | 8840 RobustnessFlag robustness_flag, |
8845 int offset, int length, | 8841 int offset, int length, |
8846 int* length_output = 0); | 8842 int* length_output = 0); |
8847 base::SmartArrayPointer<char> ToCString( | 8843 base::SmartArrayPointer<char> ToCString( |
8848 AllowNullsFlag allow_nulls = DISALLOW_NULLS, | 8844 AllowNullsFlag allow_nulls = DISALLOW_NULLS, |
8849 RobustnessFlag robustness_flag = FAST_STRING_TRAVERSAL, | 8845 RobustnessFlag robustness_flag = FAST_STRING_TRAVERSAL, |
8850 int* length_output = 0); | 8846 int* length_output = 0); |
8851 | 8847 |
8852 // Return a 16 bit Unicode representation of the string. | |
8853 // The string should be nearly flat, otherwise the performance of | |
8854 // of this method may be very bad. Setting robustness_flag to | |
8855 // ROBUST_STRING_TRAVERSAL invokes behaviour that is robust This means it | |
8856 // handles unexpected data without causing assert failures and it does not | |
8857 // do any heap allocations. This is useful when printing stack traces. | |
8858 base::SmartArrayPointer<uc16> ToWideCString( | |
8859 RobustnessFlag robustness_flag = FAST_STRING_TRAVERSAL); | |
8860 | |
8861 bool ComputeArrayIndex(uint32_t* index); | 8848 bool ComputeArrayIndex(uint32_t* index); |
8862 | 8849 |
8863 // Externalization. | 8850 // Externalization. |
8864 bool MakeExternal(v8::String::ExternalStringResource* resource); | 8851 bool MakeExternal(v8::String::ExternalStringResource* resource); |
8865 bool MakeExternal(v8::String::ExternalOneByteStringResource* resource); | 8852 bool MakeExternal(v8::String::ExternalOneByteStringResource* resource); |
8866 | 8853 |
8867 // Conversion. | 8854 // Conversion. |
8868 inline bool AsArrayIndex(uint32_t* index); | 8855 inline bool AsArrayIndex(uint32_t* index); |
8869 | 8856 |
8870 DECLARE_CAST(String) | 8857 DECLARE_CAST(String) |
(...skipping 1911 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10782 } | 10769 } |
10783 return value; | 10770 return value; |
10784 } | 10771 } |
10785 }; | 10772 }; |
10786 | 10773 |
10787 | 10774 |
10788 } // NOLINT, false-positive due to second-order macros. | 10775 } // NOLINT, false-positive due to second-order macros. |
10789 } // NOLINT, false-positive due to second-order macros. | 10776 } // NOLINT, false-positive due to second-order macros. |
10790 | 10777 |
10791 #endif // V8_OBJECTS_H_ | 10778 #endif // V8_OBJECTS_H_ |
OLD | NEW |