Commit Graph

1365 Commits

Author SHA1 Message Date
Sigmund Cherem 8c0f5747a0 Add build_integration package and move multi_root_file_system there.
This is following the design discussion we had a few months ago.

Change-Id: I48b2e82af33d10b9cd1e599e1b3a4e8e419417c8
Reviewed-on: https://dart-review.googlesource.com/56035
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-05-22 20:09:24 +00:00
Jenny Messerly 21fbf7d767 fix #33103, switch dartdevk to use Kernel nSM stubs
Change-Id: I383b36809b1e8b43f9f7a36ca84d8db5da7cef67
Reviewed-on: https://dart-review.googlesource.com/55266
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-05-18 23:43:58 +00:00
Jenny Messerly 393a47441f fix #33138, local class name should not conflict with inline-JS in SDK
Also this removes the workaround for dart:html that used a RegExp to
attempt to match inline-JS code that might trigger the problem.

Change-Id: I74b447928aaeaca43b3a9241d42526c284dbeffa
Reviewed-on: https://dart-review.googlesource.com/55504
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Jenny Messerly <jmesserly@google.com>
2018-05-16 22:04:05 +00:00
Jenny Messerly 29afbf8f12 Implement constant evaluation for dartdevk
This builds on the VM's support for constants, and brings dartdevk to
parity with dartdevc. Also, constants are computed with arithmetic
operations that match runtime behavior (JS numbers).

Constants are limited in some cases right now: when building outline
kernel files (via pkg/dev_compiler/tool/build_pkgs.dart), constant field
initializers are not preserved, and this fact is not recorded, making
these fields appear to be implicitly null. dartdevk will recognize this
and avoid inlining the constant in these cases.

Change-Id: I5e6d95ccc32799da3bec1667ed16078a1a87d0bd
Reviewed-on: https://dart-review.googlesource.com/53121
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-05-15 06:04:18 +00:00
Jenny Messerly 7359d4ee10 fix #33019, noSuchMethod should receive default values for optional args
Change-Id: If692a68d20c88139a88de8c9701314ae53becd03
Reviewed-on: https://dart-review.googlesource.com/54340
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2018-05-12 04:18:40 +00:00
Jenny Messerly 147bd68ad3 disable dart:mirrors in DDC unless emit-metadata is set
fixes #32294

Change-Id: I5fde124a9da61e512ea0aa41cc84574e27a50d48
Reviewed-on: https://dart-review.googlesource.com/53163
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-05-11 23:13:30 +00:00
Jenny Messerly e998c56a72 fix #32980, better error messages for type errors at runtime
Change-Id: I4666c82b706dcaa963f4acf1c1c5d770e0ab1c6a
Reviewed-on: https://dart-review.googlesource.com/54101
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-05-10 00:13:27 +00:00
Jenny Messerly 0fde28b2dd fix #31393, port utf8 decoder optimizations from dart2js to ddc
The dart2js changes were made in:
https://github.com/dart-lang/sdk/commit/3836c70a8150bc33a695788deee346b940b40769

