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 e4ef01a0007119..711b7593062d72 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 a026749a31db52..90ec4097d7a2b8 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 ceaf7798fd32c2..ee167ec37e67bb 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 711b7593062d72..87a84afa4494c6 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 ee167ec37e67bb..021a2f2c100263 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 247094c408b3cc..3cfcb37c907f61 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 4a0667a97f9d00..790d0dbb5c29b5 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',