[dart2wasm] Trivial test for subtype of Object

Saves some 27k code size (and redundant computation) on barista3.

Change-Id: I2c917ca54c356e754eaf555c93f05f008770654f
Cq-Include-Trybots: luci.dart.try:dart2wasm-linux-x64-d8-try
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/258543
Commit-Queue: Aske Simon Christensen <askesc@google.com>
Reviewed-by: Joshua Litt <joshualitt@google.com>
This commit is contained in:
Aske Simon Christensen 2022-09-12 09:28:26 +00:00 committed by Commit Bot
parent 13f9258511
commit 82f163fa4f

View file

@ -482,7 +482,10 @@ class Types {
}
}
List<Class> concrete = _getConcreteSubtypes(type.classNode).toList();
if (type.classNode == coreTypes.functionClass) {
if (type.classNode == coreTypes.objectClass) {
b.drop();
b.i32_const(1);
} else if (type.classNode == coreTypes.functionClass) {
ClassInfo functionInfo = translator.classInfo[translator.functionClass]!;
b.ref_test(functionInfo.struct);
} else if (concrete.isEmpty) {