Commit Graph

5465 Commits

Author SHA1 Message Date
Nate Biggs 6548bf12ed [dart2js] Implement a bucketed work queue for the inferrer.
The bucket indexing can be made more complex but for now this simple change of processing CallSiteTypeInformations separately has shown an improvement in inference execution time (~5% on a big program).

Change-Id: If029906ca0c51d67939776732e0a25dcab7f6af1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/284400
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Nate Biggs <natebiggs@google.com>
2023-02-21 23:25:23 +00:00
Nate Biggs 318f5b09c8 [dart2js] Merge diffs from inferrer/ into inferrer_experimental/
Change-Id: Iae08eaad674ec2aa0113cf832fdcdb1895c19024
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/284040
Reviewed-by: Mayank Patke <fishythefish@google.com>
2023-02-21 23:25:23 +00:00
Nate Biggs 671b7e3c77 [dart2js] Fix handling of dynamic calls in linearized algorithm.
Change-Id: Ibeb285ee293fe522c4e32fedb91d3deee92f091a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/284320
Reviewed-by: Mayank Patke <fishythefish@google.com>
Commit-Queue: Nate Biggs <natebiggs@google.com>
2023-02-21 23:24:40 +00:00
Stephen Adams 19ac93da32 [dart2js] Allow constant record Types to be named
Change-Id: Ib1ba362ea3f91329f2b2357597bc0e874a2c4d04
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/284280
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Mayank Patke <fishythefish@google.com>
2023-02-21 20:01:50 +00:00
Ömer Ağacan 7c6423cb32 Revert "[kernel] Remove unused RecursiveVisitor type parameter"
This reverts commit a329e05684.

Reason for revert: Broke internal projects

Original change's description:
> [kernel] Remove unused RecursiveVisitor type parameter
>
> TEST=ci
>
> Change-Id: I523282e933b955389c950c1942253d2d66a51f3f
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/283821
> Reviewed-by: Johnni Winther <johnniwinther@google.com>
> Commit-Queue: Ömer Ağacan <omersa@google.com>

TBR=johnniwinther@google.com,omersa@google.com,dart-scoped@luci-project-accounts.iam.gserviceaccount.com

Change-Id: Iad30e34ce0a491711b0daa1991c69de1796f8846
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/284023
Commit-Queue: Ömer Ağacan <omersa@google.com>
Reviewed-by: Ömer Ağacan <omersa@google.com>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
2023-02-18 10:52:39 +00:00
Ömer Sinan Ağacan a329e05684 [kernel] Remove unused RecursiveVisitor type parameter
TEST=ci

Change-Id: I523282e933b955389c950c1942253d2d66a51f3f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/283821
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Commit-Queue: Ömer Ağacan <omersa@google.com>
2023-02-18 07:31:18 +00:00
Mayank Patke e53188ae52 [dart2js] Make UnevaluatedConstantFinder extend
ComputeOnceConstantVisitor.

This ensures that sub-constants are visited only once, avoiding
an exponential number of visits in the worst case.

Change-Id: I6a96a787d09bd0db6909cc78f32b21576369719c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/283962
Reviewed-by: Nate Biggs <natebiggs@google.com>
Commit-Queue: Mayank Patke <fishythefish@google.com>
2023-02-17 23:30:29 +00:00
Mayank Patke bfcaa60b6a [dart2js] Remove replaceImplicitConstant.
This option is unused, and it was slow/error-prone anyway.

Change-Id: Ic351227bd8bb52ee8f7eed5f17e51c0e299faedd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/283961
Reviewed-by: Nate Biggs <natebiggs@google.com>
2023-02-17 23:30:29 +00:00
Mayank Patke 2860ba107c [dart2js] Remove exception handling from Dart2jsConstantEvaluator.
The CFE constant evaluator was rewritten to no longer throw if constant
evaluation fails, so we can get rid of the try/catch. Internally, the
CFE constant evaluator returns an AbortConstant, which is processed by
`evaluate` into an UnevaluatedConstant containing an InvalidExpression,
which is why our existing handling is sufficient.

