Commit Graph

43202 Commits

Author SHA1 Message Date
Konstantin Shcheglov bf5bdc97ff Issue 52296. Fix NPE in AddTypeAnnotation, when formal parameter without name.
Bug: https://github.com/dart-lang/sdk/issues/52296
Change-Id: I6f3952faa9f3fc9e7f9e1d83c4699222be8dbcdc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/301731
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Keerti Parthasarathy <keertip@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2023-05-08 14:54:48 +00:00
Konstantin Shcheglov c63263cbf5 Issue 51855. Add debug output.
Bug: https://github.com/dart-lang/sdk/issues/51855
Change-Id: Ifd8f3cf1f4e82536b475fb7460c27d1ba73672e1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/301732
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2023-05-08 14:47:32 +00:00
Konstantin Shcheglov 8c97d0cfe3 Add static invocation case for EXTENSION highlighting.
Change-Id: Ibc4065b95ac8902f50fafe14ecd451abf8fb3c8d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/301733
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2023-05-08 14:40:38 +00:00
Konstantin Shcheglov 036b8cafad Add AnalysisError.tmp() constructor, deprecate the default one.
Bug: https://github.com/dart-lang/sdk/issues/51985
Change-Id: I1204c71a4c5ea62d32d65662ecb5274dacb0bfae
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/301730
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2023-05-08 14:39:29 +00:00
Johnni Winther 3e0672ae7c [_fe_analyzer_shared] Handle nullable type variables in exhaustiveness checking
Closes #52212

Change-Id: Ie81f873c59db7859c5a1075563d5c0ac00c94bfb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/301441
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2023-05-08 09:15:01 +00:00
Johnni Winther 13c4ad23c5 [kernel] Add SwitchStatement.expressionType
This adds the static type of the switch statement expression to
the AST to better support optimizations based on the possible
runtime values of the switch expression.

TEST=existing

Change-Id: Ief35b687150401100d8c96721a026e9f0911b3b4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/301063
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
Reviewed-by: Mayank Patke <fishythefish@google.com>
2023-05-08 07:39:02 +00:00
Konstantin Shcheglov f572144809 Issue 52271. Report FINAL_CLASS_EXTENDED_OUTSIDE_OF_LIBRARY when via library before class-modifiers.
Bug: https://github.com/dart-lang/sdk/issues/52271
Change-Id: I94049f8702647fc604c42ce353afce9d19322d8d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/301506
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2023-05-06 17:16:28 +00:00
Brian Wilkerson 1906adea11 Rewrite completion tests for extension methods
Change-Id: Icda038d078519f7eb5018d7f6089620dd6931c52
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/301660
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2023-05-05 21:17:19 +00:00
Nicholas Shahan b18efe2891 [ddc] Update type parameter representations
Previously type tests involving type parameter types would
be replaced with native primitive tests when the type parameter
was bounded by a type with a native representation. This isn't
always correct because the type parameter can always be inhabited
by the bottom type at runtime. So code like `x is T` would be true
when `T` is instantiated as `Never` and `x` is any primitive value
like a number, string, or bool.

This change removes the incorrect optimization that allowed type
parameters to be replaced with their bound when that bound was
represented by a native type when performing an `is` operation.

Fixes: https://github.com/dart-lang/sdk/issues/52243
Change-Id: I57cebef7bb533d71831ef84415b3d91369758476
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/300820
Commit-Queue: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Anna Gringauze <annagrin@google.com>
2023-05-05 21:13:40 +00:00
Brian Wilkerson aa75db8cb2 Fix race condition in analytics
I don't know how to write a test that ensures that we will attempt to
modify the collections after entering the for loop. Suggestions welcome.

Bug: https://github.com/dart-lang/sdk/issues/52263
Change-Id: Ifc13e80594bd08f6c485d8898eb7c75b31172992
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/301780
Reviewed-by: Keerti Parthasarathy <keertip@google.com>
Commit-Queue: Brian Wilkerson <brianwilkerson@google.com>
2023-05-05 21:02:29 +00:00
Konstantin Shcheglov f90c3d0423 Issue 52272. Report DEPRECATED_MIXIN_FUNCTION in more places.
Bug: https://github.com/dart-lang/sdk/issues/52272
Change-Id: I02133f8685adf6a1e4fa16288948cc31afeb1bd4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/301560
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2023-05-05 20:02:28 +00:00
pq f03e5b424a remove invalid failing test
(This test makes no sense.)

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

