Commit graph

53274 commits

Author SHA1 Message Date
Peter von der Ahé e7ac35dfc9 Make the fasta tool use Platform.resolvedExecutable when tested.
Change-Id: Ie83cd4692898c1b6e585ed5d47fc55be4d60c272
Reviewed-on: https://dart-review.googlesource.com/35162
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2018-01-17 10:26:08 +00:00
Johnni Winther 94fc11388a Port inference tests, #5 of 5
Change-Id: I384056289dfa99991aa42fbe0baadedc6c208b6f
Reviewed-on: https://dart-review.googlesource.com/34586
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-17 10:19:53 +00:00
Erik Corry 0f70f94992 Don't run dart2 tests without common front end
The bare VM without the common front end (kernel) does not support Dart2
semantics, which are assumed in the corelib_2 and language_2 directories. For
now we still run the bare VM in checked mode on these tests, since that is
mostly compatible, and gives us better coverage.

R=vegorov@google.com

Change-Id: I1a1ca939d8a33503d19b683b0e5539e0fa6e9dc1
Reviewed-on: https://dart-review.googlesource.com/35160
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Erik Corry <erikcorry@google.com>
2018-01-17 09:37:17 +00:00
Jens Johansen bfda4508a9 [fasta] Incremental compilation and parts
The incremental compiler calculates which libraries are reusable,
but previously forgot about parts when mapping for changed files to
libraries.

This CL fixes that, meaning that a changed part file will invalidate
the Library it's a part of, meaning we get the needed re-compilation.

Fixes #31908.

Change-Id: Ic30c97af3f1c8166a82774040a2bbcebf5686415
Reviewed-on: https://dart-review.googlesource.com/34821
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-01-17 08:43:07 +00:00
Johnni Winther 897114ff79 Update dart2js_with_kernel status
Change-Id: Icf935c78ba915b487c1213d59b328ab884324e5d
Reviewed-on: https://dart-review.googlesource.com/35140
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2018-01-17 08:00:40 +00:00
Peter von der Ahé beda5c3e62 This CL supposedly broke the analyzer, but that isn't true. It broke a single front_end test, and if that was causing you trouble, you could have marked it as failing.
Revert "Revert "Don't skip front-end tests""

This reverts commit b4556e646e.

Reason for revert: <INSERT REASONING HERE>

Original change's description:
> Revert "Don't skip front-end tests"
> 
> This reverts commit 62d2255719.
> 
> Reason for revert: Broke analyzer bots
> 
> Original change's description:
> > Don't skip front-end tests
> > 
> > Change-Id: Ibbd0d63e8c23d045a898e52185fe55e5c53dd6b3
> > Reviewed-on: https://dart-review.googlesource.com/34621
> > Reviewed-by: Jens Johansen <jensj@google.com>
> 
> TBR=ahe@google.com,jensj@google.com
> 
> Change-Id: I6519e0c551dd79d3bd98345925c2db888e892123
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://dart-review.googlesource.com/35020
> Reviewed-by: Paul Berry <paulberry@google.com>
> Commit-Queue: Paul Berry <paulberry@google.com>

TBR=paulberry@google.com,ahe@google.com,jensj@google.com

Change-Id: I7ff6fd587912fd8a2aba113eb7c765c7b16c5eda
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/35120
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Peter von der Ahé <ahe@google.com>
2018-01-17 06:03:59 +00:00
danrubel 787d395389 Update code completion to suggest covariant
In addition to updating code completion, this also
addresses comments in https://dart-review.googlesource.com/c/sdk/+/34520
* Change expect to assert `}` where expect is unnecessary
* Extract skipToLastModifier utility method
* Fix spelling

Change-Id: I6a0446d77fac995da3e4d1d2f682f75d584b275f
Reviewed-on: https://dart-review.googlesource.com/34960
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-01-17 03:30:23 +00:00
Jenny Messerly a052d8e0dc fix some issues with compiling the kernel SDK
- fix all usage of `.name` when `.name.name` is required
- fix handling of inline-JS in the SDK
- fix casts on SDK nodes

Change-Id: Ic48e0b77e6e03515f16b8c30d3e274abbe2ed272
Reviewed-on: https://dart-review.googlesource.com/34540
Reviewed-by: Vijay Menon <vsm@google.com>
Commit-Queue: Jenny Messerly <jmesserly@google.com>
2018-01-17 02:53:22 +00:00
Leaf Petersen a767fc81d2 More status file updates
TBR=rnystrom@google.com