Change-Id: I1ddc3b7dce3081b37177dd3384c5fc19c9b28be6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/283960
Reviewed-by: Nate Biggs <natebiggs@google.com>
2023-02-17 23:30:29 +00:00
Stephen Adams b840922ca5 [dart2js] Avoid replacing implicit constants after scope visitor
Change-Id: I12d93df222ec6711b1b1db01a3ea0bf8476370fd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/283540
Reviewed-by: Mayank Patke <fishythefish@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2023-02-16 22:18:25 +00:00
Nate Biggs 545ee13cd4 [dart2js] Clean up usages of 'new' keyword.
Change-Id: I193e19581d29a9c4b343ae0a681d1ff530cfce1d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/281309
Commit-Queue: Nate Biggs <natebiggs@google.com>
Reviewed-by: Mayank Patke <fishythefish@google.com>
2023-02-14 02:36:38 +00:00
Mayank Patke 61b2ec77e1 [dart2js] Automatically set dart.web.assertions_enabled=true.
When (user) assertions are enabled in dart2js, we automatically update
the environment as if -Ddart.web.assertions_enabled=true were
passed. This allows dev-only code to be gated behind
`const bool.fromEnvironment('dart.web.assertions_enabled')` without
having to supply a redundant option manually.

Change-Id: I40d670b6fe87d5e27b2b8d50599261cca8a79a42
Bug: b/254543452
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/270301
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2023-02-14 01:35:05 +00:00
Mayank Patke 9c49b0d175 Reland "[dart2js] Extend const simplifier to local/static reads and invocations."
This reverts commit 090a1ea4e8.

Reason for revert: Relanding with fixes

Original change's description:
> Revert "[dart2js] Extend const simplifier to local/static reads and invocations."
>
> This reverts commit 826df3415a.
>
> Reason for revert: Causes failures in some Angular Dart applications
>
> Original change's description:
> > [dart2js] Extend const simplifier to local/static reads and invocations.
> >
> > We now attempt to evaluate
> > - final local variables with initializers
> > - final statics with initializers
> > - static or local function invocations if they just return an expression
> > by attempting to const-evaluate the initializer/returned expression.
> >
> > Change-Id: I976863d950ba1609c5d8e6a21884ca56af0d2b4b
> > Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275145
> > Reviewed-by: Sigmund Cherem <sigmund@google.com>
> > Commit-Queue: Mayank Patke <fishythefish@google.com>
>
> TBR=sigmund@google.com,fishythefish@google.com,dart-scoped@luci-project-accounts.iam.gserviceaccount.com
>
> Change-Id: I32900085f52219a2dc5add161376ddbe9e733277
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/281800
> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
> Commit-Queue: William Hesse <whesse@google.com>
> Auto-Submit: William Hesse <whesse@google.com>


Change-Id: I46847d45084718633c332954dc6b39b181869983
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/281861
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Mayank Patke <fishythefish@google.com>
2023-02-13 22:16:19 +00:00
Joshua Litt 40cc0bd479 [dart2js] Ensure JavaScriptObject's interceptor is emitted.
Bug: #51307
Change-Id: I2aab631cabc659e882e4bf998bcf287c7dc76465
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/281872
Commit-Queue: Joshua Litt <joshualitt@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
2023-02-13 20:35:59 +00:00
Srujan Gaddam e6e1040afc [dart:js_interop] Expose dart:_js_interop
Types still need to be sealed, so this library is exposed with a
disclaimer that users should not subtype any types.

CoreLibraryReviewExempt: Backend-specific library for JS and Wasm.
Change-Id: I2ed8b0db6b2de60932a551047c6c9eae4a34ce2f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/281343
Reviewed-by: Joshua Litt <joshualitt@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Srujan Gaddam <srujzs@google.com>
2023-02-10 01:41:50 +00:00
Stephen Adams 6b5a0215db [dart2js] Fix serialization error with maps keyed with Records Kernel accessors
Change-Id: I81fe905978c3f81e8e5e72f2dcaa18e1a307ca55
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/281873
Reviewed-by: Mayank Patke <fishythefish@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2023-02-10 00:31:20 +00:00
Stephen Adams a0fce7be4d [dart2js] Dynamic calls to record getters.
Added synthetic getters for records that are attached to the shape class.

It is a bit clunky since there are assumptions that a method came from something defined in Kernel.

- There is no source information for the synthetic method
- There are assumptions that some information can be derived by reference to Kernel definitions.

We do get a lot for free doing it this way, e.g. tree-shaking of unused getters and call-through stubs of getters used as a dynamic method invocation.

