Commit graph

11623 commits

Author SHA1 Message Date
Vyacheslav Egorov fc4bcab2ef [io] Propagate cancellation in _HttpOutgoing.addStream
If HttpResponse is being closed prematurally (e.g. because client
decided to close its request) we need to propagate cancellation
to the stream which is being piped into the response. Otherwise
we will keep that stream forever hanging around and leak underlying
resources.

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

TEST=tests/standalone/io/regress_55886_test.dart
R=kustermann@google.com

Change-Id: I7c294ed19cc7c350fd101b078bd650ce8a6526a2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/369061
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2024-06-02 20:33:26 +00:00
Alexander Aprelev 7fa9b814d2 [io/socket_read] Limit aggregated read bytes to prevent OOM.
Also use non-copying BytesBuilder.

Fixes https://github.com/dart-lang/sdk/issues/55885
TEST=ci and repro from the github issue

Change-Id: Ida0feff32a3c9ee1e89add3b3696efefdc94fc28
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/369141
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
2024-05-31 19:39:59 +00:00
Stephen Adams 20316bcc5b Reapply "[js_runtime, js_dev_runtime] Implement microsecond field of DataTime"
Original change: https://dart-review.googlesource.com/c/sdk/+/366963

This reverts commit 72b2883c6f.


[js_runtime, js_dev_runtime] Implement `microsecond` field of `DataTime`

- Move DateTime implementation for dart2js and DDC into a shared place to reduce duplication.

- Add a _microsecond field to the web DateTime to track microseconds outside of the JavaScript Date.

- The cute dart2js optimization whereby `DateTime.now().millisecondsSinceEpoch` is compiled to `Date.now()` still works.

- Both implementations report better errors.

- Fixed VM bug with in-range sentinel.


Issue: https://github.com/dart-lang/sdk/issues/44876
Issue: https://github.com/firebase/flutterfire/issues/12102
Issue: b/342552853
CoreLibraryReviewExempt: Reapply of unchanged code
Change-Id: I7f14b69e412a052ef3fe6b43cc9cf9d96319adb8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/368380
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Lasse Nielsen <lrn@google.com>
2024-05-31 15:42:14 +00:00
Ivan Inozemtsev 72b2883c6f Revert "[js_runtime, js_dev_runtime] Implement microsecond field of DataTime"
This reverts commit fb057ea4e0.

Reason for revert: b/342552853

Original change's description:
> [js_runtime, js_dev_runtime] Implement `microsecond` field of `DataTime`
>
> - Move DateTime implementation for dart2js and DDC into a shared place to reduce duplication.
>
> - Add a _microsecond field to the web DateTime to track microseconds outside of the JavaScript Date.
>
> - The cute dart2js optimization whereby `DateTime.now().millisecondsSinceEpoch` is compiled to `Date.now()` still works.
>
> - Both implementations report better errors.
>
> - Fixed VM bug with in-range sentinel.
>
>
> Change-Id: I9156255bdb6ecc195500ae9bc88f91fb315b6297
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/366963
> Reviewed-by: Alexander Aprelev <aam@google.com>
> Reviewed-by: Martin Kustermann <kustermann@google.com>
> Reviewed-by: Lasse Nielsen <lrn@google.com>
> Commit-Queue: Stephen Adams <sra@google.com>

Change-Id: I58572256a7710df4589bb5e41c7afee295c2388b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/368103
Reviewed-by: Alexander Thomas <athom@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Auto-Submit: Ivan Inozemtsev <iinozemtsev@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2024-05-27 07:54:14 +00:00
Stephen Adams fb057ea4e0 [js_runtime, js_dev_runtime] Implement microsecond field of DataTime
- Move DateTime implementation for dart2js and DDC into a shared place to reduce duplication.

- Add a _microsecond field to the web DateTime to track microseconds outside of the JavaScript Date.

- The cute dart2js optimization whereby `DateTime.now().millisecondsSinceEpoch` is compiled to `Date.now()` still works.

- Both implementations report better errors.

- Fixed VM bug with in-range sentinel.


Change-Id: I9156255bdb6ecc195500ae9bc88f91fb315b6297
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/366963
Reviewed-by: Alexander Aprelev <aam@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Lasse Nielsen <lrn@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2024-05-22 05:18:52 +00:00
Ömer Sinan Ağacan fab56db71b [dart2wasm] Move common code generation routines to state_machine, fix sync*
This is the last part of the series of patches to implement missing
sync* features and fix bugs.

Move common code generation functions between async and sync* code
generators to the state_machine library, with the name
`StateMachineCodeGenerator`.

This class allows overriding parts that differ between the async and
sync* code generators.

Fixes tests:

- co19/Language/Statements/Yield_and_Yield_Each/Yield_Each/execution_sync_t05
- language/sync_star/generator3_test/test1
- language/sync_star/generator3_test/test2
- language/sync_star/sync_star_exception_iterator_test
- language/sync_star/sync_star_exception_nested_test
- language/sync_star/sync_star_exception_test
- language/sync_star/sync_star_exception_current_test

Fixes #51343.
Fixes #51342.

Change-Id: Ife6eab43b2721b003ebf9bc0f03796748fd5df46
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/367041
Commit-Queue: Ömer Ağacan <omersa@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2024-05-21 14:53:58 +00:00
Sam Rawlins 020a59e59c js_interop: replace unsupported [this] comment references with this.
Work towards https://github.com/dart-lang/dartdoc/issues/3761

Sibling CL to https://dart-review.googlesource.com/c/sdk/+/365204

