blob: 0d82f4b1218c4a3598951f56230683d033d97e15 [file] [log] [blame]
// Copyright (c) 2019, 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.9
import 'dart:async';
import 'dart:core';
import 'dart:html';
import 'package:_test/deferred_library.dart' deferred as d;
import 'package:_test/library.dart';
import 'package:_test_package/test_library.dart';
extension NumberParsing on String {
int parseInt() {
var ret = int.parse(this);
return ret; // Breakpoint: extension
}
}
void main() {
var count = 0;
// For setting breakpoints.
Timer.periodic(const Duration(seconds: 1), (_) {
print('Count is: ${++count}');
print(testLibraryValue);
print(testPartLibraryValue);
});
// for evaluation
Timer.periodic(const Duration(seconds: 1), (_) {
printLocal();
printFieldFromLibraryClass();
printFieldFromLibraryPartClass();
printFieldMain();
printGlobal();
printFromTestLibrary();
printFromTestLibraryPart();
printFromTestPackage();
printCallExtension();
printLoopVariable();
printNestedObjectsMultiLine();
});
document.body.appendText(concatenate('Program', ' is running!'));
}
void printLocal() {
var local = 42;
print('Local is: $local'); // Breakpoint: printLocal
}
void printFieldFromLibraryClass() {
var instance = TestLibraryClass(1, 2);
print('$instance'); // Breakpoint: printFieldFromLibraryClass
}
void printFieldFromLibraryPartClass() {
var instance = TestLibraryPartClass(1, 2);
print('$instance'); // Breakpoint: printFieldFromLibraryPartClass
}
void printFieldMain() {
var instance = MainClass(1);
print('$instance'); // Breakpoint: printFieldMain
}
void printGlobal() {
print(testLibraryValue); // Breakpoint: printGlobal
}
void printFromTestPackage() {
print(concatenate('Hello', ' World'));
}
void printFromTestLibrary() {
var local = 23;
print(testLibraryFunction(local));
}
void printFromTestLibraryPart() {
var local = 23;
print(testLibraryPartFunction(local));
}
void printCallExtension() {
var local = '23';
print(local.parseInt());
}
void printLoopVariable() {
var list = <String>['1'];
for (var item in list) {
print(item); // Breakpoint: printLoopVariable
}
}
Future<void> printDeferred() async {
d.deferredPrintLocal();
}
void printNestedObjectsMultiLine() {
print(// Breakpoint: printEnclosingFunctionMultiLine
EnclosingMainClass(// Breakpoint: printEnclosingObjectMultiLine
MainClass(0) // Breakpoint: printNestedObjectMultiLine
));
}
class MainClass {
final int _field;
MainClass(this._field);
@override
String toString() => '$_field';
}
class EnclosingMainClass {
final MainClass _field;
EnclosingMainClass(this._field);
@override
String toString() => '$_field';
}