Open the following test page: > https://jg-testpage.netlify.app/safari/const-inside-if.html Its contents for reference: ``` <script> if (true) { const MY_CONST = 'MY_CONST'; function myFunction() { console.log(MY_CONST); } myFunction(); } </script> ``` Expected: > see "MY_CONST" logged Actual: > ReferenceError Other browsers' behavior: > "MY_CONST" is logged in latest Chrome, Firefox, EdgeLegacy 18
I repro the issue on all stable versions of Safari from 14.0 down to 10.1 (didn't test more)
Just a small update: it seems to work fine in Safari in strict mode, but not in sloppy mode. https://jg-testpage.netlify.app/safari/const-inside-if.html https://jg-testpage.netlify.app/safari/const-inside-if-strict.html Chrome 50+: OK both strict/sloppy mode Firefox 50+: OK both strict/sloppy mode Safari: OK strict mode, KO in sloppy mode
<rdar://problem/71849401>
Thanks for the report -- Annex B.3.3 non-conformance has been deprioritized for a long time, but I think there is intention to correct this in the near future. *** This bug has been marked as a duplicate of bug 163209 ***