Skip to content



CoffeeScript + Family & Friends

NameDescriptionLast commit
CoffeeScriptUnfancy JavaScript2020-01-31
CoffeeScript II: The Wrath of KhanRewrite of the CS compiler2017-04-13

Family (share genes with CoffeeScript)

NameDescriptionLast commit
CocoA CoffeeScript dialect that aims to be more radical and practical, also acts as a test bed for features that get imported in CoffeeScript.2014-09-28
LiveScriptA fork of Coco that is much more compatible with CoffeeScript, more functional, and with more features.2018-11-11
IcedCoffeeScriptA CoffeeScript dialect that adds support for await and defer keywords which simplify async control flow.2019-11-27
Parsec CoffeeScriptCS based on parser combinators. The project's aim is to add static metaprogramming (i.e. macros + syntax extensibility) to Coffee Script (CS), similar to how Metalua adds such features to Lua. The resulting compiler, once merged with the official compiler, should be usable as a drop-in replacement for it.2015-11-18
Contracts.coffeeA dialect of CoffeeScript that adds built-in support for contracts.2014-08-08
UberscriptA CoffeeScript fork that adds type annotations which are compiled to Google closure compiler type annotation comments.2013-09-16
ToffeeScriptA dialect of CoffeeScript that support Asynchronous Syntax and Regexp operator =~2018-04-02
CaffeineA dialect of CoffeeScript that supports packages and classes import, useful for browser applications2013-06-03
heap.coffeeA dialect of CoffeeScript that offers a C-like type system with manual memory management2012-05-13
EmberScriptEmber.js-infused CoffeeScript.2015-04-02
BlackCoffeeCoffeeScript with hygienic macros. See also #31712014-11-28
StorymaticA dialect of CoffeeScript rewritten from scratch to support typed languages.2022-06-04
CivetWritten from scratch, aims to be 97+% compatible with existing CoffeeScript2 (via compiler pragmas) while also being 99% TS compatible.2023-02-13
NameDescriptionLast commit
NodeScriptJavaScript without the Variable Declarations and Semicolons2017-11-01
BizubeeThe World's Most Intense Programming Language!2017-02-08
KaffeineEnhanced Syntax for JavaScript.2012-08-21
MoescriptIndent-based language. The original repository at is missing. The link is to a surviving fork.2012-04-14
pogoscriptLanguage that emphasises readability, handles async control flow nicely, is friendly to domain specific languages and compiles to regular JavaScript2015-08-11
LispyScriptA JavaScript with Lispy syntax and Macros. 2020-01-28
Hot Cocoa LispA Lisp-like language that compiles to JavaScript. 2015-03-15
SibilantJavaScript with a lisp. 2017-12-20
kiClojure-like syntax, mori's immutable data structures in a few sweet.js macros. Can be intermixed with JavaScript. 2016-02-06
jispA JS-native and axiomatic Lisp that focuses on the core ideas of code-as-data, S-expressions, and macros, introducing as few new concepts as possible. 2015-03-20
HamLooks very similar to JavaScript at first, but offers (hopefully) many useful features2013-05-27
GorillaScriptCompile-to-JavaScript language designed to empower the user while attempting to prevent some common errors, offers Macros, optional Typing, and asynchronous syntax.2013-07-16
RedScriptElixir-flavored JavaScript.2018-04-04
DaonodeFunctional logic solver, compiler.2015-11-26
LiteScriptLiterate, highly-readable, type annotated, imperative language that compiles to JavaScript.2018-06-22
ColaScriptSimilar to Dart, CoffeeScript, Python and PHP2015-02-03
TaijilangA customizable and extensible language with dynamic parser and meta language.2015-11-27
MoonScriptMoonScript is a dynamic scripting language that compiles into Lua. The syntax of MoonScript has been heavily inspired by the syntax of CoffeeScript.2020-02-02
Earl GreyAn extensible language with pattern matching, hygienic macros and a syntax similar to Python.2017-08-14
KhepriLightweight language that reworks Javascript's syntax to be better for untyped functional-style programming.2015-05-16
SpiderSpider is a programming language that compiles to JavaScript (ES5 and ES6 targets). It takes the best ideas of Go, Swift, Python, C# and CoffeeScript.2017-10-21
CirruScriptWrite JavaScript with indentations and polish notations, similar to S-Expression but with fewer parentheses.2020-01-28
TLCTag Line Commands is a inline macro language for calling+formatting javascript/coffeescript/livescript json output into HTML.2015-07-26
CokeScriptInspired by Python and Ruby that integrates natively with the Virtual-DOM library2018-07-05
imbaFull-stack programming language for the Web that compiles to performant JavaScript2020-02-26
CorStraightforward language for the Web2016-12-11
IodeA language inspired by Swift2016-03-28
FutureScriptA more radical, but more readable, different new language.2018-12-11
PearScriptShorthanding JavaScript one more time.2016-01-28
RamdaScriptJavaScript in the Ramda way.2018-01-23
RoyalScriptA functional language that has loops, types, structs, and much more.2017-03-23

