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>
68 lines
1.4 KiB
Dart
68 lines
1.4 KiB
Dart
// Copyright (c) 2017, 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:[]*/
|
|
main() {
|
|
forceInlineLoops();
|
|
}
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
// Force inline a top level method with loops.
|
|
////////////////////////////////////////////////////////////////////////////////
|
|
|
|
/*member: _forLoop:loop,[forceInlineLoops]*/
|
|
@pragma('dart2js:tryInline')
|
|
_forLoop() {
|
|
for (int i = 0; i < 10; i++) {
|
|
print(i);
|
|
}
|
|
}
|
|
|
|
/*member: _forInLoop:loop,[forceInlineLoops]*/
|
|
@pragma('dart2js:tryInline')
|
|
_forInLoop() {
|
|
for (var e in [0, 1, 2]) {
|
|
print(e);
|
|
}
|
|
}
|
|
|
|
/*member: _whileLoop:loop,[forceInlineLoops]*/
|
|
@pragma('dart2js:tryInline')
|
|
_whileLoop() {
|
|
int i = 0;
|
|
while (i < 10) {
|
|
print(i);
|
|
i++;
|
|
}
|
|
}
|
|
|
|
/*member: _doLoop:loop,[forceInlineLoops]*/
|
|
@pragma('dart2js:tryInline')
|
|
_doLoop() {
|
|
int i = 0;
|
|
do {
|
|
print(i);
|
|
i++;
|
|
} while (i < 10);
|
|
}
|
|
|
|
/*member: _hardLoop:loop,(allowLoops)code after return*/
|
|
@pragma('dart2js:tryInline')
|
|
_hardLoop() {
|
|
for (int i = 0; i < 10; i++) {
|
|
if (i % 2 == 0) return 2;
|
|
if (i % 3 == 0) return 3;
|
|
}
|
|
return 1;
|
|
}
|
|
|
|
/*member: forceInlineLoops:[]*/
|
|
@pragma('dart2js:noInline')
|
|
forceInlineLoops() {
|
|
_forLoop();
|
|
_forInLoop();
|
|
_whileLoop();
|
|
_doLoop();
|
|
_hardLoop();
|
|
}
|