Commits on Sep 28, 2012
  1. 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
  4. Send proper content types when serving JPGs, PNGs and stylesheets.

    The send-static fn in the browser repl tries to detect the content
    type of a file by it's pathname extension. This patch adds support for
    JPGs, PNGs and stylesheets as well. Without proper content type Chrome
    and Firefox are refusing to apply stylesheets.
    r0man committed with David Nolen Aug 14, 2012
  5. CLJS-357: large PersistentVector benchmarks

    Benchmarks for the following:
    * building a large vector without using transients (to get an idea of
      conj perf),
    * conjing onto a large vector in a situation where this involves a
      push-tail operation,
    * associng in non-tail position in a large vector,
    * popping a large vector where this involves a pop-tail op.
    michalmarczyk committed with David Nolen Aug 17, 2012
Commits on Aug 17, 2012
Commits on Aug 14, 2012
  1. ArrayChunk now uses array-reduce

    David Nolen committed Aug 14, 2012
  2. fix alength

    David Nolen committed Aug 14, 2012