JavaScript Extensions

Security enforcing JavaScript

CajaCompiles ES5/strict to ES3 and supports object-capabilities
ADsafeClient-side static verifier and API, making third party scripts safe.
JacarandaStatic verifier supporting object-capabilities.
Dojo SecureFramework for building secure mashups.

Static typing

NOTE: Some of the projects listed below are also statically typed, such as mobl, GWT, JSIL, NS Basic, and Haxe.

DartC/Java-like syntax with optional typing by Google.
TypeScriptTyped superset of JavaScript by Microsoft.
TeJaSFrom Brown PLT. Types for JavaScript (itself).
asm.jsSubset of JavaScript that can be used as a low-level, efficient target language for compilers. Now included in Firefox.
JavaScript++JavaScript superset with classes, type checking, among other features
Mascara[commercial] Enhances JavaScript with powerful features like classes, namespaces and type-checking.
RoyTries to meld JavaScript semantics with some features common in static functional languages
ElmType-safe functional language that compiles to HTML, CSS, and JavaScript.
SwymStatically typed, with type inference and generics
Typecast.jsJavaScript platform for statically typed variables without a custom compiler.
PureScriptA small, strongly typed programming language that compiles to JavaScript and C++, featuring extensible records and effects, and type classes.
FlowStatic type checker for JavaScript, supports optional types and null checks by Facebook.
ActionScriptWith Apache Royale ASJS (formerly FlexJS) - Based on ECMAScript 4, ActionScript provides typing and can be compiled to JavaScript.
ReScript(Formerly BuckleScript) Compiles OCaml, and its syntax extension Reason, to readable JavaScript, enabling powerful static type-checking, among other features.

Synchronous to Asynchronous JavaScript Compilers (CPS)

Streamline.jsUses underscore (_) to stand for callbacks. This fork preserves line numbers for debugging.
moblThe new language for programming the mobile web.
StratifiedJSJavaScript + structured concurrency.
NarrativeJSJavaScript extension with asynchronous futures and promises.
jwacsJavaScript With Advanced Continuation Support.
Wind.jsWind.js is an advanced library which enable us to control flow with plain JavaScript for asynchronous programming (and more) without additional pre-compiling steps.
TameJSAdds new keywords 'await' and 'defer'
Continuation.jsA lightweight JIT compiler for simplifying asynchronous JavaScript programming with no runtime dependences. It supports both Node.js and browser-side JavaScript and is compatible with CoffeeScript (also TypeScript, and any other scripts compile to js).
KalMakes asynchronous programming easy and clean by allowing functions to pause and wait for I/O, replacing an awkward callback syntax with a clean, simple syntax
JSPipeProvides JavaScript primitives to write async code without callbacks or chained functions. Inspired by Goroutines and Channels found in Go and in Clojure. For Web and NodeJS. ES5 and ES6.
promiseLandPromiseLand is a very promising Language. It includes ES5 strict mode, uses the * dereferencing operator to access promise results and introduces additional features designed to let you focus on your program logic. Such as dynamic typesafety, frame addressing, generic load and safe features.

JavaScript Language Extensions