Change-Id: I5476c10e3734fa8ab0c027dd258b2fa5ef43287b
Reviewed-on: https://dart-review.googlesource.com/54529
Reviewed-by: Vijay Menon <vsm@google.com>
2018-05-10 00:06:12 +00:00
Jenny Messerly d87642df9c fix #33036, dartdevk now uses CFE for patching its SDK
Change-Id: I65e7df5373c359019b4b7c5714ae71a80d60df13
Reviewed-on: https://dart-review.googlesource.com/53682
Reviewed-by: Vijay Menon <vsm@google.com>
2018-05-07 22:01:52 +00:00
Jenny Messerly cbca4006f8 fix #30907, add library constants for all SDK libraries
Change-Id: I34669398e9bd7dfb2c9c5130279e88c772b3a5b3
Reviewed-on: https://dart-review.googlesource.com/53162
Reviewed-by: Vijay Menon <vsm@google.com>
2018-05-02 19:33:36 +00:00
Jenny Messerly 2df8db486d fix #30184, private symbols in DDC
Change-Id: I77fe11b49b3f19b0241c8e08c313cb051c4d019b
Reviewed-on: https://dart-review.googlesource.com/52281
Reviewed-by: Vijay Menon <vsm@google.com>
2018-04-30 21:20:40 +00:00
Jenny Messerly bd76221d58 fix #31489, JS interop to prototype getter in dartdevk
Change-Id: I6a3e1e25e0113bfcc49de19f250c23027ea3a69f
Reviewed-on: https://dart-review.googlesource.com/52865
Reviewed-by: Vijay Menon <vsm@google.com>
2018-04-27 00:17:29 +00:00
Jenny Messerly f6db874416 fix some dartdevk behavior to match dartdevc in more cases
Most notably this fixes mixins, but a few others issues were discovered
as well. Fixes #32428.

This gets dartdevk closer to producing a valid Dart SDK file

Change-Id: I2973baef279d6b71ed29b97bec758b2d3209c275
Reviewed-on: https://dart-review.googlesource.com/51760
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-04-26 01:13:52 +00:00
Jenny Messerly a3e8a6db98 fix DDC mocks for undefined optional parameters
This reverts part of https://dart-review.googlesource.com/c/sdk/+/48940
while keeping the fix for named arguments. The cleaner fix from that CL
doesn't work for some obscure uses of mocks and optional parameters and
interop scenarios.

Change-Id: I7d7e7ed50574401a70f720a1b4c15578854b2297
Reviewed-on: https://dart-review.googlesource.com/51422
Reviewed-by: Vijay Menon <vsm@google.com>
2018-04-17 18:18:47 +00:00
Jenny Messerly e22e3a1884 fix DDC's REPL support functions
these are used by the debugger extension code

Change-Id: If5b9d1aca38fa2f120580d2dbfd02523c6eaa5cf
Reviewed-on: https://dart-review.googlesource.com/51440
Reviewed-by: Vijay Menon <vsm@google.com>
2018-04-17 18:15:49 +00:00
Jenny Messerly 5474ce01d5 fix DDC lazy function tagging (used for mirrors) and tearoffs
It's possible for `dart.fn` (tearoff) to be called after `dart.lazyFn`,
so lazyFn needs to support a setter.

Change-Id: Iaba1a1d6145d94501c77de6a6a2c107eac2d92d7
Reviewed-on: https://dart-review.googlesource.com/51441
Reviewed-by: Vijay Menon <vsm@google.com>
2018-04-17 18:03:28 +00:00
Jenny Messerly 6de5da1f58 fix #32649, add an option to disable asserts in DDC/K
Change-Id: I1cd4c3a568fb2721be04199ed404835f949e1084
Reviewed-on: https://dart-review.googlesource.com/51360
Reviewed-by: Vijay Menon <vsm@google.com>
2018-04-16 20:17:30 +00:00
Jenny Messerly 5dd283e783 fix #32270, DDC tests can now work with preview-dart-2
Also removes unsafe-force-compile for DDC's selfhost during snapshot
build, and fixes DDK's snapshot to train by selfhosting.

This does not enable preview-dart-2 for DDC/DDK's snapshots or on
the buildbots yet.

Change-Id: Id0b395eb67677d0e69dc5e827536a9039bc95816
Reviewed-on: https://dart-review.googlesource.com/51206
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2018-04-16 07:03:07 +00:00
Jenny Messerly 782cfe04d1 fix #32756, DDC dynamic calls to generics will work with emit-metadata
Also fixes DDK to disable metadata by default.