Change-Id: I995f63096ed3c416dd80fe91292cff3d484e0c37
Reviewed-on: https://dart-review.googlesource.com/35080
Reviewed-by: Leaf Petersen <leafp@google.com>
2018-01-17 02:48:08 +00:00
Sigmund Cherem 614ff2a4d7 Fix .status file for tests in strong mode
I forgot to update these two suites :(

TBR=het@google.com

Change-Id: Ia5c98ee4338e6e52ca997b581e0511042fe1b71c
Reviewed-on: https://dart-review.googlesource.com/35062
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-17 01:12:18 +00:00
Sigmund Cherem 9cdf04e8ee Mark conditional_import_tests as passing in dart2js
TBR=sjindel@google.com

Change-Id: I6310ce0f1dae916d4075453ed6fcdad2fcb1f38e
Reviewed-on: https://dart-review.googlesource.com/35061
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2018-01-17 00:58:26 +00:00
Sigmund Cherem 0e1a407823 Produce a static error when using kernel and mirrors
Just noticed that the 'supportsRelection' flag was not checked when running with
'--use-kernel'.

Change-Id: I9f4bd540ad963c33c8b9013860ac63b1c6707299
Reviewed-on: https://dart-review.googlesource.com/35006
Reviewed-by: Harry Terkelsen <het@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2018-01-17 00:56:12 +00:00
Leaf Petersen 4021b51a02 Fix stream_from_iterable dartkp status
TBR=rnystrom@google.com

Change-Id: I59696c196da4faac8a67acb299ea2f8c231aa38e
Reviewed-on: https://dart-review.googlesource.com/35060
Reviewed-by: Leaf Petersen <leafp@google.com>
2018-01-17 00:44:39 +00:00
Sigmund Cherem c241078b10 Cleanup dart2js snapshot generation
- I beleive create_snapshot.dart is no longer in use: it was replaced by
  create_snapshot_entry + GN application snapshot rules.

- utils_wrapper seems to be something really historical (maybe we thought we
  were going to only have a single wrapper for all of our tools back in the
  day). The only use of it is to track build dependencies in test.py, which I
  think we can do by directly using dart2js.dart.snapshot instead.

Change-Id: I6e32403eb8c5d40f0b58e48ae5ff6fb60fd855b3
Reviewed-on: https://dart-review.googlesource.com/34923
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2018-01-17 00:35:34 +00:00
Leaf Petersen 88e02e6420 Mark 2.0 test as failing on 1.0 analyzer.
TBR=paulberry@google.com

Change-Id: I8de2cfa8ba161009d53a023307d86c90be89b325
Reviewed-on: https://dart-review.googlesource.com/35040
Reviewed-by: Leaf Petersen <leafp@google.com>
2018-01-17 00:27:28 +00:00
Samir Jindel ce1294fe3d [kernel] Lookup import conditions against the core library's loader.
Change-Id: Ib16d9f33a40ee25aed2a86a29a74bbc2b301d2e4
Reviewed-on: https://dart-review.googlesource.com/34940
Reviewed-by: Samir Jindel <sjindel@google.com>
Commit-Queue: Samir Jindel <sjindel@google.com>
2018-01-16 23:21:42 +00:00
Leaf Petersen 6b3576f673 Fix fuzzy arrow issues in tests.
Also fixes a variety of miscellaneous accidental strong mode compile time or runtime check violations.

Change-Id: Ia8a41ac291aff3689efae0b11a9c51a2db30ef33
Reviewed-on: https://dart-review.googlesource.com/34924
Reviewed-by: Bob Nystrom <rnystrom@google.com>
2018-01-16 23:08:01 +00:00
Paul Berry b4556e646e Revert "Don't skip front-end tests"
This reverts commit 62d2255719.

Reason for revert: Broke analyzer bots

Original change's description:
> Don't skip front-end tests
> 
> Change-Id: Ibbd0d63e8c23d045a898e52185fe55e5c53dd6b3
> Reviewed-on: https://dart-review.googlesource.com/34621
> Reviewed-by: Jens Johansen <jensj@google.com>

TBR=ahe@google.com,jensj@google.com

Change-Id: I6519e0c551dd79d3bd98345925c2db888e892123
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/35020
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2018-01-16 22:44:33 +00:00
Sigmund Cherem 96f915faa1 Update status for dart2js-with-kernel after disabling int64 in dart2js
TBR=sra@google.com

Change-Id: I3e13493ba619fb16ed9731fc85fc14938022ef59
Reviewed-on: https://dart-review.googlesource.com/35000
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2018-01-16 22:30:04 +00:00
Stephen Adams 616f2fee3e Generate calls to 'instantiate' pseudo-methods
- Ignore ir.Instantiation in type inference
- Add 'special' Selectors, use for $instantiateN
- Lower ir.Instantiation to a call

Change-Id: I9da05014c10c9cddf9b32f6a492fab6ac2ad2f88
Reviewed-on: https://dart-review.googlesource.com/34421
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2018-01-16 22:25:32 +00:00
Ryan Macnak 15082ccbcd [vm, gc] Discount two pages when calculating if a heap is fragmented.
The most recently allocated data and code pages may be partially used without indicating fragmentation. Discount two pages when calculating the usage ratio to avoid pathological detection of "fragmentation" in small heaps.

Bug: https://github.com/dart-lang/sdk/issues/30978
Change-Id: Ib3168fbdd6393c98c8c1cf88937a345339fad196
Reviewed-on: https://dart-review.googlesource.com/34500
Reviewed-by: Erik Corry <erikcorry@google.com>
2018-01-16 21:24:35 +00:00
Ryan Macnak e6ebdccc2f [vm, armv6] Fix pool pointer offset used for large immediates.
Bug: https://github.com/dart-lang/sdk/issues/31857
Change-Id: I1d9fe0ee3234bc331a764cfc699efa820257a45c
Reviewed-on: https://dart-review.googlesource.com/34508
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Zach Anderson <zra@google.com>
2018-01-16 21:15:13 +00:00
Sigmund Cherem 0c04eb53c7 Disable int64 when running dart2js
The goal is to renable it as soon as we migrate our constant-evaluator and
constant folding to use Bigint.

Change-Id: I3bba1bbe07517e9cb496896b3417f58173878d62
Reviewed-on: https://dart-review.googlesource.com/34302
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
Reviewed-by: Zach Anderson <zra@google.com>
2018-01-16 19:52:22 +00:00
Sigmund Cherem f1390f7660 Add missing return in loadLibrary tearoff
The code to represent a tearoff of loadLibrary looked like this:

  Future __loadLibrary__lib1 () {
    lib1.loadLibrary();
  }

but should have been like:

  Future __loadLibrary__lib1 () {
    return lib1.loadLibrary();
  }

Change-Id: I31efb5bee9f7e376660602c1b842a90a0a2659a4
Reviewed-on: https://dart-review.googlesource.com/34510
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Emily Fortuna <efortuna@google.com>
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-01-16 19:35:32 +00:00
Alexander Thomas 93d8c9fe2a [gardening] Update status for passing tests on VM Kernel debug
TBR=whesse@google.com

Bug:
Change-Id: Iba2ad6e88d9e32f2c83dc22440404bf778120076
Reviewed-on: https://dart-review.googlesource.com/34941
Reviewed-by: Alexander Thomas <athom@google.com>
2018-01-16 18:49:53 +00:00
Paul Berry 10042c74e3 Fix test_await_flattened in non_error_resolver_test.
This test was broken by 45b02f8216,
which changed the behavior of flattening in the kernel driver.
Unfortuately the error wasn't picked up by the build bots because the
test is disabled - see #30796.

Change-Id: I93f488f066434afbeaaa6b82ceb9ac1278574861
Reviewed-on: https://dart-review.googlesource.com/34920
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
2018-01-16 18:30:34 +00:00
Alexander Thomas 6888aae228 [gardening] Update status files make DBC builder green again
Change-Id: Ie90ad628b5ac8ffc7eba2c8f707545ba0b27939b
Reviewed-on: https://dart-review.googlesource.com/34902
Reviewed-by: William Hesse <whesse@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
2018-01-16 18:16:52 +00:00
Alexander Thomas f152e19dbe [gardening] Correct status for vm-kernel-precomp
Change-Id: I1f683802142ae6a041ebe9385a3f65262a9b9158
Reviewed-on: https://dart-review.googlesource.com/34901
Reviewed-by: Martin Kustermann <kustermann@google.com>
2018-01-16 17:27:39 +00:00
Samir Jindel a2ff93da67 [kernel] Partial support for conditional imports in CFE.
In order to un-block Flutter integration, we introduce partial support for
conditional imports into the CFE. There are two incomplete parts:

- The condition strings are evaluated by the Target.
  They should be looked up in the environment, but this introduces
  complications with modular compilation.

- Type inference and other static checks are performed with reference to
  the implementation (conditionally-imported) library rather than the
  interface library.

See issue #30143 for more details.

Bug:
Change-Id: I740b45e9d32796644837de4caefd8d6e8015f229
Reviewed-on: https://dart-review.googlesource.com/34721
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-01-16 17:27:19 +00:00
Dan Rubel b79696982d Improve extraneous or out of position modifier recovery
In addition to improving modifier recovery, this CL
* Improves recovery when builtin keywords are used as types
* Updates ModifierContext to avoid parsing modifiers used as identifiers
* Addresses comment in https://dart-review.googlesource.com/c/sdk/+/34200
* Streamlines missing class body recovery
* Ensures the endMember event is sent during recovery

Change-Id: I87bda7c7da9d0e951427037087c7aa7e8e4da109
Reviewed-on: https://dart-review.googlesource.com/34520
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Dan Rubel <danrubel@google.com>
2018-01-16 17:24:12 +00:00
Konstantin Shcheglov 3c2b4a7826 Store NullType as the callee types, we don't use them.
R=brianwilkerson@google.com, paulberry@google.com

Bug:
Change-Id: I01ee27c6c54cef559fd3cf8dd871d644cae832e3
Reviewed-on: https://dart-review.googlesource.com/34560
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2018-01-16 17:19:42 +00:00
Erik Ernst d09b922203 Added noSuchMethod forwarding test and adjusted status files
Change-Id: Ifee4f2e8810efa1fd5b08fd7544b71a3d27ff263
Reviewed-on: https://dart-review.googlesource.com/34800
Commit-Queue: Erik Ernst <eernst@google.com>
Reviewed-by: Kevin Millikin <kmillikin@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2018-01-16 15:52:12 +00:00
Alexander Thomas 27ebef64d4 [infra] Add VM Kernel Windows x64 builders
Bug: https://github.com/dart-lang/sdk/issues/31707
Change-Id: Ie56f4c6f78c9b7c27fc4f587857e412db3e8f358
Reviewed-on: https://dart-review.googlesource.com/33960
Commit-Queue: Alexander Thomas <athom@google.com>
Reviewed-by: William Hesse <whesse@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2018-01-16 15:39:03 +00:00
Peter von der Ahé 57cdeb2a28 Fix supertype of _RawDatagramSocket
Change-Id: I6c2e4aefce19718c5283ded7e666c4c2651f865f
Reviewed-on: https://dart-review.googlesource.com/34881
Commit-Queue: Peter von der Ahé <ahe@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2018-01-16 15:36:22 +00:00
Jens Johansen beff8fdf23 [fasta] Fix bugs in incremental tests
This CL fixes errors in a few incremental tests.
The remaining (with a previous references to issue #31909) are not
related to incremental compilation, but also fail to fail on regular fasta.

Closes #31909.

Change-Id: I3c50a4cbfb926f8f74570523a10885e1bd28a94b
Reviewed-on: https://dart-review.googlesource.com/34801
Reviewed-by: Peter von der Ahé <ahe@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2018-01-16 14:47:32 +00:00
Peter von der Ahé 1bca76d012 Convert Platform.resolvedExecutable to URI correctly
Change-Id: I583b98277b1c62328885c775fcb712823c9ff405
Reviewed-on: https://dart-review.googlesource.com/34860
Reviewed-by: Alexander Thomas <athom@google.com>
2018-01-16 14:24:52 +00:00
Erik Ernst 9f803a36eb Adjusted status indications on feature specs
The Dart 1 specification of 'generic method syntax' had no status
indicator, it is now marked as 'background material' because generic
methods (in full) have been integrated into the language specification.
Several other changes of a similar nature.

Implication: It should now be possible for readers of these documents
to trust their status indication. As we go, we will need to update them
again, especially when something is integrated into the language
specification.

Do we want to migrate background material to another directory? Do we
want to rename the directory `informal` to `feature` or somesuch?

Change-Id: Ia3851bdbe7b5a46d71848c376906f95feb4db349
Reviewed-on: https://dart-review.googlesource.com/34663
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
2018-01-16 13:22:28 +00:00
William Hesse 2d406b654e Skip front_end hot_reload_e2e test while it is broken
BUG=31901

Change-Id: I16b195f67bb8eaeb992498acefcd82e2805c42bd
Reviewed-on: https://dart-review.googlesource.com/34840
Reviewed-by: Alexander Thomas <athom@google.com>
2018-01-16 12:58:39 +00:00
Peter von der Ahé 62d2255719 Don't skip front-end tests
Change-Id: Ibbd0d63e8c23d045a898e52185fe55e5c53dd6b3
Reviewed-on: https://dart-review.googlesource.com/34621
Reviewed-by: Jens Johansen <jensj@google.com>
2018-01-16 12:00:28 +00:00
Peter von der Ahé 1b8953f256 Prevent async cross talk
Change-Id: I678cfa16a26e0f2bbda4480b0b21a53750346429
Reviewed-on: https://dart-review.googlesource.com/34664
Reviewed-by: Jens Johansen <jensj@google.com>
2018-01-16 11:33:01 +00:00
Martin Kustermann 09035067fe Update status files to get sim* builders green
Change-Id: Ib3e6b8da4ee59d83da978e44a7611388f974aa23
Reviewed-on: https://dart-review.googlesource.com/34662
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2018-01-16 10:04:32 +00:00
Peter von der Ahé e6683f0638 Don't crash when the delta is empty
Change-Id: I322261faad1431b7b597094048a9f904d70c33ff
Reviewed-on: https://dart-review.googlesource.com/34740
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2018-01-16 09:57:33 +00:00
William Hesse 4d99c9fdf3 Add fasta variable to status files and test.py
Change-Id: Iffecf6cb54c3a58de96c44518a0ffd86b2688e27
Reviewed-on: https://dart-review.googlesource.com/34680
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-01-16 09:44:30 +00:00
Lasse R.H. Nielsen c0d2671872 Make it clear that you are not allowed to have spaces in operator-names.
Remove places where you were technically allowed to add spaces between
individual characters, but no implementation actually allowed it.

Change-Id: I0a13c9e3995b897135cd578a7d8c114f7746f991
Reviewed-on: https://dart-review.googlesource.com/34640
Commit-Queue: Erik Ernst <eernst@google.com>
Reviewed-by: Erik Ernst <eernst@google.com>
2018-01-16 09:34:41 +00:00
Lasse Reichstein Holst Nielsen dd7093e7a9 Fix test on Windows.
Fixes #31903.

BUG= http://dartbug.com/31903

Change-Id: I515f0d08cfdb9db695d3cf12a727d694042ca2ec
Reviewed-on: https://dart-review.googlesource.com/34661
Commit-Queue: Erik Ernst <eernst@google.com>
Reviewed-by: Erik Ernst <eernst@google.com>
2018-01-16 08:16:43 +00:00
Peter von der Ahé 06040f73f2 Skip hot_reload_e2e_test on Windows.
Change-Id: I7a379c2520be98d447a6c4e12875b74c5af29518
Reviewed-on: https://dart-review.googlesource.com/34720
Reviewed-by: Peter von der Ahé <ahe@google.com>
2018-01-16 06:29:57 +00:00
Vyacheslav Egorov ff008ca37a [vm/kernel/async] Use proper type argument when createing async* controller.
Change-Id: I40e5d2d933b83a24c9d8177437fb6df1f21b5cc1
Reviewed-on: https://dart-review.googlesource.com/34741
Reviewed-by: Martin Kustermann <kustermann@google.com>
2018-01-15 22:06:30 +00:00
Alexander Thomas 97898a9bb6 [gardening] Correct DDK status to get CQ to pass
TBR=whesse@google.com

Change-Id: Iff23be4c81a4d8a307b67cf2c08ac106fd7b5e79
Reviewed-on: https://dart-review.googlesource.com/34780
Reviewed-by: Alexander Thomas <athom@google.com>
2018-01-15 22:05:58 +00:00
Erik Ernst d830c8ba3c Removed merge conflict markers.
Change-Id: I1feda4f3104ca100425233fb7f339a412a885f9f
Reviewed-on: https://dart-review.googlesource.com/34743
Reviewed-by: Erik Ernst <eernst@google.com>
Reviewed-by: Lasse R.H. Nielsen <lrn@google.com>
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
2018-01-15 21:21:20 +00:00
Martin Kustermann 0bc46de838 [VM] Support spawning isolates when the main isolate was spawned from a Kernel IR file
Issue https://github.com/dart-lang/sdk/issues/31698

Change-Id: Ifc6662a3fd56245c10f5d924f771ef85ed9b222c
Reviewed-on: https://dart-review.googlesource.com/34742
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2018-01-15 17:51:54 +00:00