deps: V8: cherry-pick 392316d · nodejs/node@09f134f (original) (raw)
`@@ -10322,7 +10322,7 @@ AccessorSignature* AccessorSignature::Cast(Data* data) {
`
10322
10322
`}
`
10323
10323
``
10324
10324
`Local Object::GetInternalField(int index) {
`
10325
``
`-
#if !defined(V8_ENABLE_CHECKS) && !defined(V8_COMPRESS_POINTERS)
`
``
10325
`+
#ifndef V8_ENABLE_CHECKS
`
10326
10326
`typedef internal::Address A;
`
10327
10327
`typedef internal::Internals I;
`
10328
10328
` A obj = *reinterpret_cast<A*>(this);
`
`@@ -10333,7 +10333,12 @@ Local Object::GetInternalField(int index) {
`
10333
10333
` instance_type == I::kJSApiObjectType ||
`
10334
10334
` instance_type == I::kJSSpecialApiObjectType) {
`
10335
10335
`int offset = I::kJSObjectHeaderSize + (I::kEmbedderDataSlotSize * index);
`
10336
``
`-
A value = I::ReadTaggedAnyField(obj, offset);
`
``
10336
`+
A value = I::ReadRawField(obj, offset);
`
``
10337
`+
#ifdef V8_COMPRESS_POINTERS
`
``
10338
`+
// We read the full pointer value and then decompress it in order to avoid
`
``
10339
`+
// dealing with potential endiannes issues.
`
``
10340
`+
value = I::DecompressTaggedAnyField(obj, static_cast(value));
`
``
10341
`+
#endif
`
10337
10342
` internal::Isolate* isolate =
`
10338
10343
`internal::IsolateFromNeverReadOnlySpaceObject(obj);
`
10339
10344
` A* result = HandleScope::CreateHandle(isolate, value);
`
`@@ -10345,7 +10350,7 @@ Local Object::GetInternalField(int index) {
`
10345
10350
``
10346
10351
``
10347
10352
`void* Object::GetAlignedPointerFromInternalField(int index) {
`
10348
``
`-
#if !defined(V8_ENABLE_CHECKS) && !defined(V8_COMPRESS_POINTERS)
`
``
10353
`+
#ifndef V8_ENABLE_CHECKS
`
10349
10354
`typedef internal::Address A;
`
10350
10355
`typedef internal::Internals I;
`
10351
10356
` A obj = *reinterpret_cast<A*>(this);
`
`@@ -10956,13 +10961,24 @@ int64_t Isolate::AdjustAmountOfExternalAllocatedMemory(
`
10956
10961
`}
`
10957
10962
``
10958
10963
`Local Context::GetEmbedderData(int index) {
`
10959
``
`-
#if !defined(V8_ENABLE_CHECKS) && !defined(V8_COMPRESS_POINTERS)
`
``
10964
`+
#ifndef V8_ENABLE_CHECKS
`
10960
10965
`typedef internal::Address A;
`
10961
10966
`typedef internal::Internals I;
`
``
10967
`+
A ctx = *reinterpret_cast<const A*>(this);
`
``
10968
`+
A embedder_data =
`
``
10969
`+
I::ReadTaggedPointerField(ctx, I::kNativeContextEmbedderDataOffset);
`
``
10970
`+
int value_offset =
`
``
10971
`+
I::kEmbedderDataArrayHeaderSize + (I::kEmbedderDataSlotSize * index);
`
``
10972
`+
A value = I::ReadRawField(embedder_data, value_offset);
`
``
10973
`+
#ifdef V8_COMPRESS_POINTERS
`
``
10974
`+
// We read the full pointer value and then decompress it in order to avoid
`
``
10975
`+
// dealing with potential endiannes issues.
`
``
10976
`+
value =
`
``
10977
`+
I::DecompressTaggedAnyField(embedder_data, static_cast(value));
`
``
10978
`+
#endif
`
10962
10979
` internal::Isolate* isolate = internal::IsolateFromNeverReadOnlySpaceObject(
`
10963
10980
` *reinterpret_cast<A*>(this));
`
10964
``
`-
A* result =
`
10965
``
`-
HandleScope::CreateHandle(isolate, I::ReadEmbedderData(this, index));
`
``
10981
`+
A* result = HandleScope::CreateHandle(isolate, value);
`
10966
10982
`return Local(reinterpret_cast<Value*>(result));
`
10967
10983
`#else
`
10968
10984
`return SlowGetEmbedderData(index);
`
`@@ -10971,9 +10987,15 @@ Local Context::GetEmbedderData(int index) {
`
10971
10987
``
10972
10988
``
10973
10989
`void* Context::GetAlignedPointerFromEmbedderData(int index) {
`
10974
``
`-
#if !defined(V8_ENABLE_CHECKS) && !defined(V8_COMPRESS_POINTERS)
`
``
10990
`+
#ifndef V8_ENABLE_CHECKS
`
``
10991
`+
typedef internal::Address A;
`
10975
10992
`typedef internal::Internals I;
`
10976
``
`-
return I::ReadEmbedderData<void*>(this, index);
`
``
10993
`+
A ctx = *reinterpret_cast<const A*>(this);
`
``
10994
`+
A embedder_data =
`
``
10995
`+
I::ReadTaggedPointerField(ctx, I::kNativeContextEmbedderDataOffset);
`
``
10996
`+
int value_offset =
`
``
10997
`+
I::kEmbedderDataArrayHeaderSize + (I::kEmbedderDataSlotSize * index);
`
``
10998
`+
return I::ReadRawField<void*>(embedder_data, value_offset);
`
10977
10999
`#else
`
10978
11000
`return SlowGetAlignedPointerFromEmbedderData(index);
`
10979
11001
`#endif
`