Change-Id: Ic5fd637c1048cb5ccfd035b8e0dd07b0985c1364
Reviewed-on: https://dart-review.googlesource.com/51040
Reviewed-by: Leaf Petersen <leafp@google.com>
Commit-Queue: Jenny Messerly <jmesserly@google.com>
2018-04-13 03:01:06 +00:00
Jenny Messerly 8613938e33 fix DDK to track mock setters correctly.
Also fix nosuchmethod_forwarding_arguments_test to work in dart4web compilers

Change-Id: If19bf74561c716845e24862c2400e0ab5cfc135c
Reviewed-on: https://dart-review.googlesource.com/48891
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2018-04-13 00:27:26 +00:00
Jenny Messerly 2ddc5495f8 Reduce DDC signature overhead
- changes top-level/static method tearoffs to work similar to instance
  method tearoffs (attach typeinfo at the tearoff location).
- changes getters/setter signatures to a more compact representation.
- fixes incorrect reification of tearoffs in DDC Kernel backend,
  causing a couple of tests to pass after the changes.
- module startup should also be faster, because we avoid using
  `defineLazyProperty` for signatures.

Change-Id: I9d1705adcd5101a99f0599120cb927396eae778a
Reviewed-on: https://dart-review.googlesource.com/48455
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2018-04-12 02:22:09 +00:00
Jenny Messerly 8df4042b2d fix #32088, DDC calls nSM for signature mismatch
also fixes #32653, DDC should call nSM for unexpected named arguments

Change-Id: Id1848cd5af87ac615fd96fbf2784a72f9286801d
Reviewed-on: https://dart-review.googlesource.com/48940
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
2018-04-12 00:29:59 +00:00
Jenny Messerly 1eddbffe2e fix #32754, improve correctness/perf of operator []= with return
Change-Id: I80f5c7aec5606a415d8cba8c001b2aca24d04a8e
Reviewed-on: https://dart-review.googlesource.com/49581
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-04-05 19:08:07 +00:00
Jenny Messerly e064e5156e fix DDC to provide a library on temporary variables
When enclosingElement is `null` we fail to find the library. There are
several places in the compiler that depend on having a library available
for resolved elements.

Change-Id: I2746110d8caed97733c73e89e6baef3e96882563
Reviewed-on: https://dart-review.googlesource.com/49544
Reviewed-by: Vijay Menon <vsm@google.com>
2018-04-04 20:41:26 +00:00
Jenny Messerly b07a4bc264 improve deduping of cached types in DDC/K
This works around broken FunctionTypeImpl.== in Analyzer. Also
makes DDK's type naming heuristic more consistent with DDC.

Change-Id: I09527fad681c3fdc6c66654e572e9b03c57491bd
Reviewed-on: https://dart-review.googlesource.com/37120
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Jenny Messerly <jmesserly@google.com>
2018-04-04 00:37:21 +00:00
Jenny Messerly a4c5607281 fix #32594, debugger() will work even if dart_sdk.js is blackboxed
Change-Id: I14b46939dbc1670610913e1a14c7045569601f5e
Reviewed-on: https://dart-review.googlesource.com/48824
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Jenny Messerly <jmesserly@google.com>
2018-04-04 00:24:11 +00:00
Jenny Messerly 60630ed80f fix #30540, define dart.library.mirrors and isolate false in DDC
Change-Id: I0d26d32724096bfbebd53f4a0adcbbd9194cb8ec
Reviewed-on: https://dart-review.googlesource.com/48885
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Jenny Messerly <jmesserly@google.com>
2018-03-30 19:16:05 +00:00
Jenny Messerly bed5debbeb Callable object support in Analyzer and DDC.
Fixes #32156
Fixes #32157
Fixes #32426

This also fixes `implements Function` so it has no effect in Dart 2
(it is ignored for the purposes of subtyping.)

Change-Id: Ibec9c77cd516b8b97fef68a579998598d0acf8c6
Reviewed-on: https://dart-review.googlesource.com/45141
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-03-30 18:14:55 +00:00
Jenny Messerly c9e9c1d8e9 Remove dart:isolate runtime support in DDC
This disables most runtime features of dart:isolate, similar to dart:io.