Change-Id: I9fb25a9f6252f1b67e9b559997d26683fd8f758b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/301720
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
2023-05-05 17:56:00 +00:00
Sigmund Cherem 1c59f30d7b [dart2js] fix crash with records and null-assertions.
Our helper function to detect whether a null-assertion was required
didn't include a case to check for record types.

The null-assertion flag is likely to go away soon, since it's
only valuable for mixed applications.

Fixes #52276

Change-Id: Ief4515b8c3eaae5343012da4220e6051bb5a2f19
Fixed: 52276
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/301680
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Nate Biggs <natebiggs@google.com>
2023-05-05 17:20:13 +00:00
pq 7e175b7863 + completion suggestions for pubspec "screenshots"
Fixes: https://github.com/dart-lang/sdk/issues/50179

Change-Id: I34a07d3ad28085d75d4ac2fa24f5b4d2e2dad7b8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/301483
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2023-05-05 16:54:24 +00:00
Konstantin Shcheglov 4d6f49b1cd Update ExtensionOverride to use ImportPrefixReference and name token.
Change-Id: Ifc5852c775a95908992d33a7949b4f4bea396d66
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/299920
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2023-05-05 15:42:36 +00:00
Stephen Adams d3da4311c0 [dart2js] Lower String.codeUnitAt to charCodeAt
Change-Id: Id4408a761304fc2fcb7ce3bd353c626958971ffb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/300500
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2023-05-05 15:27:11 +00:00
Konstantin Shcheglov 40de1ab1ab Issue 46514. Report an error for using extension methods in a prefix or binary constant expressions.
Bug: https://github.com/dart-lang/sdk/issues/46514
Change-Id: I59ed3bd754043302632f31aedeaedd7824b8a8c2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/301505
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2023-05-05 02:31:19 +00:00
Mark Zhou b6870138ee [ddc] Extending library-to-module resolution to include libraries referenced in the current component
Required for upcoming deferred loading changes.

Our previous only stored this resolution logic for all componets except the
current component, which resulted in some empty deferred loads when referencing
modules in the main component.

Also adds a small type signature update missed in a previous commit.

Change-Id: I8511a39b26e1864919cc4882a6c008d2010354a2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/299381
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Commit-Queue: Mark Zhou <markzipan@google.com>
2023-05-05 01:14:41 +00:00
pq 3edd793682 + pubspec "topics" code completion suggestions
See: https://github.com/dart-lang/sdk/issues/52256

Change-Id: I06ed28bf7280e5c6d8762d73b0d7b085a6ca08c3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/301181
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
2023-05-04 22:28:19 +00:00
Derek Xu 33ab02b064 [DDS] Add getPerfettoVMTimelineWithCpuSamples RPC
Change-Id: I3d8e5c48f5482e787ab9d561692d416c50f37a8a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/301541
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Derek Xu <derekx@google.com>
2023-05-04 20:23:09 +00:00
Derek Xu cd83aa8494 [VM/Service] Prepare to publish package:vm_service 11.5.0
TEST=`dart pub publish --dry-run`

Change-Id: I6ef1c8175f39a086716be859068518d124124718
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/301540
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Derek Xu <derekx@google.com>
2023-05-04 20:20:58 +00:00
Ömer Sinan Ağacan e20d2d2103 [dart2wasm] Fix completer.future type in for-in lowering
Currently the `InstanceGet` node result type for for
`Completer<bool>.future` is `Future<bool> Function()`, but it should be
`Future<bool>`.

This causes problems in CL 301020 where we generate temporaries for
nested `await` expressions and use the expression type for the types of
those temporaries. Incorrect expression type in `completer.future`
causes a temporary with incorrect type to be generated.

Change-Id: Ib8193c66afee9454a275c00fb958c11fd35cd3eb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/301382
Reviewed-by: Joshua Litt <joshualitt@google.com>
Commit-Queue: Ömer Ağacan <omersa@google.com>
2023-05-04 19:15:28 +00:00
Alexander Markov c1f9930f5b [vm] Restore InstanceKind.TypeRef in the VM-service API for backwards compatibility
TEST=doc/comment change
Change-Id: I0fcb9d418a9c95e6ce57a03eb693aefb9e245d2a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/301501
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
2023-05-04 18:04:13 +00:00
Konstantin Shcheglov 193316584f Issue 52255. Avoid crashing in AddExplicitCast when the expression is not real.
Bug: https://github.com/dart-lang/sdk/issues/52255
Change-Id: I7ae2fd183cbd73b9d9bb4e5c4dc13e1c0c0ef062
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/301201
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2023-05-04 16:19:29 +00:00
Srujan Gaddam ceca7aae56 [pkg:js] Update min sdk version to 3.1.0-66.0.dev
This is the minimum version with this CL:
https://github.com/dart-lang/sdk/commit/c4d354dc2a514fa3af6929a3513a9d7fa4fe8206.
Since this CL removes package:js annotations and redefines the meaning
of dart:_js_annotations @JS annotation, we need to make sure new
versions of the package don't run with old versions of the SDK.

