Bug 227281

Summary: function within a block statement has broken scope for const/let
Product: WebKit Reporter: Samuel <samuel.elg>
Component: JavaScriptCoreAssignee: Nobody <webkit-unassigned>
Status: RESOLVED DUPLICATE    
Severity: Normal CC: fpizlo, saam, ysuzuki
Priority: P2    
Version: Safari 14   
Hardware: Mac (Intel)   
OS: macOS 11   

Samuel
Reported 2021-06-23 01:09:47 PDT
When a function within a block scope tries to access a variable declared with `const`/`let` on the wrapping scope a RefferenceError is thrown. Reproducible example: ``` { const a = true; // also happens with "let" declarations. function main() { console.log(a); } main(); } ``` Accessing `a` on the 4th line throws an error: "ReferenceError: Can't find variable: a". The expected behavior would be for the "a" variable to be in the scope of the function "main".
Attachments
Yusuke Suzuki
Comment 1 2021-06-24 18:23:21 PDT
This is dupe of bug 163209. *** 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.