Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(535)

Unified Diff: utils/kernel-service/kernel-service.dart

Issue 2665753002: Reapply "Create an app snapshot of the Dart front end." (Closed)
Patch Set: . Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « utils/kernel-service/BUILD.gn ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: utils/kernel-service/kernel-service.dart
diff --git a/runtime/tools/kernel-service.dart b/utils/kernel-service/kernel-service.dart
similarity index 88%
rename from runtime/tools/kernel-service.dart
rename to utils/kernel-service/kernel-service.dart
index b1b441db2ed5e7d1f6efe595150f09d973bb1c93..2db4d32566e9f190adcdaf5ab738a0986ec90648 100644
--- a/runtime/tools/kernel-service.dart
+++ b/utils/kernel-service/kernel-service.dart
@@ -205,7 +205,32 @@ Future _processLoadRequest(request) async {
}
}
-main() => new RawReceivePort()..handler = _processLoadRequest;
+// This entry point is used when running in the kernel isolate.
+start() => new RawReceivePort()..handler = _processLoadRequest;
+
+// This entry point is used when creating an app snapshot. The argument provides
+// a script to compile to warm-up generated code.
+main(args) {
+ // TODO(28532): Enable on Windows.
+ if (Platform.isWindows) return;
+
+ var tag = 1;
+ var scriptUri = args[0];
+ var responsePort = new RawReceivePort();
+ responsePort.handler = (response) {
+ if (response[0] == tag) {
+ // Success.
+ responsePort.close();
+ } else if (response[0] == -tag) {
+ // Compilation error.
+ throw response[4];
+ } else {
+ throw "Unexpected response: $response";
+ }
+ };
+ var request = [tag, responsePort.sendPort, scriptUri];
+ _processLoadRequest(request);
+}
// This duplicates functionality from the Loader which we can't easily
// access from here.
@@ -216,7 +241,7 @@ Uri _findPackagesFile(Uri base) async {
if (await new File.fromUri(packagesFile).exists()) {
return packagesFile;
}
- if (dir.parent == dir) {
rmacnak 2017/01/31 01:53:37 This is always true. dart.io.Directory are only eq
Vyacheslav Egorov (Google) 2017/01/31 06:18:02 This code was copied from the Loader code so it ha
Vyacheslav Egorov (Google) 2017/01/31 07:32:22 Ah, disregard this comment. Loader does not have t
+ if (dir.parent.path == dir.path) {
break;
}
dir = dir.parent;
« no previous file with comments | « utils/kernel-service/BUILD.gn ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698