The analyzer has never recognized `[this]` as a valid doc comment
reference (and the `comment_references` lint rule has similarly
reported such reference attempts). dartdoc has its own algorithms
for resolving comment references, which we are dismantling in favor
of a single resolution, provided by the analyzer.

We've also decided against adding support in the analyzer (see
https://github.com/dart-lang/linter/issues/2079), so these
reference attempts should be re-written.

CoreLibraryReviewExempt: Comments only.
Cq-Include-Trybots: luci.dart.try:flutter-analyze-try,analyzer-win-release-try,pkg-win-release-try
Change-Id: I38dd476e40e4508fb6bf88c28415ff261bae5f43
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/366880
Reviewed-by: Srujan Gaddam <srujzs@google.com>
Commit-Queue: Srujan Gaddam <srujzs@google.com>
Auto-Submit: Samuel Rawlins <srawlins@google.com>
2024-05-16 19:43:18 +00:00
Ömer Sinan Ağacan e7dde8377e [dart2wasm] Port VM fix for #52083 (sync*)
dart2wasm's sync* runtime library was mostly copied from VM, but we
didn't get the fix for #52083 in 9cf26fc. This ports the fix to
dart2wasm.

This currently doesn't fix any tests as there are other issues with
dart2wasm's sync* implementation, which we are fixing in
https://dart-review.googlesource.com/c/sdk/+/366663.

Change-Id: I9d82d1bbb4c96ccb9bf411a385f4b7ff395a1c19
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/366671
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Ömer Ağacan <omersa@google.com>
2024-05-16 11:53:25 +00:00
Vyacheslav Egorov 1e6c9b026f [vm/libs] Improve JsonUtf8Decoder performance.
This CL focuses on improving parsing of white space (between
JSON tokens) and simple strings which don't contain escape
sequences inside.

Improvements are achieved by changing the code to
table driven implementation instead of if-cascade: we
have a 256 element table which stores attributes for characters
(e.g. whether it is a white space or a terminal token for
a simple string) and use this table to make decisions
on whether to advance through characters or stop a loop and
do something else.

We also suppress bounds checks and interrupt checks in tight
loops - in tight loops like this a bound checks can cost
30% in overhead.

This CL brings 28% geomean improvement on benchmarks from the linked issue. (All measurements are done in X64 Product AOT)

Individual measurements are:

| Input JSON | ms/iter | vs HEAD | vs V8 |
| ---------- | ------- | ------- | ----- |
| apache_builds.json | 0.44 | 61.06% | 136.86% |
| canada.json | 31.04 | 96.54% | 187.15% |
| citm_catalog.json | 6.43 | 64.44% | 93.94% |
| github_events.json | 0.23 | 59.02% | 128.86% |
| google_maps_api_compact_response.json | 0.10 | 82.12% | 133.83% |
| google_maps_api_response.json | 0.12 | 68.79% | 140.07% |
| gsoc-2018.json | 9.25 | 44.89% | 147.43% |
| instruments.json | 1.08 | 70.18% | 167.38% |
| marine_ik.json | 21.07 | 88.25% | 142.58% |
| mesh.json | 4.51 | 94.56% | 136.57% |
| mesh.pretty.json | 9.97 | 83.76% | 193.79% |
| numbers.json | 0.57 | 91.88% | 83.37% |
| random.json | 3.79 | 78.32% | 107.18% |
| repeat.json | 0.06 | 71.51% | 118.47% |
| semanticscholar-corpus.json | 37.65 | 54.82% | 57.81% |
| tree-pretty.json | 0.17 | 68.68% | 162.33% |
| twitter_api_compact_response.json | 0.06 | 75.23% | 126.11% |
| twitter_api_response.json | 0.08 | 70.64% | 123.60% |
| twitterescaped.json | 3.88 | 84.66% | 177.94% |
| twitter.json | 3.54 | 73.01% | 105.33% |
| twitter_timeline.json | 0.37 | 81.52% | 271.37% |
| update-center.json | 2.85 | 66.75% | 89.01% |

vs HEAD (geomean): 72.94%
vs V8 (geomean): 130.99%
HEAD vs V8 (geomean): 179.59%

Issue https://github.com/dart-lang/sdk/issues/55522

TEST=covered by co19

Change-Id: Id673118c19250ab7781cc98c7656b972debc60ff
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/365803
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Slava Egorov <vegorov@google.com>
2024-05-15 09:56:20 +00:00
Alexander Aprelev 480e631727 [io/ssl] Avoid reinitiating racing handshake request.
When other side closes their write socket during us running handhsake, don't repeat handshake. Repeated handshake call results in boringssl secure filter data race between ongoing encryption/decryption sequence and this new handshake call, running concurrently.

Fixes https://github.com/dart-lang/sdk/issues/53136
TEST=secure_session_resume_test on TSAN
CoreLibraryReviewExempt:no user-visible changes to io functionality
Change-Id: I7540b41b15b3a7487a237b6957314e38b078a774
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/366401
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Alexander Aprelev <aam@google.com>
2024-05-14 20:50:33 +00:00
Lasse R.H. Nielsen b06a34fc5a Don't allow completing a _Future with itself.
This never worked. It was silently accepted, at least if the future had no listeners, then any later attempt to use the future would cause a stack overflow or other impossible results.

Moves some `_Future._complete` call out of try-catch.
The `_complete` shouldn't throw (but before this fix it could).
Moving them out of the `try`/`catch` makes such errors be reported
as unhandled, instead of catching them and trying to complete the same
future again with an error, when it's possibly in an inconsistent state.

Fixes #43662.
Based on https://github.com/dart-lang/sdk/issues/43662#issuecomment-2058870247