Change-Id: Id8af568fc5b65737c6dd69359e51abae8cc43e9f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/301280
Commit-Queue: Joshua Litt <joshualitt@google.com>
Auto-Submit: Srujan Gaddam <srujzs@google.com>
Reviewed-by: Joshua Litt <joshualitt@google.com>
2023-05-04 15:56:41 +00:00
Jens Johansen adb38d2eca [CFE] Create maps in scopes lazily
When compiling `compile.dart` 74054 non-const scopes are created;
~78% have empty locals and ~99% have empty setters.
This CL creates the maps lazily instead, thus potentially saving ~130k
map creations (and possibly an unknown number of lookups in empty maps
etc).

In measurements (on AOT when compiling `compile.dart`) this has resulted
in changes in runtime ranging from -1.81601% +/- 1.39701% to
-4.60653% +/- 1.68463%, the latest run gave this:

Difference at 95.0% confidence
        -0.151 +/- 0.0557737
        -3.90231% +/- 1.44137%
        (Student's t, pooled s = 0.0871402)

Change-Id: Ic65eeca253dccb871585c221798b59852de80616
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/301064
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Jens Johansen <jensj@google.com>
2023-05-04 12:35:27 +00:00
Johnni Winther d07d8f59fc [cfe] Support inline class constructor tear-off
Closes #52240

Change-Id: If3474b85f1ebcdd5d0f4e68eafd4f706b7fd38fe
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/301386
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
2023-05-04 12:33:58 +00:00
Johnni Winther 0c7281fee0 [cfe] Remove SourceLibraryBuilder.inferredTypes
Change-Id: Ide19449f113f3b18e1685c7de6ee0239fe67c715
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/301383
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
2023-05-04 12:14:20 +00:00
Johnni Winther 52df013834 [cfe] Move BodyBuilderContext implementation into subclasses
This moves the implementation of BodyBuilderContext into the subclasses
where the methods are supported. Additionally a
BodyBuilderDeclarationContext for the implementation based on the
(enclosing) declaration/class builder.

Change-Id: I5084e87ae0c0882db94e4021971d86f8a149daa4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/301360
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
2023-05-04 10:17:49 +00:00
Jens Johansen c0c9c98787 [flow analysis] Don't create a new empty map for every FlowModel
Currently every FlowModel creates a new empty map that's just supposed
to be empty. When compiling `compile.dart` (from the CFE) this creates
more than 200,000 maps for seemingly no reason.

This CL removes it, thus saving the creation of (...instrumenting the
platform...) 229,472 maps when compiling `compile.dart` (from the CFE).

Thinking it was done to avoid some polymorphism I have gone over the
created flowgraphs for the file in both JIT and AOT and found only
improvements.

AOT compiled `compile.dart` then compiling itself improves by ~3.5%:

```
Difference at 95.0% confidence
        -0.1365 +/- 0.0576111
        -3.55191% +/- 1.49912%
        (Student's t, pooled s = 0.090011)
```

Change-Id: Ifdbb57e9aa3c23b2af512a2104aaf6caf72831ef
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/301061
Commit-Queue: Jens Johansen <jensj@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Paul Berry <paulberry@google.com>
2023-05-04 06:25:28 +00:00
Johnni Winther 8ea8160cd8 [cfe] Create *BodyBuilderContext at root
This adds individual [BodyBuilderContext] classes for the different
contexts and passes these at the root of the BodyBuilder creation.
Currently these are simple subtypes [BodyBuilderContext] but the plan
is to move implementation into the subclasses where the functionality
is actually supported.

Change-Id: I8ea22c5f563d9fa539cbd17ed02c919647a1aecd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/301000
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
2023-05-04 06:22:21 +00:00
Konstantin Shcheglov b06b994a4e Use errorType for element type when an error in for-in.
Change-Id: I8be4c1521a819f26d249d688f72dc672ee4994fa
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/300561
Reviewed-by: Paul Berry <paulberry@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2023-05-03 21:17:08 +00:00
Derek Xu 1dd644f595 [VM/Service] Add getPerfettoCpuSamples RPC
TEST=Checked that Observatory's timeline view was still able to load CPU
samples correctly, and ensured that samples retrived using
getPerfettoCpuSamples were the same as the ones shown in Observatory.

Change-Id: I9b58cd32bc9a1c08848718f25f10db9fa6d4d241
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/297760
Commit-Queue: Derek Xu <derekx@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
2023-05-03 19:17:11 +00:00
Joshua Litt e82a5a2ff3 [dart2wasm] Move entrypoint into the lib directory.
This CL will make it easier to consume `dart2wasm` as a library. Specifically, users can import `package:dart2wasm/dart2wasm.dart`, and call `main` from Dart libraries.

Change-Id: I9f5d5ab539677af2604df9d4b0e1e2d82db7485f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/300780
Commit-Queue: Joshua Litt <joshualitt@google.com>
Reviewed-by: Ömer Ağacan <omersa@google.com>
2023-05-03 16:45:32 +00:00
Vyacheslav Egorov 19e56613cf [infra] Prevent VM AOT tests from poluting SDK source.
Extend test_runner VMOptions support with an ability to specify
paths relative to temporary compilation directory.

    // VMOptions=--foo=$TEST_COMPILATION_DIR/foo.file

The same directory will also be passed as an environment variable
to execution command.

Migrate most of the tests which used to write stuff into the SDK
root to use this feature. I am leaving vm/dart/causal/* tests
unmigrated because migrating requires time consuming manual
update of expectations (which encode raw line numbers). I have
a follow up CL which changes how these tests are written which
will make migration trivial.

Change-Id: Id53008be66de8ff18623efac27ff15750f407749
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/300600
Reviewed-by: William Hesse <whesse@google.com>
Commit-Queue: Slava Egorov <vegorov@google.com>
2023-05-03 13:24:39 +00:00
Chloe Stefantsova e3275641a3 [cfe] Remove spurious ".this" in IntersectionType.withDeclaredNullability
Change-Id: Id5428658ebdccca4385a700725218ee5551495f7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/300660
Reviewed-by: Jens Johansen <jensj@google.com>
Commit-Queue: Chloe Stefantsova <cstefantsova@google.com>
2023-05-03 06:20:24 +00:00
Chloe Stefantsova 0822573589 [cfe] Report await-for in non-async functions for patterns too
Closes https://github.com/dart-lang/sdk/issues/52228

Change-Id: I7cb48a39ce2e51f0d9405e9e829d01f0e3209073
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/300620
Commit-Queue: Chloe Stefantsova <cstefantsova@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2023-05-03 06:12:27 +00:00
Sigmund Cherem 485633b50f Revert "Revert "[dart2js] drop unnecessary modular data(3): exte..."
Revert submission 300902-revert-300800-LYOMDRSVDI

Reason for revert: Fix issue (see patchset 2 in second CL)

Reverted changes: /q/submissionid:300902-revert-300800-LYOMDRSVDI

Change-Id: I4ad50f9a2f493f4cce76aa9155571434bae02d2a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/300922
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2023-05-03 00:34:51 +00:00
Sigmund Cherem 618e9ece17 Revert "Revert "[dart2js] drop unnecessary modular data (2): non..."
Revert submission 300902-revert-300800-LYOMDRSVDI

Reason for revert: Fix issue (see patchset 2 in second CL)

Reverted changes: /q/submissionid:300902-revert-300800-LYOMDRSVDI

Change-Id: I74eb4064967ca3604da09bbe7341080360cf1a16
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/300921
Reviewed-by: Nate Biggs <natebiggs@google.com>
2023-05-03 00:34:51 +00:00
Sigmund Cherem ab4fbf128e Revert^2 "[dart2js] drop unnecessary data from modular data."
d57046b535

Change-Id: Ib97b3f9abd3757f6e127c49eba45358f47e44175
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/300920
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2023-05-03 00:34:51 +00:00
Sigmund Cherem d57046b535 Revert "[dart2js] drop unnecessary data from modular data."
Revert submission 300800

Reason for revert: broke bots. CQ didn't retrigger when second change int he chain was updated.

Reverted changes: /q/submissionid:300800

Change-Id: I9b1c2183e6948a88c3c28f806e913ef4f95664cf
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/300902
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2023-05-02 23:34:11 +00:00
Sigmund Cherem 03dbb97ca2 Revert "[dart2js] drop unnecessary modular data (2): non foreign..."
Revert submission 300800

Reason for revert: broke bots. CQ didn't retrigger when second change int he chain was updated.

Reverted changes: /q/submissionid:300800

Change-Id: Iee3ef0e1e85a89708337a48c6a5a34a2f5114147
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/300901
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2023-05-02 23:34:11 +00:00
Sigmund Cherem 31d3b8c80d Revert "[dart2js] drop unnecessary modular data(3): external pro..."
Revert submission 300800

Reason for revert: broke bots. CQ didn't retrigger when second change int he chain was updated.

Reverted changes: /q/submissionid:300800

Change-Id: Ib86d944f0881ed8b5b3efea5c343b120d7e9a370
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/300900
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2023-05-02 23:34:11 +00:00
Sigmund Cherem 0e9c4080d4 [dart2js] drop unnecessary modular data(3): external procedures.
Like previous changes, removes unnecessary data from the modular serialization.

Change-Id: Ief8fbbc23f88379688850baa0ee1f6482c2549d3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/300800
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Nate Biggs <natebiggs@google.com>
2023-05-02 23:17:17 +00:00
Sigmund Cherem 0e1c35ced3 [dart2js] drop unnecessary modular data (2): non foreign nodes
The modular data saved references to every static invocation node, but only
needed this data for nodes representing one of the `JS*` foreign helpers.

This together with the previous change collectively reduce the total size of
the modular data by an average 8% on a small sample (which includes the entire
SDK).

Change-Id: I3080a1d7ba03643667cb50d7eadcc9fa0a065e6a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/299921
Reviewed-by: Nate Biggs <natebiggs@google.com>
2023-05-02 23:17:17 +00:00
Sigmund Cherem 2ec5565b88 [dart2js] drop unnecessary data from modular data.
We seem to unnecessarily store all literals when all we need is to know
whether a literal of each kind is in use in the program.

I expect similar changes could help make the modular data more compact and
potentially make enough of a difference where a modular analysis may make
sense.

Change-Id: I045401d742b0467435da179af51c39c3ea08401f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/299960
Reviewed-by: Nate Biggs <natebiggs@google.com>
2023-05-02 23:17:17 +00:00
Konstantin Shcheglov 12b7d257d8 Issue 52226. Fix AddSwitchCaseBreak for shared case bodies.
Bug: https://github.com/dart-lang/sdk/issues/52226
Change-Id: Ia330b7db7de3f38ec7c0849f760bbbaf0d009012
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/300160
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
2023-05-02 19:35:33 +00:00
Danny Tuppeny 7a6352a9b1 [dds/dap] Ensure DAP always responds to initialize() before sending initializedEvent
Changes to support DAP in DDS introduced a subtle bug where we could send the `InitializedEvent` before the response to the `Initialize` request because `sendResponse` used a `Completer` and would delay adding the response to the stream until the next iteration of the task queue.

Although there were comments stating this order must be preserved, there were no tests that verified this and it breaks VS Code (https://github.com/dart-lang/sdk/issues/52222).

I've added tests for this, and changed how this works slightly so instead of using a `Completer` we pass in a "responseWriter" function that must write the response to the stream synchronously.

Since the DDS path isn't using events yet and it would require a little more refactoring, I've used a Completer there and added a TODO.

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

Change-Id: I1832126f5015b466c721dbda192da4b8a5d83b62
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/300601
Reviewed-by: Ben Konyi <bkonyi@google.com>
Commit-Queue: Ben Konyi <bkonyi@google.com>
2023-05-02 18:35:26 +00:00
Joshua Litt 85afd7bf30 [js] Add proper error message for incorrect usage of Function.toJS.
Change-Id: Id38166f9e9a2c56a73840de212f2e3f6388ad2ed
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/298240
Reviewed-by: Srujan Gaddam <srujzs@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Joshua Litt <joshualitt@google.com>
2023-05-02 15:25:38 +00:00
Srujan Gaddam c4d354dc2a Reland "[pkg:js/dart:js_interop] Move annotations to dart:_js_annotations"
This reverts commit 4919729f00.

This CL also adds back in logic to handle older package:js versions to avoid
failures in our static checking. It also supports dart:js_interop's @JS
annotation since it can now be used for @staticInterop classes.

CoreLibraryReviewExempt: Reland of backend-specific library changes.
Change-Id: I104653a9a6b2593f6bab658808287e2074c18550
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/294130
Reviewed-by: Joshua Litt <joshualitt@google.com>
Commit-Queue: Srujan Gaddam <srujzs@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Samuel Rawlins <srawlins@google.com>
2023-05-02 15:24:18 +00:00