While most script engines support function declarations within blocks, from browser to browser, the implementations are inconsistent with each other. == Noncompliant Code Example [source,javascript] ---- if (x) { function foo() {} //foo is hoisted in Chrome, Firefox and Safari, but not in Edge. } ---- == Compliant Solution [source,javascript] ---- if (x) { const foo = function() {} } ---- ifdef::env-github,rspecator-view[] ''' == Implementation Specification (visible only on this page) include::message.adoc[] endif::env-github,rspecator-view[]