chore: cherry-pick 3e037e195e50 from v8 (#42255)
* chore: cherry-pick 3e037e195e50 from v8 * chore: update patches --------- Co-authored-by: PatchUp <73610968+patchup[bot]@users.noreply.github.com>
This commit is contained in:
parent
2c0adc29e9
commit
812cd564f2
2 changed files with 42 additions and 0 deletions
|
@ -1,2 +1,3 @@
|
||||||
chore_allow_customizing_microtask_policy_per_context.patch
|
chore_allow_customizing_microtask_policy_per_context.patch
|
||||||
deps_add_v8_object_setinternalfieldfornodecore.patch
|
deps_add_v8_object_setinternalfieldfornodecore.patch
|
||||||
|
cherry-pick-3e037e195e50.patch
|
||||||
|
|
41
patches/v8/cherry-pick-3e037e195e50.patch
Normal file
41
patches/v8/cherry-pick-3e037e195e50.patch
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Shu-yu Guo <syg@chromium.org>
|
||||||
|
Date: Tue, 21 May 2024 10:06:20 -0700
|
||||||
|
Subject: Using FunctionParsingScope for parsing class static blocks
|
||||||
|
|
||||||
|
Class static blocks contain statements, don't inherit the
|
||||||
|
ExpressionScope stack.
|
||||||
|
|
||||||
|
Bug: 341663589
|
||||||
|
Change-Id: Id52a60d77781201a706fcf2290d7d103f39bed83
|
||||||
|
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/5553030
|
||||||
|
Commit-Queue: Shu-yu Guo <syg@chromium.org>
|
||||||
|
Commit-Queue: Adam Klein <adamk@chromium.org>
|
||||||
|
Reviewed-by: Adam Klein <adamk@chromium.org>
|
||||||
|
Cr-Commit-Position: refs/heads/main@{#94014}
|
||||||
|
|
||||||
|
diff --git a/src/ast/scopes.cc b/src/ast/scopes.cc
|
||||||
|
index 39e3a8d5d59acbe9405f351fa6c57121c1900657..2aa1bb6c0f8f6e098a3ddf3f54ec2d0d5af9dc24 100644
|
||||||
|
--- a/src/ast/scopes.cc
|
||||||
|
+++ b/src/ast/scopes.cc
|
||||||
|
@@ -2445,7 +2445,7 @@ bool Scope::MustAllocate(Variable* var) {
|
||||||
|
var->set_is_used();
|
||||||
|
if (inner_scope_calls_eval_ && !var->is_this()) var->SetMaybeAssigned();
|
||||||
|
}
|
||||||
|
- DCHECK(!var->has_forced_context_allocation() || var->is_used());
|
||||||
|
+ CHECK(!var->has_forced_context_allocation() || var->is_used());
|
||||||
|
// Global variables do not need to be allocated.
|
||||||
|
return !var->IsGlobalObjectProperty() && var->is_used();
|
||||||
|
}
|
||||||
|
diff --git a/src/parsing/parser-base.h b/src/parsing/parser-base.h
|
||||||
|
index 009befd607bbe9135d604550018e36d681340718..6001ea622dfe0d1e4ccd4b42351b7368fd0892ce 100644
|
||||||
|
--- a/src/parsing/parser-base.h
|
||||||
|
+++ b/src/parsing/parser-base.h
|
||||||
|
@@ -2661,6 +2661,7 @@ typename ParserBase<Impl>::BlockT ParserBase<Impl>::ParseClassStaticBlock(
|
||||||
|
}
|
||||||
|
|
||||||
|
FunctionState initializer_state(&function_state_, &scope_, initializer_scope);
|
||||||
|
+ FunctionParsingScope body_parsing_scope(impl());
|
||||||
|
AcceptINScope accept_in(this, true);
|
||||||
|
|
||||||
|
// Each static block has its own var and lexical scope, so make a new var
|
Loading…
Reference in a new issue