Added a test that (1) uses names that require the interceptor calling convention and (2) requires dart2js to generate call-through stubs.

Issue: #49718

Change-Id: I682c1f005e87765b0e3bf7e6550c945d30b56b8d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/280960
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Mayank Patke <fishythefish@google.com>
2023-02-08 23:13:07 +00:00
William Hesse 090a1ea4e8 Revert "[dart2js] Extend const simplifier to local/static reads and invocations."
This reverts commit 826df3415a.

Reason for revert: Causes failures in some Angular Dart applications

Original change's description:
> [dart2js] Extend const simplifier to local/static reads and invocations.
>
> We now attempt to evaluate
> - final local variables with initializers
> - final statics with initializers
> - static or local function invocations if they just return an expression
> by attempting to const-evaluate the initializer/returned expression.
>
> Change-Id: I976863d950ba1609c5d8e6a21884ca56af0d2b4b
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275145
> Reviewed-by: Sigmund Cherem <sigmund@google.com>
> Commit-Queue: Mayank Patke <fishythefish@google.com>

TBR=sigmund@google.com,fishythefish@google.com,dart-scoped@luci-project-accounts.iam.gserviceaccount.com

Change-Id: I32900085f52219a2dc5add161376ddbe9e733277
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/281800
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Commit-Queue: William Hesse <whesse@google.com>
Auto-Submit: William Hesse <whesse@google.com>
2023-02-08 19:05:18 +00:00
Joshua Litt bd79be0e19 [js] Move allowInterop functions to dart:js_util.
CoreLibraryReviewExempt: Has core library owners approval.
Change-Id: Iea2f2e707c69c9082e158b48b50dcaf4a7b01067
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279740
Reviewed-by: Ömer Ağacan <omersa@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Srujan Gaddam <srujzs@google.com>
Commit-Queue: Joshua Litt <joshualitt@google.com>
2023-02-08 17:16:20 +00:00
Mayank Patke 826df3415a [dart2js] Extend const simplifier to local/static reads and invocations.
We now attempt to evaluate
- final local variables with initializers
- final statics with initializers
- static or local function invocations if they just return an expression
by attempting to const-evaluate the initializer/returned expression.

Change-Id: I976863d950ba1609c5d8e6a21884ca56af0d2b4b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/275145
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Mayank Patke <fishythefish@google.com>
2023-02-07 20:07:57 +00:00
Mayank Patke 397ed8673c [dart2js] Add phase 1 kernel transformer to simplify const conditionals.
Suppose we have code like

if (isDevMode) {
  // do foo
} else {
  // do bar
}

where isDevMode is const (or can be evaluated as const). In particular,
isDevMode can be controlled by compile-time options, like
bool.fromEnvironment.

We currently eliminate the dead branch during SSA, but that means we do
the work of compiling dead code in the previous phases. Instead, we can
recognize that the condition is const (or effectively const) and
eliminate the dead AST subtree directly.

Change-Id: Ia91da5ebc7fa496a1b963308c6e02d572cab936e
Bug: b/254543452
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/270281
Reviewed-by: Sigmund Cherem <sigmund@google.com>
2023-02-07 20:07:57 +00:00
Mayank Patke b028da6407 [dart2js] Add a 'FALSE' JS_GET_FLAG.
There are a few places in our runtime libraries where we have some code
guarded by `if (false)`. This is to ensure that the guarded code is
marked as used and compiled, but not emitted unless rewritten during
SSA. This pattern is somewhat brittle - a kernel
optimization/transformation which eliminates dead code may discard the
code.

Instead, we can write `if (JS_GET_FLAG('FALSE'))`, which will only be
written to `if (false)` and then discarded during SSA.

Change-Id: I8edc2b24e5fbeece1f042ff3d0c87d58e939bf84
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/271800
Reviewed-by: Stephen Adams <sra@google.com>
2023-02-07 20:07:57 +00:00
Srujan Gaddam 08feb43d6c [dart2js] Add support for InlineTypes in visitors and serialization
This is mostly to get the test bots running for tests that use
inline classes. It's possible there are other visitors that need
to be modified that this CL does not touch.

