The `registerElement` APIs in `dart:html` are legacy APIs based on a
deprecated Web Components v0.5 specification. These methods don't work
on modern browsers and can only be used with a polyfill.
The latest Web Components specification is supported indirectly via
JSInterop and doesn't have an explicit API in the `dart:html` library.
This change marks these APIs as deprecated. We intend to remove them in
the future (see https://github.com/dart-lang/sdk/issues/49536)
Fixes https://github.com/dart-lang/sdk/issues/48973
Change-Id: I2e96d36e95c9971b59cde80bc4da49b63d12b17c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/252840
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Srujan Gaddam <srujzs@google.com>
Change-Id: I40d03b47a9f0e4ebe4d3c95d8ab8101a2fd0f7b7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/251765
Reviewed-by: Kevin Moore <kevmoo@google.com>
Reviewed-by: Jonas Jensen <jonasfj@google.com>
Because of a problem releasing 2.17.4, a new stable release 2.17.5
is being created with no additional changes. Since 2.17.4 will not
be published, the changelog entry is changed to refer to 2.17.5.
Change-Id: Ibf4c83268790ccca54eb375a3a958dd56ce538d1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/249189
Reviewed-by: Michael Thomsen <mit@google.com>
There is only one use of it in the SDK, `RuneIterator`,
one use of it outside, `TreeSet` from `package:quiver`,
and one known use in Google internal code.
There are other bi-directional iteration interfaces,
like `CharacterRange` from `package:characters`,
which can move a cursor in two directions,
but which didn't loke the `movePrevious` name and therefore
are not `BidirectionalIterator`s.
(There is also a Google internal class which mentions explicitly
why they're not `BidirectionalIterator`.)
There is no real need for this "shared" interface.
It doesn't carry its own weight.
We have no abstractions which work on the *interface*,
only code that works on one specific concrete implementation.
I'd recommend:
* `quiver` introduce a `TreeSetIterator` for their use-case
(the actual class has more public members than `BidirectionalIterator`,
which cannot be accessed through the declared type.)
* the Google internal code introduces its own interface
(which is just `Iterable` + `movePrevious`.
* The SDK will just make `RuneIterator` not implement
`BidirectionalIterator` at some (breaking) point.
Maybe just when we remove the type.
FLUTTER: Needs to land https://github.com/flutter/flutter/pull/106471 before merging this CL into Flutter.
Change-Id: Iaaa6b0c428d30eb3b68898c077d265ac0a622805
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/249486
Reviewed-by: Nate Bosch <nbosch@google.com>
Commit-Queue: Lasse Nielsen <lrn@google.com>
The current implementation uses a specialized version of the
pending-event queue used by stream subscriptions to remember
pending events.
That makes the queue polymorphic, and slightly more complicated than
necessary, and that again makes further refactorings of the
Stream implementation harder.
This change moves the logic from the specialized pending-queue
into a simple function instead, so you only pay for it if you
actually use `Stream.fromIterable`.
Also allows `Stream.fromIterable` to be listened to more than once.
(It uses `Stream.multi` for the general async+sync controller API,
and it would cost extra code to make it only work once.)
Change-Id: I44b2010225cd3d32c2bcdb8a315c94881331bdae
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/248146
Reviewed-by: Nate Bosch <nbosch@google.com>
Commit-Queue: Lasse Nielsen <lrn@google.com>
Fixes#49241
TEST=ci
Change-Id: I6117bf816fc8c4613cce66927f952fef75632725
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/248120
Reviewed-by: Alexander Thomas <athom@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Ben Konyi <bkonyi@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
This CL remove the support for mixing in classes that don't extend
Object. An error has been report by the analyzer for some time and
now also by the CFE.
This puts the breaking change https://github.com/dart-lang/sdk/issues/48167 into effect.
TEST=pkg/front_end/testcases/general/issue48167.dart
Change-Id: Ia7715a27dc1aa18a7c85b24ed86d19a91b6924d5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/247551
Reviewed-by: Chloe Stefantsova <cstefantsova@google.com>
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Johnni Winther <johnniwinther@google.com>
This reverts commit abfdc3d50f.
Reason for revert: breaks on internal roll - b/235267735 and others can be fixed in advance of landing this
Original change's description:
> Remove SCREAMING dart:io networking APIs
>
> Bug: https://github.com/dart-lang/sdk/issues/49140
> Change-Id: I50c6cca26597ee4d469b776fcec412ddfed760e1
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/246962
> Reviewed-by: Paul Berry <paulberry@google.com>
> Commit-Queue: Michael Thomsen <mit@google.com>
TBR=mit@google.com,paulberry@google.com
Change-Id: I55a43cc1bd7435fe7824f7ca8098575232fdcf2f
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: https://github.com/dart-lang/sdk/issues/49140
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/247389
Commit-Queue: Oleh Prypin <oprypin@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Reviewed-by: Oleh Prypin <oprypin@google.com>
Closes#49165
The empty string argument can be confusing to read since it is not clear
what it means. Allow omitting the argument entirely to default to an
empty path.
R=lrn@google.com
Change-Id: I05ca432a679a0df751a16d1beb241b14f80d4681
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/246988
Commit-Queue: Nate Bosch <nbosch@google.com>
Reviewed-by: Lasse Nielsen <lrn@google.com>
This is breaking change #45630.
The Dart VM has until now restored the terminal settings upon exit to
their initial values for stdin, stdout, and stderr. This change removes
that automatic behavior in favor of having the program do the
restoration. Previously the intention was that dart programs can
enable/disable echoing and line buffering and not worry about restoring
the original settings.
However, the VM doing so unconditionally leads to undesirable behavior
e.g. when the program does not care about terminal settings and is
sharing a process group with a program that does care. E.g. if dart's
output is piped into less(1), then there is a race condition where dart
might see the raw terminal settings set by less(1), and if the dart VM
exits after less(1) has exited, then it will restore the raw terminal
settings, leaving the user with a seemingly defective shell with echo
disabled. This race condition can be reproduced using:
cat > yes.dart << EOF
main() {
for (int i = 0; i < 1000000; i++) {
print("yes");
}
}
EOF
stty; (sleep 1 && dart yes.dart) | less; stty; stty sane
The user will end up with a shell with echo behavior disabled. The stty
command shows the current terminal settings, where the difference can be
seen, and 'stty sane' fixes the settings before returning to the shell
prompt. The 'stty sane' call can be omitted to see the defective shell
prompt.
This change removes the terminal restoring behavior (added in Dart
2.0.0) and instead asks applications to do the restoration themselves.
The new design matches how programs in other programming languages
implement interactive input that changes terminal settings.
Furthermore the `echoMode` setting now only controls the `echo` local
mode and no longer sets the `echonl` local mode on POSIX systems (which
controls whether newline are echoed even if the regular echo mode is
disabled). The `echonl` local mode is usually turned off in common shell
environments. Programs that wish to control the `echonl` local mode can
use the new `echoNewlineMode` setting. This change is required to
prevent the reoccurence of #30318 when programs manually restore
`echoMode`.
Windows has further considerations: It also saves the console code pages
and restore them if they were not UTF-8. This behavior is retained as it
is useful and needed for Dart's output to function properly. ANSI output
sequences are also turned on via ENABLE_VIRTUAL_TERMINAL_PROCESSING,
which is slightly changed in this change to only rsetore that setting if
it wasn't already on for consistency.
Closes https://github.com/dart-lang/sdk/issues/36453
Closes https://github.com/dart-lang/sdk/issues/45630
TEST=Reproduced with less as above
Change-Id: I2991f9c7f47b97fe475c1ad6edeb769024f8d0db
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/190484
Reviewed-by: Lasse Nielsen <lrn@google.com>
Commit-Queue: Alexander Aprelev <aam@google.com>
Reviewed-by: Jonas Termansen <sortie@google.com>
Reviewed-by: Alexander Aprelev <aam@google.com>
Fixes https://github.com/dart-lang/language/issues/731.
Change-Id: I5fee1470efe7b891b79dcfecd33bc3670590efb3
Tested: trybots, and global presubmit in the internal mono repo
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/243530
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Liam Appelbe <liama@google.com>
Reviewed-by: Michael Thomsen <mit@google.com>
(I did a `find_violations` run internally against cl/449544481 and all clear 🟢.)
Change-Id: I2375a42244902ee2da515417cb463f74d9949387
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/245224
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Tested internally w/ `blaze run //ads/acx/devcycle/lints/find_violations -- 446742744`. Should be a clean roll.
Change-Id: I5ebd2fab7b79e108a82e2790fcb754e74767e435
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/242391
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Standardize the `dart:ffi` changelog entries header on:
```
### Core Libraries
#### `dart:ffi`
```
Add entries for new additions in last couple of versions. (So far we
mostly only documented breaking changes.)
Bug: https://github.com/dart-lang/sdk/issues/48711
Change-Id: I095c966ad2a1d7123e6543fd19de7af57a573d36
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/240047
Reviewed-by: Michael Thomsen <mit@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
The current VM closure serialization makes this function a foot-gun.
Revert until the supporting features are improved, so as to not give
users a bad experience.
Change-Id: I83b6b453ce5ab00d49ffbf36a5763119a6435352
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/237940
Reviewed-by: Michael Thomsen <mit@google.com>
Commit-Queue: Lasse Nielsen <lrn@google.com>
Closes https://github.com/dart-lang/sdk/issues/48630
'mark' can return undefined in Firefox, and therefore needs to
return a nullable. Similarly, the different syntaxes of 'measure'
don't work in Firefox or Safari, so the incompatible ones are
removed from tests.
Change-Id: Ia137fe0d72ddbaad03ae8cf58c43736b128b3f33
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/237930
Reviewed-by: Riley Porter <rileyporter@google.com>
Commit-Queue: Srujan Gaddam <srujzs@google.com>
Closes https://github.com/dart-lang/sdk/issues/48430
Adds overloads for both methods to accept additional/different options.
Also changes return types:
- mark returns a PerformanceEntry
- measure returns a PerformanceMeasure, but this may be undefined, so it's
marked as nullable
Change-Id: I189c4613b19e214a1f5bcc5bbd780d9dc447d9e1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/235286
Reviewed-by: Riley Porter <rileyporter@google.com>
Commit-Queue: Srujan Gaddam <srujzs@google.com>
Add `isMimeType` method to `UriData` class, to allow case-insensitive
checking of the MIME type.
Add `isCharset` and `isEncoding` methods to `UriData` class,
to allow case-insensitive and alternative-encoding-name aware checking
of the MIME type "charset" parameter.
Make `UriData.fromString` and `UriData.fromBytes` recognize and omit
a "text/plain" `mimeType` even if it is not all lower-case.
Be case-insensitive in a few cases where we weren't before
(like the `charset` getter not recognizing `CHARSET=utf-8`.)
Fixes#28592
TEST=corelib/data_uri_test.dart updated
BUG= http://dartbug.com/28592
Change-Id: Ia885af69d271856af7fadfe93851e07eff6ddca2
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/217366
Reviewed-by: Nate Bosch <nbosch@google.com>
Commit-Queue: Lasse Nielsen <lrn@google.com>
Removes reference to web portion of site-www as it is minimal and not standalone anymore.
Change-Id: I62e92d0dd90afffa5d90c3f3fd4e903251c5672b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/229280
Reviewed-by: Michael Thomsen <mit@google.com>
Reviewed-by: Kevin Moore <kevmoo@google.com>
Commit-Queue: Kevin Moore <kevmoo@google.com>
This is a reland of 872ffa85c2
Original change's description:
> Remove the pub top-level
>
> The old pub toplevel interface is still reachable via
>
> ```
> $ dart __deprecated_pub
> ```
>
> That is what `flutter pub` is using.
>
> Part of https://github.com/dart-lang/sdk/issues/46100
>
> Bug: https://github.com/dart-lang/pub/issues/3292
> Change-Id: I97a14f2458d0f67c7bf98a90664d504cfaba0e98
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/229541
> Reviewed-by: Jonas Jensen <jonasfj@google.com>
> Reviewed-by: Michael Thomsen <mit@google.com>
> Commit-Queue: Sigurd Meldgaard <sigurdm@google.com>
Bug: https://github.com/dart-lang/pub/issues/3292
Change-Id: I45b5bf93f30c8abad4558cb15b61289c6c786f65
Cq-Include-Trybots: luci.dart.try:flutter-engine-linux-try,flutter-engine-linux-web_tests-try,flutter-frontend-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/231943
Reviewed-by: Jonas Jensen <jonasfj@google.com>
Reviewed-by: Michael Thomsen <mit@google.com>
Commit-Queue: Sigurd Meldgaard <sigurdm@google.com>
Change-Id: Ic7c2b3cffa62b66d5c66713958e3626fa67e1945
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/231331
Auto-Submit: Srujan Gaddam <srujzs@google.com>
Reviewed-by: Kevin Moore <kevmoo@google.com>
Commit-Queue: Kevin Moore <kevmoo@google.com>
Related to commits
- master branch 57db739be0
- stable (2.16.0) branch f5bb0b33f5
Change-Id: Iad8d84600c870e4b819fc6c62fbb4d6861a575de
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/231161
Reviewed-by: Brian Quinlan <bquinlan@google.com>
Auto-Submit: Kevin Moore <kevmoo@google.com>
This is the first deprecation step, moving towards having dart2js
under the more general dart command line interface.
Going forward 'dart compile js' is the recommended way to invoke
dart2js.
This CL adds:
* an internal flag used to detect how was dart2js invoked and
provide a warning when invoked in an unsupported way.
* ensures the flag is provided in the dart cli, as well as our
(developer's only) scripts. These scripts will likely move to a
different location in the future. Note that the `dart2js_sdk*`
scripts are not providing this flag (these are the script that get
eventually shipped with our built SDK), as such, invokations of the
dart2js binary will show the new warning.
Change-Id: I96e40ecf01598eadab20dfc59114f5fff7438084
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/229062
Reviewed-by: Joshua Litt <joshualitt@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
Adds the `ref` setter to the `StructPointer` and `UnionPointer`
extensions, copying a compound structure into native memory.
The FFI use-site transformation transforms invocations of this setter
into an appropriate memcopy call.
Closes https://github.com/dart-lang/sdk/issues/44768
TEST=tests/ffi(_2)/extension_methods_test.dart
Change-Id: I3ef06ad08b8e71e39b05d662e8082fc5d0ad876d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/227542
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
Change-Id: I348f07341600bb00f8878ab8d482a29b3a19d907
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/226690
Auto-Submit: Lasse Nielsen <lrn@google.com>
Commit-Queue: Lasse Nielsen <lrn@google.com>
Reviewed-by: Erik Ernst <eernst@google.com>
Commit-Queue: Erik Ernst <eernst@google.com>
This adds the abstract classes with external factory constructors,
and adds throwing constructors to all backed patch files.
Further implementation can add the functionality for the backends.
This addresses part of #47773, leaving the FFI class to the
FFI implementors.
Bug: https://github.com/47773
Change-Id: Id7ee0006b6ea5ed789867a143ee6266f6dbbef66
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/221502
Reviewed-by: Slava Egorov <vegorov@google.com>
Commit-Queue: Lasse Nielsen <lrn@google.com>
This allows to specify the local port for TCP client sockets.
All prototypes in Socket,RawSocket,_Rawsocket,_NativeSocket have been adopted,
aswell as the native counterpart to nativeCreateBindConnect.
TEST=new tests added
Change-Id: I3408b687cbfd7eaaaeafdda29f7093d92c92aea0
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/217604
Reviewed-by: Siva Annamalai <asiva@google.com>
Auto-Submit: Moritz Feldmann <moritz.feldmann@kabelmail.de>
Reviewed-by: Kevin Moore <kevmoo@google.com>
Commit-Queue: Kevin Moore <kevmoo@google.com>
- Sorted lint update entries
- Improved grammar
- Fixed broken links
- Added `yaml` to triple-ticks where appropriate
- Moved entry from `dart:cli` to general Dart VM changes
Change-Id: I639ff019590b45df2220e9999013af2393efa64e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/222329
Auto-Submit: Kevin Moore <kevmoo@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Change-Id: If375217c253202202c1621696d504c2dfcb1736b
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/222302
Reviewed-by: Kevin Moore <kevmoo@google.com>
Commit-Queue: Kevin Moore <kevmoo@google.com>
made in 0e5f3f49c3
Change-Id: Ic7e9a91512661d3a1999f933e9d6caab6db340a1
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/220700
Reviewed-by: Kevin Moore <kevmoo@google.com>
Reviewed-by: Alexander Aprelev <aam@google.com>
Commit-Queue: Brian Quinlan <bquinlan@google.com>
Change-Id: Iee1ee36e3de040da2d2508938ba00a7faa1950c6
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/219980
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Allows throwing an error with an existing stack trace, instead of always
creating a new stack traces.
Fixes#30741
Bug: https://github.com/dart-lang/sdk/issues/30741
TEST=corelib/error_throw_with_stacktrace_test.dart
Change-Id: Iea77b4a8eb5e0cab4cd0d75432d033256c9f79fc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/219522
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Nate Bosch <nbosch@google.com>
- Remove all references to "beta preview".
- Consolidate the text about requiring a >=2.15 language version into a
single paragraph for all language features.
- Consistent hyphenation of "tear-off" (the noun) and "tear off" (the
verb).
- Remove the unnecessarily-specific examples of function equality.
- Couple of other minor formatting tweaks.
Change-Id: Ic8cd601916ba53056f3da34a9cfc2b8f938d0f36
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/218986
Auto-Submit: Bob Nystrom <rnystrom@google.com>
Commit-Queue: Michael Thomsen <mit@google.com>
Reviewed-by: Leaf Petersen <leafp@google.com>
Deprecates the class and makes it implement `Error` (more specifically
`UnsupportedError`).
Code throwing `IntegerDivisionByZeroException` should be migrated to
throwing `unsupportedError` directly, code catching the exception class
should start catching `UnsupportedError` immediately (or reconsider why
they are catching at all).
Integer division by zero also covers other ways that a double division
can give a non-number result (any infinity or NaN result of the division prior to calling `truncate()` on the result, will cause `~/` to throw).
Fixes#46776
Bug: https://github.com/dart-lang/sdk/issues/46776
Change-Id: Idf2657153dd16542e72c6ba921f587dd9fc9032a
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/208643
Reviewed-by: Nate Bosch <nbosch@google.com>
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
The WebSQL standard was abandoned more than 10 years ago and is not
supported by many browsers.
The `dart:web_sql` library was marked as deprecated in Dart 2.14. This
CL makes the library inaccesible, removes support for `dart:web_sql` imports,
and removes the `Window.openDatabase` API. The old code for `dart:web_sql` is
still generated by the html generators. Removing that will be handled by a
separate change.
Closes https://github.com/dart-lang/sdk/issues/46316
Change-Id: I892107396b3b227b4f33344377585aa5e5328288
Bug: https://github.com/dart-lang/sdk/issues/46316
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/216080
Reviewed-by: Srujan Gaddam <srujzs@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>
This reverts commit b70a134933.
Reason for revert: google3 linter bugs disabled with a comment and Flutter PR with new js_util landed with ignore comments. Should be safe to reland.
Original change's description:
> Revert "Re-land "Add a generic return type for js_util functions""
>
> This reverts commit 66cbeb6718.
>
> Reason for revert: Causes dart analyzer and dart linter to find
> issues within google3 and flutter, causing breakages and blocking
> the roll.
>
> Original change's description:
> > Re-land "Add a generic return type for js_util functions"
> >
> > This relands commit 46486cf260.
> >
> > The differences from the original commit:
> > - jsify is no longer being made generic
> > - Updated the CHANGELOG
> >
> > Change-Id: Ibc3402833cce2babbec9a57ad73963d7b9442ed8
> > Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/216920
> > Commit-Queue: Riley Porter <rileyporter@google.com>
> > Reviewed-by: Sigmund Cherem <sigmund@google.com>
>
> TBR=sigmund@google.com,srujzs@google.com,rileyporter@google.com
>
> Change-Id: Ic2ff63bc9658ccafcab3db75bdd06814d2f17b76
> No-Presubmit: true
> No-Tree-Checks: true
> No-Try: true
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/216963
> Reviewed-by: Siva Annamalai <asiva@google.com>
> Commit-Queue: Siva Annamalai <asiva@google.com>
# Not skipping CQ checks because original CL landed > 1 day ago.
Change-Id: Ia8c753b568b0aca10e7784126048bddd9e1ab976
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/217148
Reviewed-by: Riley Porter <rileyporter@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Commit-Queue: Riley Porter <rileyporter@google.com>
This reverts commit 66cbeb6718.
Reason for revert: Causes dart analyzer and dart linter to find
issues within google3 and flutter, causing breakages and blocking
the roll.
Original change's description:
> Re-land "Add a generic return type for js_util functions"
>
> This relands commit 46486cf260.
>
> The differences from the original commit:
> - jsify is no longer being made generic
> - Updated the CHANGELOG
>
> Change-Id: Ibc3402833cce2babbec9a57ad73963d7b9442ed8
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/216920
> Commit-Queue: Riley Porter <rileyporter@google.com>
> Reviewed-by: Sigmund Cherem <sigmund@google.com>
TBR=sigmund@google.com,srujzs@google.com,rileyporter@google.com
Change-Id: Ic2ff63bc9658ccafcab3db75bdd06814d2f17b76
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/216963
Reviewed-by: Siva Annamalai <asiva@google.com>
Commit-Queue: Siva Annamalai <asiva@google.com>
This relands commit 46486cf260.
The differences from the original commit:
- jsify is no longer being made generic
- Updated the CHANGELOG
Change-Id: Ibc3402833cce2babbec9a57ad73963d7b9442ed8
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/216920
Commit-Queue: Riley Porter <rileyporter@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
NOTE: this release introduces a new dependency on `test_reflective_loader`; the SDK roll that picks this up will need to update the linter's `dart_vm_test` target in `third_party/dart/linter/BUILD` to include it.
Change-Id: Ica8e200d333a2574abefa3c56df1153869259adc
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/216263
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
In 2.15, function objects have had their specification and
implementation updated such that several inconsistencies have been
eliminated, and the specification has been clarified and generalized.
In particular, equality is now more consistent and compositional,
canonicalization is applied also for expressions that are constant
but not in a constant context, generic instantiation gives rise to
function objects that are identical/equal in cases where they weren't
previously, and similarly for some tearoffs.
Change-Id: Ic26bbc1f047500c1030f52fe69bb06963b0193f9
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/216289
Reviewed-by: Michael Thomsen <mit@google.com>
Commit-Queue: Erik Ernst <eernst@google.com>
This is follow-up to 56403a0d35.
Change-Id: I222c04fd4d41e272eeb3e8fd62c55035eee1c12c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/215143
Reviewed-by: Kevin Moore <kevmoo@google.com>
Commit-Queue: Alexander Aprelev <aam@google.com>
The associated `unawaited_futures` lint triggers for expressions
of type `Future?` as well, so we should allow the workaround to
handle such expressions.
This change makes a static function more permissive, and is not expected
to be breaking in any way.
(It does mean that you need Dart 2.15.0 to use the function with
nullable arguments. I've changed the annotation to say `@Since("2.15")`.
That means anyone using a 2.15 SDK should assume that they need a 2.15
SDK to use it, and someone using a 2.14 SDK will not see the argument
as nullable. If anyone uses `@Since` annotations for anything at all.)
Change-Id: Ib2da4b353104cc88a834208a6ebd788ae55b4544
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/214406
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Nate Bosch <nbosch@google.com>
We use an extension getter instead of an instance getter because
it doesn't conflict with any potential existing or future enums
which want an element named `name`.
Keeping the namespace for enum elements open is a priority.
We currently only reserve `index` and `values`.
BUG: https://github.com/dart-lang/language/issues/1511
Fixes language issue #1511, which is a long-standing request,
and should replace a number of alternative implementations
which are based on parsing the `toString()`.
This version has two fields on the shared superclass, the index
and private name, and has a separate `toString` for each `enum` class
which hard-codes that enum's class name.
An earlier version had both `"name"` and `"ClassName.name"` as fields
to be able to reuse the same `toString` method on all enum classes,
but that cost too much for JS compiled code.
Even having just `ClassName.` as a field and then combining inside
`toString` requires more code to create the enum instances.
Instead this version hardcodes the `ClassName.` string once
in the `toString` method, which means each enum class has its own
toString (which can *potentially* be tree-shaken then.)
This still tree-shakes slightly worse than the previous implementation
where every enum class had its own `index` and `_name` fields
independent of each other, which could then be tree-shaken independently.
However, the `index` was already made an interface member with the
addition of the `Enum` interface, so code which accesses `.index`
on something of the `Enum` supertype could prevent tree-shaking of
all enum classes' `index` fields.
Likewise any general access to the "name" of an enum would necessarily
do the same for the name.
This CL makes up for some of that by sharing more implementation
between enum classes.
DartVM AOT CodeSize impact: ~0.15% regression on gallery (little less on big g3 app)
TEST= New tests added to enum_test.dart
Change-Id: Id25334e6c987f470f558de3c141d0e3ff542b020
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/210480
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Stephen Adams <sra@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Fixes#47190
TEST=None, only markdown files where edited.
Change-Id: Ife204f9c792b6bce30d0cd7bf2260ced11c8f2b4
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/213049
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Change-Id: I73bfdd310af6df6cc1d62311e155fc432b84165d
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/212567
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Auto-Submit: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Per breaking change #45451 we are removing support for dart-ext:
style native extensions from the Dart VM.
This CL removes the associated VM code, tests and samples. It also ports
a single test which used dart-ext: import to use FFI instead.
TEST=ci
Bug: https://github.com/dart-lang/sdk/issues/45451
Change-Id: Iae984bce32baf29a950b5de1323939006a217b94
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/212050
Commit-Queue: Slava Egorov <vegorov@google.com>
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Reviewed-by: Martin Kustermann <kustermann@google.com>
Change-Id: Ia4a9ffa1b4e27abcea66dca985d099f9fef75790
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/211400
Commit-Queue: Erik Ernst <eernst@google.com>
Reviewed-by: Michael Thomsen <mit@google.com>
Previously, initializers of implicitly typed variables did not
contribute to the SSA tracking performed by flow analysis (see
https://github.com/dart-lang/language/issues/1785). This change fixes
the bug, however the fix is conditioned on the "constructor tearoffs"
language feature to avoid compatibility issues (we don't want someone
to publish a package taking advantage of the fix, without realizing
that it makes their package unusable on older SDKs).
TEST=standard trybots
Bug: https://github.com/dart-lang/language/issues/1785
Change-Id: I1143440c7a9795b059e8f4b84e3f4125cd80732c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/211306
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Previously, when encountering identifiers in metadata on a class's
type parameter, the analyzer would resolve them using the type
parameter scope, but then fall back on using implicit `this`. The CFE
would resolve them using the class body scope. In both cases, the end
result was that the annotation could refer to static class members.
This change brings the behavior of both the analyzer and the CFE in
line with the spec, by preventing the use of implicit `this` in these
annotations, and resolving them in the type parameter scope.
This is not expected to break any code in practice, because
annotations on type parameters are rare, as are annotations referring
to static class members, and the overlap between these two should be
negligibly small.
Fixes https://github.com/dart-lang/language/issues/1790.
Bug: https://github.com/dart-lang/language/issues/1790
Change-Id: Ibe5a421e04a53d29074a8b1509e1390658ed72e5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/210040
Commit-Queue: Paul Berry <paulberry@google.com>
Reviewed-by: Johnni Winther <johnniwinther@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Change-Id: I860fbe6b821061695c50319204d8d6ba9c98a839
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/209109
Auto-Submit: Lasse R.H. Nielsen <lrn@google.com>
Commit-Queue: Kevin Moore <kevmoo@google.com>
Reviewed-by: Kevin Moore <kevmoo@google.com>
Removes the lazy loading of the underlying type in LazyJSTypes.
As such, this removes the need to keep AnonymousJSType and
LazyJSType separate, and is therefore refactored to
PackageJSType. Similarly, subtyping is fixed such that
PackageJSTypes are all subtypes of each other.
Change-Id: If489defdbeb5cb932db802a7d146ad2fc393b12c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/207982
Commit-Queue: Srujan Gaddam <srujzs@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
This effectively enables ES6 language features in Dart2JS by default.
Also adapts some tests to expect ES6 Method Definition syntax.
Change-Id: Iec36fbf9d22afd1083f7560a16fa73fbf15fb85c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/205741
Commit-Queue: Mark Zhou <markzipan@google.com>
Reviewed-by: Sigmund Cherem <sigmund@google.com>
Reviewed-by: Joshua Litt <joshualitt@google.com>
Also apply new formatting style to dart format section
Change-Id: I5e7ad454ff2794dc98eb4f1868416beb45b1c68e
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/206340
Auto-Submit: Kevin Moore <kevmoo@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
Commit-Queue: Bob Nystrom <rnystrom@google.com>
Change-Id: I866378cba43db7f559e37d3c0bf163843f74d186
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/204941
Auto-Submit: Kevin Moore <kevmoo@google.com>
Commit-Queue: Kevin Moore <kevmoo@google.com>
Reviewed-by: Bob Nystrom <rnystrom@google.com>
The `unawaited` function in `dart:async` is intended for use with the `unawaited_futures` lint which is hopefully going to be part of the Dart recommended set of lints.
The `ignore` extension method is there to provide an alternative if you even want to ignore errors from a future. By having both, it makes the distinction clearer and makes it easier to not think one can be used for everything.
Change-Id: Ib96ed5ff64ead4b228721e5210efa82f76119c9f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/200428
Reviewed-by: Jacob Richman <jacobr@google.com>
Reviewed-by: Nate Bosch <nbosch@google.com>
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Added check to convertNativeToDart_Dictionary to recursively convert native objects within a map to their Dart equivalent.
Fixes: https://github.com/dart-lang/sdk/issues/44319
Change-Id: I80a2bc0541454900b1c7d9635debaf72d7c120f2
Bug: 44319
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/201200
Commit-Queue: Gabriel Castro <gabrielmcastro@google.com>
Reviewed-by: Nicholas Shahan <nshahan@google.com>
Reviewed-by: Srujan Gaddam <srujzs@google.com>
This adds the providesSymbol method to DynamicLibrary. It returns
whether the library contains a function with the given name.
As per dlsym(3), it is valid for dlsym to return nullptr in a success
case if the symbol actually has a NULL value. So I've changed the logic
to check for dlerror() after we invoke dlsym(), both in the existing
lookup and in the new method.
Closes https://github.com/dart-lang/sdk/issues/46192
TEST=tests/ffi(_2)/has_symbol_test.dart
Change-Id: Ibcb1c051cc0cdd95a104fe86ef2fc76da5bafb5d
Cq-Include-Trybots: luci.dart.try:vm-precomp-ffi-qemu-linux-release-arm-try,vm-ffi-android-debug-arm64-try,vm-ffi-android-debug-arm-try,vm-kernel-linux-debug-x64-try,vm-kernel-win-debug-x64-try,vm-kernel-mac-debug-x64-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/201900
Reviewed-by: Daco Harkes <dacoharkes@google.com>
Commit-Queue: Daco Harkes <dacoharkes@google.com>
# 1.5.0
- (internal) migrated to `SecurityLintCode` instead of deprecated
`SecurityLintCodeWithUniqueName`
- (internal) fixed `avoid_types_as_parameter_names` to skip field formal
parameters
- fixed false positives in `prefer_interpolation_to_compose_strings` where
the left operand is not a String
- fixed false positives in `only_throw_errors` for misidentified type
variables
- new lint: `depend_on_referenced_packages`
- update `avoid_returning_null_for_future` to skip checks for null-safe
libraries
- new lint: `use_test_throws_matchers`
- relax `sort_child_properties_last` to accept closures after child
- performance improvements for `prefer_contains` and `prefer_is_empty`
- new lint: `noop_primitive_operations`
- mark `avoid_web_libraries_in_flutter` as stable
- new lint: `prefer_final_parameters`
- update `prefer_initializing_formals` to allow assignments where identifier
names don't match
Change-Id: I447a9e277a037da30e1c7b5c23d3bb5d1037f26c
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/201163
Commit-Queue: Phil Quitslund <pquitslund@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
This is a reland of 5c9e37f03c
Following update of `DEPS` in `flutter/engine`:
https://github.com/flutter/engine/pull/26395
New commits include:
```
git log --format="%C(auto) %h %s" 00c00e8adf9706bebe8f94483b7663c5f36f59d2..def32ceb1d660552eaec24839d377199aea5a569
def32ceb Revert "Revert "Use the frontend server to compile pub executables (#2968)" (#3006)" (#3008)
0dc7e50c Make `.gitignore` and `.pubignore` case-insensitive on Windows / MacOS (#3009)
e89d4ab8 Generate GNU-style long file names in tar archives (#3005)
d2ad13d0 Revert "Use the frontend server to compile pub executables (#2968)" (#3006)
492b15ba New binstubs for global activate using `dart pub` (#3002)
e02f23bb fix grammer in .gitignore error message (#2995)
e01e3a41 Use the frontend server to compile pub executables (#2968)
647989c6 Use RetryClient from package:http/retry.dart (#2980)
```
Original change's description:
> Change-Id: I9a0b5fb2b5616a5a0eaa16f3a90205bb1bb1fc8f
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/200878
> Auto-Submit: Jonas Jensen <jonasfj@google.com>
> Commit-Queue: Alexander Thomas <athom@google.com>
> Reviewed-by: Alexander Thomas <athom@google.com>
Change-Id: I1a0570318c63ec97fd141d79b405f55105111077
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/201260
Commit-Queue: Jonas Jensen <jonasfj@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
This reverts commit 5c9e37f03c.
Reason for revert: flutter builds on golem somehow broke.
Original change's description:
> Bump pub.
>
> New commits include:
> ```
> git log --format="%C(auto) %h %s" 00c00e8adf9706bebe8f94483b7663c5f36f59d2..def32ceb1d660552eaec24839d377199aea5a569
> def32ceb Revert "Revert "Use the frontend server to compile pub executables (#2968)" (#3006)" (#3008)
> 0dc7e50c Make `.gitignore` and `.pubignore` case-insensitive on Windows / MacOS (#3009)
> e89d4ab8 Generate GNU-style long file names in tar archives (#3005)
> d2ad13d0 Revert "Use the frontend server to compile pub executables (#2968)" (#3006)
> 492b15ba New binstubs for global activate using `dart pub` (#3002)
> e02f23bb fix grammer in .gitignore error message (#2995)
> e01e3a41 Use the frontend server to compile pub executables (#2968)
> 647989c6 Use RetryClient from package:http/retry.dart (#2980)
> ```
>
> Change-Id: I9a0b5fb2b5616a5a0eaa16f3a90205bb1bb1fc8f
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/200878
> Auto-Submit: Jonas Jensen <jonasfj@google.com>
> Commit-Queue: Alexander Thomas <athom@google.com>
> Reviewed-by: Alexander Thomas <athom@google.com>
TBR=athom@google.com,jonasfj@google.com
Change-Id: I635e1c2db8ae965881359d4969cbd506348b0ed0
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/201000
Reviewed-by: Jonas Jensen <jonasfj@google.com>
Commit-Queue: Jonas Jensen <jonasfj@google.com>
New commits include:
```
git log --format="%C(auto) %h %s" 00c00e8adf9706bebe8f94483b7663c5f36f59d2..def32ceb1d660552eaec24839d377199aea5a569
def32ceb Revert "Revert "Use the frontend server to compile pub executables (#2968)" (#3006)" (#3008)
0dc7e50c Make `.gitignore` and `.pubignore` case-insensitive on Windows / MacOS (#3009)
e89d4ab8 Generate GNU-style long file names in tar archives (#3005)
d2ad13d0 Revert "Use the frontend server to compile pub executables (#2968)" (#3006)
492b15ba New binstubs for global activate using `dart pub` (#3002)
e02f23bb fix grammer in .gitignore error message (#2995)
e01e3a41 Use the frontend server to compile pub executables (#2968)
647989c6 Use RetryClient from package:http/retry.dart (#2980)
```
Change-Id: I9a0b5fb2b5616a5a0eaa16f3a90205bb1bb1fc8f
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/200878
Auto-Submit: Jonas Jensen <jonasfj@google.com>
Commit-Queue: Alexander Thomas <athom@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
Allow the `realm` argument to callbacks to be `null`.
This is a breaking change, but it only affects null-safe code.
Also fix a bug in http_impl.dart where an error function with
an *optional* stack trace parameter would be called without a stack trace.
Bug: https://github.com/dart-lang/sdk/issues/44039
Change-Id: I4b38382328e26478661bf45f46cd3017631f4ebd
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/170094
Commit-Queue: Lasse R.H. Nielsen <lrn@google.com>
Reviewed-by: Nate Bosch <nbosch@google.com>
Change-Id: If568c551e8183d81ab02a1822deb3979165561f5
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/199861
Auto-Submit: Bob Nystrom <rnystrom@google.com>
Commit-Queue: Bob Nystrom <rnystrom@google.com>
Reviewed-by: Alexander Thomas <athom@google.com>
New commits include:
```
$ git log --format="%C(auto) %h %s" 0e657414a472e74ca5dd76ae0db50cc060251dec..00c00e8adf9706bebe8f94483b7663c5f36f59d2
00c00e8a Vendor tar (#2987)
291705ca Being gradual migration to null-safety (#2988)
c5f52a37 Fix CI (#2989)
74040a45 Update to analyzer 1.5.0, migrate from deprecated AnalysisSession.getParsedUnit() (#2975)
ce951d70 Fix dry-run tests for publishing by ensuring there is a server to reject requests (#2978)
018c9650 Update LICENSE (#2944)
2614f15c Revert "Vendor package:tar and package:chunked_stream (#2932)" (#2940)
12d9f457 Handle package:tar cancellations
255a3091 Vendor package:tar and package:chunked_stream (#2932)
86bf8b20 Handle relative git-url-paths correctly when --directory (#2919)
3716a681 Let `pub add` fail if extra arguments are passed (#2927)
a03ac729 Minor cleanup to reduce risk of using path.current (#2924)
e87b7b66 Added null check for name in UserInfo class (#2918)
056a8c9a pub deps --json (#2896)
53a69e27 Fix .packages entries of relative path deps when using --directory (#2916)
d6308efc pub upgrade command shows count of discontinued packages (#2908)
51744805 Upgrade to the null safe versions of all dependencies (#2913)
e0d538c7 Introduce .pubignore (#2787)
79f3a8b9 pub outdated: added clear message when no outdated packages. (#2898)
22463872 `cache clean` (#2904)
11e7b2ce `publish --dry-run` informs that the server might do more checks (#2883)
b6977d50 Remove untrue assert (#2884)
35841f8d Merge branch 'cherry_picks_for_2_12'
0db3255b Don't fail on failed status listing (#2877)
53e8ecca Don't allow outdated taking arguments (#2872)
e83a1dc1 Enable asserts when testing pub (#2754)
178f2edb Add --directory option (#2876)
5aadb70e Don't fail on failed status listing (#2877)
4bf8a927 Remove unused field (#2878)
73ad5426 Don't allow outdated taking arguments (#2872)
9a70949e Use Dart library to read and write tar files (#2817)
2f74230c Do not recommend decativating packages (#2871)
b1697a27 Use full error message string in CommandResolutionFailedException (#2870)
16a6210d Upgrade `downgrade --help`: `downgrade` actually updates `pubspec.lock` (#2859)
6e240ea9 Use cached version listings as heuristic when prefetching (#2851)
58152f7c Allow trailing slash in PUB_HOSTED_URL (#2856)
b1bf9a33 Handle poor package-listing responses robustly. (#2847)
d941bd24 Fix request metadata when overriding dependencyType (#2848)
```
Change-Id: Id7cc4c09e74c02a92bcafe1a9d9bab9431900540
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/199040
Reviewed-by: Alexander Thomas <athom@google.com>
Commit-Queue: Jonas Jensen <jonasfj@google.com>
The WebSql was dropped 5+ years ago and this library is unsupported.
This change adds the `@deprecated` annotation on the library and APIs in
dart:html that expose it (`window.openDatabase`). It also indicates to dartdoc
to skip it for the api.dart.dev site.
I run a `pub_crawl` process to verify that this is not in use. I checked 15K
packages, and only found 2 occurrances of an import to this library:
* One in a package marked as discontinued (used for migrating constants back
in Dart 2)
* Another in an example mock test (generated by mockito for mocking dart:html)
Also no library uses `window.openDatabase` either.
We will send a breaking change announcement soon and plan to delete this in a
future Dart release (possibly 2.15).
Fixes https://github.com/dart-lang/sdk/issues/45687
Fixes https://github.com/dart-lang/sdk/issues/45688
Change-Id: I8cd2bfa0ce64892c3f108bd6e24b8a0a3ec7c6ed
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/196461
Reviewed-by: Srujan Gaddam <srujzs@google.com>
Commit-Queue: Sigmund Cherem <sigmund@google.com>