mirror of
https://github.com/dart-lang/sdk
synced 2024-11-05 18:22:09 +00:00
d4154ac6dc
Change-Id: Iad2963c7f9c184b089dc6d15aa4442f58d194bc2 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/151983 Reviewed-by: Nicholas Shahan <nshahan@google.com> Commit-Queue: Bob Nystrom <rnystrom@google.com> Auto-Submit: Bob Nystrom <rnystrom@google.com>
223 lines
3.4 KiB
Dart
223 lines
3.4 KiB
Dart
// Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
|
|
// for details. All rights reserved. Use of this source code is governed by a
|
|
// BSD-style license that can be found in the LICENSE file.
|
|
// Test megamorphic calls.
|
|
|
|
import "package:expect/expect.dart";
|
|
|
|
class A {
|
|
A() {}
|
|
f1() {
|
|
return 1;
|
|
}
|
|
|
|
f2() {
|
|
return 2;
|
|
}
|
|
|
|
f3() {
|
|
return 3;
|
|
}
|
|
|
|
f4() {
|
|
return 4;
|
|
}
|
|
|
|
f5() {
|
|
return 5;
|
|
}
|
|
|
|
f6() {
|
|
return 6;
|
|
}
|
|
|
|
f7() {
|
|
return 7;
|
|
}
|
|
|
|
f8() {
|
|
return 8;
|
|
}
|
|
|
|
f9() {
|
|
return 9;
|
|
}
|
|
|
|
f11() {
|
|
return 11;
|
|
}
|
|
|
|
f12() {
|
|
return 12;
|
|
}
|
|
|
|
f13() {
|
|
return 13;
|
|
}
|
|
|
|
f14() {
|
|
return 14;
|
|
}
|
|
|
|
f15() {
|
|
return 15;
|
|
}
|
|
|
|
f16() {
|
|
return 16;
|
|
}
|
|
|
|
f17() {
|
|
return 17;
|
|
}
|
|
|
|
f18() {
|
|
return 18;
|
|
}
|
|
|
|
f19() {
|
|
return 19;
|
|
}
|
|
|
|
f20() {
|
|
return 20;
|
|
}
|
|
|
|
f21() {
|
|
return 21;
|
|
}
|
|
|
|
f22() {
|
|
return 22;
|
|
}
|
|
|
|
f23() {
|
|
return 23;
|
|
}
|
|
|
|
f24() {
|
|
return 24;
|
|
}
|
|
|
|
f25() {
|
|
return 25;
|
|
}
|
|
|
|
f26() {
|
|
return 26;
|
|
}
|
|
|
|
f27() {
|
|
return 27;
|
|
}
|
|
|
|
f28() {
|
|
return 28;
|
|
}
|
|
|
|
f29() {
|
|
return 29;
|
|
}
|
|
|
|
f30() {
|
|
return 30;
|
|
}
|
|
|
|
f31() {
|
|
return 31;
|
|
}
|
|
|
|
f32() {
|
|
return 32;
|
|
}
|
|
|
|
f33() {
|
|
return 33;
|
|
}
|
|
|
|
f34() {
|
|
return 34;
|
|
}
|
|
|
|
f35() {
|
|
return 35;
|
|
}
|
|
|
|
f36() {
|
|
return 36;
|
|
}
|
|
|
|
f37() {
|
|
return 37;
|
|
}
|
|
|
|
f38() {
|
|
return 38;
|
|
}
|
|
|
|
f39() {
|
|
return 39;
|
|
}
|
|
}
|
|
|
|
class B extends A {
|
|
B() : super() {}
|
|
}
|
|
|
|
class ManyCallsTest {
|
|
static testMain() {
|
|
var list = new List<dynamic>.filled(10, null);
|
|
for (int i = 0; i < (list.length ~/ 2); i++) {
|
|
list[i] = new A();
|
|
}
|
|
for (int i = (list.length ~/ 2); i < list.length; i++) {
|
|
list[i] = new B();
|
|
}
|
|
for (int loop = 0; loop < 7; loop++) {
|
|
for (int i = 0; i < list.length; i++) {
|
|
Expect.equals(1, list[i].f1());
|
|
Expect.equals(2, list[i].f2());
|
|
Expect.equals(3, list[i].f3());
|
|
Expect.equals(4, list[i].f4());
|
|
Expect.equals(5, list[i].f5());
|
|
Expect.equals(6, list[i].f6());
|
|
Expect.equals(7, list[i].f7());
|
|
Expect.equals(8, list[i].f8());
|
|
Expect.equals(9, list[i].f9());
|
|
Expect.equals(11, list[i].f11());
|
|
Expect.equals(12, list[i].f12());
|
|
Expect.equals(13, list[i].f13());
|
|
Expect.equals(14, list[i].f14());
|
|
Expect.equals(15, list[i].f15());
|
|
Expect.equals(16, list[i].f16());
|
|
Expect.equals(17, list[i].f17());
|
|
Expect.equals(18, list[i].f18());
|
|
Expect.equals(19, list[i].f19());
|
|
Expect.equals(20, list[i].f20());
|
|
Expect.equals(21, list[i].f21());
|
|
Expect.equals(22, list[i].f22());
|
|
Expect.equals(23, list[i].f23());
|
|
Expect.equals(24, list[i].f24());
|
|
Expect.equals(25, list[i].f25());
|
|
Expect.equals(26, list[i].f26());
|
|
Expect.equals(27, list[i].f27());
|
|
Expect.equals(28, list[i].f28());
|
|
Expect.equals(29, list[i].f29());
|
|
Expect.equals(30, list[i].f30());
|
|
Expect.equals(31, list[i].f31());
|
|
Expect.equals(32, list[i].f32());
|
|
Expect.equals(33, list[i].f33());
|
|
Expect.equals(34, list[i].f34());
|
|
Expect.equals(35, list[i].f35());
|
|
Expect.equals(36, list[i].f36());
|
|
Expect.equals(37, list[i].f37());
|
|
Expect.equals(38, list[i].f38());
|
|
Expect.equals(39, list[i].f39());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
main() {
|
|
ManyCallsTest.testMain();
|
|
}
|