Commit Graph

392 Commits

Author SHA1 Message Date
Vijay Menon e64630186d Add non-nullability logic for primitives
Still need to:
- Fix our dart:core errors
- Change DownCastLiteral to error
- Handle "int x;", etc.

R=jmesserly@google.com, leafp@google.com

Review URL: https://chromereviews.googleplex.com/156787013
2015-02-11 12:08:34 -08:00
John Messerly d1cffd61c4 fix indent for generic classes. the previous change intentionally skipped indent for easier diff viewing.
R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/157687013
2015-02-11 10:10:57 -08:00
John Messerly 083e4c4889 reified generics baby steps
introduces a memoized function that produces the generic type instance
generic type parameters are closed over, making it easy to get them and ensure they flow correctly through base class/mixins.

also implements the unimplemented features in _typeName.

R=leafp@google.com, vsm@google.com

Review URL: https://chromereviews.googleplex.com/157627013
2015-02-11 09:03:03 -08:00
John Messerly f85c2eb649 fix mixin field init, implicit-this
also slight change to sunflower example

R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/144247014
2015-02-09 13:11:26 -08:00
John Messerly 591834b748 improve cascades
* better code for the case we already supported
* support the general case

R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/154757013
2015-02-09 13:04:55 -08:00
John Messerly bf682828f8 implement try and switch
R=leafp@google.com

Review URL: https://chromereviews.googleplex.com/144527014
2015-02-06 10:25:13 -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 170c06e3d4 partial support for IsExpression
R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/148937013
2015-02-05 09:52:33 -08:00
Vijay Menon c2a2fa5a79 Minor dbinary fix
R=jmesserly@google.com

Review URL: https://chromereviews.googleplex.com/148987014
2015-02-05 09:40:20 -08:00
John Messerly 7b60c4140f simplify named ctors
R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/150947013
2015-02-05 09:18:50 -08:00
John Messerly 1c26c3e1a6 fix user-defined operators in classes
well, at least they don't generate blatantly illegal ES6 code now :)
also fixes incorrect implicit this generation, dynamic get/index, and set/setindex

R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/146497013
2015-02-03 16:56:24 -08:00
John Messerly b6b72621d6 named arguments
R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/152597013
2015-02-03 15:00:36 -08:00
John Messerly 19e334e7af add support for iterable/for-each
also adds break/continue and labels, and cleans up if-else formatting

R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/140457014
2015-01-30 13:57:48 -08:00
John Messerly a6cde17998 fix static fields, add map literals
R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/141557013
2015-01-30 13:23:55 -08:00
John Messerly 9f318a484c add support for mixins
R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/147247013
2015-01-30 11:19:31 -08:00
John Messerly 25a0f9fba4 implement function statements, assert
R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/145367013
2015-01-30 08:00:42 -08:00
John Messerly 8463f421ad implement notNull checking for num -> int and num -> double
R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/144347013
2015-01-30 07:59:36 -08:00
John Messerly 4aea11009f improve computed js library name
at least it's not generating names that were invalid JS now :)

R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/148037013
2015-01-29 07:56:53 -08:00
John Messerly c64afcf15a add SDK baseline
lots of things wrong with this generated code, but it's a start
(this builds on https://chromereviews.googleplex.com/148007013/)

R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/147147014
2015-01-28 13:11:08 -08:00
John Messerly cad9b49ae4 generate JS per-library instead of per-unit
R=leafp@google.com

Review URL: https://chromereviews.googleplex.com/148007013
2015-01-28 12:51:45 -08:00
Sigmund Cherem 2df05920ae Run formatter, remove dead code detected from analyzer
R=jmesserly@google.com

Review URL: https://chromereviews.googleplex.com/145197013
2015-01-27 12:17:12 -08:00
John Messerly 728258ba48 improve top-level field codegen: avoid Element.node getter
also correctly exports the values of top-level fields, and ensures it uses the most up-to-date value for mutable top-level fields

we can likely improve this further once we have ES6 modules, but it seems like an okay start

R=sigmund@google.com

Review URL: https://chromereviews.googleplex.com/147927013
2015-01-27 08:25:53 -08:00
John Messerly b9fce8ad51 add lazy fields, cleanup library identifiers
R=leafp@google.com, vsm@google.com

Review URL: https://chromereviews.googleplex.com/146777014
2015-01-26 10:25:45 -08:00
John Messerly c9d86483ef rename dart_runtime to dart
R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/147667013
2015-01-22 11:09:21 -08:00
John Messerly 69add413d2 add work-in-progress deltablue
R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/147607013
2015-01-22 09:49:48 -08:00
John Messerly 411803ffd4 don't use deprecated constant visitor
R=jacobr@google.com

Review URL: https://chromereviews.googleplex.com/145987013
2015-01-21 15:51:26 -08:00
John Messerly c350bb7816 use harmony features in js codegen, including classes
R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/138327013
2015-01-14 14:35:50 -08:00
Sigmund Cherem 17e388ff48 Run formatter again after a couple bug fixes.
R=rnystrom@google.com

Review URL: https://chromereviews.googleplex.com/133227013
2014-12-29 17:39:30 -08:00
Sigmund Cherem c95d72647a Run latest formatter
Review URL: https://chromereviews.googleplex.com/131387013
2014-12-29 13:01:35 -08:00
Sigmund Cherem 4448f18cea Add a reporter, remove caching of source files and recording of info (in progress)
R=leafp@google.com, vsm@google.com

Review URL: https://chromereviews.googleplex.com/132767014
2014-12-19 15:10:38 -08:00
John Messerly 37870d5f2e implement string interpolation
R=justinfagnani@google.com

Review URL: https://chromereviews.googleplex.com/129337014
2014-12-17 16:45:57 -08:00
John Messerly 9774313c4d sunflower works
some hacks for our lack of corelib, but otherwise it works now.

R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/133857013
2014-12-17 14:45:04 -08:00
John Messerly 050dfd037b make cascades be expressions. This was bothering me from previous CL but didn't get to fix :). Codegen is now based on JS comma expression.
For now I ripped out the temp machinery. With the current writer there's no easy way to put the variable declaration in the right place. We can revive it when we have something, like the NestedPrinter from source_maps pkg. For now cascades are only generated when the target is a simple identifier. (That too is wrong in the case of getters, with multiple evaluations, but it's less wrong. At least we don't mess up the syntactic structure of the generated output.)

R=vsm@google.com

Review URL: https://chromereviews.googleplex.com/128587013
2014-12-17 14:07:02 -08:00
Leaf Petersen fa5cbce3fd Initial cut at new typing rules
BUG=
R=sigmund@google.com, vsm@google.com

Review URL: https://chromereviews.googleplex.com/124467014
2014-12-17 11:02:25 -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 c96dd0db5a Codegen: implement assignment 2014-12-15 08:29:32 -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
Vijay Menon 4b70cc73f3 Implement return
Trying out the new codegen tests - nice!

R=jmesserly@google.com

Review URL: https://chromereviews.googleplex.com/132697013
2014-12-11 12:32:50 -08:00
John Messerly c3fdc6e570 Introduce SemanticNode type in place of List<StaticInfo>
R=sigmund@google.com, vsm@google.com

Review URL: https://chromereviews.googleplex.com/122327013
2014-12-10 12:57:17 -08:00
John Messerly 3124c7ec89 add the ability to easily test codegen by diffing against expected output
this makes changes easy to spot

some of this code was taken from old polymer.dart test scripts :)

R=sigmund@google.com

Review URL: https://chromereviews.googleplex.com/121567013
2014-12-09 16:52:05 -08:00