From b45e9e2de9b05f0dc149fd103c07655e76e9e99a Mon Sep 17 00:00:00 2001 From: Vijay Menon Date: Tue, 6 Jun 2017 10:39:30 -0700 Subject: [PATCH] Minor tweak on README Making the description on constructors more accurate. R=jmesserly@google.com Review-Url: https://codereview.chromium.org/2923123003 . --- pkg/dev_compiler/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/dev_compiler/README.md b/pkg/dev_compiler/README.md index fd6a0d741b3..4f6e803814b 100644 --- a/pkg/dev_compiler/README.md +++ b/pkg/dev_compiler/README.md @@ -48,7 +48,7 @@ There are some import caveats where Dart concepts do not map directly: - *Libraries*. Multiple Dart libraries are mapped to a single JS module. Each library appears as a first class object in the generated JS module, with its top-level symbols as members. We currently use a heuristic (based upon file paths) to ensure unique naming of generated library objects. - *Generics*. Dart generics are *reified*, i.e., they are preserved at runtime. Generic classes are mapped to factories that, given one or more type parameters, return an actual ES6 class (e.g., `HashMap$(core.String, core.int)` produces a class that represents a HashMap from strings to ints). Similarly, generic methods are mapped to factories that, given one or more type parameters, return a method. - *Dynamic*. DDC supports dynamically typed code (i.e., Dart's `dynamic` type), but it will typically generate less readable and less efficient ES6 output as many type checks must be deferred to runtime. All dynamic operations are invoked via runtime helper code. -- *Constructors*. Dart supports multiple, named constructors for a given class with a different initialization order for fields. In general, these are mapped to static methods on the generated ES6 class. +- *Constructors*. Dart supports multiple, named and factory constructors for a given class with a different initialization order for fields. Today, these are mapped to instance or static methods on the generated ES6 class. - *Private members*. Dart maps private members (e.g., private fields or methods) to ES6 symbols. For example, `a._x` may map to `a[_x]` where `_x` is a symbol only defined in the scope of the generated library. - *Scoping*. Dart scoping rules and reserved words are slightly different than JavaScript. While we try to preserve names wherever possible, in certain cases, we are required to rename.