Files
sdk/pkg/compiler/test/inlining/data/force_inline_loops.dart
T
Mayank Patke f79ed9301b [dart2js] Remove remaining language version overrides
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>
2024-01-23 01:26:09 +00:00

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