Jennifer Messerly
070f31a899
optimize null safe ops by using DDC's let abstraction
...
We were already using it for most other things (increment ops, op assign, ??, cascades, etc)
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2944413002 .
2017-06-20 10:31:30 -07:00
Vijay Menon
ed8de04f08
Fixes for super tearoff in constructor
...
Fixes #29932
R=jmesserly@google.com
Review-Url: https://codereview.chromium.org/2944003003 .
2017-06-19 13:39:53 -07:00
Jennifer Messerly
93a02bf8f9
fix super setters when super is not allowed
...
We were generating these incorrectly. This also improves the code structure around super helpers as well as accessors vs fields.
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2940323003 .
2017-06-16 11:49:51 -07:00
Jennifer Messerly
c848476643
fix super from constructors
...
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2938713002 .
2017-06-13 16:47:20 -07:00
Jennifer Messerly
1f50f0d126
fix mixins with factory constructors
...
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2935933005 .
2017-06-13 15:58:50 -07:00
Jennifer Messerly
334354f968
fix #29753 , use ES5 constructors for ddc
...
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2934623003 .
2017-06-12 15:31:32 -07:00
Vijay Menon
06c4619b3e
Fix int test
...
Fixes #29822
R=jmesserly@google.com
Review-Url: https://codereview.chromium.org/2927703005 .
2017-06-08 17:42:35 -07:00
Jennifer Messerly
332b34aba8
refactor _emitFunctionBody slightly to simplify it
...
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2929503002 .
2017-06-06 15:58:55 -07:00
Jennifer Messerly
99d5344463
fix "unresolved names" code generation
...
now unsafe-force-compile will generate a throw rather than a free floating name
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2920223009 .
2017-06-06 15:53:30 -07:00
Jennifer Messerly
3054dc50c1
fix #27255 , remove angular whitelist hack
...
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2928483002 .
2017-06-05 14:52:55 -07:00
Vijay Menon
2187f5232d
DDC cleanup
...
R=jacobr@google.com , jakemac@google.com
Review-Url: https://codereview.chromium.org/2902103005 .
2017-05-24 13:01:10 -07:00
Vijay Menon
5919a12038
Library root fix for win
...
R=jakemac@google.com
Jacob: do we need a fix in jsDebuggingLibraryName too? could that code be refactored - it looks like it duplicates a lot of logic.
Review-Url: https://codereview.chromium.org/2899363002 .
2017-05-24 12:10:47 -07:00
Vijay Menon
ad7f257f9b
Fix nullaware dynamic dispatch
...
Fixes #29610
R=leafp@google.com
Review-Url: https://codereview.chromium.org/2880103004 .
2017-05-15 20:47:10 -07:00
Vijay Menon
2375e5f9b5
Better error when force-compile fails
...
R=alanknight@google.com
Review-Url: https://codereview.chromium.org/2883443002 .
2017-05-12 17:21:15 -07:00
Jennifer Messerly
4c377076bf
fix #29585 , implement equality for tearoffs
...
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2873073002 .
2017-05-09 16:21:51 -07:00
Jennifer Messerly
811a9eed1d
Revert "Revert "fix #27256 , track type bounds for generic functions""
...
This reverts commit 3a23e604e2 .
The problem was unrelated to the CL; it appears to be a dart:async break of package:async.
In the meantime we have turned on --unsafe-force-compile to DDC's shapshotting step
Review-Url: https://codereview.chromium.org/2869733006 .
2017-05-09 14:20:25 -07:00
Alan Knight
3a23e604e2
Revert "fix #27256 , track type bounds for generic functions"
...
This reverts commit b58f826976 .
BUG=
Review URL: https://codereview.chromium.org/2870543005 .
2017-05-09 12:58:03 -07:00
Jennifer Messerly
b58f826976
fix #27256 , track type bounds for generic functions
...
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2867493002 .
2017-05-09 11:42:40 -07:00
Jacob MacDonald
fc0c45c790
update dependencies to use url style paths
...
BUG=
R=jmesserly@google.com
Review-Url: https://codereview.chromium.org/2860943003 .
2017-05-04 12:44:56 -07:00
Jennifer Messerly
5e82b8c2e9
fix #29530 , field metadata generation
...
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2861503002 .
2017-05-02 14:45:34 -07:00
Jennifer Messerly
eeb0e1d2ae
fix #27258 , don't allow dynamic set of a final field
...
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2847893002 .
2017-05-01 15:36:32 -07:00
Jennifer Messerly
c305d183c3
fix #29504 , dcall on object member when a temporary was involved.
...
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2848153002 .
2017-05-01 10:57:49 -07:00
Erik Corry
aa6353b6da
Dart SDK Spelling b, c, and d.
...
R=kmillikin@google.com
BUG=
Review-Url: https://codereview.chromium.org/2850783002 .
2017-05-01 08:28:10 +02:00
Vijay Menon
334373b1dc
Temporarily disable overlapping summary check
...
Turning this off to unblock the current roll. We'll try flipping the
flag internally and shaking out the last violators.
R=keertip@google.com
Review-Url: https://codereview.chromium.org/2853543002 .
2017-04-28 11:08:05 -07:00
Konstantin Shcheglov
8e76c78cce
Cache path -> URI mapping in SourceMapPrintingContext.
...
This improves DDC compiling DDC from 30 to 25 seconds.
R=jmesserly@google.com , vsm@google.com
BUG=
Review-Url: https://codereview.chromium.org/2839733003 .
2017-04-24 19:32:10 -07:00
Vijay Menon
75b7bea014
Snapshot DDC trained on itself
...
Note: path.canonicalize appears to normalize windows paths (c:/ vs c:\).
Fixes #29119
R=jmesserly@google.com , rnystrom@google.com
Review-Url: https://codereview.chromium.org/2836483002 .
2017-04-21 16:19:57 -07:00
Jennifer Messerly
d26bb56575
fix #27971 , implement generic function RTTI
...
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2832913003 .
2017-04-21 15:40:44 -07:00
Jacob Richman
7149b90c7c
Tighten up handling of JS types and add test.
...
Side effect of this:
Fix bug where helpers in js_mirrors were specifying that name had to have type String when it could really also be a JS Symbol as well.
Fix bug where top level JS interop members using the external keyword but no @JS keyword were not implemented.
Update js_typed_interop_test.dart so it can work in DDC.
Add regression test for jsify call with native function type arguments.
BUG=
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2827333003 .
2017-04-21 08:44:00 -07:00
Vijay Menon
21c38e6c8c
Various DDC fixes for windows
...
This gets most tests compiling and running on Windows.
Fixes #27450
Fixes #27797
Fixes #28752
R=jmesserly@google.com
Review-Url: https://codereview.chromium.org/2833633002 .
2017-04-20 11:30:57 -07:00
Vijay Menon
b98729503c
Fix ddc perf issue
...
This brings compilation time on large_class_declaration_test down from 30s to 4s. Just analysis is about 3.2s. (All #s without snapshotted tools.)
Fixes #29234
R=jmesserly@google.com
Review-Url: https://codereview.chromium.org/2834663002 .
2017-04-20 11:24:35 -07:00
Vijay Menon
1112ad24cc
Make conflicting summary check configurable
...
Not sure this is a great idea. DDC will go awry if multiple copies of
the same type exist. Can analysis or any other analyzer-based tool?
R=brianwilkerson@google.com , paulberry@google.com
Review-Url: https://codereview.chromium.org/2829493002 .
2017-04-20 09:20:08 -07:00
Jacob Richman
0dbb32f406
Run formatter on dev_compiler.
...
BUG=
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2830503002 .
2017-04-18 16:16:14 -07:00
Jacob Richman
b280a7803d
Dev compiler debugger related tweaks.
...
Optimize dynamic call tracking using random sampling.
Apply source maps to improve dynamic call tracking accuracy.
Dynamic calls within the sdk are now attributed correctly.
Fix bug formatting modules where we were incorrectly flagging them as JS.
BUG=
R=jmesserly@google.com , vsm@google.com
Review-Url: https://codereview.chromium.org/2811343002 .
2017-04-17 14:57:31 -07:00
Vijay Menon
a3d2e49198
Revert "Revert "Report error if the same uri appears in multiple summaries.""
...
Relanding after fixing package_bundle_reader_test.dart.
Note, original CL (already reviewed here: https://codereview.chromium.org/2781483007/ ) is patch set 1.
Test fix is patch set #2 .
R=brianwilkerson@google.com
Review-Url: https://codereview.chromium.org/2825503002 .
2017-04-17 10:11:21 -07:00
Vijay Menon
dcdccf4750
Revert "Report error if the same uri appears in multiple summaries."
...
This reverts commit 2afa21bb2c .
Breaking the bots.
TBR=jmesserly@google.com
BUG=
Review-Url: https://codereview.chromium.org/2821933002 .
2017-04-17 08:07:36 -07:00
Vijay Menon
2afa21bb2c
Report error if the same uri appears in multiple summaries.
...
Fixes #27025
R=brianwilkerson@google.com , jmesserly@google.com
Review-Url: https://codereview.chromium.org/2781483007 .
2017-04-17 07:32:59 -07:00
Jennifer Messerly
b76e2d67cf
fix #29346 , ensure all nodes are implemented by DDC's code generator
...
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2822633003 .
2017-04-14 10:10:50 -07:00
Alan Knight
04bb68bb09
Better DDC sourcemap generation for lambdas
...
This doesn't fix the entire problem, there's still a Chrome issue that it's not clear we can work around, but it helps some. https://bugs.chromium.org/p/chromium/issues/detail?id=676388
There are three distinct issues here affecting Chrome sourcemap usage for DDC programs with single-line lambdas.
1 - We may introduce a synthetic "as SomeType" in a parameter. The synthetic token ends up with a large negative length, from its offset to the beginning of the file, which can confuse sourcemaps.
2 - We have no entry for the blank line following the lambda. The devtools asks for the mapping from (selectedLine, 0) to (selectedLine +1, 0) and if there's no mapping for either it refuses to set the breakpoint. So this artificially forces the mapping from the last character on the line to be to the beginning of the next line instead.
3 - With a lambda we introduce a constructed Return JS node and make a block. Those nodes weren't getting annotated, so they had no source information.
BUG=
R=jmesserly@google.com
Review-Url: https://codereview.chromium.org/2815443003 .
2017-04-12 11:31:16 -07:00
Jennifer Messerly
8ada796a86
fix #29233 , final fields can be settable in a mock
...
also fix #29273 , user mixins can override native methods
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2803673007 .
2017-04-07 14:12:49 -07:00
Jennifer Messerly
247fc68d21
fix #29228 , let* precedence should match generated expression
...
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2804833002 .
2017-04-05 12:40:42 -07:00
Vijay Menon
aa3fba7d8d
Preserve async markers when parsing js_ast
...
Fixes #29252
R=jmesserly@google.com
Review-Url: https://codereview.chromium.org/2797873002 .
2017-04-05 12:13:22 -07:00
Jennifer Messerly
e4e7dffadb
fix #29182 , generate top level const fields lazily
...
This fixes an ordering issue, but also may help load time.
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2797443007 .
2017-04-04 16:18:46 -07:00
Jennifer Messerly
1c504f8945
Fix #28120 , strong mode allows field overrides
...
Fix #28119 , DDC supports field overrides without @virtual
Fix #28801 , devirtualize private fields in DDC where possible
Fix #28589 , stop supporting @virtual in strong mode
R=leafp@google.com , vsm@google.com
Review-Url: https://codereview.chromium.org/2781443003 .
2017-03-28 10:26:36 -07:00
Vijay Menon
50ceaa4c04
Fix for #29003
...
This is an alternative to the other CL. It just uses the result of
dart.mixin instead of declaring a new class. That preserves the assumption (at least at runtime) that the mixin class directly inherits from Object.
We were also not declaring interfaces for ClassTypeAliases.
R=jmesserly@google.com
Review-Url: https://codereview.chromium.org/2783443002 .
2017-03-27 16:06:13 -07:00
Kevin Moore
2340c8f6df
Clarify in dev_compiler docs the reason for the angular whitelist hack
...
Related to https://github.com/dart-lang/sdk/issues/27255
R=jmesserly@google.com
Review-Url: https://codereview.chromium.org/2772433002 .
2017-03-22 11:36:11 -07:00
Jennifer Messerly
132ddcaacf
fix errors and warnings in DDC
...
TBR=vsm@google.com ,jacobr@google.com
Review-Url: https://codereview.chromium.org/2768693003 .
2017-03-21 20:12:05 -07:00
Jennifer Messerly
f021a7019b
fixes #27586 , prefer downwards context type in generic inference
...
fixes #27625 , Object constraints were not tracked in inference
fixes #27933 , pin return type from downwards inference
We now prefer to pick the bound (lower or upper) that had some information on, and it also improves inference error messages somewhat (still a ways to go).
The way this works is we now have a type representing an unknown type: ?. We use ? when performing downward inference steps, instead of `dynamic`. This allows more accurate tracking of type constraints.
For example: given:
var x = await Future.wait([a, b]);
Future.wait<T>'s argument type is Iterable<Future<T>>. Since we didn't know T, we previously pushed down Iterable<Future<dynamic>>. The dynamic caused loss of information. Now we push down Iterable<Future<?>>, allowing us to infer the right type there.
R=leafp@google.com , vsm@google.com
Review-Url: https://codereview.chromium.org/2456803004 .
2017-03-17 16:59:56 -07:00
Jacob Richman
00dd9f26a6
use js_ast to more efficiently turn the JSON into a string.
...
js_ast will notice the string only contains double quotes so will enclose
it with single quotes.
Parsing a string appears to be a bit more efficient than parsing JSON.
BUG=
R=jmesserly@google.com
Review-Url: https://codereview.chromium.org/2757603005 .
2017-03-17 08:17:47 -07:00
Jacob Richman
9484ac8bdf
Format all dart dev compiler files
...
BUG=
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2752163002 .
2017-03-15 21:34:25 -07:00
Jacob Richman
b4828c39cf
Fix for bug when binding non-symbolized members on native classes
...
BUG=
R=vsm@google.com
Review-Url: https://codereview.chromium.org/2757503002 .
2017-03-15 18:56:04 -07:00