Change-Id: I9359f41a8dd51c290304126510122cc565902d98
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/280402
Reviewed-by: Stephen Adams <sra@google.com>
2023-02-07 18:47:23 +00:00
Joshua Litt 4dc19b6bfb [dart2js] Ensure JavaScriptFunction gets emitted for allowInterop
Change-Id: I320653a46da31cfb626c41a3a2307b1d1626173a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/280205
Reviewed-by: Stephen Adams <sra@google.com>
Commit-Queue: Joshua Litt <joshualitt@google.com>
2023-02-06 21:59:29 +00:00
Joshua Litt 99a9f3d516 [js_types] MVP of JS types.
Change-Id: Ic329146a270ff32fc2cdb32febc6f574bc81792f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/280131
Reviewed-by: Srujan Gaddam <srujzs@google.com>
Commit-Queue: Joshua Litt <joshualitt@google.com>
2023-02-02 21:29:01 +00:00
Alexander Markov a9d9b7395b [kernel] Enable sound null safety in TargetFlags by default
TargetFlags.enableNullSafety is set to true by default and
also renamed to TargetFlags.soundNullSafety to better reflect its
meaning.

TEST=ci

Change-Id: I2c2f30c2af6502fd9a96141dc60e4afbf8c524fd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/280216
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Daco Harkes <dacoharkes@google.com>
2023-02-02 14:54:18 +00:00
Nate Biggs f3927aa025 [dart2js] Migrate test/model for null safety migration. (1/2)
Change-Id: I558a5396f791c420856ce24c1571e9d69b2ac038
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279841
Reviewed-by: Mayank Patke <fishythefish@google.com>
2023-02-02 04:21:58 +00:00
Stephen Adams 4acbe13414 [dart2js] Fix assert on records in type rule generator.
Change-Id: Ia2c623b3d79b12d3d25b0ea49ef22c08b778e25c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/280210
Reviewed-by: Mayank Patke <fishythefish@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2023-02-01 23:33:26 +00:00
Stephen Adams 18cee8078a [dart2js] Implement get runtimeType for records.
Change-Id: I5befb8a499e0bfc9acd884189317f4da19fab750
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/280046
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Mayank Patke <fishythefish@google.com>
2023-01-31 19:44:48 +00:00
Josh Soref 77978889eb Spelling
Closes https://github.com/dart-lang/sdk/pull/51143

GitOrigin-RevId: 9e21c99a222d588e4fc95980725a2f8c9784965c
Change-Id: If0870e8936c7649935dce7e23cd783d62aa5610c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279916
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
2023-01-30 18:29:59 +00:00
Ahmed Ashour 63180b95ed Remove superfluous words.
Fixes #51095

TEST=ci

CoreLibraryReviewExempt: There are no API changes, just removal of superfluous words in the comments.
Change-Id: Ib1020c62fe6baed5ca68f0074323f025cc90e9f8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279500
Reviewed-by: Lasse Nielsen <lrn@google.com>
Commit-Queue: Lasse Nielsen <lrn@google.com>
Reviewed-by: Siva Annamalai <asiva@google.com>
2023-01-30 15:58:38 +00:00
Stephen Adams a7d87375a3 [dart2js] Implement is-tests on records.
A `RecordsCodegen` class collects the instantiated classes for
representing records of various shapes in the codegen queue.  Later,
this is used to emit functions that test a record type by checking the
shape (using `instanceof`) and then testing the field values.

Future work will consider how to make this work with deferred loading.

Change-Id: I497a80b0db3a10129f15838eaa72c3a2320632b8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279759
Commit-Queue: Stephen Adams <sra@google.com>
Reviewed-by: Mayank Patke <fishythefish@google.com>
2023-01-27 20:24:20 +00:00
Nate Biggs a4e4761339 [dart2js] Migrate test/serialization for null safety migration.
Change-Id: If2338b67b207c9fffc8f09be399e99bbd5119fd7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279584
Reviewed-by: Mayank Patke <fishythefish@google.com>
2023-01-27 00:24:47 +00:00
Josh Soref 01b28894e7 Spelling pkg dev compiler
Closes https://github.com/dart-lang/sdk/pull/50861

GitOrigin-RevId: 71005e6f5bf5a151cb5c1aefb6a2a300fc40f592
Change-Id: Iadfafb5787a62e9a379437f6a3763d31f99ba7c6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/277743
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
2023-01-26 09:12:41 +00:00
Josh Soref ef42a0b110 Spelling pkg analyzer lib
Closes https://github.com/dart-lang/sdk/pull/50860

