Commit Graph

43 Commits

Author SHA1 Message Date
Vijay Menon e9d03b4120 Forward native static methods
We don't generate these.  Rather than do that, this CL forwards to the
actual JS method instead.

This is the diff on the generated dart_sdk.js:

59732c59732

<     return html$.LengthValue._fromDictionary_1(dictionary_1);

---

>     return dart.global.LengthValue.fromDictionary(dictionary_1);

59894c59894

<     html$.MediaStreamTrack._getSources(dart.fn(value => {

---

>     dart.global.MediaStreamTrack.getSources(dart.fn(value => {

80232c80232

<     html$.Notification._requestPermission(dart.fn(value => {

---

>     dart.global.Notification.requestPermission(dart.fn(value => {

Change-Id: I9e857a808557e4702fb2b99aa518c25b49ff3db7
Reviewed-on: https://dart-review.googlesource.com/29020
Reviewed-by: Terry Lucas <terry@google.com>
Commit-Queue: Vijay Menon <vsm@google.com>
2017-12-13 13:38:36 +00:00
Bob Nystrom f5580e5408 Ensure the library debugger name string is properly escaped.
On Windows, this string may contain backslash path separators.

Change-Id: I881ef63ce44af8af1e5c2971d72c260f7f42efc3
Reviewed-on: https://dart-review.googlesource.com/27406
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Bob Nystrom <rnystrom@google.com>
2017-12-07 21:52:01 +00:00
Vijay Menon 416b55437a Limit renaming on external members
Fixes #31489

Change-Id: Iece82eaf0bcd83dfc6f2335214b084b0d9e06de0
Reviewed-on: https://dart-review.googlesource.com/25180
Reviewed-by: Jacob Richman <jacobr@google.com>
Commit-Queue: Vijay Menon <vsm@google.com>
2017-12-05 16:17:12 +00:00
Alan Knight cce0993482 Add a sourcemap entry for this, fixes hovering over this._field in debugger
I don't really understand how this fixes it, but it seems to, and it doesn't
cause any test regressions.

Bug:
Change-Id: I6187c41cd211cd41bb90cddf604d8c09ad458342
Reviewed-on: https://dart-review.googlesource.com/25505
Reviewed-by: Vijay Menon <vsm@google.com>
2017-12-04 18:29:23 +00:00
Vijay Menon f70f544e57 Fix source map entries for field accesses
This improves:
- stepping through assignment expressions in devtools
- hover on fields when on lhs

Change-Id: Ifee0d7b0fe2de65494182f6818b9dbcd0a79087d
Reviewed-on: https://dart-review.googlesource.com/21820
Commit-Queue: Vijay Menon <vsm@google.com>
Reviewed-by: Alan Knight <alanknight@google.com>
2017-11-17 23:38:45 +00:00
Leaf Petersen 01f9fbd29a Name mixin classes to workaround V8 bug.
V8 is inferring arbitrarily large names (many kilobytes each) for
anonymous functions in certain conditions.  Naming top level classes
works around this.

See also: https://bugs.chromium.org/p/v8/issues/detail?id=7069

Bug:
Change-Id: I7bce1701ca81c12bb3cb970b959bc9512592975d
Reviewed-on: https://dart-review.googlesource.com/20261
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Leaf Petersen <leafp@google.com>
2017-11-10 22:47:58 +00:00
Vijay Menon 6bf9d357b2 Fix declaration order for mixins
Fixes #31290

Bug:31290
Change-Id: I9f1874cf0b9173851655c0b1a2641e06b78a858a
Reviewed-on: https://dart-review.googlesource.com/19024
Commit-Queue: Vijay Menon <vsm@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2017-11-08 00:32:10 +00:00
Jenny Messerly 384678e4b3 port DDC's code_generator to Kernel
Change-Id: I2b6a5f56a69f5d3a965aefc3f8d4550d5940ac5a
Reviewed-on: https://dart-review.googlesource.com/17980
Reviewed-by: Vijay Menon <vsm@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2017-11-04 22:17:56 +00:00
Jenny Messerly 4705eecde1 fix async recursive calls
Change-Id: I5dcc2d030309ee4a8451ccf6313a9559b84a0aaa
Reviewed-on: https://dart-review.googlesource.com/18421
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Jenny Messerly <jmesserly@google.com>
2017-11-02 21:06:09 +00:00
Vijay Menon 48cfab5deb Fix source maps for better dev tools hover
Change-Id: Id706a1c5817f174a3b512e5c7e2f29599b078eb8
Reviewed-on: https://dart-review.googlesource.com/17700
Commit-Queue: Vijay Menon <vsm@google.com>
Reviewed-by: Jenny Messerly <jmesserly@google.com>
2017-10-31 22:09:10 +00:00
Jenny Messerly 9bd19a49da Fixing renaming on top-level member
Fixes #31117

Change-Id: I7210ceb505963a547e244ae743a99b8688af2e48
Reviewed-on: https://dart-review.googlesource.com/14240
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Jenny Messerly <jmesserly@google.com>
2017-10-28 01:29:38 +00:00
Jenny Messerly 0aa6801f8a fix function type printing in DDC to match VM
Change-Id: I2e15d34c8a40d9ed86b44f5c3db7052fb7c8a783
Reviewed-on: https://dart-review.googlesource.com/14780
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2017-10-27 22:35:20 +00:00
Jenny Messerly 77775c5292 Unroll mixins in DDC, so each mixin application is generated
This is for compatibility with Kernel, as well as fixing several bugs,
and generally being a more robust architecture.

This may also perform better than the current design.

Notable fixes include several issues around deferred classes.

Change-Id: I1b6f44ebdf6304b10b47d19026156a25e04146ef
Reviewed-on: https://dart-review.googlesource.com/16337
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2017-10-27 04:26:44 +00:00
Jenny Messerly 07f189703a Optimize DDC's async/await code to avoid unnecessary zone registration
Other improvements:
* avoids an extra intermediate future in `async`, and unnecessary type tests
* uses optimized type tests instead of older isSubtypeOf
* avoids an extra closure for async/async*
* avoids Function.apply for async/async*/sync*
* avoids an extra cosure for sync* if the arguments are not modified

Change-Id: I897708387fce59a97696f05b01cc668f1043fe5c
Reviewed-on: https://dart-review.googlesource.com/16332
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2017-10-27 01:07:04 +00:00
Leaf Petersen dd17a4c7f7 Alpha-vary generic function types before performing inference.
Generic function types were not previously renamed before using them
for inference, which resulted in capture problems when doing inference
on recursive generic method invocations.

Fixes #30980

Bug:
Change-Id: I1c610606dd65d86735cb615e077d720066a85e1a
Reviewed-on: https://dart-review.googlesource.com/15040
Commit-Queue: Leaf Petersen <leafp@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Jenny Messerly <jmesserly@google.com>
2017-10-19 19:26:07 +00:00
Jenny Messerly ef3ac59dd6 add a dartdevk command that compiles with the new front end
This ports a fairly large part of DDC's Analyzer-based code generator,
however most nodes are not supported yet.

The goal is to preserve all functionality of code that was ported,
except for deprecated features (e.g. mirrors, fuzzy arrows, libraryRoot).

Change-Id: I3b10d5773c7c10a740fa336720243b03c6b82529
Reviewed-on: https://dart-review.googlesource.com/10705
Reviewed-by: Vijay Menon <vsm@google.com>
2017-10-16 21:13:52 +00:00
Leaf Petersen 1b8f4ac1e7 Optimize DDC private runtime library files.
Eliminate numerous type checks not needed in strong mode.  Use
private nullability annotations instead of inline JS to mark known
non-null variables, and to make the compiler generate null checks
for null checked variables. Use nullability annotations and code refactoring to
remove redundant null checks and to move checks out of loops.

BUG=
R=jmesserly@google.com

Review-Url: https://codereview.chromium.org/2994203002 .
2017-08-23 10:28:45 -07:00
Bob Nystrom 7b17a3dd01 Use "|" as the separator between module path and name. (#30106)
* Use "|" as the separator between module path and name.

":" is already a path character in Windows. This is why the
dartdevc tests aren't working on Windows. Because they try to do:

-sC:/some/path/blah.dart:blah

And it splits at the first ":". Oops.

* Switch to "=" for separating module path from name.

It looks a little funny when used with "--summary=", but it works fine
and is very unlikely to be used for anything else on any platform
(since we already use it as the separator between arg name and value).
2017-07-07 17:13:43 -07:00
Bob Nystrom 0b2c9b048d Dynamically load packages for dartdevc tests in test.dart.
This involves a few pieces:

- Add support to DDC for specifying the module name associated with a
  given summary. This lets test.dart invoke DDC using summaries in the
  build directory outside of the directory containing the test itself.

- Add support to the build scripts for building the packages. This adds
  a new GN target that builds everything needed to run test.dart with
  dartdevc. In particular, it invokes build_pkgs.dart to compile the
  relevant packages to JS+summary so that the tests can use them.

  This requires some changes to build_pkgs.dart so it can output to a
  given directory.

- In test.dart, when tests are compiled with dartdevc, pass in the
  summaries for the packages so they don't get compiled in. Then, when
  the test is run, configure require.js with the right paths to their
  JS files so they can be loaded.

  I also removed a bunch of unneeded buildDir parameters being passed
  around the various CompilerConfiguration class methods now that they
  have direct access to the configuration.

Fix #29923.

R=vsm@google.com, whesse@google.com, zra@google.com

Review-Url: https://codereview.chromium.org/2955513002 .
2017-06-29 13:45:57 -07:00
Dan Rubel 55ef6e193c support --options flag and other analysis options flags in DDC
This updates DDC options processing to support:
* --options /path/to/analysis/options/file.yaml
* --enable-strict-call-checks
* --supermixin
* --no-implicit-casts
* --no-implicit-dynamic

As well as general refactoring and cleanup of DDC options processing

R=vsm@google.com

Review-Url: https://codereview.chromium.org/2598593003 .
2017-01-04 18:15:21 -05:00
Dan Rubel 13bd1ad0bf DDC/AnalyzerCLI common cmdline option processing
Refactor DDC and Analyzer CLI command line option processing
to use common createContextBuilderOptions method
and ContextBuilderOptions to hold common options.

R=brianwilkerson@google.com

Review-Url: https://codereview.chromium.org/2584293003 .
2016-12-19 16:24:20 -05:00
danrubel a105d89e2b refactor DDC and Analyzer CLI parser option declaration
R=brianwilkerson@google.com

Review-Url: https://codereview.chromium.org/2580933002 .
2016-12-15 14:10:09 -05:00
danrubel 1d4334739c update DDC to use analyzer extractDefinedVariables
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2578463004 .
2016-12-14 20:43:53 -05:00
Dan Rubel f8cbc1423b add verbose option to show hidden args
R=vsm@google.com

Review-Url: https://codereview.chromium.org/2569783003 .
2016-12-13 09:46:15 -05:00
Dan Rubel f109556fb7 remove unused DDC --package-paths options and MultiPackageResolver
R=vsm@google.com

Review URL: https://codereview.chromium.org/2527433002 .
2016-11-22 11:20:23 -05:00
Jennifer Messerly 365d9a000a fix #27784 and fix #27785, fromEnvironment constants in DDC
R=vsm@google.com

Review URL: https://codereview.chromium.org/2503803004 .
2016-11-16 12:20:43 -08:00
Jennifer Messerly 2e8d011ca3 fix #27607, add dev_compiler summary to the SDK and move JS files
R=vsm@google.com

Review URL: https://codereview.chromium.org/2474523003 .
2016-11-01 18:17:43 -07:00
Brian Wilkerson 96750cd5cb Split out options from ContextBuilder
R=scheglov@google.com

Review URL: https://codereview.chromium.org/2425423009 .
2016-10-20 11:03:11 -07:00
Vijay Menon 6144c10409 Fix analyzer error
Analyzer was complaining that final field was not set.  The other constructor
does set, so doing so here as well.  We may be able to remove this flag soon,
but I see downstream uses.

TBR=jmesserly@google.com

Review URL: https://codereview.chromium.org/2382463002 .
2016-09-28 10:21:15 -07:00
Vijay Menon 68d2121fd0 Use .packages instead of pubspec.yaml
This runs tests against sdk versions of packages instead of whatever
random version we have in pubspec.yaml.

Travis may be unhappy with the lack of a pubspec.yaml.  Here's the try:

https://travis-ci.org/dart-lang/sdk/builds/163270204

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

Review URL: https://codereview.chromium.org/2371113004 .
2016-09-28 09:49:31 -07:00
John Messerly aa85651820 fix #27403, use AST summaries in DDC
R=scheglov@google.com

Review URL: https://codereview.chromium.org/2353133004 .
2016-09-20 17:55:09 -07:00
Brian Wilkerson 1f10422fd5 Update uses of deprecated API in ddc
R=jmesserly@google.com, scheglov@google.com

Review URL: https://codereview.chromium.org/2338883002 .
2016-09-13 11:44:38 -07:00
Vijay Menon 2bc19eaa64 Remove deprecated code
Updating to the latest analyzer.

R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org/2289263004 .
2016-08-30 15:39:38 -07:00
Vijay Menon d90d172d8b Remove deprecated DirectoryBasedDartSdk
We're getting bot failures due to analyzer deprecation messages.

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

Review URL: https://codereview.chromium.org/2258873002 .
2016-08-18 07:47:45 -07:00
John Messerly 36273565e3 fixes #610, incorrect help output
R=nweiz@google.com

Review URL: https://codereview.chromium.org/2244703003 .
2016-08-12 15:06:41 -07:00
Priscilla Lee d2ec49d1f7 Working compiler in browser.
BUG=
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/2183603003 .
2016-07-29 09:18:13 -07:00
John Messerly 0f29ee9618 Remove DDC custom error list now that strong mode analyzer handles it
R=leafp@google.com

Review URL: https://codereview.chromium.org/2102053003 .
2016-07-27 13:10:57 -07:00
John Messerly 5c67ae3bcc Use trackCacheDependencies for performance speedup
R=scheglov@google.com

Review URL: https://codereview.chromium.org/2059253003 .
2016-06-13 11:27:03 -07:00
John Messerly f0517c4deb Enable strong mode in DDC, fix all warnings/errors
R=leafp@google.com

Review URL: https://codereview.chromium.org/2016483002 .
2016-05-26 11:13:32 -07:00
Vijay Menon d15a603538 Allow the SDK to be set via a summary file
The generated summary file matches the generated DDC sdk - i.e., it
does not include dart:io.  I modified the codegen_tests to the summary
and had to prune the parts of unittest that relied on dart:io.

Paul / Konstantin: can one of you please look at the summary part?

Bob: can you please look at the unittest changes?

R=rnystrom@google.com, scheglov@google.com

Review URL: https://codereview.chromium.org/1982853002 .
2016-05-16 17:10:08 -07:00
Sigmund Cherem b163c86585 Make file-paths absolute before providing them to the CustomUrlResolver
R=jmesserly@google.com

Review URL: https://codereview.chromium.org/1931553003 .
2016-04-28 09:07:28 -07:00
John Messerly 4e958f5f54 Support reading summaries in DDC
R=sigmund@google.com

Review URL: https://codereview.chromium.org/1893603003 .
2016-04-15 13:52:18 -07:00
John Messerly 0c148ecef4 Implement modular compilation
Highlights
* compile one module at a time
* use summaries to speed up compiles
* use command runner so we can add more commands later
* some long needed renames and file organization
* various other technical debt has been addressed

Lowlights
* lost node.js runner/tests (node output format still supported)
* possibly lost some closure support/workarounds (format still supported)
* needs more end-to-end tests of the new system

R=vsm@google.com

Review URL: https://codereview.chromium.org/1879373004 .
2016-04-14 11:28:12 -07:00