title: Uncaught SyntaxError: Unexpected token return - still no answer?
body: <p>So there are dozens of questions with this title, however, all answers I could find seem to mention some hacks working in some specific cases but not being helpful in others. Many are concerned with jQuery or Ajax, yet the problem is pure JavaScript arising at very basic level:</p>
  
  <pre><code>function f() {
    false || (return true);
  }
  </code></pre>
  
  <p>This function declaration (without execution) throws </p>
  
  <p><code>Uncaught SyntaxError: Unexpected token return</code></p>
  
  <p>in Chrome and </p>
  
  <p><code>SyntaxError: Return statements are only valid inside functions</code></p>
  
  <p>in Safari. However this function doesn't:</p>
  
  <pre><code>function f() {
    false || (a=true);
    return true;
  }
  </code></pre>
  
  <p>Anybody can explain this strange behaviour?</p>