3abf78212c
Add dart2bytecode tool which takes Dart sources and produces Dart bytecode. The tool uses common front-end (CFE) to parse Dart source code and contains bytecode generator which translates kernel AST to bytecode. Change-Id: I90bd6e72c619cf0edc556da0640760b30e81091d Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/378560 Commit-Queue: Alexander Markov <alexmarkov@google.com> Reviewed-by: Slava Egorov <vegorov@google.com>
72 lines
1.2 KiB
Dart
72 lines
1.2 KiB
Dart
// Copyright (c) 2024, 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.
|
|
|
|
int testFor(List<int> list) {
|
|
int sum = 0;
|
|
for (int i = 0; i < list.length; i++) {
|
|
sum = sum + list[i];
|
|
}
|
|
return sum;
|
|
}
|
|
|
|
int testForBreak(List<int> list) {
|
|
int sum = 0;
|
|
for (int i = 0; i >= 0; i++) {
|
|
if (i >= list.length) {
|
|
break;
|
|
}
|
|
sum = sum + list[i];
|
|
}
|
|
return sum;
|
|
}
|
|
|
|
int testForContinue(List<int> list) {
|
|
int sum = 0;
|
|
for (int i = -100; i < list.length; i++) {
|
|
if (i < 0) {
|
|
continue;
|
|
}
|
|
sum = sum + list[i];
|
|
}
|
|
return sum;
|
|
}
|
|
|
|
int testWhile(List<int> list) {
|
|
int sum = 0;
|
|
int i = 0;
|
|
while (i < list.length) {
|
|
sum = sum + list[i++];
|
|
}
|
|
return sum;
|
|
}
|
|
|
|
int testDoWhile(List<int> list) {
|
|
int sum = 0;
|
|
int i = 0;
|
|
do {
|
|
sum = sum + list[i];
|
|
++i;
|
|
} while (i < list.length);
|
|
return sum;
|
|
}
|
|
|
|
int testForIn(List<int> list) {
|
|
int sum = 0;
|
|
for (var e in list) {
|
|
sum = sum + e;
|
|
}
|
|
return sum;
|
|
}
|
|
|
|
int testForInWithOuterVar(List<int> list) {
|
|
int sum = 0;
|
|
int e = 42;
|
|
for (e in list) {
|
|
sum = sum + e;
|
|
}
|
|
return sum;
|
|
}
|
|
|
|
main() {}
|