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

    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 <>
    cemerick committed with stuartsierra Sep 22, 2012
Commits on Sep 20, 2012
  1. CLJS-378: port

    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
    emezeske committed with David Nolen Jul 26, 2012
Commits on Sep 3, 2012
Commits on Aug 31, 2012
  1. CLJS-336: Hyphenated Protocols

    David Nolen committed Aug 31, 2012
  2. CLJS-312: support :import, emit goog.provide for types/records

    The following declaration causes the bar.Quux goog.provide'd
    namespace/class/type/record be :require'd :as Quux and the symbol Quux
    to act as an alias for bar.Quux in the foo.core namespace:
    (ns foo.core
      (:import bar.Quux))
    The compiler now emits goog.provide calls for deftype/defrecord forms
    emitted from within compile-file*. Only one goog.provide will be
    emitted for each type name defined in a given file, even in the
    presence of multiple definitions specifying the same name. This has
    the side effect of enabling deftype/defrecord-created types to be
    specified as GClosure dependencies (in particular, it enables
    deftype/defrecord support in :import).
    michalmarczyk committed with David Nolen Jun 16, 2012
  3. CLJS-366: revert CLJS-39, broke :when and change no longer necessary …

    …now that we track let expressions in loops.
    David Nolen committed Aug 31, 2012
Commits on Aug 30, 2012
  1. CLJS-361: Invoking anonymous functions with wrong arity does not prod…

    …uce a warning
    David Nolen committed Aug 30, 2012
  2. add apply benchmark

    David Nolen committed Aug 30, 2012
  3. * benchmark/cljs/benchmark_runner.cljs: decrease large vector by orde…

    …r of magnitude
    David Nolen committed Aug 30, 2012