From 2badc612fee2f4344e608b8ab2ee1639fa314beb Mon Sep 17 00:00:00 2001 From: Matheus Marchini Date: Mon, 9 Dec 2019 11:26:07 -0800 Subject: [PATCH 1/4] deps: V8: cherry-pick cc5016e1b702 Original commit message: [postmortem] add metadata for the new DescriptorArray layout R=yangguo@chromium.org Ref: https://github.com/nodejs/llnode/issues/255 Change-Id: Icda271123375db5c381fe1d1bba13dcc26f26d7c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1832311 Reviewed-by: Yang Guo Commit-Queue: Yang Guo Cr-Commit-Position: refs/heads/master@{#64169} Refs: https://github.com/v8/v8/commit/cc5016e1b702c9dc27d3730ce1717b4d69e433f9 --- common.gypi | 2 +- deps/v8/BUILD.gn | 2 ++ deps/v8/tools/gen-postmortem-metadata.py | 4 +++- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/common.gypi b/common.gypi index e4ef01a00071..711b7593062d 100644 --- a/common.gypi +++ b/common.gypi @@ -38,7 +38,7 @@ # Reset this number to 0 on major V8 upgrades. # Increment by one for each non-official patch applied to deps/v8. - 'v8_embedder_string': '-node.21', + 'v8_embedder_string': '-node.22', ##### V8 defaults for Node.js ##### diff --git a/deps/v8/BUILD.gn b/deps/v8/BUILD.gn index a026749a31db..90ec4097d7a2 100644 --- a/deps/v8/BUILD.gn +++ b/deps/v8/BUILD.gn @@ -895,6 +895,8 @@ action("postmortem-metadata") { "src/objects/code.h", "src/objects/data-handler.h", "src/objects/data-handler-inl.h", + "src/objects/descriptor-array.h", + "src/objects/descriptor-array-inl.h", "src/objects/feedback-cell.h", "src/objects/feedback-cell-inl.h", "src/objects/fixed-array-inl.h", diff --git a/deps/v8/tools/gen-postmortem-metadata.py b/deps/v8/tools/gen-postmortem-metadata.py index ceaf7798fd32..ee167ec37e67 100644 --- a/deps/v8/tools/gen-postmortem-metadata.py +++ b/deps/v8/tools/gen-postmortem-metadata.py @@ -286,6 +286,7 @@ 'Code, instruction_start, uintptr_t, kHeaderSize', 'Code, instruction_size, int, kInstructionSizeOffset', 'String, length, int32_t, kLengthOffset', + 'DescriptorArray, header_size, uintptr_t, kHeaderSize', ]; # @@ -296,7 +297,8 @@ expected_classes = [ 'ConsString', 'FixedArray', 'HeapNumber', 'JSArray', 'JSFunction', 'JSObject', 'JSRegExp', 'JSPrimitiveWrapper', 'Map', 'Oddball', 'Script', - 'SeqOneByteString', 'SharedFunctionInfo', 'ScopeInfo', 'JSPromise' + 'SeqOneByteString', 'SharedFunctionInfo', 'ScopeInfo', 'JSPromise', + 'DescriptorArray' ]; From d86bcd70e6b1ec68477176f8c7924b0fdd73e121 Mon Sep 17 00:00:00 2001 From: Matheus Marchini Date: Mon, 9 Dec 2019 11:27:35 -0800 Subject: [PATCH 2/4] deps: V8: cherry-pick b38dfaf3a633 Original commit message: [postmortem] update Symbol and *String metadata Symbol and *String classes are now declared on Torque with generateCppClass, which means they don't use macro accessors anymore. As such, the gen-postmortem-metadata script is not able to automatically detect fields for those classes. Define metadata for those fields manually for now. In the future we might want to generate it from Torque for consistency. Also renamed a few *String fields metadata to match the expected format (className__fieldName__fieldType). For more context: https://github.com/nodejs/llnode/issues/287#issuecomment-539707117. R=bmeurer@chromium.org, hpayer@chromium.org, verwaest@chromium.org, yangguo@chromium.org Change-Id: I82fe8315cdbfd1b8c64c6a8d5dc011b1edaec39e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1847783 Reviewed-by: Toon Verwaest Commit-Queue: Toon Verwaest Cr-Commit-Position: refs/heads/master@{#64313} Refs: https://github.com/v8/v8/commit/b38dfaf3a6338bf5e42703d0a93d21c2622765ce --- common.gypi | 2 +- deps/v8/tools/gen-postmortem-metadata.py | 14 +++++--------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/common.gypi b/common.gypi index 711b7593062d..87a84afa4494 100644 --- a/common.gypi +++ b/common.gypi @@ -38,7 +38,7 @@ # Reset this number to 0 on major V8 upgrades. # Increment by one for each non-official patch applied to deps/v8. - 'v8_embedder_string': '-node.22', + 'v8_embedder_string': '-node.23', ##### V8 defaults for Node.js ##### diff --git a/deps/v8/tools/gen-postmortem-metadata.py b/deps/v8/tools/gen-postmortem-metadata.py index ee167ec37e67..021a2f2c1002 100644 --- a/deps/v8/tools/gen-postmortem-metadata.py +++ b/deps/v8/tools/gen-postmortem-metadata.py @@ -230,15 +230,6 @@ { 'name': 'class_SharedFunctionInfo__function_data__Object', 'value': 'SharedFunctionInfo::kFunctionDataOffset' }, - - { 'name': 'class_ConsString__first_offset__int', - 'value': 'ConsString::kFirstOffset' }, - { 'name': 'class_ConsString__second_offset__int', - 'value': 'ConsString::kSecondOffset' }, - { 'name': 'class_SlicedString__offset_offset__int', - 'value': 'SlicedString::kOffsetOffset' }, - { 'name': 'class_ThinString__actual_offset__int', - 'value': 'ThinString::kActualOffset' }, ]; # @@ -287,6 +278,11 @@ 'Code, instruction_size, int, kInstructionSizeOffset', 'String, length, int32_t, kLengthOffset', 'DescriptorArray, header_size, uintptr_t, kHeaderSize', + 'ConsString, first, String, kFirstOffset', + 'ConsString, second, String, kSecondOffset', + 'SlicedString, offset, SMI, kOffsetOffset', + 'ThinString, actual, String, kActualOffset', + 'Symbol, name, Object, kNameOffset', ]; # From 0a42e034fd2a96e773c13dfa704d51dc79c8ca62 Mon Sep 17 00:00:00 2001 From: Matheus Marchini Date: Fri, 27 Dec 2019 10:54:59 -0800 Subject: [PATCH 3/4] Revert "src: update v8abbr.h for V8 7.7" This reverts commit 59b464026fd66749ae424147f13ed5997a62d274. --- src/v8abbr.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/v8abbr.h b/src/v8abbr.h index 247094c408b3..3cfcb37c907f 100644 --- a/src/v8abbr.h +++ b/src/v8abbr.h @@ -104,9 +104,9 @@ #define V8_OFF_STR_CHARS \ V8_OFF_HEAP(V8DBG_CLASS_SEQONEBYTESTRING__CHARS__CHAR) #define V8_OFF_CONSSTR_CAR \ - V8_OFF_HEAP(V8DBG_CLASS_CONSSTRING__FIRST_OFFSET__INT) + V8_OFF_HEAP(V8DBG_CLASS_CONSSTRING__FIRST__STRING) #define V8_OFF_CONSSTR_CDR \ - V8_OFF_HEAP(V8DBG_CLASS_CONSSTRING__SECOND_OFFSET__INT) + V8_OFF_HEAP(V8DBG_CLASS_CONSSTRING__SECOND__STRING) #define V8_OFF_EXTSTR_RSRC \ V8_OFF_HEAP(V8DBG_CLASS_EXTERNALSTRING__RESOURCE__OBJECT) #define V8_OFF_FA_SIZE \ From 15a2ca7b4814df27b49ab9ded8080f8710d7a81c Mon Sep 17 00:00:00 2001 From: Matheus Marchini Date: Fri, 27 Dec 2019 10:55:05 -0800 Subject: [PATCH 4/4] Revert "test: update postmortem metadata test for V8 7.7" This reverts commit f056d55346fadd00c09be24d2ea9adcfb5b08f5c. --- test/v8-updates/test-postmortem-metadata.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/v8-updates/test-postmortem-metadata.js b/test/v8-updates/test-postmortem-metadata.js index 4a0667a97f9d..790d0dbb5c29 100644 --- a/test/v8-updates/test-postmortem-metadata.js +++ b/test/v8-updates/test-postmortem-metadata.js @@ -62,8 +62,8 @@ function getExpectedSymbols() { 'v8dbg_bit_field3_number_of_own_descriptors_shift', 'v8dbg_class_Code__instruction_size__int', 'v8dbg_class_Code__instruction_start__uintptr_t', - 'v8dbg_class_ConsString__first_offset__int', - 'v8dbg_class_ConsString__second_offset__int', + 'v8dbg_class_ConsString__first__String', + 'v8dbg_class_ConsString__second__String', 'v8dbg_class_FixedArray__data__uintptr_t', 'v8dbg_class_FixedArrayBase__length__SMI', 'v8dbg_class_JSTypedArray__base_pointer__Object', @@ -104,10 +104,10 @@ function getExpectedSymbols() { 'v8dbg_class_SharedFunctionInfo__name_or_scope_info__Object', 'v8dbg_class_SharedFunctionInfo__script_or_debug_info__Object', 'v8dbg_class_UncompiledData__start_position__int32_t', - 'v8dbg_class_SlicedString__offset_offset__int', + 'v8dbg_class_SlicedString__offset__SMI', 'v8dbg_class_SlicedString__parent__String', 'v8dbg_class_String__length__int32_t', - 'v8dbg_class_ThinString__actual_offset__int', + 'v8dbg_class_ThinString__actual__String', 'v8dbg_context_idx_scope_info', 'v8dbg_context_idx_prev', 'v8dbg_context_min_slots',