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 // This is an interface to the Dart Kernel parser and Kernel binary generator. | 5 // This is an interface to the Dart Kernel parser and Kernel binary generator. |
6 // It is used by the kernel-isolate to load Dart source code and generate | 6 // It is used by the kernel-isolate to load Dart source code and generate |
7 // Kernel binary format. | 7 // Kernel binary format. |
8 | 8 |
9 import 'dart:isolate'; | 9 import 'dart:isolate'; |
10 import 'dart:async'; | 10 import 'dart:async'; |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
85 try { | 85 try { |
86 result = await parseScript(scriptUri, packagesUri.path, patchedSdk.path); | 86 result = await parseScript(scriptUri, packagesUri.path, patchedSdk.path); |
87 } catch (error) { | 87 } catch (error) { |
88 tag = -tag; // Mark reply as an exception. | 88 tag = -tag; // Mark reply as an exception. |
89 result = error.toString(); | 89 result = error.toString(); |
90 } | 90 } |
91 | 91 |
92 port.send([tag, inputFileUrl, inputFileUrl, null, result]); | 92 port.send([tag, inputFileUrl, inputFileUrl, null, result]); |
93 } | 93 } |
94 | 94 |
95 main() => new RawReceivePort()..handler = _processLoadRequest; | 95 // This entry point is used when running in the kernel isolate. |
| 96 start() => new RawReceivePort()..handler = _processLoadRequest; |
| 97 |
| 98 // This entry point is used when creating an app snapshot. The argument provides |
| 99 // a script to compile to warm-up generated code. |
| 100 main(args) { |
| 101 var tag = 1; |
| 102 var scriptUri = args[0]; |
| 103 var responsePort = new RawReceivePort(); |
| 104 responsePort.handler = (response) { |
| 105 if (response[0] == tag) { |
| 106 // Success. |
| 107 responsePort.close(); |
| 108 } else if (response[0] == -tag) { |
| 109 // Compilation error. |
| 110 throw response[4]; |
| 111 } else { |
| 112 throw "Unexpected response: $response"; |
| 113 } |
| 114 }; |
| 115 var request = [tag, responsePort.sendPort, scriptUri]; |
| 116 _processLoadRequest(request); |
| 117 } |
OLD | NEW |