mirror of
https://github.com/dart-lang/sdk
synced 2024-10-14 14:53:37 +00:00
f997d62a6d
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> |
||
---|---|---|
.. | ||
bin | ||
lib | ||
api_readme.md | ||
BUILD.gn |