Overview ยท ClojureScript (planck)
clojure.core in ClojureScript (planck)
- Implemented
- 59.4%403 / 679
- Mismatched
- 110
- Missing
- 276
- Dialect-Only
- 425
Metadata Mismatches (110)
Vars present in both Clojure (JVM) and this surface but with differing arglists, :macro flag, or :dynamic flag.
| Var | Difference |
|---|---|
*assert* | :dynamic Clojure (JVM): false this surface: true |
*flush-on-newline* | :dynamic Clojure (JVM): false this surface: true |
*ns* | :dynamic Clojure (JVM): false this surface: true |
*out* | :dynamic Clojure (JVM): false this surface: true |
*print-dup* | :dynamic Clojure (JVM): false this surface: true |
*print-meta* | :dynamic Clojure (JVM): false this surface: true |
*print-readably* | :dynamic Clojure (JVM): false this surface: true |
->ArrayChunk | arglists Clojure (JVM): ([am arr off end])this surface: ([arr off end]) |
NaN? | arglists Clojure (JVM): ([num])this surface: ([val]) |
aclone | arglists Clojure (JVM): ([array])this surface: ([arr]) |
add-watch | arglists Clojure (JVM): ([reference key fn])this surface: ([iref key f]) |
array-map | arglists Clojure (JVM): ([] [& keyvals])this surface: ([& keyvals]) |
assoc | arglists Clojure (JVM): ([map key val] [map key val & kvs])this surface: ([coll k v] [coll k v & kvs]) |
assoc! | arglists Clojure (JVM): ([coll key val] [coll key val & kvs])this surface: ([tcoll key val] [tcoll key val & kvs]) |
associative? | arglists Clojure (JVM): ([coll])this surface: ([x]) |
atom | arglists Clojure (JVM): ([x] [x & options])this surface: ([x] [x & {:keys [meta validator]}]) |
booleans | arglists Clojure (JVM): ([xs])this surface: ([x]) |
butlast | arglists Clojure (JVM): ([coll])this surface: ([s]) |
bytes | arglists Clojure (JVM): ([xs])this surface: ([x]) |
chars | arglists Clojure (JVM): ([xs])this surface: ([x]) |
chunked-seq? | arglists Clojure (JVM): ([s])this surface: ([x]) |
comp | arglists Clojure (JVM): ([] [f] [f g] [f g & fs])this surface: ([] [f] [f g] [f g h] [f1 f2 f3 & fs]) |
compare-and-set! | arglists Clojure (JVM): ([atom oldval newval])this surface: ([a oldval newval]) |
conj! | arglists Clojure (JVM): ([] [coll] [coll x])this surface: ([] [tcoll] [tcoll val] [tcoll val & vals]) |
cons | arglists Clojure (JVM): ([x seq])this surface: ([x coll]) |
contains? | arglists Clojure (JVM): ([coll key])this surface: ([coll v]) |
counted? | arglists Clojure (JVM): ([coll])this surface: ([x]) |
create-ns | arglists Clojure (JVM): ([sym])this surface: ([sym] [sym ns-obj]) |
deref | arglists Clojure (JVM): ([ref] [ref timeout-ms timeout-val])this surface: ([o]) |
disj | arglists Clojure (JVM): ([set] [set key] [set key & ks])this surface: ([coll] [coll k] [coll k & ks]) |
disj! | arglists Clojure (JVM): ([set] [set key] [set key & ks])this surface: ([tcoll val] [tcoll val & vals]) |
dissoc | arglists Clojure (JVM): ([map] [map key] [map key & ks])this surface: ([coll] [coll k] [coll k & ks]) |
dissoc! | arglists Clojure (JVM): ([map key] [map key & ks])this surface: ([tcoll key] [tcoll key & ks]) |
doubles | arglists Clojure (JVM): ([xs])this surface: ([x]) |
drop-last | arglists Clojure (JVM): ([coll] [n coll])this surface: ([s] [n s]) |
eduction | arglists Clojure (JVM): ([xform* coll])this surface: ([& xforms]) |
ex-info | arglists Clojure (JVM): ([msg map] [msg map cause])this surface: ([msg data] [msg data cause]) |
ffirst | arglists Clojure (JVM): ([x])this surface: ([coll]) |
find | arglists Clojure (JVM): ([map key])this surface: ([coll k]) |
find-ns | arglists Clojure (JVM): ([sym])this surface: ([ns]) |
float? | arglists Clojure (JVM): ([n])this surface: ([x]) |
floats | arglists Clojure (JVM): ([xs])this surface: ([x]) |
fn? | arglists Clojure (JVM): ([x])this surface: ([f]) |
fnext | arglists Clojure (JVM): ([x])this surface: ([coll]) |
get | arglists Clojure (JVM): ([map key] [map key not-found])this surface: ([o k] [o k not-found]) |
hash | arglists Clojure (JVM): ([x])this surface: ([o]) |
hash-combine | arglists Clojure (JVM): ([x y])this surface: ([seed hash]) |
hash-map | arglists Clojure (JVM): ([] [& keyvals])this surface: ([& keyvals]) |
ifn? | arglists Clojure (JVM): ([x])this surface: ([f]) |
indexed? | arglists Clojure (JVM): ([coll])this surface: ([x]) |
infinite? | arglists Clojure (JVM): ([num])this surface: ([x]) |
ints | arglists Clojure (JVM): ([xs])this surface: ([x]) |
key | arglists Clojure (JVM): ([e])this surface: ([map-entry]) |
last | arglists Clojure (JVM): ([coll])this surface: ([s]) |
list | arglists Clojure (JVM): ([& items])this surface: ([& xs]) |
load-file | arglists Clojure (JVM): ([name])this surface: ([file]) |
longs | arglists Clojure (JVM): ([xs])this surface: ([x]) |
make-array | arglists Clojure (JVM): ([type len] [type dim & more-dims])this surface: ([size] [type size] [type size & more-sizes]) |
meta | arglists Clojure (JVM): ([obj])this surface: ([o]) |
mod | arglists Clojure (JVM): ([num div])this surface: ([n d]) |
munge | arglists Clojure (JVM): ([s])this surface: ([name]) |
neg? | arglists Clojure (JVM): ([num])this surface: ([x]) |
newline | arglists Clojure (JVM): ([])this surface: ([] [opts]) |
nfirst | arglists Clojure (JVM): ([x])this surface: ([coll]) |
nnext | arglists Clojure (JVM): ([x])this surface: ([coll]) |
ns-name | arglists Clojure (JVM): ([ns])this surface: ([ns-obj]) |
nth | arglists Clojure (JVM): ([coll index] [coll index not-found])this surface: ([coll n] [coll n not-found]) |
object-array | arglists Clojure (JVM): ([size-or-seq])this surface: ([size-or-seq] [size init-val-or-seq]) |
persistent! | arglists Clojure (JVM): ([coll])this surface: ([tcoll]) |
pop! | arglists Clojure (JVM): ([coll])this surface: ([tcoll]) |
pos? | arglists Clojure (JVM): ([num])this surface: ([x]) |
pr | arglists Clojure (JVM): ([] [x] [x & more])this surface: ([& objs]) |
pr-str | arglists Clojure (JVM): ([& xs])this surface: ([& objs]) |
print-str | arglists Clojure (JVM): ([& xs])this surface: ([& objs]) |
println | arglists Clojure (JVM): ([& more])this surface: ([& objs]) |
println-str | arglists Clojure (JVM): ([& xs])this surface: ([& objs]) |
prn | arglists Clojure (JVM): ([& more])this surface: ([& objs]) |
prn-str | arglists Clojure (JVM): ([& xs])this surface: ([& objs]) |
quot | arglists Clojure (JVM): ([num div])this surface: ([n d]) |
re-find | arglists Clojure (JVM): ([m] [re s])this surface: ([re s]) |
reduced? | arglists Clojure (JVM): ([x])this surface: ([r]) |
rem | arglists Clojure (JVM): ([num div])this surface: ([n d]) |
remove-watch | arglists Clojure (JVM): ([reference key])this surface: ([iref key]) |
reset! | arglists Clojure (JVM): ([atom newval])this surface: ([a new-value]) |
reset-meta! | arglists Clojure (JVM): ([iref metadata-map])this surface: ([iref m]) |
reset-vals! | arglists Clojure (JVM): ([atom newval])this surface: ([a new-value]) |
second | arglists Clojure (JVM): ([x])this surface: ([coll]) |
seq? | arglists Clojure (JVM): ([x])this surface: ([s]) |
seqable? | arglists Clojure (JVM): ([x])this surface: ([s]) |
sequential? | arglists Clojure (JVM): ([coll])this surface: ([x]) |
set-validator! | arglists Clojure (JVM): ([iref validator-fn])this surface: ([iref val]) |
shorts | arglists Clojure (JVM): ([xs])this surface: ([x]) |
sorted? | arglists Clojure (JVM): ([coll])this surface: ([x]) |
special-symbol? | arglists Clojure (JVM): ([s])this surface: ([x]) |
swap! | arglists Clojure (JVM): ([atom f] [atom f x] [atom f x y] [atom f x y & args])this surface: ([a f] [a f x] [a f x y] [a f x y & more]) |
swap-vals! | arglists Clojure (JVM): ([atom f] [atom f x] [atom f x y] [atom f x y & args])this surface: ([a f] [a f x] [a f x y] [a f x y & more]) |
unchecked-add | arglists Clojure (JVM): ([x y])this surface: ([] [x] [x y] [x y & more]) |
unchecked-add-int | arglists Clojure (JVM): ([x y])this surface: ([] [x] [x y] [x y & more]) |
unchecked-divide-int | arglists Clojure (JVM): ([x y])this surface: ([x] [x y] [x y & more]) |
unchecked-multiply | arglists Clojure (JVM): ([x y])this surface: ([] [x] [x y] [x y & more]) |
unchecked-multiply-int | arglists Clojure (JVM): ([x y])this surface: ([] [x] [x y] [x y & more]) |
unchecked-remainder-int | arglists Clojure (JVM): ([x y])this surface: ([x n]) |
unchecked-subtract | arglists Clojure (JVM): ([x y])this surface: ([x] [x y] [x y & more]) |
unchecked-subtract-int | arglists Clojure (JVM): ([x y])this surface: ([x] [x y] [x y & more]) |
update-in | arglists Clojure (JVM): ([m ks f & args])this surface: ([m [k & ks] f] [m [k & ks] f a] [m [k & ks] f a b] [m [k & ks] f a b c] [m [k & ks] f a b c & args]) |
val | arglists Clojure (JVM): ([e])this surface: ([map-entry]) |
vary-meta | arglists Clojure (JVM): ([obj f & args])this surface: ([obj f] [obj f a] [obj f a b] [obj f a b c] [obj f a b c d] [obj f a b c d & args]) |
vector | arglists Clojure (JVM): ([] [a] [a b] [a b c] [a b c d] [a b c d e] [a b c d e f] [a b c d e f & args])this surface: ([& args]) |
with-meta | arglists Clojure (JVM): ([obj m])this surface: ([o meta]) |
zero? | arglists Clojure (JVM): ([num])this surface: ([x]) |
Vars Present in Clojure (JVM) but Absent from This Surface (276)
| Var |
|---|
*' |
*agent* |
*allow-unresolved-vars* |
*clojure-version* |
*compile-files* |
*compile-path* |
*compiler-options* |
*data-readers* |
*default-data-reader-fn* |
*err* |
*file* |
*fn-loader* |
*in* |
*math-context* |
*read-eval* |
*reader-resolver* |
*repl* |
*source-path* |
*suppress-read* |
*unchecked-math* |
*use-context-classloader* |
*verbose-defrecords* |
*warn-on-reflection* |
+' |
-' |
-> |
->> |
->Vec |
->VecNode |
->VecSeq |
-cache-protocol-fn |
-reset-methods |
.. |
EMPTY-NODE |
PrintWriter-on |
StackTraceElement->vec |
accessor |
add-classpath |
agent |
agent-error |
agent-errors |
alias |
all-ns |
alter |
alter-var-root |
amap |
and |
areduce |
as-> |
aset-boolean |
aset-byte |
aset-char |
aset-double |
aset-float |
aset-int |
aset-long |
aset-short |
assert |
await |
await-for |
await1 |
bases |
bean |
bigdec |
bigint |
biginteger |
binding |
boolean-array |
bound-fn |
bound-fn* |
bound? |
byte-array |
bytes? |
case |
cast |
char-array |
char-escape-string |
char-name-string |
class |
class? |
clear-agent-errors |
clojure-version |
comment |
commute |
compile |
cond |
cond-> |
cond->> |
condp |
construct-proxy |
create-struct |
dec' |
decimal? |
declare |
default-data-readers |
definline |
definterface |
defmacro |
defmethod |
defmulti |
defn |
defn- |
defonce |
defprotocol |
defrecord |
defstruct |
deftype |
delay |
deliver |
denominator |
destructure |
doseq |
dosync |
dotimes |
doto |
ensure |
enumeration-seq |
error-handler |
error-mode |
extend |
extend-protocol |
extend-type |
extenders |
extends? |
file-seq |
find-keyword |
find-protocol-impl |
find-protocol-method |
find-var |
float-array |
fn |
for |
format |
future |
future-call |
future-cancel |
future-cancelled? |
future-done? |
future? |
gen-class |
gen-interface |
get-proxy-class |
get-thread-bindings |
if-let |
if-not |
if-some |
import |
in-ns |
inc' |
init-proxy |
intern |
io! |
iterator-seq |
lazy-cat |
lazy-seq |
let |
letfn |
line-seq |
load |
load-reader |
load-string |
loaded-libs |
locking |
loop |
macroexpand |
macroexpand-1 |
memfn |
method-sig |
namespace-munge |
ns |
ns-aliases |
ns-imports |
ns-interns |
ns-map |
ns-publics |
ns-refers |
ns-resolve |
ns-unalias |
ns-unmap |
num |
numerator |
or |
pcalls |
pmap |
pop-thread-bindings |
primitives-classnames |
print-ctor |
print-dup |
print-method |
print-simple |
printf |
promise |
proxy |
proxy-call-with-super |
proxy-mappings |
proxy-name |
proxy-super |
push-thread-bindings |
pvalues |
ratio? |
rational? |
rationalize |
re-groups |
re-matcher |
read |
read+string |
read-line |
read-string |
reader-conditional |
reader-conditional? |
ref |
ref-history-count |
ref-max-history |
ref-min-history |
ref-set |
refer |
refer-clojure |
reify |
release-pending-sends |
remove-ns |
require |
requiring-resolve |
resolve |
restart-agent |
resultset-seq |
satisfies? |
send |
send-off |
send-via |
seque |
set-agent-send-executor! |
set-agent-send-off-executor! |
set-error-handler! |
set-error-mode! |
short-array |
shutdown-agents |
slurp |
some-> |
some->> |
spit |
stream-into! |
stream-reduce! |
stream-seq! |
stream-transduce! |
struct |
struct-map |
supers |
sync |
the-ns |
thread-bound? |
time |
unquote |
unquote-splicing |
update-proxy |
use |
var-get |
var-set |
vector-of |
vswap! |
when |
when-first |
when-let |
when-not |
when-some |
while |
with-bindings |
with-bindings* |
with-in-str |
with-loading-context |
with-local-vars |
with-open |
with-out-str |
with-precision |
with-redefs |
with-redefs-fn |
xml-seq |
Vars Present in This Surface but Not in Clojure (JVM) (425)
| Var |
|---|
*clojurescript-version* |
*eval* |
*exec-tap-fn* |
*global* |
*loaded-libs* |
*main-cli-fn* |
*print-err-fn* |
*print-fn* |
*print-fn-bodies* |
*print-newline* |
*target* |
*unchecked-arrays* |
*unchecked-if* |
*warn-on-infer* |
--destructure-map |
->ArrayIter |
->ArrayList |
->ArrayNode |
->ArrayNodeIterator |
->ArrayNodeSeq |
->Atom |
->BitmapIndexedNode |
->BlackNode |
->Box |
->ChunkBuffer |
->ChunkedCons |
->ChunkedSeq |
->Cons |
->Cycle |
->Delay |
->ES6EntriesIterator |
->ES6Iterator |
->ES6IteratorSeq |
->ES6SetEntriesIterator |
->Empty |
->EmptyList |
->HashCollisionNode |
->HashMapIter |
->HashSetIter |
->IndexedSeq |
->IndexedSeqIterator |
->IntegerRange |
->IntegerRangeChunk |
->Iterate |
->KeySeq |
->Keyword |
->LazySeq |
->List |
->Many |
->MapEntry |
->MetaFn |
->MultiFn |
->MultiIterator |
->Namespace |
->NeverEquiv |
->NodeIterator |
->NodeSeq |
->ObjMap |
->PersistentArrayMap |
->PersistentArrayMapIterator |
->PersistentArrayMapSeq |
->PersistentHashMap |
->PersistentHashSet |
->PersistentQueue |
->PersistentQueueIter |
->PersistentQueueSeq |
->PersistentTreeMap |
->PersistentTreeMapSeq |
->PersistentTreeSet |
->PersistentVector |
->RSeq |
->Range |
->RangeIterator |
->RangedIterator |
->RecordIter |
->RedNode |
->Reduced |
->Repeat |
->SeqIter |
->Single |
->StringBufferWriter |
->StringIter |
->Subvec |
->Symbol |
->TaggedLiteral |
->TransformerIterator |
->TransientArrayMap |
->TransientHashMap |
->TransientHashSet |
->TransientVector |
->UUID |
->ValSeq |
->Var |
->VectorNode |
->Volatile |
->t_cljs$core10898 |
->t_cljs$core11423 |
->t_cljs$core12530 |
->t_cljs$core14044 |
-add-method |
-add-watch |
-as-transient |
-assoc |
-assoc! |
-assoc-n |
-assoc-n! |
-chunked-first |
-chunked-next |
-chunked-rest |
-clj->js |
-clone |
-comparator |
-compare |
-conj |
-conj! |
-contains-key? |
-count |
-default-dispatch-val |
-deref |
-deref-with-timeout |
-disjoin |
-disjoin! |
-dispatch-fn |
-dissoc |
-dissoc! |
-drop |
-drop-first |
-empty |
-entry-key |
-equiv |
-find |
-first |
-flush |
-get-method |
-hash |
-invoke |
-iterator |
-js->clj |
-key |
-key->js |
-kv-reduce |
-lookup |
-meta |
-methods |
-name |
-namespace |
-next |
-notify-watches |
-nth |
-peek |
-persistent! |
-pop |
-pop! |
-pr-writer |
-prefer-method |
-prefers |
-realized? |
-reduce |
-remove-method |
-remove-watch |
-reset |
-reset! |
-rest |
-rseq |
-seq |
-sorted-seq |
-sorted-seq-from |
-swap! |
-val |
-vreset! |
-with-meta |
-write |
APersistentVector |
ASeq |
ArrayChunk |
ArrayIter |
ArrayList |
ArrayNode |
ArrayNodeIterator |
ArrayNodeSeq |
Atom |
BitmapIndexedNode |
BlackNode |
Box |
CHAR_MAP |
ChunkBuffer |
ChunkedCons |
ChunkedSeq |
Cons |
Cycle |
DEMUNGE_MAP |
DEMUNGE_PATTERN |
Delay |
ES6EntriesIterator |
ES6Iterator |
ES6IteratorSeq |
ES6SetEntriesIterator |
Eduction |
Empty |
EmptyList |
ExceptionInfo |
Fn |
HashCollisionNode |
HashMapIter |
HashSetIter |
IAssociative |
IAtom |
IChunk |
IChunkedNext |
IChunkedSeq |
ICloneable |
ICollection |
IComparable |
ICounted |
IDeref |
IDerefWithTimeout |
IDrop |
IEditableCollection |
IEmptyableCollection |
IEncodeClojure |
IEncodeJS |
IEquiv |
IFind |
IFn |
IHash |
IIndexed |
IIterable |
IKVReduce |
IList |
ILookup |
IMap |
IMapEntry |
IMeta |
IMultiFn |
INIT |
INamed |
INext |
IPending |
IPrintWithWriter |
IRecord |
IReduce |
IReset |
IReversible |
ISeq |
ISeqable |
ISequential |
ISet |
ISorted |
IStack |
ISwap |
ITER_SYMBOL |
ITransientAssociative |
ITransientCollection |
ITransientMap |
ITransientSet |
ITransientVector |
IUUID |
IVector |
IVolatile |
IWatchable |
IWithMeta |
IWriter |
IndexedSeq |
IndexedSeqIterator |
IntegerRange |
IntegerRangeChunk |
Iterate |
KeySeq |
Keyword |
LazySeq |
List |
LongImpl |
MODULE_INFOS |
MODULE_URIS |
Many |
MapEntry |
MetaFn |
MultiFn |
MultiIterator |
NS_CACHE |
Namespace |
NeverEquiv |
NodeIterator |
NodeSeq |
ObjMap |
PROTOCOL_SENTINEL |
PersistentArrayMap |
PersistentArrayMapIterator |
PersistentArrayMapSeq |
PersistentHashMap |
PersistentHashSet |
PersistentQueue |
PersistentQueueIter |
PersistentQueueSeq |
PersistentTreeMap |
PersistentTreeMapSeq |
PersistentTreeSet |
PersistentVector |
RSeq |
Range |
RangeIterator |
RangedIterator |
RecordIter |
RedNode |
Reduced |
Repeat |
START |
SeqIter |
Single |
StringBufferWriter |
StringIter |
Subvec |
Symbol |
TaggedLiteral |
TransformerIterator |
TransientArrayMap |
TransientHashMap |
TransientHashSet |
TransientVector |
UUID |
ValSeq |
Var |
VectorNode |
Volatile |
add-to-string-hash-cache |
apply-to |
array |
array-chunk |
array-index-of |
array-iter |
array-list |
array-seq |
array? |
bit-count |
bit-shift-right-zero-fill |
chunked-seq |
clj->js |
clone |
cloneable? |
default-dispatch-val |
demunge |
dispatch-fn |
divide |
enable-console-print! |
equiv-map |
es6-entries-iterator |
es6-iterator |
es6-iterator-seq |
es6-set-entries-iterator |
find-macros-ns |
find-ns-obj |
gensym_counter |
hash-double |
hash-keyword |
hash-long |
hash-string |
hash-string* |
ifind? |
imul |
int-rotate-left |
is_proto_ |
iter |
iterable? |
js->clj |
js-delete |
js-invoke |
js-iterable? |
js-keys |
js-mod |
js-obj |
js-reserved |
js-symbol? |
key->js |
key-test |
keyword-identical? |
m3-C1 |
m3-C2 |
m3-fmix |
m3-hash-int |
m3-hash-unencoded-chars |
m3-mix-H1 |
m3-mix-K1 |
m3-seed |
missing-protocol |
mk-bound-fn |
native-satisfies? |
nil-iter |
not-native |
ns-interns* |
obj-map |
object? |
persistent-array-map-seq |
pr-seq-writer |
pr-sequential-writer |
pr-str* |
pr-str-with-opts |
prim-seq |
print-map |
print-meta? |
print-prefix-map |
prn-str-with-opts |
ranged-iterator |
reduceable? |
regexp? |
seq-iter |
set-from-indexed-seq |
set-print-err-fn! |
set-print-fn! |
spread |
string-hash-cache |
string-hash-cache-count |
string-iter |
string-print |
symbol-identical? |
system-time |
t_cljs$core10898 |
t_cljs$core11423 |
t_cljs$core12530 |
t_cljs$core14044 |
transformer-iterator |
truth_ |
type->str |
undefined? |
uuid |
write-all |
Documented Intentional Divergences in This Namespace (4)
No JVM class hierarchy
- Since
cljs-0.1- Rationale
- CLJS targets JavaScript; there is no java.lang.Class, no clojure.lang.* concrete types. type returns the JS constructor function. Code that pattern-matches on JVM-class names is not portable.
Number tower follows JavaScript, not JVM
- Since
cljs-0.1- Rationale
- Numbers are JavaScript numbers (IEEE-754 doubles with integer fast path). No Long, no Ratio, no BigDecimal as separate types. Integer overflow silently converts to double; *' / +' have no additional precision over * / +.
Concurrency primitives are JS-event-loop-bound
- Since
cljs-0.1- Rationale
- No JVM threads. atom is synchronous as in Clojure (JVM). future, agent, promise are absent or async-only; code relying on blocking semantics is not portable.
proxy and gen-class are not provided
- Since
cljs-0.1- Rationale
- No JVM bytecode emitter. JS-target equivalents are deftype + protocols or specify-based JS-object construction.