For now, this supports `new ReceivePort()` and `ReceivePort.close` as
those are used by async tests to keep the Dart VM alive. Those are
no-ops in DDC. Also removes most of dart:_isolate_helper, except for
the JS API that's used to bootstrap DDC `main()`.

Change-Id: I84eab6cd39d05a70a6afe982e952076ddaaa8c0f
Reviewed-on: https://dart-review.googlesource.com/45754
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-03-28 19:42:08 +00:00
Jenny Messerly 192b4621ba Fix DDC shadowing bug with named arguments and async functions.
Change-Id: I4c01ab03bc02d0e533b6d27d43e824aad5d32fea
Reviewed-on: https://dart-review.googlesource.com/48458
Reviewed-by: Vijay Menon <vsm@google.com>
2018-03-27 00:34:46 +00:00
Jenny Messerly a914cac65e fix #32481, DDK signatures for mock members induced by nSM
This bug prevented various DDK features from working correctly at
runtime, such as tearoffs, dynamic call checking, generic methods, and
parameter type checks.

This was fixed for DDC in https://dart.googlesource.com/sdk/+/40738b8884e584f8b6fce26b71e9692c0067db18

Change-Id: I91fd12b3c167341c692d8d3e7ad2217dd78d2950
Reviewed-on: https://dart-review.googlesource.com/45964
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-03-27 00:25:32 +00:00
Jenny Messerly d9878ae0da fix regression in DDC handling of top-level field named 'name'
Also refactors the code to make this sort of issue less likely.

Change-Id: Iff72e53720ba78e84c3d219e69ccd0d6a47c09a0
Reviewed-on: https://dart-review.googlesource.com/47188
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-03-20 00:49:58 +00:00
Peter von der Ahé 4f2bdff90b Rename Program to Component
Change-Id: I1a3cc03fba9783807fa637a9d42fdbad68ee7686
Reviewed-on: https://dart-review.googlesource.com/31040
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
2018-03-15 12:22:23 +00:00
Kevin Millikin 65b19ffa3c Translate asserts in the VM-specific async translation
Translate assert statements in async functions.  The translation of
the condition subexpression can produce a sequence of statements that
have been hoisted out of it.  These need to be guarded so they are
executed only when asserts are enabled.

For this purpose, we introduce an AssertBlock.  The semantics of the
assert block:

assert { s0; ...; sn; }

is the same as:

if (assertsEnabled) { s0; ...; sn; }

where assertsEnabled is a more primitive nullary expression that is
true iff. assertions are enabled.  We chose not to encode this using a
construct like assertsEnabled because (1) we would have to support it
appearing as an arbitrary expression which we don't currently need
and (2) it requires deeper pattern matching to detect and skip the
guarded code when desired.

The translation is more complicated because if there is a message
subexpression in an assert, it is conditionally evaluated only if the
assert's condition is false.

Fixes https://github.com/dart-lang/sdk/issues/28498

Change-Id: I0912a57104ede3160533e49f65b6fb79b76f1500
Reviewed-on: https://dart-review.googlesource.com/46442
Commit-Queue: Kevin Millikin <kmillikin@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2018-03-14 19:41:09 +00:00
Jenny Messerly 40738b8884 fix #32481, generate signatures for mock members induced by nSM
This bug prevented various DDC features from working correctly at
runtime, such as tearoffs, dynamic call checking, generic methods, and
parameter type checks.

Change-Id: I02cd27abbcb1d5f42b9d4ac504c7dd8bc80c866a
Reviewed-on: https://dart-review.googlesource.com/45960
Reviewed-by: Vijay Menon <vsm@google.com>
2018-03-10 01:11:23 +00:00
Vijay Menon 0b48112d3e Fix nsm forwarding bug
DDC was generating forwarders to static methods in interfaces.  (DDK was fine.)

