* Update GetCallbackHandle to use Dart_IsTearOff instead of a string
comparison to determine whether or not a closure was provided as an
argument to PluginUtilities.GetCallbackHandle.
Fixes#24394
* Add Locale.fromComponents.
* Change toString from underscores to dashes. Expand the unit tests.
* Rename 'fromComponents' to 'create'. Change variants from String to List<String>.
* Use default for language parameter. Use hashCode/hashList.
* Have toString() stick with old (underscore) behaviour.
* Demonstrate empty-list bug in assert code.
* Fix empty-list assert bug.
* Add ignores for lint issues. Unsure about 71340 though.
* Fix operator== via _listEquals.
* Remove length-checking asserts: we're anyway not checking characters in fields.
* Documentation update.
* Change reasoning for ignore:prefer_initializing_formals.
* Try 'fromSubtags' as new constructor name.
* Documentation improvements based on Pull Request review.
* Assert-fail for invalid-length subtags and drop bad subtags in production code.
* Revert "Assert-fail for invalid-length subtags and drop bad subtags in production code."
This reverts commit d6f06f5e7b3537d60000c47641580475ef16abbe.
* Re-fix Locale.toString() for variants=[].
* Tear out variants, in case we want to have one fewer pointer in the future.
* Make named parameters' names consistent with member names.
* Also remove _listEquals: no longer in use.
* Lint fix.
* Fix code review nits.
* Lint fix for assert, and a couple more not-zero-length-string asserts.
* Code Review: two of three nits addressed...
* Review fix: change 'should' to 'must' for subtag prescriptions.
* Assert-check that countryCode is never ''.
Provide a relative, per-image limit to the amount of memory
that's used to cache decoded image frames. Adds an overridable default
that developers can set to control how much memory images are allowed
to use decoded vs undecoded. The cap is set in flutter/flutter#22452.
Note that required frames are always cached regardless of the ratio cap,
because they're currently necessary for the GIF to animate. Previously
cached unessential frames are not cleared in response to the cache
hitting or exceeding the cap.
Addresses #20998 and #14344.
This replaces `ci/test.sh` with `run_tests.sh`. `run_tests.sh` includes
`ci/test.sh` and multiple other tests.
Partially addresses flutter/flutter#22682. Temporarily skipped tests
should be fixed and re-enabled in a follow-up commit.
For consistency with the rest of dart:ui, check required parameters with
assert(param != null) rather than throwing ArgumentError. ArgumentError
is typically reserved for checking the validity of non-null args -- e.g.
that a list has the required number of elements.