GitOrigin-RevId: b27066c37f93c8c6d1123d6ebd6a4c0afcf59844
Change-Id: I15fa4aea1dad45daf168e34d1c4450320ec9b40a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/277742
Commit-Queue: Alexander Thomas <athom@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
2023-01-25 14:08:27 +00:00
Ömer Sinan Ağacan 1d4e6f329c [kernel] Add some missing default visit methods to visitors
Change-Id: Ib1d4d530c18b68a869bc169d1daf5cd519c720f9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279706
Commit-Queue: Ömer Ağacan <omersa@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
2023-01-25 10:42:18 +00:00
Martin Kustermann e96765a388 Revert "Revert part of "Extract mmap support from dart2js into package:mmap""
This re-applies the changes that makes package:compiler use
package:mmap.

The flutter engine PR in [0] will land before this CL, making the
autoroller have no problems rolling this into engine.

We'll also try to land [1] to prepare this rolling into g3.

[0] https://github.com/flutter/engine/pull/39090
[1] https://critique.corp.google.com/cl/503931029

Change-Id: Ie9cefd716968de62a953b5634ad52e29d645e04f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279507
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: William Hesse <whesse@google.com>
2023-01-24 11:14:38 +00:00
Nate Biggs f5a53a231b [dart2js] Migrate test/inference for null safety migration (1/2).
Change-Id: I4a0fa9f235f24b7746af4d1edb4679c4f8fd8da2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279542
Reviewed-by: Mayank Patke <fishythefish@google.com>
2023-01-24 02:45:28 +00:00
Martin Kustermann 4736392a2c Revert part of "Extract mmap support from dart2js into package:mmap"
We revert parts of 44ec0ae07d to make it
easier to roll in to flutter/engine & g3.

After this CL lands, we wait for auto roll into engine, update
flutter/engine's frontend_server dependencies, land g3 changes
to add third_party/dart/mmap, and finally undo this CL

Afterwards we can make compiler use package:mmap

Change-Id: I4b6333591b4db3f032ddc629608fd42eb4a4c03a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279504
Reviewed-by: William Hesse <whesse@google.com>
2023-01-23 13:48:06 +00:00
Martin Kustermann 44ec0ae07d Extract mmap support from dart2js into package:mmap
The purpose of the CL is to enable re-use of the mmap support in dart2js
in other tools (e.g. package:heapsnapshot & package:kernel).

There's a small refactoring to remove zero-termination logic out of the
general mmap support.

Change-Id: I7a9889acea43d5ce0ab1eb10dcefbfa74c44bf93
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279348
Reviewed-by: Jens Johansen <jensj@google.com>
Reviewed-by: Nate Biggs <natebiggs@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2023-01-23 09:10:23 +00:00
Josh Soref ba15a61271 Spelling build
Closes https://github.com/dart-lang/sdk/pull/50859

GitOrigin-RevId: 7b056018c2925745701bdecdd7da325d9458204d
Change-Id: Iff037d773713bf73efde6951599becfd7297b921
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/277740
Reviewed-by: Alexander Thomas <athom@google.com>
2023-01-23 08:56:14 +00:00
Nate Biggs f93b715b86 [dart2js] Migrate test/async_await for null safety migration.
Change-Id: I6f9d6fa866950b05a5ed5fda23c5ae1484cd7678
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279244
Reviewed-by: Mayank Patke <fishythefish@google.com>
2023-01-23 06:02:51 +00:00
Alexander Thomas b9b6511ca6 Spelling sdk
Closes https://github.com/dart-lang/sdk/pull/50918

Co-authored-by: Josh Soref <jsoref@gmail.com>
GitOrigin-RevId: 1fd275051c561b63d374fb47e76a22424c4a12a9
Change-Id: I97790d9c79ff659f2c1fa2d2d46d041fe67957cb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/278530
Reviewed-by: William Hesse <whesse@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
Reviewed-by: Tess Strickland <sstrickl@google.com>
2023-01-20 12:37:49 +00:00
Josh Soref 84e3c8b50f Spelling tests
Closes https://github.com/dart-lang/sdk/pull/50920

