tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit 5359b2e95b1d57f542aa9ee98ec76182fea4243f
parent 6985ed7b2bc849460ff5d99ff3e6633aaf7f9eae
Author: Debadree Chatterjee <debadree333@gmail.com>
Date:   Fri, 14 Nov 2025 18:29:44 +0000

Bug 2000160: Disallow using statements on eval toplevel. r=arai

Differential Revision: https://phabricator.services.mozilla.com/D272609

Diffstat:
Mjs/src/frontend/ParseContext.h | 9++++++---
Mjs/src/tests/jstests.list | 1-
2 files changed, 6 insertions(+), 4 deletions(-)

diff --git a/js/src/frontend/ParseContext.h b/js/src/frontend/ParseContext.h @@ -599,9 +599,12 @@ class MOZ_STACK_CLASS ParseContext : public Nestable<ParseContext> { #ifdef ENABLE_EXPLICIT_RESOURCE_MANAGEMENT bool isUsingSyntaxAllowed() { - bool isInSwitch = innermostStatement() && - innermostStatement()->kind() == StatementKind::Switch; - return (!atGlobalLevel() || atModuleTopLevel()) && !isInSwitch; + if (innermostStatement() && + innermostStatement()->kind() == StatementKind::Switch) { + return false; + } + + return innermostStatement_ || sc_->isFunction() || sc_->isModule(); } #endif diff --git a/js/src/tests/jstests.list b/js/src/tests/jstests.list @@ -707,7 +707,6 @@ skip script test262/language/statements/await-using/syntax/await-using-invalid-a skip script test262/language/statements/using/syntax/using-invalid-assignment-statement-body-for-of.js skip script test262/language/statements/using/syntax/with-initializer-default-statement-list.js skip script test262/language/statements/using/syntax/using-invalid-assignment-next-expression-for.js -skip script test262/language/statements/using/syntax/using-not-allowed-at-top-level-of-eval.js skip script test262/language/statements/using/syntax/using-for-using-of-of.js