title: return statement in finally block
body: <p>In <a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Statements?redirectlocale=en-US&amp;redirectslug=JavaScript/Guide/Statements#Exception_Handling_Statements" rel="nofollow">MDN</a> its stated,</p>
  
  <blockquote>
    <p>If the finally block returns a value, <strong>this value becomes the return value of the entire try-catch-finally production</strong>, regardless of any return statements in the try and catch blocks:</p>
  </blockquote>
  
  <p>So I try to execute the following code,</p>
  
  <pre><code>function an(){
      var r = try{
          throw 1;
      } catch(e){
          console.log("Caught: %o", e);
      } finally {
          return 2;
      }
      console.log("r=%o", r);
      return 3;
  }
  </code></pre>
  
  <p>It does not work. Throws a syntax error.</p>
  
  <pre><code>SyntaxError: syntax error
  
      var r = try{
  </code></pre>
  
  <p>Whats wrong here?</p>