GitOrigin-RevId: fa87531bd0f52b69485c9d02ff9e44a4a29c6a91
Change-Id: I0ae8574a5b77087895e004079f221201bb550cf3
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/278535
Reviewed-by: Martin Kustermann <kustermann@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
2023-01-19 16:24:29 +00:00
Josh Soref 9e4dc755cb Spelling pkg
Closes https://github.com/dart-lang/sdk/pull/50921

GitOrigin-RevId: 6b1ca502b6722b0a987f33ace66f65cbd2c24e23
Change-Id: I74e4ff3c8e759c576036d6b791bd7734ebd215d8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/278536
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
2023-01-19 10:06:29 +00:00
Daco Harkes d2ef97258c [vm/ffi] Replace FfiNative with Native
See API design discussion in bugs below.

TEST=tests/ffi/native_assets/*

Design doc: http://go/dart-native-assets

Bug: https://github.com/dart-lang/sdk/issues/49803
Bug: https://github.com/dart-lang/sdk/issues/50097

Change-Id: Id6e6eb94c6eb39ccaaa637448583a40ab6110d12
Cq-Include-Trybots: luci.dart.try:vm-kernel-precomp-linux-debug-x64-try,vm-kernel-precomp-linux-debug-x64c-try,vm-kernel-precomp-nnbd-linux-debug-x64-try,vm-kernel-precomp-win-debug-x64c-try,vm-ffi-android-debug-arm64c-try,vm-ffi-android-debug-arm-try,dart2wasm-linux-x64-d8-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/265084
Reviewed-by: Lasse Nielsen <lrn@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
2023-01-18 21:08:38 +00:00
Kaushik Iska 885457e1d3 Revert "[analyzer] new warning for nullable '==' parameter type"
This reverts commit 48ee1f218d.

Reason for revert: https://github.com/flutter/flutter/issues/118632

Original change's description:
> [analyzer] new warning for nullable '==' parameter type
>
> This rule checks that a parameter to an `operator ==` implementation has
> a non-nullable type.
>
> I intentionally did not enforce, in this rule, that the parameter is
> exactly `Object`. It is legal to narrow the parameter type to a
> different non-nullable type, like `int`. I can't imagine doing it, but
> it seems to be unrelated to whether the type should be nullable or not.
>
> Fixes https://github.com/dart-lang/linter/issues/3441
>
> Replaces https://github.com/dart-lang/linter/pull/3923
>
> Change-Id: I61d4a7b1ab8318dc9403da1633c352de95bfac61
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/277700
> Reviewed-by: Mark Zhou <markzipan@google.com>
> Commit-Queue: Samuel Rawlins <srawlins@google.com>
> Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>

# Not skipping CQ checks because original CL landed > 1 day ago.

Change-Id: I6f96936b8d4e785b5f8e9719751e4b61c2a6ca2a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279141
Reviewed-by: Samuel Rawlins <srawlins@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Siva Annamalai <asiva@google.com>
Reviewed-by: Mark Zhou <markzipan@google.com>
Reviewed-by: Phil Quitslund <pquitslund@google.com>
2023-01-17 23:53:18 +00:00
Stephen Adams a9733165d9 [dart2js] Implement constant records.
Change-Id: I9bbc95f26bdc0fd6d05274224410553a7e0fcf98
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279064
Reviewed-by: Nate Biggs <natebiggs@google.com>
Commit-Queue: Stephen Adams <sra@google.com>
2023-01-17 22:36:58 +00:00
Johnni Winther 21cc667dca [Reland][cfe] Support external constructor with final fields
This adds support for having a final field and an external constructor
without error, assuming that the external constructor initializes the
final field. This supports the inline class with external members use
case.

Change-Id: I33b78275e967636ed0697d17f7921e9eee30401b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/279095
Reviewed-by: Srujan Gaddam <srujzs@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Jens Johansen <jensj@google.com>
2023-01-17 17:29:28 +00:00
Srujan Gaddam 572d545c72 [dart:_js_interop] Add dart:_js_interop
Adds dart:_js_interop for use in the web backends. This library
only exports dart:_js_annotations' @JS for now. In the future,
we'll add more to this library and mark it public. Also refactors
some tests to use dart:_js_interop.

Change-Id: I7b60c950a39038a586756b7c9c10c6e31f1ab4cb
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/278694
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Joshua Litt <joshualitt@google.com>
Commit-Queue: Srujan Gaddam <srujzs@google.com>
2023-01-16 22:31:33 +00:00