f79ed9301b
Now that dart2js only takes migrated files as input, all tests should use the current language version. Change-Id: I6c84850f5786aeac04154b67bd7a3c19083c8bba Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/345344 Reviewed-by: Nate Biggs <natebiggs@google.com> Commit-Queue: Mayank Patke <fishythefish@google.com>
70 lines
1.8 KiB
Dart
70 lines
1.8 KiB
Dart
// Copyright (c) 2022, 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.
|
|
|
|
/*member: main:**/
|
|
void main() {
|
|
final x1 = XX();
|
|
x1.assignUseBar();
|
|
x1.assignUseFoo();
|
|
x1.useBar();
|
|
x1.useFoo();
|
|
}
|
|
|
|
class XX {
|
|
late int foo;
|
|
late final int bar;
|
|
|
|
@pragma('dart2js:noInline')
|
|
/*member: XX.useFoo:
|
|
SsaLateFieldOptimizer.pre=[HFieldGet=3,HLateReadCheck=3],
|
|
SsaLateFieldOptimizer.post=[HFieldGet=3,HLateReadCheck=1],
|
|
*/
|
|
void useFoo() {
|
|
use(foo, foo, effect(), foo, foo, effect(), foo, foo);
|
|
}
|
|
|
|
@pragma('dart2js:noInline')
|
|
/*member: XX.useBar:
|
|
SsaLateFieldOptimizer.pre=[HFieldGet=3,HLateReadCheck=3],
|
|
SsaLateFieldOptimizer.post=[HFieldGet=1,HLateReadCheck=1],
|
|
*/
|
|
void useBar() {
|
|
use(bar, bar, effect(), bar, bar, effect(), bar, bar);
|
|
}
|
|
|
|
@pragma('dart2js:noInline')
|
|
/*member: XX.assignUseFoo:
|
|
SsaLateFieldOptimizer.pre=[HFieldGet=3,HLateReadCheck=3],
|
|
SsaLateFieldOptimizer.post=[HFieldGet=3],
|
|
*/
|
|
void assignUseFoo() {
|
|
foo = 200;
|
|
use(effect(), foo, effect(), foo, foo, effect(), foo, foo);
|
|
}
|
|
|
|
@pragma('dart2js:noInline')
|
|
/*member: XX.assignUseBar:
|
|
SsaLateFieldOptimizer.pre=
|
|
[HFieldGet=4,HLateReadCheck=3,HLateWriteOnceCheck=1],
|
|
SsaLateFieldOptimizer.post=[HFieldGet=1,HLateWriteOnceCheck=1],
|
|
*/
|
|
void assignUseBar() {
|
|
bar = 100;
|
|
use(effect(), bar, effect(), bar, bar, effect(), bar, bar);
|
|
}
|
|
|
|
@pragma('dart2js:noInline')
|
|
/*member: XX.use:**/
|
|
void use(int a1, int a2, int a3, int a4, int a5, int a6, int a7, int a8) {
|
|
print([a1, a2, a3, a4, a5, a6, a7, a8]);
|
|
}
|
|
|
|
@pragma('dart2js:noInline')
|
|
/*member: XX.effect:**/
|
|
int effect() {
|
|
foo++;
|
|
return 0;
|
|
}
|
|
}
|