Commit Graph

11 Commits

Author SHA1 Message Date
Olivier Chafik fc81df2f43 Rehab test dropped by mistake in c9d909ced98dea2aefe20322a59d18fbab2d93b2 2016-01-22 14:51:33 +00:00
Olivier Chafik 07d3998cdc Before (for f(a, {b, c: c_default})):
function f(a, opts) {
    let b = opts && 'b' in opts ? opts.b : null;
    let c = opts && 'c' in opts ? opts.c : c_default;
    ...

After:
  function f(a, {b = null, c = c_default} = {}) {
    ...

Note:
- Still reverting to old code when any parameter clashes with reserved JS names (see discussion in https://github.com/dart-lang/dev_compiler/issues/392)
- When a parameter clashes with a Object.prototype property, using a clean default opts value (Object.create(null)).
- Passing opts through in aliased constructors, both for speed/concision and correctness (since default param value semantic is weird there)

BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1484263002 .
2015-12-02 21:56:35 +00:00
Leaf Petersen 8d36859187 Attach type info to extension method and object method tear-offs
Fixes #189.

BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1293293002 .
2015-08-19 10:01:12 -07:00
Leaf Petersen 8040611a79 This CL implements tagging of functions and methods with function types.
For every class, we now generate a setSignature call which attaches properties to the constructor recording the method signatures, the static function signatures, and the names of all of the static methods. This call also attaches a getter to every static method which returns the type of the function.  Methods are only decorated with runtime types when torn off.  At a tear-off, the type is looked up in the constructor, and then attached to the bound function.

Top level functions and statement level functions get annotated with their type immediately after their declaration.  We could consider moving all of the top level function annotations to the end of the file, but for now I've left it inline.

Closures (function expressions) get wrapped in calls to a dart.fn helper, with type information attached in one of various forms.  This is currently the least attractive part of this CL.  We may want to iterate on the syntax for this.

I've added some support for NSM checking to the dsend/dcall case as well.

We may wish to iterate on the syntax, and on the runtime representation of types, but this should move us forward from a functionality standpoint.

BUG=
R=jmesserly@google.com, vsm@google.com

Review URL: https://codereview.chromium.org/1138793002
2015-05-19 16:24:35 -07:00
Vijay Menon 5c1c9c2381 Add LICENSE and corresponding headers
Fix expectations where line number has changed.

R=dgrove@google.com

Review URL: https://chromereviews.googleplex.com/158257013
2015-02-24 15:02:26 -08:00
Vijay Menon eb3c51e6f3 Check default parameters properly
R=leafp@google.com

Review URL: https://chromereviews.googleplex.com/155367013
2015-02-18 12:13:30 -08:00
John Messerly 9957696748 improve invoke/as code
R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/149937013
2015-02-05 15:46:42 -08:00
John Messerly 0493ac3271 initial sunflower changes
still some things unimplemented, but since we're all hitting the same paths figured I'd land what I have so far

R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/125537013
2014-12-16 14:10:08 -08:00
Justin Fagnani 21258849ab Codegen: Prefix identifiers with ‘this’ when necessary. 2014-12-15 08:08:46 -08:00
Justin Fagnani 9a4965d76d Codegen getters and setters 2014-12-13 17:22:37 -08:00
Justin Fagnani 6354d7e516 Generate methods 2014-12-12 16:41:31 -08:00