Permalink
Commits on Oct 18, 2012
  1. CLJS-393: Bugfixes for PersistentTreeMap: sorted-map-by and -sorted-s…

    …eq-from
    ejlo committed with David Nolen Oct 18, 2012
Commits on Oct 17, 2012
  1. added :doc entries for ns and def

    franks42 committed with David Nolen Oct 16, 2012
  2. CLJS-368: Make empty? faster for nil calls.

    edtsech committed with David Nolen Oct 16, 2012
Commits on Oct 16, 2012
  1. CLJS-390: exclude macro files from analysis

    Tom Jack committed with David Nolen Oct 8, 2012
  2. CLJS-369: Capture variable shadows in analyzer; avoid

     gensyms.
    
    AST Changes
    
    * Anywhere a binding was introduced for a local used to be a symbol,
      now it is a map with a :name key and potentially a :shadow key.
    
    * Bindings vectors are no longer alternating symbols, then init maps.
      Instead, the are a vector of maps of the shape described for locals
      plus an :init key.
    
    * The :gthis key for functions has been replaced with :type, which
      is the symbol describing the type name of the enclosing deftype form.
    
    * recur frames now expose :params as binding maps, instead of :names
    
    Benefits:
    
    * Shadowed variables are now visible to downstream AST transforms.
    
    * :tag, :mutable, and other metadata are now uniform across ops
    
    * Eliminates usages of gensym inside the analyzer, which was a source
      of state that made the analyzer impossible to use for some
      transformations of let, letfn, etc which require re-analyzing forms.
    
    * Removes JavaScript shadowing semantics from the analyze phase.
    David Nolen committed Oct 16, 2012
  3. Test and fix for CLJS-383

    gfredericks committed with David Nolen Oct 5, 2012
  4. CLJS-388: expose output-wrapper compiler option

    David Nolen committed Oct 16, 2012
  5. Bugfix PersistentTreeSet lookup

    ejlo committed with David Nolen Oct 15, 2012
  6. CLJS-389: Compiler emits throw string

    David Nolen committed Oct 16, 2012
  7. remove IPrintable from defrecord

    David Nolen committed Oct 16, 2012
Commits on Oct 12, 2012
  1. compiler warns on deprecated function and protocol use

    If a deprecated function is invoked or a deprected protocol is
    implemented the compiler will issue a warning.
    
    These warnings can be suppressed by binding *cljs-warn-fn-deprecated*
    to false or by attaching the ^:deprecation-nowarn metadata to the
    invocation form or to the protocol symbol.
    netguy204 committed with David Nolen Oct 12, 2012
Commits on Oct 9, 2012
  1. CLJS-391: add some missing IEmptyableCollection impls

    Tom Jack committed with David Nolen Oct 8, 2012
  2. Hashbang/Shebang updated use env; Fixes #CLJS-385

    ohpauleez committed with David Nolen Sep 28, 2012
Commits on Sep 29, 2012
  1. refactor some ugly code in cljs.closure/build

    David Nolen committed Sep 29, 2012
Commits on Sep 28, 2012
  1. Improve implementation of clojure.string/blank?

    edtsech committed with David Nolen Sep 28, 2012
  2. CLJS-379: optimize tail call in linear-traversal-nth

    Tom Jack committed with David Nolen Sep 19, 2012
  3. Use records to implement IJavaScriptEnv instead of extending to

    IPersistentMap
    
    This is just flat out better and will allow one to create Rhino and
    Browser evaluation environments within the same process.
    brentonashworth committed Sep 28, 2012
Commits on Sep 26, 2012
  1. CLJS-382: use set to track visited requires so contains? works properly

    Signed-off-by: Stuart Sierra <mail@stuartsierra.com>
    cemerick committed with stuartsierra Sep 22, 2012
Commits on Sep 20, 2012
  1. CLJS-378: port clojure.data

    Tom Jack committed with David Nolen Sep 16, 2012
Commits on Sep 13, 2012
Commits on Sep 9, 2012
Commits on Sep 8, 2012
  1. symbol's :else clause was outside the cond expr, breaking behavior. f…

    …ix + test.
    David Nolen committed Sep 8, 2012
Commits on Sep 7, 2012
  1. CLJS-376: `case` doesn't match symbols.

    David Nolen committed Sep 7, 2012
  2. clean up some declares

    David Nolen committed Sep 7, 2012
  3. Changes to remove calls to truth_. move identical? nil? not higher

    up. eliminate the declare. similarly move Reduced, reduced, reduced?,
    counted?, indexed? and eliminate declares around them. eliminate
    truth_ call in find. set *unchecked-if* true for body of apply.
    David Nolen committed Sep 7, 2012
  4. add missing fast path protocols

    David Nolen committed Sep 7, 2012
Commits on Sep 6, 2012
  1. CLJS-373: prevent output from attempting to load deps.js when compile…

    …d w/ :whitespace
    cemerick committed with David Nolen Sep 6, 2012
Commits on Sep 5, 2012
  1. fail faster on js/Infinity && js/NaN since these cases much be tested…

    … anyway - doing arithmetic on these cases is slow. Extra tests do incur a small perf hit when testing actual numbers.
    David Nolen committed Sep 5, 2012
  2. add boolean type-hint to isNaN call

    David Nolen committed Sep 5, 2012
  3. Optimize pr-str by making more use of StringBuffer.

    Previously, a huge number of temporary vectors and lazy sequences were
    built up and concat-ed, which ran reasonably on newer JS engines (e.g.
    V8) but suffered from miserable performance on old engines (such as
    IE8).  By passing a StringBuffer down the callstack and appending to
    that, performance gains of 10-100X can be seen in older JS engines.
    
    For backwards compatibility, the new fastpath uses a new
    IPrintWithWriter protocol, and the old IPrintable is left in place.
    The old protocol is used as a fallback for items that do not satisfy
    IPrintWithWriter.
    emezeske committed with David Nolen Jul 26, 2012