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_ISOLATE_H_ | 5 #ifndef V8_ISOLATE_H_ |
6 #define V8_ISOLATE_H_ | 6 #define V8_ISOLATE_H_ |
7 | 7 |
8 #include <queue> | 8 #include <queue> |
9 #include <set> | 9 #include <set> |
10 | 10 |
(...skipping 942 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
953 date_cache_ = date_cache; | 953 date_cache_ = date_cache; |
954 } | 954 } |
955 | 955 |
956 Map* get_initial_js_array_map(ElementsKind kind, | 956 Map* get_initial_js_array_map(ElementsKind kind, |
957 Strength strength = Strength::WEAK); | 957 Strength strength = Strength::WEAK); |
958 | 958 |
959 static const int kArrayProtectorValid = 1; | 959 static const int kArrayProtectorValid = 1; |
960 static const int kArrayProtectorInvalid = 0; | 960 static const int kArrayProtectorInvalid = 0; |
961 | 961 |
962 bool IsFastArrayConstructorPrototypeChainIntact(); | 962 bool IsFastArrayConstructorPrototypeChainIntact(); |
| 963 bool IsArraySpeciesLookupChainIntact(); |
963 | 964 |
964 // On intent to set an element in object, make sure that appropriate | 965 // On intent to set an element in object, make sure that appropriate |
965 // notifications occur if the set is on the elements of the array or | 966 // notifications occur if the set is on the elements of the array or |
966 // object prototype. Also ensure that changes to prototype chain between | 967 // object prototype. Also ensure that changes to prototype chain between |
967 // Array and Object fire notifications. | 968 // Array and Object fire notifications. |
968 void UpdateArrayProtectorOnSetElement(Handle<JSObject> object); | 969 void UpdateArrayProtectorOnSetElement(Handle<JSObject> object); |
969 void UpdateArrayProtectorOnSetLength(Handle<JSObject> object) { | 970 void UpdateArrayProtectorOnSetLength(Handle<JSObject> object) { |
970 UpdateArrayProtectorOnSetElement(object); | 971 UpdateArrayProtectorOnSetElement(object); |
971 } | 972 } |
972 void UpdateArrayProtectorOnSetPrototype(Handle<JSObject> object) { | 973 void UpdateArrayProtectorOnSetPrototype(Handle<JSObject> object) { |
973 UpdateArrayProtectorOnSetElement(object); | 974 UpdateArrayProtectorOnSetElement(object); |
974 } | 975 } |
975 void UpdateArrayProtectorOnNormalizeElements(Handle<JSObject> object) { | 976 void UpdateArrayProtectorOnNormalizeElements(Handle<JSObject> object) { |
976 UpdateArrayProtectorOnSetElement(object); | 977 UpdateArrayProtectorOnSetElement(object); |
977 } | 978 } |
| 979 void InvalidateArraySpeciesProtector(); |
978 | 980 |
979 // Returns true if array is the initial array prototype in any native context. | 981 // Returns true if array is the initial array prototype in any native context. |
980 bool IsAnyInitialArrayPrototype(Handle<JSArray> array); | 982 bool IsAnyInitialArrayPrototype(Handle<JSArray> array); |
981 | 983 |
982 CallInterfaceDescriptorData* call_descriptor_data(int index); | 984 CallInterfaceDescriptorData* call_descriptor_data(int index); |
983 | 985 |
984 void IterateDeferredHandles(ObjectVisitor* visitor); | 986 void IterateDeferredHandles(ObjectVisitor* visitor); |
985 void LinkDeferredHandles(DeferredHandles* deferred_handles); | 987 void LinkDeferredHandles(DeferredHandles* deferred_handles); |
986 void UnlinkDeferredHandles(DeferredHandles* deferred_handles); | 988 void UnlinkDeferredHandles(DeferredHandles* deferred_handles); |
987 | 989 |
(...skipping 569 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1557 | 1559 |
1558 EmbeddedVector<char, 128> filename_; | 1560 EmbeddedVector<char, 128> filename_; |
1559 FILE* file_; | 1561 FILE* file_; |
1560 int scope_depth_; | 1562 int scope_depth_; |
1561 }; | 1563 }; |
1562 | 1564 |
1563 } // namespace internal | 1565 } // namespace internal |
1564 } // namespace v8 | 1566 } // namespace v8 |
1565 | 1567 |
1566 #endif // V8_ISOLATE_H_ | 1568 #endif // V8_ISOLATE_H_ |
OLD | NEW |