mirror of
https://github.com/dart-lang/sdk
synced 2024-09-05 08:24:39 +00:00
![]() Two tricks let us compile this more efficiently: e.children.addAll(cs); Normally, get$children is inlined, returning a _ChildrenElementList wrapper, generating: new W._ChildrenElementList(e, e.children).addAll$1(0, cs); The two tricks: 1. Split _ChildElementList.addAll into an 'unwrap' that then calls the logic in '_addAll' 2. Add information about the properties of e.children that allow it to be removed. With these tricks, dart2js can optimize the code to this version that avoids allocating a wrapper or accessing the 'children' property: W._ChildrenElementList__addAll(e, cs); Change-Id: Ifdf533ac4f9790f09f87302e67304b5696097266 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/153904 Reviewed-by: Srujan Gaddam <srujzs@google.com> Commit-Queue: Stephen Adams <sra@google.com> |
||
---|---|---|
.. | ||
abiversions | ||
android | ||
apps/update_homebrew | ||
bots | ||
buildtools | ||
dart2js | ||
dom | ||
linux_dist_support/debian | ||
migration | ||
patches | ||
sdks | ||
spec_parser | ||
test_generators | ||
testing | ||
.gitignore | ||
3xhead_flutter_hooks.sh | ||
addlatexhash.dart | ||
build.py | ||
canary.dart | ||
clean_output_directory.py | ||
copy_dart.py | ||
copy_tree.py | ||
create_debian_chroot.sh | ||
create_debian_packages.py | ||
create_pkg_manifest.py | ||
create_tarball.py | ||
create_timestamp_file.py | ||
diff_results.dart | ||
download_abi_dills.py | ||
download_chromium_sysroot.sh | ||
download_latest_dev_sdk.py | ||
execute_recorded_testcases.py | ||
experimental_features.yaml | ||
FAKE_COMMITS | ||
find_depot_tools.py | ||
gen_fuchsia_test_manifest.py | ||
generate_buildfiles.py | ||
generate_idefiles.py | ||
generate_package_config.dart | ||
gn.py | ||
gn_helpers.py | ||
line_doc_comments.dart | ||
list_dart_files.py | ||
list_files.py | ||
make_bundle_unittest.py | ||
make_version.py | ||
minidump.py | ||
only_in_release_mode.py | ||
presubmit.sh | ||
promote.py | ||
publish_pkg.py | ||
revert.py | ||
run_abi_tests.py | ||
run_debian_build.sh | ||
run_offsets_extractor.sh | ||
safari_factory_reset.py | ||
set_ia32_sysroot.sh | ||
set_x64_sysroot.sh | ||
spec_parse.py | ||
task_kill.py | ||
test.dart | ||
test.py | ||
upload_abi_dills.sh | ||
utils.py | ||
validate_test_matrix.dart | ||
VERSION | ||
write_dartdoc_options_file.py | ||
write_revision_file.py | ||
write_version_file.py | ||
yaml2json.dart | ||
yaml2json.py |