mirror of
https://github.com/flutter/flutter.git
synced 2025-06-03 00:51:18 +00:00

Skip unnecessary parsing of chrome URI. Ensure stack traces are initialized in web server. Disclaimer on web server that it does not support debugging and remove help message. Fix generated entrypoint to check for main(List<String> args) - Fixes #59643 - Fixes #55084 - Fixes #60417
98 lines
2.0 KiB
Dart
98 lines
2.0 KiB
Dart
// Copyright 2014 The Flutter Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
import 'project.dart';
|
|
|
|
class BasicProject extends Project {
|
|
|
|
@override
|
|
final String pubspec = '''
|
|
name: test
|
|
environment:
|
|
sdk: ">=2.0.0-dev.68.0 <3.0.0"
|
|
|
|
dependencies:
|
|
flutter:
|
|
sdk: flutter
|
|
''';
|
|
|
|
@override
|
|
final String main = r'''
|
|
import 'dart:async';
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
Future<void> main() async {
|
|
while (true) {
|
|
runApp(new MyApp());
|
|
await Future.delayed(const Duration(milliseconds: 50));
|
|
}
|
|
}
|
|
|
|
class MyApp extends StatelessWidget {
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
topLevelFunction();
|
|
return new MaterialApp( // BUILD BREAKPOINT
|
|
title: 'Flutter Demo',
|
|
home: new Container(),
|
|
);
|
|
}
|
|
}
|
|
|
|
topLevelFunction() {
|
|
print("topLevelFunction"); // TOP LEVEL BREAKPOINT
|
|
}
|
|
''';
|
|
|
|
Uri get buildMethodBreakpointUri => mainDart;
|
|
int get buildMethodBreakpointLine => lineContaining(main, '// BUILD BREAKPOINT');
|
|
|
|
Uri get topLevelFunctionBreakpointUri => mainDart;
|
|
int get topLevelFunctionBreakpointLine => lineContaining(main, '// TOP LEVEL BREAKPOINT');
|
|
}
|
|
|
|
class BasicProjectWithUnaryMain extends Project {
|
|
|
|
@override
|
|
final String pubspec = '''
|
|
name: test
|
|
environment:
|
|
sdk: ">=2.0.0-dev.68.0 <3.0.0"
|
|
|
|
dependencies:
|
|
flutter:
|
|
sdk: flutter
|
|
''';
|
|
|
|
@override
|
|
final String main = r'''
|
|
import 'dart:async';
|
|
|
|
import 'package:flutter/material.dart';
|
|
|
|
Future<void> main(List<String> args) async {
|
|
while (true) {
|
|
runApp(new MyApp());
|
|
await Future.delayed(const Duration(milliseconds: 50));
|
|
}
|
|
}
|
|
|
|
class MyApp extends StatelessWidget {
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
topLevelFunction();
|
|
return new MaterialApp( // BUILD BREAKPOINT
|
|
title: 'Flutter Demo',
|
|
home: new Container(),
|
|
);
|
|
}
|
|
}
|
|
|
|
topLevelFunction() {
|
|
print("topLevelFunction"); // TOP LEVEL BREAKPOINT
|
|
}
|
|
''';
|
|
}
|