Metadata on function literal inside of a let produces invalid Javascript

Description

Here is a minimal test case that produces the invalid Javascript:

1 2 3 4 (defn f [] (let [a 0] ^{"meta" "data"} (fn [] true)))

The compiled Javascript includes the invalid token sequence "return return". (Per Chrome: Uncaught SyntaxError: Unexpected token return)

The problem does not occur if the metadata applies to a map literal instead of a function literal.
The problem only occurs when the function and metadata are inside of a let.

Environment

Originally found with [org.clojure/clojurescript "0.0-2496"]
Still reproducible with the latest cljsc (b5e9a5116259fc9f201bee4b9c6564f35306f9a5)

Status

Assignee

David Nolen

Reporter

import

Labels

None

Approval

None

Patch

None

Fix versions

Affects versions

1.7.145

Priority

Major
Configure