CoreLibraryReviewExempt: No response.
Bug: http://dartbug.com/43662
Change-Id: I96a4f01bcd5b6cee93bba267299852569a9b905c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/363060
Commit-Queue: Lasse Nielsen <lrn@google.com>
Reviewed-by: Nate Bosch <nbosch@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2024-05-14 15:44:07 +00:00
Sigmund Cherem 3f705f0f7f [dart2js] allow tabs when computing the current script.
For unclear reasons, a JS stack trace sometimes has tabs instead of
spaces. For example, this has been observed when using the VS Code
extension host (NodeJs) in issue #55684.  When that happens, the d8
preamble function to compute the current script fails. While tabs are
not generally present there, this small change can make the logic a bit
more robust and versatile.

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

Change-Id: Id1833a8b550a0ba5c9822e98d9e69ea9abfd6232
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/366160
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Nate Biggs <natebiggs@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
2024-05-13 17:08:30 +00:00
Jake Macdonald a8ea744cea Update allowed_experiments.json to enable macros for the json package.
Without this there is no way to enable the experiment for a dependency, so nobody can try out package:json.

Bug: https://github.com/dart-lang/sdk/issues/55688
Change-Id: Id2f10b10dde0eb6d68d0bf76030ff557087ee83b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/366041
Reviewed-by: Leaf Petersen <leafp@google.com>
Auto-Submit: Jake Macdonald <jakemac@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Leaf Petersen <leafp@google.com>
2024-05-10 19:23:00 +00:00
Sam Rawlins 6a25f12f40 SDK: replace unsupported [this] comment references with this.
Work towards https://github.com/dart-lang/dartdoc/issues/3761

The analyzer has never recognized `[this]` as a valid doc comment
reference (and the `comment_references` lint rule has similarly
reported such reference attempts). dartdoc has its own algorithms
for resolving comment references, which we are dismantling in favor
of a single resolution, provided by the analyzer.

We've also decided against adding support in the analyzer (see
https://github.com/dart-lang/linter/issues/2079), so these
reference attempts should be re-written.

CoreLibraryReviewExempt: Comments only.
Change-Id: I6cc85115186527820bdd38dcfda8f61e35ae3fe9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/365204
Reviewed-by: Nate Bosch <nbosch@google.com>
Commit-Queue: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Lasse Nielsen <lrn@google.com>
2024-05-03 15:29:29 +00:00
Brian Quinlan 51ac900e0e [doc, io]: Add a note to indicate the batch file execution behavior on Windows.
Change-Id: I6f61af46e7e9e96282127fea919c8e79948356d4
CoreLibraryReviewExempt: documentation only
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/364941
Commit-Queue: Brian Quinlan <bquinlan@google.com>
Reviewed-by: Alexander Aprelev <aam@google.com>
2024-05-01 22:32:55 +00:00
ChoiYS 97321ebb19 Fix typos
Closes https://github.com/dart-lang/sdk/pull/55585

GitOrigin-RevId: 115e712e6a4ef4bb50eb0f5bc309931472d1ac50
Change-Id: If0d561751a1b888f3a16c59cb9db4c77b564df10
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/364640
Reviewed-by: Lasse Nielsen <lrn@google.com>
Commit-Queue: Lasse Nielsen <lrn@google.com>
2024-04-30 12:11:00 +00:00
Alexander Markov ac3a99b760 [vm] Optimize double.remainder
Bypass runtime entry and directly call `fmod` from generated code,
similarly to double.operator %.