ContextJSAn implementation of Context-oriented Programming for JavaScript.
Objective-JShares with JavaScript the same relationship that Objective-C has with the C programming language: that of being a strict, but small, superset.
MochiscriptObject-oriented JavaScript with syntactic sugar. Released as a Ruby gem.
jangarooAS3 (ActionScript) to JavaScript.
FlapjaxEvent-driven, reactive evaluation.
jLangAdds object oriented syntax, namespaces, operators overriding
Restrict Mode
TIScriptGentle extension of JavaScript
SixSix is a language super-set of JavaScript that enables new syntactic features from the 6th edition of ECMAScript to be used, through a transpiler, in your scripts today.
js--JavaScript subset for interactive/visual programming.
Latte JSSuperset of JavaScript (eventually ES6), with similar goals to CoffeeScript, but keeping JS syntax.
JSXA superset to add an XML-like syntax to represent HTML elements in React by Facebook
ojObjective-C inspired superset of JavaScript with a tiny runtime, built-in obfuscator, and experimental type checker (courtesy of Typescript).
mfjsAdds arbitrary side effects not already available in JavaScript. They may include but not limited to delimited continuations, asynchronous, logic, reactive, parallel, distributed and probabilistic programming. It doesn't extend syntax so it may be used with any other language compiling to JavaScript.


OpalRuby to JavaScript compiler.
HotRubyRuns opcode, compiled by YARV on Ruby inside a web browser or in Flash.
ColdRubyCompiler of Ruby 1.9 MRI bytecode, and a runtime written in JavaScript to aid in execution of Ruby code.
rb2jsConverts Ruby to JavaScript.
RubyJSA successor to rb2js
RedWrites like Ruby and runs like JavaScript
QubyUsed for game coding site, open source.
8ballRuby-to-JavaScript source-to-source transformer
Ruby2JSMinimal yet extensible Ruby to JavaScript conversion.
ruby-parser.jsOriginal Ruby 2.0 parser ported to pure JavaScript, produces AST


PyodideCPython, the reference Python implementation, compiled to WASM. Also includes the Python scientific stack.
PYXC-PJ[CS friend] Python to JS. Can generate a (line/col)-number mappings file. (Dead. Last updated 8 years ago.)
PyjamasPython to JS.
PyjacoPython to JavaScript compiler with module support.
PyjsPython to (readable) JS.
SkulptPython. Client side.
PyCowPython to MooTools JS.
PyvaScriptPython-like syntax to JavaScript.
RapydScriptJavaScript with a Pythonic syntax.
BulbulPython3 to JavaScript/ES6/ES7 compiler. Apparently the only Python-to-JS compiler intended to provide support for AngularJS, React, Aurelia and other modern JS libs.
BrythonBrowser Python. Embed Python 3 in <script type="text/python">
PythonScriptPython-like compiled to JavaScript
pythonscriptPython compiled to readable JavaScript using the AST. (proof of concept)
RusthonIntegrates several python to js methods into one project. Very Active. Dead since 2016. Not only for JS & Py, but also Go, C, Nim, etc.
PyPyJSPyPy. Compiled into JavaScript using Emscripten. JIT-compiling to JavaScript at runtime.
BataviaRun Python bytecode in the browser
TranscryptNew Python 3.5 to JavaScript transpiler. Supports multiple inheritance, bound function assignment, selective operator overloading, highly readable JS output, sourcemaps, small downloads, fast execution using call memoizing. Integrated with closure compiler / minifier, optional static checker and fabric.js graphics lib for HTML5 canvas.
pseudo-pythonA restricted python to javascript/c#/go/ruby compiler
JavaScripthonTranspile Python3.5 to ES6 and to ES5 (with the help of BabelJS, but w/o the need for nodejs). Supports classes, generators, async functions.
PScriptPython compiled to JavaScript.


ShenFirst and yet smallest Erlang JavaScript Compiler based on Erlang AST. It allows you to translate Elixir, Joxa, Lol and Erlang programs to JavaScript with erlc. JavaScript/OTP subset. Has node npm package called erlang-shen-js.
LuvvieScriptA browser-based dom-scripting language that is a strict sub-set of Erlang which is AST-to-AST transpiled to JavaScript (code)
browserlErlang Emulator written in JavaScript


