diff options
author | wolfbeast <mcwerewolf@wolfbeast.com> | 2019-06-29 22:58:52 +0200 |
---|---|---|
committer | wolfbeast <mcwerewolf@wolfbeast.com> | 2019-06-29 22:58:52 +0200 |
commit | e09746b2f34ce69c7bc4c86b1f90f62b7c8d9c51 (patch) | |
tree | f8d4d2b62b2bcd2f5b37ce7cbf6fa873cff185b0 /js/src/vm/NativeObject.h | |
parent | bfb36627c66ff8a27da7c1bace60496352fd096b (diff) | |
parent | e4b2fa17baea1d35d80de19ffb90d9ba2a1033f8 (diff) | |
download | UXP-e09746b2f34ce69c7bc4c86b1f90f62b7c8d9c51.tar UXP-e09746b2f34ce69c7bc4c86b1f90f62b7c8d9c51.tar.gz UXP-e09746b2f34ce69c7bc4c86b1f90f62b7c8d9c51.tar.lz UXP-e09746b2f34ce69c7bc4c86b1f90f62b7c8d9c51.tar.xz UXP-e09746b2f34ce69c7bc4c86b1f90f62b7c8d9c51.zip |
Merge branch 'master' into Pale_Moon-release
# Conflicts:
# application/palemoon/config/version.txt
# security/manager/ssl/nsSTSPreloadList.errors
# security/manager/ssl/nsSTSPreloadList.inc
Diffstat (limited to 'js/src/vm/NativeObject.h')
-rw-r--r-- | js/src/vm/NativeObject.h | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/js/src/vm/NativeObject.h b/js/src/vm/NativeObject.h index 4dbc167ab..d9d8b8aec 100644 --- a/js/src/vm/NativeObject.h +++ b/js/src/vm/NativeObject.h @@ -339,16 +339,19 @@ IsObjectValueInCompartment(const Value& v, JSCompartment* comp); #endif // Operations which change an object's dense elements can either succeed, fail, -// or be unable to complete. For native objects, the latter is used when the -// object's elements must become sparse instead. The enum below is used for -// such operations, and for similar operations on unboxed arrays and methods -// that work on both kinds of objects. +// or be unable to complete. The latter is used when the object's elements must +// become sparse instead. The enum below is used for such operations. enum class DenseElementResult { Failure, Success, Incomplete }; +enum class ShouldUpdateTypes { + Update, + DontUpdate +}; + /* * NativeObject specifies the internal implementation of a native object. * @@ -467,11 +470,6 @@ class NativeObject : public ShapedObject // that are (temporarily) inconsistent. void setLastPropertyMakeNonNative(Shape* shape); - // As for setLastProperty(), but changes the class associated with the - // object to a native one. The object's type has already been changed, and - // this brings the shape into sync with it. - void setLastPropertyMakeNative(ExclusiveContext* cx, Shape* shape); - // Newly-created TypedArrays that map a SharedArrayBuffer are // marked as shared by giving them an ObjectElements that has the // ObjectElements::SHARED_MEMORY flag set. @@ -1147,6 +1145,10 @@ class NativeObject : public ShapedObject elementsRangeWriteBarrierPost(dstStart, count); } + inline DenseElementResult + setOrExtendDenseElements(JSContext* cx, uint32_t start, const Value* vp, uint32_t count, + ShouldUpdateTypes updateTypes = ShouldUpdateTypes::Update); + bool shouldConvertDoubleElements() { return getElementsHeader()->shouldConvertDoubleElements(); } |