4c3014944c
* chore: bump chromium in DEPS to 129.0.6657.0
* chore: update patches
* chore: bump chromium in DEPS to 129.0.6658.0
* chore: update patches
* 5743786: [ServiceWorker] Populate service worker start token to WorkerId.
https://chromium-review.googlesource.com/c/chromium/src/+/5743786
* 5784424: [Extensions] Move ownership of Dispatcher to ExtensionsRendererClient
https://chromium-review.googlesource.com/c/chromium/src/+/5784424
* chore: bump chromium in DEPS to 129.0.6659.0
* chore: bump chromium in DEPS to 129.0.6660.0
* chore: update patches
* chore: bump chromium in DEPS to 129.0.6662.0
* chore: bump chromium in DEPS to 129.0.6664.0
* 5789627: [Partitioned Popins] (3) `popin` feature triggers third-party storage partitioning
https://chromium-review.googlesource.com/c/chromium/src/+/5789627
* 5791367: Remove some chrome:: namespace from chrome/browser/app_mode/*
https://chromium-review.googlesource.com/c/chromium/src/+/5791367
* 5791522: [SCK] Skip redundant getShareableContentWithCompletionHandler
https://chromium-review.googlesource.com/c/chromium/src/+/5791522
* 5761330: Send refresh rate prefs b/w RefreshRateController and DisplayPrivate
https://chromium-review.googlesource.com/c/chromium/src/+/5761330
* chore: fixup patch indices
* 5793591: Remove unused GetHeader overload
https://chromium-review.googlesource.com/c/chromium/src/+/5793591
* 5787624: [Extensions] Simplify ExtensionsRendererClient::RenderThreadStarted()
https://chromium-review.googlesource.com/c/chromium/src/+/5787624
* 5721709: Fix Incorrect last_accessed_time Tracking for Tabs
https://chromium-review.googlesource.com/c/chromium/src/+/5721709
* 5789215: [Extensions] Add a //chrome/common/extensions build target
https://chromium-review.googlesource.com/c/chromium/src/+/5789215
* Roll V8 from 48f669a0758c to eee3eb91d01c
48f669a075..eee3eb91d0
---------
Co-authored-by: electron-roller[bot] <84116207+electron-roller[bot]@users.noreply.github.com>
Co-authored-by: John Kleinschmidt <jkleinsc@electronjs.org>
Co-authored-by: Shelley Vohr <shelley.vohr@gmail.com>
61 lines
3 KiB
Diff
61 lines
3 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Calvin Watford <cwatford@slack-corp.com>
|
|
Date: Wed, 17 Jul 2024 12:52:10 -0600
|
|
Subject: fix: disable scope reuse & associated dchecks
|
|
|
|
This change was introduced in https://crrev.com/c/5630974 which reuses
|
|
scope info objects across allocations. Unfortunately, this change seems
|
|
to be not yet fully cooked and causes crashes with normal usage of V8.
|
|
|
|
In particular, Node.js call's V8's `v8::ScriptCompiler::CompileFunction`
|
|
method. This ends up wrapping the source code in a function, which this
|
|
code is not yet prepared to handle. The generated function wrapper
|
|
(created by V8) has no source position, so it reports being at the start
|
|
of the source, which may overlap with other scopes that are in the
|
|
original source. This new feature adds a "UniqueIdInScript" concept that
|
|
is derived from the source position of a scope, along with the invariant
|
|
that inner scopes have a higher ID than outer scopes, which does not
|
|
hold for the above situation.
|
|
|
|
This patch is not intended to remain indefinitely. Once the upstream
|
|
feature stabilizes, we can remove this patch. Unfortunately, there is no
|
|
public tracking bug for this feature nor the crashes its been causing,
|
|
so we'll have to keep an eye on this for the time being.
|
|
|
|
diff --git a/src/ast/scopes.cc b/src/ast/scopes.cc
|
|
index 57a9dca1a84dee95d36c2b296fc170399db3e213..5db78a650068faa0bacf05b13d86860c9616e20e 100644
|
|
--- a/src/ast/scopes.cc
|
|
+++ b/src/ast/scopes.cc
|
|
@@ -2731,10 +2731,10 @@ void Scope::AllocateScopeInfosRecursively(
|
|
for (Scope* scope = inner_scope_; scope != nullptr; scope = scope->sibling_) {
|
|
#ifdef DEBUG
|
|
if (!scope->is_hidden_catch_scope()) {
|
|
- DCHECK_GT(scope->UniqueIdInScript(), UniqueIdInScript());
|
|
- DCHECK_IMPLIES(
|
|
- scope->sibling_ && !scope->sibling_->is_hidden_catch_scope(),
|
|
- scope->sibling_->UniqueIdInScript() != scope->UniqueIdInScript());
|
|
+ // DCHECK_GT(scope->UniqueIdInScript(), UniqueIdInScript());
|
|
+ // DCHECK_IMPLIES(
|
|
+ // scope->sibling_ && !scope->sibling_->is_hidden_catch_scope(),
|
|
+ // scope->sibling_->UniqueIdInScript() != scope->UniqueIdInScript());
|
|
}
|
|
#endif
|
|
if (!scope->is_function_scope() ||
|
|
diff --git a/src/flags/flag-definitions.h b/src/flags/flag-definitions.h
|
|
index 2c9c12e6cf4a9ebfdc5cb08ef7a53b0ca77222bb..98ce94ec8d3af5afdc3a1308e65f7122e46983f2 100644
|
|
--- a/src/flags/flag-definitions.h
|
|
+++ b/src/flags/flag-definitions.h
|
|
@@ -984,7 +984,12 @@ DEFINE_BOOL(trace_track_allocation_sites, false,
|
|
DEFINE_BOOL(trace_migration, false, "trace object migration")
|
|
DEFINE_BOOL(trace_generalization, false, "trace map generalization")
|
|
|
|
-DEFINE_BOOL(reuse_scope_infos, true, "reuse scope infos from previous compiles")
|
|
+// ELECTRON: The following flag should remain false by default until we can
|
|
+// remove `fix_disable_scope_reuse_associated_dchecks.patch`
|
|
+DEFINE_BOOL(reuse_scope_infos, false,
|
|
+ "reuse scope infos from previous compiles")
|
|
+
|
|
+DEFINE_IMPLICATION(fuzzing, reuse_scope_infos)
|
|
|
|
// Flags for Sparkplug
|
|
#undef FLAG
|