|  | // 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. | 
|  |  | 
|  | // @dart = 2.7 | 
|  |  | 
|  | /*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(); | 
|  | } |