OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 library dart2js.serialization_helper; | 5 library dart2js.serialization_helper; |
6 | 6 |
7 import 'dart:async'; | 7 import 'dart:async'; |
8 import 'dart:io'; | 8 import 'dart:io'; |
9 | 9 |
10 import 'package:compiler/src/commandline_options.dart'; | 10 import 'package:compiler/src/commandline_options.dart'; |
11 import 'package:compiler/src/common/names.dart'; | 11 import 'package:compiler/src/common/names.dart'; |
12 import 'package:compiler/src/compiler.dart'; | 12 import 'package:compiler/src/compiler.dart'; |
13 | 13 |
14 import '../memory_compiler.dart'; | 14 import '../memory_compiler.dart'; |
15 import 'test_data.dart'; | 15 import 'test_data.dart'; |
16 | 16 |
| 17 const String DEFAULT_DATA_FILE_NAME = 'out.data'; |
| 18 |
17 class Arguments { | 19 class Arguments { |
18 final String filename; | 20 final String filename; |
19 final int start; | 21 final int start; |
20 final int end; | 22 final int end; |
21 final bool loadSerializedData; | 23 final bool loadSerializedData; |
22 final bool saveSerializedData; | 24 final bool saveSerializedData; |
23 final String serializedDataFileName; | 25 final String serializedDataFileName; |
24 final bool verbose; | 26 final bool verbose; |
25 | 27 |
26 const Arguments({ | 28 const Arguments({ |
27 this.filename, | 29 this.filename, |
28 this.start, | 30 this.start, |
29 this.end, | 31 this.end, |
30 this.loadSerializedData: false, | 32 this.loadSerializedData: false, |
31 this.saveSerializedData: false, | 33 this.saveSerializedData: false, |
32 this.serializedDataFileName: 'out.data', | 34 this.serializedDataFileName: DEFAULT_DATA_FILE_NAME, |
33 this.verbose: false}); | 35 this.verbose: false}); |
34 | 36 |
35 factory Arguments.from(List<String> arguments) { | 37 factory Arguments.from(List<String> arguments) { |
36 String filename; | 38 String filename; |
37 int start; | 39 int start; |
38 int end; | 40 int end; |
39 for (String arg in arguments) { | 41 for (String arg in arguments) { |
40 if (!arg.startsWith('-')) { | 42 if (!arg.startsWith('-')) { |
41 int index = int.parse(arg); | 43 int index = int.parse(arg, onError: (_) => null); |
42 if (index == null) { | 44 if (index == null) { |
43 filename = arg; | 45 filename = arg; |
44 } else if (start == null) { | 46 } else if (start == null) { |
45 start = index; | 47 start = index; |
46 } else { | 48 } else { |
47 end = index; | 49 end = index; |
48 } | 50 } |
49 } | 51 } |
50 } | 52 } |
51 bool verbose = arguments.contains('-v'); | 53 bool verbose = arguments.contains('-v'); |
52 bool loadSerializedData = arguments.contains('-l'); | 54 bool loadSerializedData = arguments.contains('-l'); |
53 bool saveSerializedData = arguments.contains('-s'); | 55 bool saveSerializedData = arguments.contains('-s'); |
| 56 if (arguments.contains('--auto')) { |
| 57 File file = new File(DEFAULT_DATA_FILE_NAME); |
| 58 if (file.existsSync()) { |
| 59 loadSerializedData = true; |
| 60 } else { |
| 61 saveSerializedData = true; |
| 62 } |
| 63 } |
54 return new Arguments( | 64 return new Arguments( |
55 filename: filename, | 65 filename: filename, |
56 start: start, | 66 start: start, |
57 end: end, | 67 end: end, |
58 verbose: verbose, | 68 verbose: verbose, |
59 loadSerializedData: loadSerializedData, | 69 loadSerializedData: loadSerializedData, |
60 saveSerializedData: saveSerializedData); | 70 saveSerializedData: saveSerializedData); |
61 } | 71 } |
62 | 72 |
63 Future forEachTest(List<Test> tests, Future f(int index, Test test)) async { | 73 Future forEachTest(List<Test> tests, Future f(int index, Test test)) async { |
(...skipping 30 matching lines...) Expand all Loading... |
94 sink, compiler.libraryLoader.libraries); | 104 sink, compiler.libraryLoader.libraries); |
95 serializedData = sink.text; | 105 serializedData = sink.text; |
96 if (arguments.saveSerializedData) { | 106 if (arguments.saveSerializedData) { |
97 File file = new File(arguments.serializedDataFileName); | 107 File file = new File(arguments.serializedDataFileName); |
98 print('Saving data to $file'); | 108 print('Saving data to $file'); |
99 file.writeAsStringSync(serializedData); | 109 file.writeAsStringSync(serializedData); |
100 } | 110 } |
101 } | 111 } |
102 return serializedData; | 112 return serializedData; |
103 } | 113 } |
OLD | NEW |