| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 #include <stdlib.h> | 5 #include <stdlib.h> |
| 6 #include <string.h> | 6 #include <string.h> |
| 7 #include <stdio.h> | 7 #include <stdio.h> |
| 8 | 8 |
| 9 #include "include/dart_api.h" | 9 #include "include/dart_api.h" |
| 10 #include "include/dart_tools_api.h" | 10 #include "include/dart_tools_api.h" |
| (...skipping 746 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 757 Builtin::SetNativeResolver(Builtin::kBuiltinLibrary); | 757 Builtin::SetNativeResolver(Builtin::kBuiltinLibrary); |
| 758 Builtin::SetNativeResolver(Builtin::kIOLibrary); | 758 Builtin::SetNativeResolver(Builtin::kIOLibrary); |
| 759 } | 759 } |
| 760 | 760 |
| 761 // Set up the library tag handler for this isolate. | 761 // Set up the library tag handler for this isolate. |
| 762 Dart_Handle result = Dart_SetLibraryTagHandler(DartUtils::LibraryTagHandler); | 762 Dart_Handle result = Dart_SetLibraryTagHandler(DartUtils::LibraryTagHandler); |
| 763 CHECK_RESULT(result); | 763 CHECK_RESULT(result); |
| 764 | 764 |
| 765 if (Dart_IsServiceIsolate(isolate)) { | 765 if (Dart_IsServiceIsolate(isolate)) { |
| 766 // If this is the service isolate, load embedder specific bits and return. | 766 // If this is the service isolate, load embedder specific bits and return. |
| 767 if (!VmService::Setup(vm_service_server_ip, vm_service_server_port)) { | 767 if (!VmService::Setup(vm_service_server_ip, |
| 768 vm_service_server_port, |
| 769 has_run_precompiled_snapshot)) { |
| 768 *error = strdup(VmService::GetErrorMessage()); | 770 *error = strdup(VmService::GetErrorMessage()); |
| 769 return NULL; | 771 return NULL; |
| 770 } | 772 } |
| 771 if (has_compile_all) { | 773 if (has_compile_all) { |
| 772 result = Dart_CompileAll(); | 774 result = Dart_CompileAll(); |
| 773 CHECK_RESULT(result); | 775 CHECK_RESULT(result); |
| 774 } | 776 } |
| 775 Dart_ExitScope(); | 777 Dart_ExitScope(); |
| 776 Dart_ExitIsolate(); | 778 Dart_ExitIsolate(); |
| 777 return isolate; | 779 return isolate; |
| (...skipping 440 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1218 } else { | 1220 } else { |
| 1219 // Lookup the library of the root script. | 1221 // Lookup the library of the root script. |
| 1220 Dart_Handle root_lib = Dart_RootLibrary(); | 1222 Dart_Handle root_lib = Dart_RootLibrary(); |
| 1221 // Import the root library into the builtin library so that we can easily | 1223 // Import the root library into the builtin library so that we can easily |
| 1222 // lookup the main entry point exported from the root library. | 1224 // lookup the main entry point exported from the root library. |
| 1223 Dart_Handle builtin_lib = | 1225 Dart_Handle builtin_lib = |
| 1224 Builtin::LoadAndCheckLibrary(Builtin::kBuiltinLibrary); | 1226 Builtin::LoadAndCheckLibrary(Builtin::kBuiltinLibrary); |
| 1225 ASSERT(!Dart_IsError(builtin_lib)); | 1227 ASSERT(!Dart_IsError(builtin_lib)); |
| 1226 result = Dart_LibraryImportLibrary(builtin_lib, root_lib, Dart_Null()); | 1228 result = Dart_LibraryImportLibrary(builtin_lib, root_lib, Dart_Null()); |
| 1227 | 1229 |
| 1230 if (has_gen_precompiled_snapshot) { |
| 1231 // Load the embedder's portion of the VM service's Dart code so it will |
| 1232 // be included in the precompiled snapshot. |
| 1233 if (!VmService::LoadForGenPrecompiled()) { |
| 1234 fprintf(stderr, |
| 1235 "VM service loading failed: %s\n", |
| 1236 VmService::GetErrorMessage()); |
| 1237 fflush(stderr); |
| 1238 exit(kErrorExitCode); |
| 1239 } |
| 1240 } |
| 1241 |
| 1228 if (has_noopt || has_gen_precompiled_snapshot) { | 1242 if (has_noopt || has_gen_precompiled_snapshot) { |
| 1229 Dart_QualifiedFunctionName standalone_entry_points[] = { | 1243 Dart_QualifiedFunctionName standalone_entry_points[] = { |
| 1230 { "dart:_builtin", "::", "_getMainClosure" }, | 1244 { "dart:_builtin", "::", "_getMainClosure" }, |
| 1231 { "dart:_builtin", "::", "_getPrintClosure" }, | 1245 { "dart:_builtin", "::", "_getPrintClosure" }, |
| 1232 { "dart:_builtin", "::", "_getUriBaseClosure" }, | 1246 { "dart:_builtin", "::", "_getUriBaseClosure" }, |
| 1233 { "dart:_builtin", "::", "_resolveUri" }, | 1247 { "dart:_builtin", "::", "_resolveUri" }, |
| 1234 { "dart:_builtin", "::", "_setWorkingDirectory" }, | 1248 { "dart:_builtin", "::", "_setWorkingDirectory" }, |
| 1235 { "dart:_builtin", "::", "_loadDataAsync" }, | 1249 { "dart:_builtin", "::", "_loadDataAsync" }, |
| 1236 { "dart:io", "::", "_makeUint8ListView" }, | 1250 { "dart:io", "::", "_makeUint8ListView" }, |
| 1237 { "dart:io", "::", "_makeDatagram" }, | 1251 { "dart:io", "::", "_makeDatagram" }, |
| 1238 { "dart:io", "::", "_setupHooks" }, | 1252 { "dart:io", "::", "_setupHooks" }, |
| 1253 { "dart:io", "::", "_getWatchSignalInternal" }, |
| 1239 { "dart:io", "CertificateException", "CertificateException." }, | 1254 { "dart:io", "CertificateException", "CertificateException." }, |
| 1240 { "dart:io", "HandshakeException", "HandshakeException." }, | 1255 { "dart:io", "HandshakeException", "HandshakeException." }, |
| 1241 { "dart:io", "OSError", "OSError." }, | 1256 { "dart:io", "OSError", "OSError." }, |
| 1242 { "dart:io", "TlsException", "TlsException." }, | 1257 { "dart:io", "TlsException", "TlsException." }, |
| 1243 { "dart:io", "X509Certificate", "X509Certificate._" }, | 1258 { "dart:io", "X509Certificate", "X509Certificate._" }, |
| 1244 { "dart:io", "_ExternalBuffer", "set:data" }, | 1259 { "dart:io", "_ExternalBuffer", "set:data" }, |
| 1245 { "dart:io", "_Platform", "set:_nativeScript" }, | 1260 { "dart:io", "_Platform", "set:_nativeScript" }, |
| 1246 { "dart:io", "_ProcessStartStatus", "set:_errorCode" }, | 1261 { "dart:io", "_ProcessStartStatus", "set:_errorCode" }, |
| 1247 { "dart:io", "_ProcessStartStatus", "set:_errorMessage" }, | 1262 { "dart:io", "_ProcessStartStatus", "set:_errorMessage" }, |
| 1248 { "dart:io", "_SecureFilterImpl", "get:ENCRYPTED_SIZE" }, | 1263 { "dart:io", "_SecureFilterImpl", "get:ENCRYPTED_SIZE" }, |
| 1249 { "dart:io", "_SecureFilterImpl", "get:SIZE" }, | 1264 { "dart:io", "_SecureFilterImpl", "get:SIZE" }, |
| 1250 { "dart:vmservice_io", "::", "_addResource" }, | 1265 { "dart:vmservice_io", "::", "_addResource" }, |
| 1251 { "dart:vmservice_io", "::", "main" }, | 1266 { "dart:vmservice_io", "::", "main" }, |
| 1267 { "dart:vmservice_io", "::", "boot" }, |
| 1252 { NULL, NULL, NULL } // Must be terminated with NULL entries. | 1268 { NULL, NULL, NULL } // Must be terminated with NULL entries. |
| 1253 }; | 1269 }; |
| 1254 | 1270 |
| 1255 const bool reset_fields = has_gen_precompiled_snapshot; | 1271 const bool reset_fields = has_gen_precompiled_snapshot; |
| 1256 result = Dart_Precompile(standalone_entry_points, reset_fields); | 1272 result = Dart_Precompile(standalone_entry_points, reset_fields); |
| 1257 CHECK_RESULT(result); | 1273 CHECK_RESULT(result); |
| 1258 } | 1274 } |
| 1259 | 1275 |
| 1260 if (has_gen_precompiled_snapshot) { | 1276 if (has_gen_precompiled_snapshot) { |
| 1261 uint8_t* vm_isolate_buffer = NULL; | 1277 uint8_t* vm_isolate_buffer = NULL; |
| (...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1500 exit(Process::GlobalExitCode()); | 1516 exit(Process::GlobalExitCode()); |
| 1501 } | 1517 } |
| 1502 | 1518 |
| 1503 } // namespace bin | 1519 } // namespace bin |
| 1504 } // namespace dart | 1520 } // namespace dart |
| 1505 | 1521 |
| 1506 int main(int argc, char** argv) { | 1522 int main(int argc, char** argv) { |
| 1507 dart::bin::main(argc, argv); | 1523 dart::bin::main(argc, argv); |
| 1508 UNREACHABLE(); | 1524 UNREACHABLE(); |
| 1509 } | 1525 } |
| OLD | NEW |