Change-Id: Ic8ac2b7543d115cb06f215ffc7ebd0a4e7895b70
Reviewed-on: https://dart-review.googlesource.com/45860
Commit-Queue: Vijay Menon <vsm@google.com>
Reviewed-by: Jenny Messerly <jmesserly@google.com>
2018-03-09 21:50:28 +00:00
Jenny Messerly 5c94ec7b43 avoid generating unused constructors in dart:html
Change-Id: I9de5d3ce68e7b4ae1873fbfa3eb96383b6b34460
Reviewed-on: https://dart-review.googlesource.com/13640
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-03-09 00:46:47 +00:00
Jenny Messerly dab7da78cd fix implicit casts in DDC
There are a few bug fixes here as well. Most notably, `.name.name`
instead of `.name` in DDK's analysis of virtual accessors. DDC/K's
handling of spread arguments in JS interop was also fairly broken
(it was generating a RestParameter instead of Spread). There's
also a lot of cleanup in js_ast as well, to make it a bit more
type safe.

Change-Id: Ia5333179e6dd0a62f20ce64a2b2b8bedf2ed7c49
Reviewed-on: https://dart-review.googlesource.com/44700
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-03-07 01:26:21 +00:00
Jenny Messerly 1b9b3453de fix DDC ES6 module export names, part of #32272
We use renamable variables for Dart libraries, this ensures we still
export it with the correct name.

Change-Id: I96dc161e33d265c0ffbd07f8d642629504dffe62
Reviewed-on: https://dart-review.googlesource.com/42892
Commit-Queue: Jenny Messerly <jmesserly@google.com>
Reviewed-by: Vijay Menon <vsm@google.com>
2018-03-07 01:03:01 +00:00
Vijay Menon 39c2fc00e8 Optimize forwarding calls in string/num/bool
This generates string.length instead of string[dartx.length].  Will
do same kernel side if this looks good.

Change-Id: I1fed3ca3febfa441ba36a0be34d06ab9e2e103c8
Reviewed-on: https://dart-review.googlesource.com/44280
Commit-Queue: Vijay Menon <vsm@google.com>
Reviewed-by: Jenny Messerly <jmesserly@google.com>
2018-03-01 03:55:16 +00:00
Devon Carew aac3b7a3c1 Address two analyzer warnings.
Change-Id: Idec60e040785b8967c024557f15dc28839287a94
Reviewed-on: https://dart-review.googlesource.com/43540
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Devon Carew <devoncarew@google.com>
2018-02-23 19:42:58 +00:00
Jenny Messerly 12a3378a49 fix #27305, DDC's default help should be simple
This moves more options to verbose help (`-h -v`) similar to dart2js and VM.

Change-Id: I7d3d9525543e26e55c2d1853e8c32722784c41d4
Reviewed-on: https://dart-review.googlesource.com/42881
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Jenny Messerly <jmesserly@google.com>
2018-02-21 23:49:42 +00:00
Jenny Messerly 2ba564fa07 Avoid Analyzer isInSdk in DDC to work around #31045
We were avoiding it in most cases, but a few slipped in.
Also refactors a few `uri.toString() == value` to test the scheme and
path, avoiding the expensive `Uri.toString()` call.

Change-Id: I7500a1fa9139b0cc0f2d5bd6d899f6563ec402b8
Reviewed-on: https://dart-review.googlesource.com/42463
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Jenny Messerly <jmesserly@google.com>
2018-02-21 18:33:31 +00:00
Jenny Messerly 23f9f269a7 fix #32217, library prefixes can now be hovered in DDC expressions
For example, hover now works on `async` in `async.scheduleMicrotask`:

    import 'dart:async' as async;
    main() {
      async.scheduleMicrotask(() { print('hi'); });
    }

This does not change the import line or types, as neither of those
currently supports hover.