ElixirScriptConverts Elixir AST to JavaScript AST to JavaScript code.


PerlitoProject to compile Perl 5/6 to JavaScript, Ruby, SBCL, and Go.
p2jsPerl to JavaScript converter


GWTGoogle Web Toolkit, compiles Java to JavaScript.
Java2Script/SwingJSEclipse Java to JavaScript compiler plugin and JavaScript version of the Java 8 JVM for Java applets and applications, with over 2300+ Java8 OpenJDK classes, including gnu.jpdf, gov.nist.jama, java(applet, awt, beans, io, lang, math, net, nio, security, text, util), javax(imageio, net, print, sound, swing, xml), netscape(javascript), org(apache, json, unicode, xml), sun(applet, audio, awt, net, nio, reflect, security, swing, text, util), along with an extensive library of plaf (Plaform Look and Feel) for HTML5; tested successfully on over 400,000 lines of original working Java code in 2 major (150,000+ line) applications (Jmol and Jalview) 600+ applets and 1000+ web pages in multiple projects; nearly complete AWT and Swing implementations; actively developed (since 2012); requires minor Java-compatible code adjustment to handle multithreading and modal dialogs; extensive developer documentation and support; beta
j2jsJava bytecode to JavaScript.
Strongly-Typed JavaScript (STJS)JavaScript code generator from Java source. It is built as a Maven plugin.
BicaJVMJavaScript implementation of JVM.
DoppioJVM interpreter on CoffeeScript.
Processing.jsA Java-based visualization language that interprets to JavaScript.
KotlinStatically typed programming language targeting the JVM and JavaScript.
CeylonA modular static-typed JVM language compilable to JavaScript.
GrooScriptA framework to convert Groovy code to JavaScript.
node-jvmJava virtual machine in pure node.js
Bck2BrwsrRun "browserified" Java Code in, well, the browser.
QWTQWT consists of a Java-to-JavaScript compiler, a prepared library of Qooxdoo componente (version 0.7.x) and some other tools. Similar to GWT
TeaVMAn ahead-of-time transpiler that takes JVM bytecode and produces JavaScript.
Dragome SDKCompiles JVM bytecode to Javascript.
JSweetA Java to JavaScript transpiler built on top of TypeScript and giving access to hundreds of JavaScript libraries in Java.
j2clCompiles Java to Javascript.
CheerpJconvert Java bytecode to WebAssembly and JavaScript
BytecoderFramework to interpret and transpile JVM bytecode to JavaScript, OpenCL or WebAssembly.
JWebAssemblyJava bytecode to WebAssembly compiler (note: you then could use binaryen's wasm2js to compile WebAssembly to JavaScript.)
Online-IDEA java-like programming language with IDE for computer-science-education that runs inside any browser


Scala.jsThe official Scala to JavaScript compiler
js-scalaJavaScript as an embedded DSL in Scala
scalagwtEnhanced GWT (accepts jribble as well as Java) plus Scala to jribble.
JScalaScala macro that produces JavaScript from Scala code.
jsc[experimental] Recompile your .NET assembly to JavaScript, ActionScript, PHP or Java.
JSILMSIL (.NET bytecode) to JavaScript
Script#Compiles C# to JS.
CilJsTranslates CIL/MSIL (.NET bytecode) (C#) to JavaScript
BladeVisual Studio add-on for converting C# to JavaScript
SharpKitC# to JavaScript Cross-Compiler
SaltarelleC# to JavaScript Compiler. Saltarelle is now part of Bridge.NET.
FunScriptF# to JavaScript compiler with JQuery etc. mappings through a TypeScript type provider
PitF# to JavaScript compiler
WebSharperLets you compile F# to JS.
NemerleWebNemerle language compiled to JS.
Blue StormF# to JavaScript (and some other languages).
JScriptSuite.NET to JavaScript compiler (cross browser API, client site controls and components).
DotNetWebToolkitToolkit providing a .NET CIL to JavaScript transcoder and Visual Studio project/debugging integration
Netjs.NET to TypeScript and JavaScript compiler. It uses multiple stages to produce JavaScript for your web apps.
WootzJsC# to Javascript cross-compiler built on top of Microsoft Roslyn, which handles the complex process of converting your C# code into syntax trees with symbol information
Bridge.NETOpen Source C#-to-JavaScript compiler using Microsoft Roslyn. Includes support for jQuery + many other frameworks. Developed and well supported by a professional team. Try online at Deck.NET.
FableF# to JavaScript Compiler

Lisp, Scheme


ClojureScriptClojure to JS, the official version. Supports the majority of Clojure including persistent datastructures.
ClojureJSSubset of Clojure to JS.
ChlorinejsA fork of ClojureJS with a port of clojure.core library.
wispA homoiconic JavaScript dialect with Clojure syntax, S-expressions and macros. Aims to be rich subset of Clojure(Script) that seamlessly interops with both Clojure(Script) and JavaScript.
ScriptjureLibrary for generating JavaScript from Clojure forms.
kiClojure-like syntax, mori's immutable data structures in a few sweet.js macros. Can be intermixed with JavaScript.
Calcit-jsA JavaScript code generator sharing ClojureScript semantics, featured macros, immutable data, and prefix notations. However, it relies on indentation-based syntax from Cirru(Script).
DakA Lisp like language that transpiles to JavaScript. “It's still JavaScript, but wearing a Lisp outfit. It's not Common Lisp or Scheme, but a bit more like Clojure or Fennel.”


BiwaSchemeScheme(R6RS) in JavaScript
FargoScheme in JavaScript
LIPSScheme (R7RS) in JavaScript
Moby SchemeA Scheme running in JS.
nconcScheme interpreter in JavaScript with stack-friendly tail calls and full call/cc
SchejeA Little Scheme on Top of Clojure - compiles on Node.js and the Browser.
scheme2jsScheme to JavaScript.
SpockA Scheme to JavaScript compiler that uses Henry Baker's Cheney-on-the-MTA compilation strategy
WhalesongRacket to JS compiler
RacketScriptLightweight Racket to JavaScript compiler. The generated code is ES6, which can be translated to ES5 using Babel or Traceur.
urlangA nanopass compiler accepting Racket-like syntax


eslispAn S-expression syntax for ECMAScript/JavaScript, with Lisp-like hygienic macros that are just JS functions. Aims to be very close to JS, and highly experimental.
EdgeLispA Lisp in the tradition of Common Lisp
ParenscriptSubset of Common Lisp to JS.
RalphLisp-1 dialect that compiles to JavaScript, inspired by Dylan
OppoA JavaScripter's lisp. Inspired by JavaScript, Clojure and CoffeeScript. Compiler built using Jison.
LispyScriptA JavaScript with Lispy syntax and Macros.
OutletA simple Lisp that supports CPS and in-browser stepping debugging, and other things. In development.
Hot Cocoa LispA Lisp-like language that compiles to JavaScript.
SibilantJavaScript with a lisp.
jispA JS-native and axiomatic Lisp that focuses on the core ideas of code-as-data, S-expressions, and macros, introducing as few new concepts as possible.
JSCLA Lisp-to-Javascript compiler bootstrapped from Common Lisp
LuxStatically typed, functional Lisp with an ML-like module system


OcamljsOCaml to JS.
O'BrowserOCaml bytecode interpreter in JS.
Js_of_ocamlOCaml bytecode to JS compiler.
ReScript(Formerly BuckleScript) Compiles OCaml, and its syntax extension Reason, to readable JavaScript.


UHC(Utrecht Haskell Compiler) backend converts UHC core to JavaScript, allowing the compiling of Haskell code to JS.
ghcjsCompile normal Haskell into JS
jmacroQuasi-Quoted JS that you can insert Haskell values into (there is also shakespeare-js for that purpose), but also supports a more Haskellish syntactic version of JavaScript.
lambdascriptCompile a subset of Haskell into JS
YHC(York Haskell Compiler) backend, as above but with YHC core language.
fayA proper subset of Haskell that compiles to JavaScript
formlA contemporary programming language intended to approximate the safety of Haskell and the expressiveness of Ruby.


AmberFormerly known as Jtalk
ClamatoA Smalltalk dialect that is designed to operate within the JavaScript runtime.
Silver Smalltalk[commercial?] Smalltalk in the browser. (Still active?)
Lively KernelSmalltalk/squeak-like development environment in the browser. See also Avocado, built on top of it.
Little SmallscriptLittle Smalltalk to JavaScript translator.
SqueakJSSqueak VM in Javascript
PharoJSPharoJS is a Pharo to JavaScript compiler and infrastructure for remote test and debugging. The goal is to enable developing apps in Pharo while deploying them on top of a JavaScript engine.


EmscriptenLLVM to JavaScript compiler. LLVM is "an aggressive open-source compiler for C and C++," as well as other languages.
Cheerp(formerly Duetto) "compiles C++ applications to binary code and JavaScript. Based and integrated into the LLVM/clang infrastructure"
majaVala (gobject) to JavaScript
ClueC language compiler to different runtimes (Lua, JS, Perl 5, C, Java, CL).
LLJSTyped dialect of JavaScript that offers a C-like type system with manual memory management
MandreelCan convert C++ and Objective-C applications based on OpenGL ES to JavaScript or Action Script 3 web application.
Bonsai-CConvert C code to asm.js


NS Basic/App Studio[commercial] Visual Basic-style BASIC to JavaScript compiler. Includes IDE. Targets iOS and Android
qb.jsAn implementation of QBASIC in JavaScript
Spiderbasic[commercial] SpiderBasic is new web client-side programming language based on established BASIC rules. Its main purpose is to allow development of very complex, windowed based web applications. It provides a large commandset to handle complex and reactive GUI, 2D games, and many more in a coherent manner.
B4J[free] the BANano library by Alwaysbusy transpiles B4J (Visual Basic like) code to Javascript. Possibility to extend with other javascript libraries/web frameworks by creating BANano b4xlib libraries. Allows development of PWA, Websites, Webapps.
Monkey (see below)

Pascal, Modula, Oberon

Smart Mobile Studio[commercial] Object Pascal to JavaScript compiler and Delphi like IDE that brings classes, inheritance, interfaces and more to JavaScript
Elevate Web Builder[commercial] Visual development tool for web applications that compiles standard Object Pascal source code into JavaScript
Oberon 07Translates Oberon to JavaScript code ready to be run in web browser or nodejs. Compiler itself is written in Oberon (with extensions) and compiled to JavaScript.
Pas2JSPas2js is an open source Pascal to JavaScript transpiler. It parses Object Pascal and emits JavaScript. The JavaScript is currently of level ECMAScript 5 and should run in any browser or in Node.js.


Go2jsLine-to-line translator from Go to JavaScript.
GopherJSA compiler from Go to JavaScript.
TARDISgoCompile Golang to Haxe (then on to JavaScript, Flash, Java, C++, C#, PHP, Python, Lua, Neko, HashLink)


HaxeCompiles to several platforms C++, JavaScript, PHP, Java, JVM, C#, Python, Lua, Neko, HashLink (both JIT and C) and Flash/SWF.
FantomEvolutionary object-oriented language emphasizing succinct and effective APIs (JVM, CLR, JS).
LZX (Laszlo XML)LZX is OpenLaszlo's declarative user interface language, which is compiled into JavaScript 2 as an intermediary format, and further compiled into either JavaScript 1.5 or ActionScript 3.
Clue and jscTarget multiple runtimes in addition to JavaScript
NimCompiles to C, C++, Objective-C, and JavaScript
MonkeyA Basic-like programming language that compiles to several platforms (JavaScript, ActionScript 3, C++, Java, C#). The main application/game framework is [commercial].
defracCompiles Java bytecode to several platforms (including JavaScript)
Ć Programming LanguageAutomatically translated to C, C++, C#, Java, JavaScript, Python, Swift and OpenCL.
SkewA web-first, cross-platform programming language with an optimizing compiler (compiles to JS and C++)
Chicken Schemean R5RS & R7RS Scheme that normally compiles to C. The Spock library allows compilation to JavaScript

Tierless languages (produce both client & server)

FunA programming language for realtime webapps - compiles to client-side and server-side JS.
UrIn the tradition of ML and Haskell.
moblThe new language for programming the mobile web.
ECompiles E to JS. E is a secure distributed persistent pure object language.
SugarNew programming language designed to replace JavaScript for client-side (and server-side) web development
OpaWrite your complete application in just one language, and the compiler will transform it into a self-sufficient executable
STIP.jsSlicing Tierless Programs in JavaScript

Visual programming tools

SCION SCXMLTools for W3C State Chart XML, a state machine language. Tools include an SCXML-to-JS compiler and graphical debugger.
WaterbearTool for making Scratch-inspired block-based languages on the web. Examples include blocks for JavaScript, ProcessingJS, NodeJS, and more.
SnapJavaScript of BYOB, which is a fork of Scratch
Illumination[Commercial] Visual, cross-platform tool creates apps for Android, iPhone, iPad, Desktops and HTML5 or Flash websites. The I language underlies the tool.
JsMakerVisual JavaScript programming
MeemooFlow-based visual programming framework for hackable web apps
NoFloJavaScript implementation of Flow-Based Programming. Programs (network graphs) can be visually created with DrawFBP
BlocklyWeb-based, graphical programming language. Users can drag blocks together to build an application
Maeda BlockVisual game programming language powered by enchant.js and Google Blockly. See also the Japanese version.


AlasqlSQL to JavaScript parser and compiler
sql.jsSQLite compiled to javascript
RBQLSQL-like language that compiles to JavaScript and Python


phypeRun PHP code directly in your browser
uniterRun PHP code in Node.js or the browser
php.jsPHP VM with JavaScript, allow to run PHP code in Node.js or the browser


lua.jsLua parser
BrozulaLua bytecode interpreter
FengariLua VM in JavaScript


prolog.jsProlog parser, compiler, and interpreter in JavaScript
Yield PrologCompiles Prolog into JavaScript, C#, and Python
Tau PrologProlog interpreter in JavaScript


BaitCompiled general purpose programming language with a simple syntax for building reliable software. The current main backend compiles to JavaScript.
ZAn experimental language that is basically JavaScript with nicer syntax.
PyretA teaching language that runs in the browser.
OiaA port of Io to JavaScript.
PlaidA gradually-typed, typestate-oriented language designed as a better Java.
QuixeA Glulx VM interpreter written in JavaScript
GnustoA Z-Machine VM interpreter written in JavaScript
Logo Interpreter
Reb2StaticRebol to JavaScript
RPNInterpreter for a language with a Reverse Polish Notation syntax.
AgdaA dependently typed functional programming language and mechanized proof assistant
XLCCInterpret LCC into JavaScript on node
SMLtoJsSML to JavaScript compiler
PygmyA dynamic language that compiles to JavaScript designed to be readable but concise enough to be competitive in code golf.
ErlyJSJavaScript to Erlang compiler
TopazRebol inspired language on top of JavaScript
NGN APLAPL-to-JavaScript compiler written in CoffeeScript
CobolScriptCOBOL language compiler to JavaScript.
IdrisDependently typed functional language with a JavaScript backend.
WortelJ/APL inspired language with Polish Notation, compiles to JavaScript.
oKK5 implementation on top of Javascript.
JEnglishInterprets regular English statements into HTML/CSS
uilang & uiscriptSimple UI-focused script languages for web designers
HodorHodor programming language
L2A simple, table-based language for data analysis
YoptaScriptLanguage for gopniks (post-Soviet aggressive young lower-class suburban male dwellers coming from families of poor education and income)
GLSL-TranspilerCompile GLSL to JavaScript
KindDependently-typed, functional programming and proof language.

Tools for Compiler Writers

JavaScript Parsers and Extensions

NarcissusMozilla's experimental JavaScript compiler in JavaScript by Brendan Eich and others.
CommonJS version in DoctorJS
Jasy: Python port of Narcissus with some enhancements
PyNarcissusNarcissus's parser ported to Python (used in pyjon)
rbnarcissusNarcissus' parser ported to Ruby.
TraceurGoogle's vehicle for JavaScript Language Design Experimentation
EcmaScript 5 Parser (es-lab)
EcmaScript 5 Parser (qfox)
reflect.jsImplementation of Mozilla's (SpiderMonkey) Parser API in JavaScript
bdParseA JavaScript LL(1) parser in JavaScript
parse-jsCommon Lisp JavaScript parser
EsprimaEducational (but fast) ECMAScript parser with output compatible to Mozilla Parser API
js.jsA JavaScript JavaScript interpreter. Instead of trying to create an interpreter from scratch, SpiderMonkey is compiled into LLVM and then emscripten translates the output into JavaScript.
sweet.jsBrings hygienic macros to JavaScript. Lets you write extensions to JavaScript that must be invoked by the user.
smpl.jsThe first compiler built for the purpose of transpiling first.
acornA small, fast, JavaScript-based JavaScript parser
BabelTurn your ES6+ code into ES5 friendly code

JavaScript Optimizers

Closure CompilerAn optimizing compiler. Can generate a (line/col)-number mappings file.

JavaScript Parser Generators

jisonBison in JavaScript, used by CoffeeScript
nearleyA fast, lightweight Earley parser generator
OMeta/JSMetacompiler for many languages to many targets, including js. (source)
PEG.jsParser generator for JavaScript based on the parsing expression grammar formalism
languagejsPEG parser written in JavaScript with first class errors
CanopySelf-hosting PEG parser compiler for JavaScript, influenced by Ruby parser generators such as Treetop and Citrus
JS/CCLALR(1) parser generator
jsparsePEG by Grandmaster Chris Double
ReParseParser combinator library for JavaScript like Haskell's Parsec
p4jsMonadic parser library for JavaScript
JSGLRScannerless, Generalized Left-to-right Rightmost (SGLR) derivation parser for JavaScript
ANTLR 3Has a JavaScript target. ANTLR 4 has not implemented its JavaScript target yet.
Cruiser.ParseLL(k) parser
MetaCoffeePEG parser using CoffeeScript and white-space-significant syntax
BennuParsec inspired Javascript parser combinator library.
bison-lalr1.jsJavaScript skeleton for Bison GNU Parser Generator

JavaScript AST, Semantics

WebAssemblyW3C cross-browser collaboration on a new, portable, size- and load-time-efficient format suitable for compilation to the web.
Closure Compiler AST Documentation
SpiderMonkey Parser APISee also reflect.js above. The AST interface specification is succeeded by the ESTree specification effort.
ESTree SpecificationAn effort to better standardize an AST specification based on the original Spidermonkey Parser API. It is used by Acorn, Esprima, and SpiderMonkey's own parser. This succeeds the original SpiderMonkey Parser API's AST specification.
Shift JavaScript AST SpecificationSee this blog post with more information
JsonML ASTFormat used by the es5 parser
treehuggerJavaScript AST transformation tools
JavaScript ShaperJavaScript syntax tree shaping
burrito & js-traverseSee this post for more info, as well as node-stackedy for an example and node-browserify for running it in a browser instead of node
falafelTransform the ast on a recursive walk
rocamboleInspired by burrito & falafel, recursively walk and transform EcmaScript AST
JavaScript typesLambdajs and flow typing
SourceMapMap JavaScript debugger output to original source
ZeonA static visual JavaScript analyzer / editor. See also ZeParser.
escodegenJavaScript code generator
esmangleMinifier for Mozilla Parser API AST
estraverseECMAScript traversal functions from esmangle project
ecma-astAST node data structures for ECMAScript 5.1 based on the SpiderMonkey Parser API
esastSlow compilation? Use typed data for fast AST construction and rendering. Compatible with JSON trees following estree.
AstringTiny and fast JavaScript code generator from an ESTree-compliant AST.