83017685b8
This brings the implementation on par with the VM & dart2wasm. Implementation details: * Dart2js now records pragmas on classes, not only members. * The constant traversal is memoized, preventing potential exponential behavior (and removing duplicate recordings). TEST=pkg/compiler/test/record_use/record_use_test.dart Closes: https://github.com/dart-lang/native/issues/2893 Change-Id: Ia9c4a15c5f250c027d93aa3723042a3fc6a15350 Cq-Include-Trybots: luci.dart.try:dart2wasm-asserts-linux-chrome-try,dart2wasm-asserts-minified-linux-d8-try,dart2wasm-linux-chrome-try,dart2wasm-linux-d8-try,dart2wasm-linux-firefox-try,dart2wasm-linux-jscm-chrome-try,dart2wasm-linux-optimized-jsc-try,pkg-linux-debug-try,pkg-linux-release-arm64-try,pkg-linux-release-try,pkg-mac-release-arm64-try,pkg-mac-release-try,pkg-win-release-arm64-try,pkg-win-release-try,dart2js-canary-linux-try,dart2js-hostasserts-linux-d8-try,dart2js-linux-chrome-try,dart2js-linux-firefox-try,dart2js-mac-chrome-try,dart2js-mac-safari-try,dart2js-minified-csp-linux-chrome-try,dart2js-minified-linux-d8-try,dart2js-unit-linux-x64-release-try,dart2js-win-chrome-try Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/480240 Commit-Queue: Daco Harkes <dacoharkes@google.com> Reviewed-by: Nate Biggs <natebiggs@google.com> Commit-Queue: Nate Biggs <natebiggs@google.com> Auto-Submit: Daco Harkes <dacoharkes@google.com>