[dart2js, ddc] Avoid multiple `_getKind()` calls
Add a local variable for the result.
Change-Id: Iff4002ecd3d491c9b12b3e7baf98394612983520
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/323710
Reviewed-by: Mayank Patke <fishythefish@google.com>
Commit-Queue: Nicholas Shahan <nshahan@google.com>
diff --git a/sdk/lib/_internal/js_shared/lib/rti.dart b/sdk/lib/_internal/js_shared/lib/rti.dart
index 78ba06b..d257eb0 100644
--- a/sdk/lib/_internal/js_shared/lib/rti.dart
+++ b/sdk/lib/_internal/js_shared/lib/rti.dart
@@ -1120,8 +1120,9 @@
}
Rti unstarred = Rti._unstar(testRti);
+ int unstarredKind = Rti._getKind(unstarred);
- if (Rti._getKind(unstarred) == Rti.kindFutureOr) {
+ if (unstarredKind == Rti.kindFutureOr) {
return _finishIsFn(testRti, object, RAW_DART_FUNCTION_REF(_isFutureOr));
}
@@ -1130,7 +1131,7 @@
return _finishIsFn(testRti, object, isFn);
}
- if (Rti._getKind(unstarred) == Rti.kindInterface) {
+ if (unstarredKind == Rti.kindInterface) {
String name = Rti._getInterfaceName(unstarred);
var arguments = Rti._getInterfaceTypeArguments(unstarred);
// This recognizes interface types instantiated with Top, which includes the
@@ -1152,7 +1153,7 @@
testRti, object, RAW_DART_FUNCTION_REF(_isTestViaProperty));
}
// fall through to general implementation.
- } else if (Rti._getKind(unstarred) == Rti.kindRecord) {
+ } else if (unstarredKind == Rti.kindRecord) {
isFn = _recordSpecializedIsTest(unstarred);
return _finishIsFn(testRti, object, isFn);
}