ClojureScript

support ^:expose annotation

Details

  • Type: Enhancement Enhancement
  • Status: Closed Closed
  • Priority: Minor Minor
  • Resolution: Declined
  • Affects Version/s: None
  • Fix Version/s: None
  • Component/s: None
  • Labels:
    None

Description

(def ^:export m 1)
(defn foo [g]
  (g m))

Because of constant propagation GClosure may replace m in foo with 1. It may be better to for :export to implicitly :expose but we need to check the output.

http://developers.google.com/closure/compiler/docs/js-for-compiler

Activity

Hide
Olle Martensson added a comment -

def annotated with ^:export is now implicitly treated as an exposed property by the closure compiler.

The goog.exportSymbol part for def seemed to be redundant and thus removed.

Show
Olle Martensson added a comment - def annotated with ^:export is now implicitly treated as an exposed property by the closure compiler. The goog.exportSymbol part for def seemed to be redundant and thus removed.
Olle Martensson made changes -
Field Original Value New Value
Attachment CLJS-410.patch [ 12068 ]
David Nolen made changes -
Priority Major [ 3 ] Minor [ 4 ]
Hide
David Nolen added a comment -

There are workaround for this.

Show
David Nolen added a comment - There are workaround for this.
David Nolen made changes -
Resolution Declined [ 2 ]
Status Open [ 1 ] Resolved [ 5 ]
David Nolen made changes -
Status Resolved [ 5 ] Closed [ 6 ]

People

Vote (0)
Watch (1)

Dates

  • Created:
    Updated:
    Resolved: