[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); }