OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 import 'dart:async'; | 5 import 'dart:async'; |
6 import 'dart:io'; | 6 import 'dart:io'; |
7 import 'dart:convert'; | 7 import 'dart:convert'; |
8 | 8 |
9 import 'dart:mirrors'; | 9 import 'dart:mirrors'; |
10 | 10 |
11 import 'package:sdk_library_metadata/libraries.dart' | 11 import 'package:sdk_library_metadata/libraries.dart' |
12 show libraries, LibraryInfo; | 12 show libraries, LibraryInfo; |
13 | 13 |
14 import '../../lib/src/mirrors/analyze.dart' | 14 import '../../lib/src/mirrors/analyze.dart' show analyze; |
15 show analyze; | 15 import '../../lib/src/mirrors/dart2js_mirrors.dart' show BackDoor; |
16 import '../../lib/src/mirrors/dart2js_mirrors.dart' | |
17 show BackDoor; | |
18 | 16 |
19 import '../../lib/src/filenames.dart'; | 17 import '../../lib/src/filenames.dart'; |
20 import '../../lib/src/source_file_provider.dart'; | 18 import '../../lib/src/source_file_provider.dart'; |
21 import '../../lib/src/util/uri_extras.dart'; | 19 import '../../lib/src/util/uri_extras.dart'; |
22 | 20 |
23 const DART2JS = '../../lib/src/dart2js.dart'; | 21 const DART2JS = '../../lib/src/dart2js.dart'; |
24 const DART2JS_MIRROR = '../../lib/src/mirrors/dart2js_mirror.dart'; | 22 const DART2JS_MIRROR = '../../lib/src/mirrors/dart2js_mirror.dart'; |
25 const SDK_ROOT = '../../../../sdk/'; | 23 const SDK_ROOT = '../../../../sdk/'; |
26 | 24 |
27 bool isPublicDart2jsLibrary(String name) { | 25 bool isPublicDart2jsLibrary(String name) { |
28 return !name.startsWith('_') && libraries[name].isDart2jsLibrary; | 26 return !name.startsWith('_') && libraries[name].isDart2jsLibrary; |
29 } | 27 } |
30 | 28 |
31 var handler; | 29 var handler; |
32 RandomAccessFile output; | 30 RandomAccessFile output; |
33 Uri outputUri; | 31 Uri outputUri; |
34 Uri sdkRoot; | 32 Uri sdkRoot; |
35 const bool outputJson = | 33 const bool outputJson = |
36 const bool.fromEnvironment('outputJson', defaultValue: false); | 34 const bool.fromEnvironment('outputJson', defaultValue: false); |
37 | 35 |
38 main(List<String> arguments) { | 36 main(List<String> arguments) { |
39 handler = new FormattingDiagnosticHandler() | 37 handler = new FormattingDiagnosticHandler()..throwOnError = true; |
40 ..throwOnError = true; | |
41 | 38 |
42 outputUri = | 39 outputUri = handler.provider.cwd.resolve(nativeToUriPath(arguments.first)); |
43 handler.provider.cwd.resolve(nativeToUriPath(arguments.first)); | |
44 output = new File(arguments.first).openSync(mode: FileMode.WRITE); | 40 output = new File(arguments.first).openSync(mode: FileMode.WRITE); |
45 | 41 |
46 Uri myLocation = | 42 Uri myLocation = handler.provider.cwd.resolveUri(Platform.script); |
47 handler.provider.cwd.resolveUri(Platform.script); | |
48 | 43 |
49 Uri packageRoot = | 44 Uri packageRoot = handler.provider.cwd.resolve(Platform.packageRoot); |
50 handler.provider.cwd.resolve(Platform.packageRoot); | |
51 | 45 |
52 Uri libraryRoot = myLocation.resolve(SDK_ROOT); | 46 Uri libraryRoot = myLocation.resolve(SDK_ROOT); |
53 | 47 |
54 sdkRoot = libraryRoot.resolve('../'); | 48 sdkRoot = libraryRoot.resolve('../'); |
55 | 49 |
56 // Get the names of public dart2js libraries. | 50 // Get the names of public dart2js libraries. |
57 Iterable<String> names = libraries.keys.where(isPublicDart2jsLibrary); | 51 Iterable<String> names = libraries.keys.where(isPublicDart2jsLibrary); |
58 | 52 |
59 // Turn the names into uris by prepending dart: to them. | 53 // Turn the names into uris by prepending dart: to them. |
60 List<Uri> uris = names.map((String name) => Uri.parse('dart:$name')).toList(); | 54 List<Uri> uris = names.map((String name) => Uri.parse('dart:$name')).toList(); |
(...skipping 19 matching lines...) Expand all Loading... |
80 }); | 74 }); |
81 }); | 75 }); |
82 | 76 |
83 libraries.forEach((name, info) { | 77 libraries.forEach((name, info) { |
84 var patch = info.dart2jsPatchPath; | 78 var patch = info.dart2jsPatchPath; |
85 if (patch != null) { | 79 if (patch != null) { |
86 futures.add(mapUri(sdkRoot.resolve('sdk/lib/$patch'))); | 80 futures.add(mapUri(sdkRoot.resolve('sdk/lib/$patch'))); |
87 } | 81 } |
88 }); | 82 }); |
89 | 83 |
90 for (String filename in ["dart_client.platform", | 84 for (String filename in [ |
91 "dart_server.platform", | 85 "dart_client.platform", |
92 "dart_shared.platform"]) { | 86 "dart_server.platform", |
| 87 "dart_shared.platform" |
| 88 ]) { |
93 futures.add(mapUri(sdkRoot.resolve('sdk/lib/$filename'))); | 89 futures.add(mapUri(sdkRoot.resolve('sdk/lib/$filename'))); |
94 } | 90 } |
95 | 91 |
96 Future.wait(futures).then((_) { | 92 Future.wait(futures).then((_) { |
97 if (outputJson) { | 93 if (outputJson) { |
98 output.writeStringSync(JSON.encode(map)); | 94 output.writeStringSync(JSON.encode(map)); |
99 } else { | 95 } else { |
100 output.writeStringSync(''' | 96 output.writeStringSync(''' |
101 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 97 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file |
102 // for details. All rights reserved. Use of this source code is governed by a | 98 // for details. All rights reserved. Use of this source code is governed by a |
103 // BSD-style license that can be found in the LICENSE file. | 99 // BSD-style license that can be found in the LICENSE file. |
104 | 100 |
105 // DO NOT EDIT. | 101 // DO NOT EDIT. |
106 // This file is generated by jsonify.dart. | 102 // This file is generated by jsonify.dart. |
107 | 103 |
108 library dart.sdk_sources; | 104 library dart.sdk_sources; |
109 | 105 |
110 const Map<String, String> SDK_SOURCES = const <String, String>'''); | 106 const Map<String, String> SDK_SOURCES = const <String, String>'''); |
111 output.writeStringSync(JSON.encode(map).replaceAll(r'$', r'\$')); | 107 output.writeStringSync(JSON.encode(map).replaceAll(r'$', r'\$')); |
112 output.writeStringSync(';\n'); | 108 output.writeStringSync(';\n'); |
113 } | 109 } |
114 output.closeSync(); | 110 output.closeSync(); |
115 }); | 111 }); |
116 } | 112 } |
OLD | NEW |