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

`