RESOLVED DUPLICATE of bug 163209 231166
"Can't find variable" that's let-declared within `with` statement when executing function that's declared within same `with` statement
https://bugs.webkit.org/show_bug.cgi?id=231166
Summary "Can't find variable" that's let-declared within `with` statement when execut...
yanahij531
Reported 2021-10-04 04:28:34 PDT
In Firefox and Chrome the following code works fine, but Safari throws an error saying that the variable `a` cannot be found. ``` with({}) { let a = 1; function foo() { console.log(a); } foo(); } ``` https://jsbin.com/hiwihiyaxi/edit?html,console
Attachments
Kevin Neal
Comment 1 2021-10-05 10:13:51 PDT
Thanks for filing. I was able to reproduce the bug in Safari. The appropriate engineers have been notified.
Radar WebKit Bug Importer
Comment 2 2021-10-05 10:14:10 PDT
Alexey Shvayka
Comment 3 2023-09-24 13:59:23 PDT
Thank you for reporting! This bug arises because block-level function declarations in global code, which are subject to currently unimplemented legacy Annex B hoisting, always receive top-level scope instead of lexical one. https://bugs.webkit.org/show_bug.cgi?id=163209 implements Annex B function hoisting for global code, fixing this issue. *** This bug has been marked as a duplicate of bug 163209 ***
Note You need to log in before you can comment on or make changes to this bug.