On a micro-benchmark (from #55479):

JIT
Before: Remainder(RunTime): 1347507.0 us.
After:  Remainder(RunTime): 19465.037735849055 us. (69x faster)

AOT
Before: Remainder(RunTime): 1232950.0 us.
After: Remainder(RunTime): 19465.377358490565 us. (63x faster)

TEST=ci
Fixes https://github.com/dart-lang/sdk/issues/55479

Change-Id: I5b35b15f21da74aa4e2c92d7aa2804dae9efff99
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/364780
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2024-04-29 17:47:21 +00:00
Lasse R.H. Nielsen b464fc9037 Reland "Tweak expect.dart library."
This reverts commit cd2c566bcf.

Reason for revert: Updating to not remove field used by Flutter engine.

Original change's description:
> Revert "Tweak `expect.dart` library."
>
> This reverts commit ff5f391c0a.
>
> Reason for revert: The expect library is used by Flutter engine, and some of its tests use assertStatementsEnabled. There should be a migration path that doesn't require an atomic change, like adding the replacement api before removing the old one.
>
> Original change's description:
> > Tweak `expect.dart` library.
> >
> > Make API more consistent for a few methods.
> > Reduce the number of language features used in tests:
> > * Never iterating an iterable, always converting it
> >   using `.toList()` first and iterating using indices
> >   (fx `setEquals`).
> >   Also require a `List` in places where an `Iterable`
> >   wasn't necessary.
> > * Avoid doing complicated computations that are also
> >   used for the error message. Do simple check first,
> >   then recompute to get better error messages
> >   (fx `allDistinct`).
> >
> > Renamed some rarely used members for consistency
> > (`stringContainsInOrder`->`containsInOrder`,
> > where other string-contains functions just start
> > with `contains`, and `containsOneOf` -> `containsAny`
> > to match `Iterable.any` phrasing, and also it accepts
> > if containing at least one, not precisely one.)
> >
> > Removed a function that wasn't used anywhere.
> >
> > Moved `assertStatementsEnabled` to `variations.dart` as `asserts`.
> > Removed `typeAssertionsEnabled` and `checkedModeEnabled`. The former used in one place, where it was replaced with `checkedImplicitDowncasts` from `variations.dart`, the latter wasn't used anywhere.
> >
> > Deprecates `package:expect/minitest.dart`. It was never intended
> > to be used for new tests, only as a help to convert existing tests
> > written against `package:unit_test`.
> > All existing imports marked as `// ignore: deprecated_member_use`.
> >
> > Change-Id: I07e21d4c0f3ccf11b82ee34af2668fdbb22264d2
> > Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352360
> > Reviewed-by: Slava Egorov <vegorov@google.com>
> > Reviewed-by: Ömer Ağacan <omersa@google.com>
> > Reviewed-by: Nate Bosch <nbosch@google.com>
> > Reviewed-by: Stephen Adams <sra@google.com>
> > Commit-Queue: Lasse Nielsen <lrn@google.com>
>
> Change-Id: I360b4347470a0bb2b63c3108e2b83ee2a771bf3f
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/362020
> Reviewed-by: Nate Bosch <nbosch@google.com>
> Reviewed-by: Ömer Ağacan <omersa@google.com>
> Reviewed-by: Stephen Adams <sra@google.com>
> Reviewed-by: Leaf Petersen <leafp@google.com>
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Commit-Queue: William Hesse <whesse@google.com>

CoreLibraryReviewExempt: Reland
Change-Id: I53db40edc0733842a008839c3913d51c885e39ab
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/362502
Reviewed-by: Alexander Thomas <athom@google.com>
Reviewed-by: Nate Bosch <nbosch@google.com>
Reviewed-by: Ömer Ağacan <omersa@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
Reviewed-by: William Hesse <whesse@google.com>
Commit-Queue: Lasse Nielsen <lrn@google.com>
2024-04-26 15:28:26 +00:00
Daco Harkes 4b66657b98 [vm/ffi] address of operator for FFI leaf calls
During FFI leaf calls, the Dart GC will not run. This means that we
can pass pointers into `TypedData` to FFI calls that take `Pointer`
arguments.

After this CL, we have three types of arguments that can flow into
`Pointer` argument in an FFI call:
* `Pointer`.
* `TypedData`: Any typed data including views.
* `_Compound`: A TypedData/Pointer and an offset in bytes.

The is only possible for `@Native external` functions, `asFunction`
does not support passing in `TypedData`. (See related GitHub issues
for discussion. TLDR: FFIgen should generate bindings without config.)

`.address` expressions on `TypedData` and `Array` elements do _not_
introduce bounds checks, even though `TypedData` and `Array` have
bounds information. E.g. `ffiNative(Uint8List(10)[20].address)` does
not throw.

Implementation details:

The CFE analyzes call-sites to `@Native external` functions. If the
arguments are `.address` expressions, it transforms the call site to
pass the compound or `TypedData`. If an additional offset needs to be
applied, the CFE constructs a new `_Compound` with the correct offset
in bytes.

The CFE then also creates a new `@Native external` function which have
`TypedData`s and `_Compound`s parameters. To avoid name clashes, these
functions are postfixed with `#` and `P`, `T`, or `C` for each Pointer
parameter.

TEST=pkg/vm/testcases/transformations/ffi/address_of_*

In the VM, `TypedData` arguments are passed as tagged values, and the
address is loaded inside the `FfiCallInstr`. `_Compound` arguments
turn into two IL definitions, one for the `TypedDataBase` (tagged),
and one for the offset in bytes (unboxed). The address is then loaded
inside the `FfiCallInstr` and the offset in bytes is applied.

Adding the offset in bytes required an extra temp register for ia32.
Also, it uncovered that the temp register in arm32 was conflicting
with the argument registers. However, TMP should suffice instead.

TEST=tests/ffi/address_of_array_generated_test.dart
TEST=tests/ffi/address_of_struct_generated_test.dart
TEST=tests/ffi/address_of_typeddata_generated_test.dart

Closes: https://github.com/dart-lang/sdk/issues/44589
Closes: https://github.com/dart-lang/sdk/issues/54771

CoreLibraryReviewExempt: VM only, unsupported in dart2wasm
Change-Id: I01fb428cfd6f9096a34689c2819c124a8003cb6b
Cq-Include-Trybots: dart/try:vm-aot-android-release-arm64c-try,vm-aot-android-release-arm_x64-try,vm-aot-linux-debug-x64-try,vm-aot-linux-debug-x64c-try,vm-aot-mac-release-arm64-try,vm-aot-mac-release-x64-try,vm-aot-obfuscate-linux-release-x64-try,vm-aot-optimization-level-linux-release-x64-try,vm-aot-win-debug-arm64-try,vm-aot-win-debug-x64c-try,vm-aot-win-release-x64-try,vm-appjit-linux-debug-x64-try,vm-asan-linux-release-x64-try,vm-checked-mac-release-arm64-try,vm-eager-optimization-linux-release-ia32-try,vm-eager-optimization-linux-release-x64-try,vm-ffi-android-debug-arm64c-try,vm-ffi-qemu-linux-release-arm-try,vm-ffi-qemu-linux-release-riscv64-try,vm-linux-debug-ia32-try,vm-linux-debug-x64-try,vm-linux-debug-x64c-try,vm-mac-debug-arm64-try,vm-mac-debug-x64-try,vm-msan-linux-release-x64-try,vm-reload-linux-debug-x64-try,vm-reload-rollback-linux-debug-x64-try,vm-ubsan-linux-release-x64-try,vm-win-debug-arm64-try,vm-win-debug-x64-try,vm-win-debug-x64c-try,vm-win-release-ia32-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/360882
Reviewed-by: Jens Johansen <jensj@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Tess Strickland <sstrickl@google.com>
Reviewed-by: Lasse Nielsen <lrn@google.com>
2024-04-25 10:06:16 +00:00
Ömer Sinan Ağacan 39276e9bd4 [dart2wasm] Simplify libraries.yaml setup:
Move common libraries of wasm and wasm_js_compatibility to wasm_common,
remove wasm_base.

Change-Id: I0293cfd11b58be3d921413fdb2fff7171f0b3d4e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/364320
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Ömer Ağacan <omersa@google.com>
2024-04-24 08:04:58 +00:00
Ömer Sinan Ağacan bae278ec40 Minor tweaks in Finalizer documentation:
- Fix typos in "Get finalizer callback" -> "Call finalizer callback"
  in documentation of an `attach` call.

- Make it clear that the `detach` parameter of `attach` is not used by
  the finalizer.

- Make it clear what "the same value" means in the `detach` parameter
  documentation.

CoreLibraryReviewExempt: Documentation only
Change-Id: I8c1dc9e5fd6926e5c594c26a50228a044e892974
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/364100
Reviewed-by: Lasse Nielsen <lrn@google.com>
Commit-Queue: Ömer Ağacan <omersa@google.com>
2024-04-23 13:36:57 +00:00
Tess Strickland 1774314a04 [vm/test] Fix flakiness of vm/dart/use_dwarf_stack_traces_flag_test.
Previously, Internal_randomInstructionsOffsetInsideAllocateObjectStub
assumed the entry point is at the start of the instructions payload when
choosing a random offset into the instructions payload.  However, most
of our architectures have non-zero entry point offsets.

Instead, replace it with two methods, one that returns the start
(inclusive) and one that returns the end (exclusive) of the
AllocateObject stub instructions payload and have the test choose
points inside and outside of that range to test.

TEST=vm/dart/use_dwarf_stack_traces_flag_test

Fixes: https://github.com/dart-lang/sdk/issues/50286
Cq-Include-Trybots: luci.dart.try:vm-aot-dwarf-linux-product-x64-try,vm-aot-linux-release-x64-try,vm-aot-linux-debug-x64-try,vm-aot-mac-release-arm64-try,vm-aot-mac-product-arm64-try
Change-Id: Ia8965c72fbc6f6d2c178778a32f8083923a8b243
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/363080
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Auto-Submit: Tess Strickland <sstrickl@google.com>
Commit-Queue: Tess Strickland <sstrickl@google.com>
2024-04-23 09:45:21 +00:00
Moritz 8bc935cdb3 Fix documentation for sublist of typed_data
Change-Id: I90ece50be57a7a57cc8bc2ef27402d63bfaa71bd
CoreLibraryReviewExempt: Documentation fixes only.
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/363704
Commit-Queue: Moritz Sümmermann <mosum@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
2024-04-22 08:54:02 +00:00
Martin Kustermann 98808385d0 [dart2wasm] Fix bug in [Finalizer] implementation
The recent rewrite of [0] kept the existing semantics of the finalizer
implementation but migrated to the new interop semantics.

Turns out in that existing semantics there's a bug, namely that it
casted the peer object of to a non-nullable [Object] which is incorrect.

This CL
* fixes the cast to non-nullable [Object]
* moves the (currently) web-specific tests for
  [Finalizer]/[WeakReference] into `corelib` so it runs on all backends
* expands the finalizer tests to check finalizers get invoked
* expands the weak reference test to ensure weak reference is cleared

[0] https://dart-review.googlesource.com/c/sdk/+/363082/

Issue https://github.com/dart-lang/sdk/issues/55474

Change-Id: Ibd8c186b39100cff9e2f437f1a737034a5364830
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/363581
Reviewed-by: Ömer Ağacan <omersa@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2024-04-19 11:35:27 +00:00
Ömer Sinan Ağacan 637f3b216a [dart2wasm,dart2js] Fix setTimeout and setInterval impls in d8 scripts
HTML spec says the timeout argument in `setInterval` and `setTimeout`
will be 0 when negative [1], update our mocked versions in the d8 script
to implement this.

Fixes tests on dart2wasm-linux-d8:

- co19/LibTest/async/Timer/Timer.periodic_A02_t01
- co19/LibTest/async/Timer/Timer_A02_t01

These tests already pass on Firefox and Chrome.

Fixes #54598.

[1]: https://html.spec.whatwg.org/multipage/timers-and-user-prompts.html#dom-setinterval-dev
in "Timer initialization steps" step 4: "If timeout is less than 0, then
set timeout to 0."

Change-Id: I716f5942b5dff0fbd5a45c2bb6e0ef2732a5ea67
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/362260
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Ömer Ağacan <omersa@google.com>
Reviewed-by: Nate Biggs <natebiggs@google.com>
2024-04-19 07:39:55 +00:00
Nicholas Shahan 061004f83f [ddc] Cleanup old setBaseClass()
With the new type system type arguments appearing in extends are
no longer represented by a class definition and do not need to
trigger any lazy logic.

Change-Id: I3f80f9f972bec69c678909c12d25a604a8fe2c59
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/353205
Commit-Queue: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Mark Zhou <markzipan@google.com>
2024-04-18 23:21:07 +00:00
Nate Biggs 215323ad51 Fix broken links in dart:html package.
Fixes: https://github.com/dart-lang/sdk/issues/50247
Change-Id: Ia43cef267fa9f82702892c3a27cbaa81d71386c7
CoreLibraryReviewExempt: Doc update
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/363440
Commit-Queue: Nate Biggs <natebiggs@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2024-04-18 18:10:45 +00:00
Ömer Sinan Ağacan a2e3063250 [dart2wasm] Remove redundant allocation in JSStringImpl.toString
Also removes a redundant variable.

Change-Id: I6ff36f2a007f4248b9ec4b3c1fc3fe78a2bb6e85
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/363560
Commit-Queue: Ömer Ağacan <omersa@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
2024-04-18 09:07:54 +00:00
Martin Kustermann a133b75438 [dart2wasm] Enable weak reference / finalization tests on dart2wasm
This enables the currently dart2js/ddc-only tests for [WeakReference] /
[Finalizer] on dart2wasm.

As part of that we add a polyfill for the two implementations (just like
dart2js/ddc) do, to make the polyfill test pass.

We also migrate the implementation to use static interop.

Issue https://github.com/dart-lang/sdk/issues/55474

TEST=tests/web/wasm_js_shared/weak_reference_*test.dart

Change-Id: Ic08ae41b6fc78fd9857172ca24695a7f91e06a78
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/363082
Reviewed-by: Ömer Ağacan <omersa@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2024-04-18 07:55:38 +00:00
asiva 0165643fa7 Reland "[SDK] - Ensure we only build an AOT snapshot for the frontend-server"
This is a reland of commit e6c9eaaf6b

Original change's description:
> [SDK] - Ensure we only build an AOT snapshot for the frontend-server
>
> Currently we seem to build both the JIT and AOT snapshots of the
> frontend-server, ensure we only build the AOT snapshot on all
> architectures except IA32
>
> Change-Id: Ie79dc6d88fd9fa680267571e5d65081ca57609c6
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/359100
> Reviewed-by: Ben Konyi <bkonyi@google.com>
> Commit-Queue: Siva Annamalai <asiva@google.com>

Change-Id: Id9a695f33e4e808463b4f65bdb3cd0e546a695d1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/363480
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Siva Annamalai <asiva@google.com>
2024-04-17 20:42:51 +00:00
Ömer Sinan Ağacan 55f2754d6b [dart2wasm] Fix JSStringImpl trim methods, add tests
Fix trim methods returning a new string (instead of the argument) when
there's nothing to trim.

A second bug fixed in NEL handling in `trim`: the last line should be
`result.substring(...)` instead of `this.substring(...)`. The bug wasn't
caught by any of the tests: NEL needs to be handled specially on the
browser, but mixing NEL with other whitespace wasn't tested in the
existing tests `string_trim_test` and `string_trimlr_test`, so a new
test file added with this case.

Change-Id: Ibf84e185de1b26c9811e3ea58c2ad3f223da8515
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/363081
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Ömer Ağacan <omersa@google.com>
Reviewed-by: Lasse Nielsen <lrn@google.com>
2024-04-17 14:41:52 +00:00
Alexander Markov ad95bb6f89 Reland "[vm] Implement typed data view GetIndexed in flow graph builder"
This is a reland of commit a7e2dce0cc

Fixes the crash during code generation when typed data view
LoadIndexed was used on an internal typed data array
(in the unreachable code path) without loading its payload.

TEST=runtime/tests/vm/dart/regress_b_334128316_test.dart
TEST=manually verified repro from b/334128316

Original change's description:
> [vm] Implement typed data view GetIndexed in flow graph builder
>
> Typed data view 'operator []' is now implemented in the flow
> graph builder. This unifies all typed data GetIndexed operations
> and removes unnecessary address calculations.
>
> TEST=ci
>
> Change-Id: I8d2ca6e7c7bf18b2590536a643f92cad5beb6d95
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/361283
> Reviewed-by: Tess Strickland <sstrickl@google.com>
> Commit-Queue: Alexander Markov <alexmarkov@google.com>
> Reviewed-by: Slava Egorov <vegorov@google.com>

Change-Id: I3786fa17e971f8ba6cd01a57f1a68504bf24bc47
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/362821
Reviewed-by: Tess Strickland <sstrickl@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
2024-04-16 14:39:48 +00:00
Ömer Sinan Ağacan 95d871084e [dart2wasm] Cache hash codes in JSStringImpl
Change-Id: I41980461f9e6a4818458aa17471bd868b70ad354
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/362781
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Ömer Ağacan <omersa@google.com>
2024-04-16 13:42:48 +00:00
Ömer Ağacan a02859c7b1 Revert "[dart2wasm] Fix trim methods of JS strings"
This reverts commit 102f6c7f33.

Reason for revert: Instead of using VM's implementation we will
refactor and fix the old implementation that calls JS `trim`.

Since the original CL fixed some tests, revert will break them again.

Original change's description:
> [dart2wasm] Fix trim methods of JS strings
>
> We can't use JS `String.p.trim` (and the left/right trims) as we need to
> return the original argument when itd oesn't have any whitespace to
> remove.
>
> They also don't handle the NEL character as expected by Dart.
>
> Instead use the VM's trim implementations.
>
> Fix extracted from https://dart-review.googlesource.com/c/sdk/+/361362
> to keep the CL small.
>
> Change-Id: I5cd6cc2d4349f7b55544257666faff3bbeb00b8c
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/362388
> Reviewed-by: Slava Egorov <vegorov@google.com>
> Commit-Queue: Ömer Ağacan <omersa@google.com>

Change-Id: I9c4a3402213f5ace0da55584e737bf62bb51924b
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/362802
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Commit-Queue: Ömer Ağacan <omersa@google.com>
Reviewed-by: Ömer Ağacan <omersa@google.com>
2024-04-16 07:20:28 +00:00
Ömer Sinan Ağacan 102f6c7f33 [dart2wasm] Fix trim methods of JS strings
We can't use JS `String.p.trim` (and the left/right trims) as we need to
return the original argument when itd oesn't have any whitespace to
remove.

They also don't handle the NEL character as expected by Dart.

Instead use the VM's trim implementations.

Fix extracted from https://dart-review.googlesource.com/c/sdk/+/361362
to keep the CL small.

Change-Id: I5cd6cc2d4349f7b55544257666faff3bbeb00b8c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/362388
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Ömer Ağacan <omersa@google.com>
2024-04-15 09:51:57 +00:00
Ömer Sinan Ağacan 7f275c01b6 [dart2wasm] Escape replacement patterns when calling JS replace
When calling `String.p.replace` we need to escape `$` characters in
replacement argument as `$$` as Dart doesn't have the `$` replacement
syntax.

Fix extracted from https://dart-review.googlesource.com/c/sdk/+/361362
to keep the CL small.

Change-Id: I23a26dda48ed0d5ccb7fea5353f16350a2b046f3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/362387
Commit-Queue: Ömer Ağacan <omersa@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
2024-04-15 08:46:58 +00:00
Ömer Sinan Ağacan 0703566101 [dart2wasm] Fix int-to-js-string conversion
Converting the int to JS `double` fails with large integers. Pass the
`int` as Wasm `i64`, which will implicitly convert it to `BigInt`, and
then use `BigInt.p.toString`.

Fix extracted from https://dart-review.googlesource.com/c/sdk/+/361362
to keep the CL small.

Change-Id: Ia5723632d11fd8544789cf453bb5c0e36ac8f6bb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/362461
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Ömer Ağacan <omersa@google.com>
2024-04-15 08:36:22 +00:00
Alexander Markov 8a4c626086 Revert "[vm] Implement typed data view GetIndexed in flow graph builder"
This reverts commit a7e2dce0cc.

Reason for revert: VM crash (b/334128316)

Original change's description:
> [vm] Implement typed data view GetIndexed in flow graph builder
>
> Typed data view 'operator []' is now implemented in the flow
> graph builder. This unifies all typed data GetIndexed operations
> and removes unnecessary address calculations.
>
> TEST=ci
>
> Change-Id: I8d2ca6e7c7bf18b2590536a643f92cad5beb6d95
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/361283
> Reviewed-by: Tess Strickland <sstrickl@google.com>
> Commit-Queue: Alexander Markov <alexmarkov@google.com>
> Reviewed-by: Slava Egorov <vegorov@google.com>

TEST=ci

Change-Id: I4c5b2e16d1218b92b717c4d0e8eea548d3113eab
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/362620
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2024-04-12 19:46:56 +00:00
Alexander Aprelev 62ef193d1a [vm/asserts] Keep asserts lines and source snippets in AOT.
TEST=vm/dart/asserts_test
Fixes https://github.com/dart-lang/sdk/issues/34110

Change-Id: I9f186e7833a30b98739ed7fde6064cc47d14d5c4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/362198
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Alexander Markov <alexmarkov@google.com>
2024-04-12 19:42:15 +00:00
Alexander Markov a7e2dce0cc [vm] Implement typed data view GetIndexed in flow graph builder
Typed data view 'operator []' is now implemented in the flow
graph builder. This unifies all typed data GetIndexed operations
and removes unnecessary address calculations.

TEST=ci

Change-Id: I8d2ca6e7c7bf18b2590536a643f92cad5beb6d95
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/361283
Reviewed-by: Tess Strickland <sstrickl@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
2024-04-12 15:48:22 +00:00
Alexander Aprelev 8af6f94b61 [vm/datetime] Fix construction of '1 microsecond before epoch' DateTime.
TEST=corelib/date_time_extremes_test
Fixes https://github.com/dart-lang/sdk/issues/55438

Change-Id: I87f5c01450089a76703ae6a3326fc188f2b90903
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/362301
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Lasse Nielsen <lrn@google.com>
2024-04-11 22:01:29 +00:00
Alexander Markov 6511af1095 [vm] Unsound mode cleanup: remove --null-assertions
Vm flag --null-assertions only makes sense without sound null safety.
Now that VM no longer supports unsound mode, the flag is obsolete and
can be removed.

TEST=ci

Change-Id: I69eb2012ac483f082fd43ecc9743076e0e1928c8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/362181
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2024-04-10 18:00:09 +00:00
William Hesse cd2c566bcf Revert "Tweak expect.dart library."
This reverts commit ff5f391c0a.

Reason for revert: The expect library is used by Flutter engine, and some of its tests use assertStatementsEnabled. There should be a migration path that doesn't require an atomic change, like adding the replacement api before removing the old one.

Original change's description:
> Tweak `expect.dart` library.
>
> Make API more consistent for a few methods.
> Reduce the number of language features used in tests:
> * Never iterating an iterable, always converting it
>   using `.toList()` first and iterating using indices
>   (fx `setEquals`).
>   Also require a `List` in places where an `Iterable`
>   wasn't necessary.
> * Avoid doing complicated computations that are also
>   used for the error message. Do simple check first,
>   then recompute to get better error messages
>   (fx `allDistinct`).
>
> Renamed some rarely used members for consistency
> (`stringContainsInOrder`->`containsInOrder`,
> where other string-contains functions just start
> with `contains`, and `containsOneOf` -> `containsAny`
> to match `Iterable.any` phrasing, and also it accepts
> if containing at least one, not precisely one.)
>
> Removed a function that wasn't used anywhere.
>
> Moved `assertStatementsEnabled` to `variations.dart` as `asserts`.
> Removed `typeAssertionsEnabled` and `checkedModeEnabled`. The former used in one place, where it was replaced with `checkedImplicitDowncasts` from `variations.dart`, the latter wasn't used anywhere.
>
> Deprecates `package:expect/minitest.dart`. It was never intended
> to be used for new tests, only as a help to convert existing tests
> written against `package:unit_test`.
> All existing imports marked as `// ignore: deprecated_member_use`.
>
> Change-Id: I07e21d4c0f3ccf11b82ee34af2668fdbb22264d2
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352360
> Reviewed-by: Slava Egorov <vegorov@google.com>
> Reviewed-by: Ömer Ağacan <omersa@google.com>
> Reviewed-by: Nate Bosch <nbosch@google.com>
> Reviewed-by: Stephen Adams <sra@google.com>
> Commit-Queue: Lasse Nielsen <lrn@google.com>

Change-Id: I360b4347470a0bb2b63c3108e2b83ee2a771bf3f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/362020
Reviewed-by: Nate Bosch <nbosch@google.com>
Reviewed-by: Ömer Ağacan <omersa@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: William Hesse <whesse@google.com>
2024-04-09 18:10:57 +00:00
Lasse R.H. Nielsen ff5f391c0a Tweak expect.dart library.
Make API more consistent for a few methods.
Reduce the number of language features used in tests:
* Never iterating an iterable, always converting it
  using `.toList()` first and iterating using indices
  (fx `setEquals`).
  Also require a `List` in places where an `Iterable`
  wasn't necessary.
* Avoid doing complicated computations that are also
  used for the error message. Do simple check first,
  then recompute to get better error messages
  (fx `allDistinct`).

Renamed some rarely used members for consistency
(`stringContainsInOrder`->`containsInOrder`,
where other string-contains functions just start
with `contains`, and `containsOneOf` -> `containsAny`
to match `Iterable.any` phrasing, and also it accepts
if containing at least one, not precisely one.)

Removed a function that wasn't used anywhere.

Moved `assertStatementsEnabled` to `variations.dart` as `asserts`.
Removed `typeAssertionsEnabled` and `checkedModeEnabled`. The former used in one place, where it was replaced with `checkedImplicitDowncasts` from `variations.dart`, the latter wasn't used anywhere.

Deprecates `package:expect/minitest.dart`. It was never intended
to be used for new tests, only as a help to convert existing tests
written against `package:unit_test`.
All existing imports marked as `// ignore: deprecated_member_use`.

Change-Id: I07e21d4c0f3ccf11b82ee34af2668fdbb22264d2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/352360
Reviewed-by: Slava Egorov <vegorov@google.com>
Reviewed-by: Ömer Ağacan <omersa@google.com>
Reviewed-by: Nate Bosch <nbosch@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Lasse Nielsen <lrn@google.com>
2024-04-09 14:49:17 +00:00
Parker Lougheed f9bdb11899 [sdk/async] Add since info to new ParallelWaitError parameters
These were added in 1436635d27.

CoreLibraryReviewExempt: No functional change. Only adding since version metadata.
Change-Id: Ifc20265df2694d8ce410025f1d1f6a65f5da81d2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/361500
Commit-Queue: Marya Belanger <mbelanger@google.com>
Reviewed-by: Marya Belanger <mbelanger@google.com>
Reviewed-by: Lasse Nielsen <lrn@google.com>
2024-04-08 19:40:25 +00:00
Ömer Sinan Ağacan 377d61b625 [dart2wasm] Remove an unnecessary unsafeCast in JSCM string patch
Change-Id: I31e4d4db5cd0fdb9e9bb0f507b4eb521e0fcf3d5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/361380
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Ömer Ağacan <omersa@google.com>
2024-04-08 08:24:18 +00:00
Nicholas Shahan cd4070bad8 [ddc] Update _isBrowserType() for use on d8
Before testing values first check if the type being used in the
`instanceOf` exists in the global scope.

Issue: https://github.com/dart-lang/sdk/issues/55378
Change-Id: I1a4759c660aee32071cf7869611f7af85574e04d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/361131
Reviewed-by: Srujan Gaddam <srujzs@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
2024-04-05 23:32:47 +00:00
Siva Annamalai c394f20e82 Revert "[SDK] - Ensure we only build an AOT snapshot for the frontend-server"
This reverts commit e6c9eaaf6b.

Reason for revert: We seem to have issues rolling Dart into Flutter frame works because code outside of the Dart SDK seems to rely on the existence of this snapshot.

Original change's description:
> [SDK] - Ensure we only build an AOT snapshot for the frontend-server
>
> Currently we seem to build both the JIT and AOT snapshots of the
> frontend-server, ensure we only build the AOT snapshot on all
> architectures except IA32
>
> Change-Id: Ie79dc6d88fd9fa680267571e5d65081ca57609c6
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/359100
> Reviewed-by: Ben Konyi <bkonyi@google.com>
> Commit-Queue: Siva Annamalai <asiva@google.com>

Change-Id: I0e79cc688aaec7dc5428ccbbaff7f1dbea11a962
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/361285
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Siva Annamalai <asiva@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2024-04-05 19:47:17 +00:00
Ben Konyi e82ff48027 [ CLI ] Add dart development-service command
The `dart development-service` command will be used by tooling to launch
DDS from the SDK instead of shipping DDS via package:dds.

TEST=Existing service test suite

Change-Id: Ib928aa5b8961caf87d7074884c3d226b5c096ccd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/361180
Reviewed-by: Derek Xu <derekx@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2024-04-05 16:30:11 +00:00
Flop 4fd5d783c1 Update Symbol constructor documentation
R=iinozemtsev@google.com

CoreLibraryReviewExempt: Documentation change
Change-Id: I3354f7d4a0c9e5a7281ea8764431139deeac1014
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/361220
Auto-Submit: 枯枯坐 <kukuzuo@gmail.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Reviewed-by: Lasse Nielsen <lrn@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
2024-04-05 12:06:39 +00:00