Change-Id: I4d9d61fb4e67ebda02cc6c1ce982b35b31d799bc
Reviewed-on: https://dart-review.googlesource.com/42086
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Vijay Menon <vsm@google.com>
2018-02-21 14:08:26 +00:00
Jenny Messerly c9d2d5ba36 fix #32209, hover on cascades in DDC
Also improves hover on instance creation, so the constructor can be
hovered/jumped to.

Change-Id: Ie05c6e8cf4b98b334aba31be80bbe97a56d2079e
Reviewed-on: https://dart-review.googlesource.com/42084
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Jenny Messerly <jmesserly@google.com>
2018-02-21 04:35:44 +00:00
Jenny Messerly 0e4d4b3116 fix #32210, hover on top-level/static fields
Change-Id: Ied71cbaeaffc69b292549b600426e06de525048a
Reviewed-on: https://dart-review.googlesource.com/42085
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Jenny Messerly <jmesserly@google.com>
2018-02-20 19:26:46 +00:00
Jenny Messerly 6ae0c47649 skip field initializers in DDC when they have no visible effect
We already do this in most cases when we have a constructor initializer
and the field initializer is side effect free (e.g. implicit null or a
literal). But `this.` fields were not recognized as being initialized
explicitly by the constructor.

This is already working in DDC+Kernel (because `this.` parameters are
desugared).

Change-Id: I2af1a71681451adf00c1807b2c41dad874a9465a
Reviewed-on: https://dart-review.googlesource.com/41961
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Jenny Messerly <jmesserly@google.com>
2018-02-20 18:48:45 +00:00
Jenny Messerly 2d851eb444 fix #32083, improve hover and stepping for DDC source maps
This change improves DDC/DDK source maps:
- fix Analyzer backend step locations to pass all of the tests
  Kernel was passing. Also improves breakpoints and code coverage.
- fix Analyzer backend to mark hover spans where possible, such as
  fields, parameters, locals, `this`, properties, methods, etc.
- refactor DDC/DDK backends to emit source locations, rather than
  pointers to Analyzer/Kernel tree nodes.
- unify/simplify source_map_printer between Analyzer/Kernel backends.
- source_map_printer understands JS expression nesting, marking the
  innermost JS expression offset corresponding to a given Dart offset.
  This preserves hover tooltips, even for expressions with implicit
  coercions (e.g. `dart.test(x)`)
- source_map_printer understands that JS end-of-function markings need
  to be before the closing brace.
- merge _visitAndMarkExpression and _visitExpression to simplify
  Analyzer & Kernel backends.
- fix test expectations where the column location was too specific.
- adds a message to the stepping test runner to help future debugging.
- removes optional destructuring support from Analyzer backend. This
  was unused/untested and added complexity. Instead we should decide
  if/when to fully switch to destructuring, and then do so.

Change-Id: Ic47b4e21447fffc8fb1809b7bf8ffceeeb61b43e
Reviewed-on: https://dart-review.googlesource.com/42028
Reviewed-by: Vijay Menon <vsm@google.com>
2018-02-17 21:25:56 +00:00
Jenny Messerly b371ed5db3 fix #32140, locals shadowing constructor/catch params
This gets DDC and DDK to handle the block body of functions/methods in a
similar way, eliminating it from the JS if it is not necessary, and fixes
a bug in DDC for cases where we do need to emit a nested block scope.

Change-Id: I37d3d69bfcf9b1204385cca7785601fb7d6edfc3
Reviewed-on: https://dart-review.googlesource.com/41565
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Jenny Messerly <jmesserly@google.com>
2018-02-14 23:43:13 +00:00
Jenny Messerly 5ef7920d84 fix DDC explicit field initialization to null
This was unintentionally regressed during a fix to field init order. It
does not typically show up in Dart code because undefined and null are
both handled, but it can break JS interop.

Change-Id: I771895826ee09bb6c5e2f9b016eb7673caf61cd1
Reviewed-on: https://dart-review.googlesource.com/40202
Reviewed-by: Vijay Menon <vsm@google.com>
2018-02-09 02:48:07 +00:00