From efd18b09ca0e979317dbf2d58a91263ddc4bec89 Mon Sep 17 00:00:00 2001 From: Pedro Pontes Date: Mon, 6 Sep 2021 07:48:26 +0200 Subject: [PATCH] chore: cherry-pick fbfd2557c2ab from v8 (#30821) * chore: cherry-pick fbfd2557c2ab from v8 * chore: update patches Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com> --- patches/v8/.patches | 1 + patches/v8/cherry-pick-fbfd2557c2ab.patch | 33 +++++++++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 patches/v8/cherry-pick-fbfd2557c2ab.patch diff --git a/patches/v8/.patches b/patches/v8/.patches index df697f5781540..d24e0325b78e1 100644 --- a/patches/v8/.patches +++ b/patches/v8/.patches @@ -11,3 +11,4 @@ cherry-pick-1234770.patch cherry-pick-1231950.patch cherry-pick-1228036.patch cherry-pick-1234764.patch +cherry-pick-fbfd2557c2ab.patch diff --git a/patches/v8/cherry-pick-fbfd2557c2ab.patch b/patches/v8/cherry-pick-fbfd2557c2ab.patch new file mode 100644 index 0000000000000..29ae9080ad94b --- /dev/null +++ b/patches/v8/cherry-pick-fbfd2557c2ab.patch @@ -0,0 +1,33 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Mythri A +Date: Fri, 21 May 2021 11:12:41 +0100 +Subject: Return early when initializing feedback cell for AsmWasm functions + +AsmWasmFunctions don't allocate / use feedback vectors. + +Bug: chromium:1206289 +Change-Id: I970d5eaba6603809a844c2fc5753efba411cd719 +Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2909854 +Commit-Queue: Mythri Alle +Reviewed-by: Ross McIlroy +Cr-Commit-Position: refs/heads/master@{#74708} + +diff --git a/src/objects/js-function.cc b/src/objects/js-function.cc +index 35010be838ea1a5a3bebbb8a86d3358092da5199..b17550a29668d3dab082a515c7287b219becd01d 100644 +--- a/src/objects/js-function.cc ++++ b/src/objects/js-function.cc +@@ -361,6 +361,14 @@ void JSFunction::InitializeFeedbackCell( + Handle function, IsCompiledScope* is_compiled_scope, + bool reset_budget_for_feedback_allocation) { + Isolate* const isolate = function->GetIsolate(); ++#if V8_ENABLE_WEBASSEMBLY ++ // The following checks ensure that the feedback vectors are compatible with ++ // the feedback metadata. For Asm / Wasm functions we never allocate / use ++ // feedback vectors, so a mismatch between the metadata and feedback vector is ++ // harmless. The checks could fail for functions that has has_asm_wasm_broken ++ // set at runtime (for ex: failed instantiation). ++ if (function->shared().HasAsmWasmData()) return; ++#endif // V8_ENABLE_WEBASSEMBLY + + if (function->has_feedback_vector()) { + CHECK_EQ(function->feedback_vector().length(),