This fixes idle GCs never running for the service and kernel isolates.
TEST=--verbose-gc
Change-Id: Iea0b0aa808c757a527724e3d2599c170cb383574
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/202362
Reviewed-by: Alexander Aprelev <aam@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Ryan Macnak <rmacnak@google.com>
This is follow-up to ed82bb6f4c
TEST=tests/standalone/io/file_system_watcher_large_set_test.dart
Change-Id: If02c922eafe1371c6e67196158896b9cb786bfd6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/202312
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
this is under consideration for core lint inclusion: https://github.com/dart-lang/lints/issues/42
(also undoubtably nice to get the early warning.)
Change-Id: I3ea204444f48d3b4bde3ff65b4ce85a2cf2a7b11
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/202301
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Also makes the following minor improvements:
- Standardizes the file on single quotes to make the file more uniform and match elsewhere.
- Switches the ESCAPE_MAPPING declaration to const
- Corrects method spelling in doc comment
Change-Id: Ic271cd28d287f321b9b3719250b053df548ba194
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/202061
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Kevin Moore <kevmoo@google.com>
...not to the directory that currently contains pkg:wasm
Also DRY'd up some values and helpers
Change-Id: I71292dacf089e285dd5080e9830e8a6e520c1491
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/202302
Auto-Submit: Kevin Moore <kevmoo@google.com>
Reviewed-by: Liam Appelbe <liama@google.com>
Commit-Queue: Liam Appelbe <liama@google.com>
This reverts commit 92bfa5acfb.
Reason for revert: Breaks for no holders in an output unit.
Original change's description:
> Reland "[dart2js] Only emit holders into a part file if they are used."
>
> This is a reland of 7af28d8274
>
> Original change's description:
> > [dart2js] Only emit holders into a part file if they are used.
> >
> > Change-Id: Ie1eb4dcf71e30002e3030603f201e2b6a97d4182
> > Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/200483
> > Commit-Queue: Joshua Litt <joshualitt@google.com>
> > Reviewed-by: Stephen Adams <sra@google.com>
>
> Change-Id: I06966217925a7d17615c80a5534d58f5095e579b
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/201985
> Reviewed-by: Stephen Adams <sra@google.com>
> Commit-Queue: Joshua Litt <joshualitt@google.com>
TBR=sra@google.com,joshualitt@google.com
Change-Id: I918f3f7b496d3051046ac13dde37a8f1fbd9e892
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/202304
Reviewed-by: Joshua Litt <joshualitt@google.com>
Commit-Queue: Joshua Litt <joshualitt@google.com>
Previously, the migration tool had a small amount of special case
logic in `EdgeBuilder._dispatch` to ensure that if an `as`
expression's type was annotated with `/*!*/`, that `/*!*/` wouldn't be
misinterpreted as also applying to the `as` expression itself (causing
a `!` operator to be inserted). This logic wasn't sufficiently
general; it failed to handle `is` expressions (which can run into the
same issue), and it failed to handle situations where the `is` or `as`
expression was at the end of a larger expression (e.g. `y = x as
T/*!*/;`).
This change removes the special case logic and replaces it with a more
general-purpose mechanism: when visiting any type name, if it ends in
a `/*!*/`, the edge builder stores information about it in the
`_nullCheckHints` field. This ensures that when visiting an
expression ending in that type name, the `/*!*/` will be ignored
(since `EdgeBuilder._handleNullCheckHint` skips any hints that are
already stored in that field). This ensures that we properly handle
both `is` and `as` expressions, as well as larger expressions that
contain them.
Change-Id: I2b902ef809b4cc5eb8b493fa4405c0f0c8c10a96
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/202261
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
Usually the identity hashcode is implemented by returning if present and
otherwise generating a random number, setting the hash code and
returning it.
This works fine in single-mutator environments, though when multiple
mutators might race to install identity hash codes we should ensure only
one of them wins and all others will obtain whatever hash code has been
set by the winner.
This will matter once we start sharing more objects across isolates.
Issue https://github.com/dart-lang/sdk/issues/36097
TEST=vm/cc/AsmIntrinsifier_SetHashIfNotSetYet
Change-Id: Ie760ca9658e6ec0640255361544d6822b07574e2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/201827
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
In function entry, there are redundant register assignings for constant.
This removes the register assignings.
TEST=Existing test coverage.
Cq-Include-Trybots: luci.dart.try:vm-kernel-precomp-linux-release-simarm-try,vm-kernel-precomp-linux-release-simarm64-try,vm-kernel-precomp-linux-release-x64-try,vm-kernel-precomp-linux-debug-simarm_x64-try
Change-Id: I08e75118a60f01b0d1a010ef4e2eaa3f5760a4ec
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/202180
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
JSON_JSONStream_DartObject used to elide a JSON string longer
than 1024 into a buffer of 1024 bytes, which was causing memory
issues, including tripping ASAN.
This is fixed by doubling the buffer.
This CL also adds ASSERTs to ensure all buffers used with
`ElideJSONSubstring(..)` are big enough.
TEST=Existing, updated tests.
Bug: https://github.com/dart-lang/sdk/issues/46246
Change-Id: I7ce86429efecd91e768be413fd86f7d3c53c5d52
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/202244
Auto-Submit: Clement Skau <cskau@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Change-Id: Ia41537d3a4c5951841de92507c62711d1f2d8fd5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/202240
Reviewed-by: Erik Ernst <eernst@google.com>
Commit-Queue: Erik Ernst <eernst@google.com>
This is the next step to rename these constructors.
After updating google3 to unnamed constructors we will remove `tmp1`.
Change-Id: Ib010ad6c2de6918dc9daceaa7d27449618ebd9b5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/202200
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
We set them during linking, so for consistency and to keep the same
expectations for linking and loaded elements tests, we need to
store and read them.
Change-Id: I8de88e2dbf4e08eee2d654b27f7cb548ffb7f1be
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/202161
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
This is a necessary step to keep linking elements without loading
from bytes.
Change-Id: I7bc8bdc0b10e178ab46d15e288a76eb3d732891f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/202160
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
* Adds a couple of arrow function and method tests
* Does not add support for method interpolation (like in DDC).
Change-Id: I73ccbbf2907611dae6f1720f7933e3469d4eb9b4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/198883
Commit-Queue: Mark Zhou <markzipan@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
This feature is gated behind the --experiment-late-instance-variables
flag.
Change-Id: I1ecb2d4d960b58204207ea055361463efa3a0bcb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/200922
Commit-Queue: Mayank Patke <fishythefish@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
- enable and fix other lints as well
- Split up generated code into part file - less boilerplate
- Clean up exception checks
Change-Id: I6d8e0753b496356e3c001b9d0b902131d7d03c20
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/202142
Auto-Submit: Kevin Moore <kevmoo@google.com>
Commit-Queue: Kevin Moore <kevmoo@google.com>
Commit-Queue: Liam Appelbe <liama@google.com>
Reviewed-by: Liam Appelbe <liama@google.com>
Token position and script reference information are cheap to provide and
make it possible to tie objects to scripts without requiring additional
requests for full objects.
TEST=Existing
Change-Id: I917714149a72a53081fee5626ccad858e86f5313
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/201864
Commit-Queue: Ben Konyi <bkonyi@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>