dart-sdk/pkg/dev_compiler
2016-12-01 19:24:15 -08:00
..
bin fixes #610, incorrect help output 2016-08-12 15:06:41 -07:00
doc Remove the experimental tag from the flag header 2016-07-13 12:03:32 -07:00
lib Fix runtime strong mode error in ListMixin 2016-12-01 15:41:46 -08:00
test Fix runtime strong mode error in ListMixin 2016-12-01 15:41:46 -08:00
tool restrict generic function type subtyping 2016-12-01 19:24:15 -08:00
web fix #27607, add dev_compiler summary to the SDK and move JS files 2016-11-01 18:17:43 -07:00
.analysis_options Enable strong mode in DDC, fix all warnings/errors 2016-05-26 11:13:32 -07:00
.gitignore fix #626, add AMD module format and make it default 2016-08-25 09:39:36 -07:00
CHANGELOG.md remove unused DDC --package-paths options and MultiPackageResolver 2016-11-22 11:20:23 -05:00
codereview.settings update codereview.settings for DDC 2016-11-14 15:28:50 -08:00
karma.conf.js Move FF and Canary to green on travis 2016-11-03 07:44:27 -07:00
LICENSE.md
package.json Move FF and Canary to green on travis 2016-11-03 07:44:27 -07:00
README.md DDC readme links pointing to current repository (#27662) 2016-10-26 10:50:46 -07:00
STRONG_MODE.md Update STRONG_MODE.md (#27391) 2016-09-26 11:57:22 +02:00
test-main.js Move FF and Canary to green on travis 2016-11-03 07:44:27 -07:00
USAGE.md fix #27784 and fix #27785, fromEnvironment constants in DDC 2016-11-16 12:20:43 -08:00

dev_compiler

Build Status Coverage Status

The Dart Dev Compiler (DDC) is an experimental development tool and transpiler. It is at a very early stage today. Its aims include the following:

  • A static checker based on stricter-than-standard-Dart type rules.
  • A modular Dart-to-ES6 transpiler for Dart programs that statically check.

DDC attempts to map to idiomatic EcmaScript 6 (ES6) as cleanly as possible. To do this while cohering to Dart semantics, DDC relies heavily on static type information, static checking, and runtime assertions.

DDC is intended to support a very large subset of Dart. If a program does not statically check, DDC will not result in valid generated code. Our goal is that a program execution (of a valid program) that runs without triggering runtime assertions should run the same on other Dart platforms under checked mode or production mode.

DDC does support untyped Dart code, but it will typically result in less readable and less efficient ES6 output.

DDC has the following project goals:

  • Effective static checking and error detection.
  • A debugging solution for all modern browsers.
  • Readable output.
  • Fast, modular compilation of Dart code.
  • Easy use of generated code from JavaScript.

DDC is still in a very early stage as highlighted by our choice of ES6. ES6 itself is in active development across all modern browsers, but at various stages of support: kangax.github.io/compat-table/es6.

We are targeting the subset of ES6 supported in Chrome.

To try out DDC and/or give feedback, please read our usage page.