Chromium Code Reviews| 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 "bin/dartutils.h" | 5 #include "bin/dartutils.h" |
| 6 | 6 |
| 7 #include "include/dart_api.h" | 7 #include "include/dart_api.h" |
| 8 #include "include/dart_tools_api.h" | 8 #include "include/dart_tools_api.h" |
| 9 #include "include/dart_native_api.h" | 9 #include "include/dart_native_api.h" |
| 10 | 10 |
| (...skipping 640 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 651 Dart_PropagateError(err); | 651 Dart_PropagateError(err); |
| 652 } | 652 } |
| 653 } | 653 } |
| 654 | 654 |
| 655 | 655 |
| 656 Dart_Handle DartUtils::PrepareBuiltinLibrary(Dart_Handle builtin_lib, | 656 Dart_Handle DartUtils::PrepareBuiltinLibrary(Dart_Handle builtin_lib, |
| 657 Dart_Handle internal_lib, | 657 Dart_Handle internal_lib, |
| 658 bool is_service_isolate, | 658 bool is_service_isolate, |
| 659 bool trace_loading, | 659 bool trace_loading, |
| 660 const char* package_root, | 660 const char* package_root, |
| 661 const char** package_map, | |
| 662 const char* packages_file) { | 661 const char* packages_file) { |
|
rmacnak
2016/01/13 01:38:59
packages_file -> package_config
Ivan Posva
2016/01/13 02:13:15
Done.
| |
| 663 // Setup the internal library's 'internalPrint' function. | 662 // Setup the internal library's 'internalPrint' function. |
| 664 Dart_Handle print = Dart_Invoke( | 663 Dart_Handle print = Dart_Invoke( |
| 665 builtin_lib, NewString("_getPrintClosure"), 0, NULL); | 664 builtin_lib, NewString("_getPrintClosure"), 0, NULL); |
| 666 RETURN_IF_ERROR(print); | 665 RETURN_IF_ERROR(print); |
| 667 Dart_Handle result = | 666 Dart_Handle result = |
| 668 Dart_SetField(internal_lib, NewString("_printClosure"), print); | 667 Dart_SetField(internal_lib, NewString("_printClosure"), print); |
| 669 RETURN_IF_ERROR(result); | 668 RETURN_IF_ERROR(result); |
| 670 | 669 |
| 671 if (!is_service_isolate) { | 670 if (!is_service_isolate) { |
| 672 if (IsWindowsHost()) { | 671 if (IsWindowsHost()) { |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 686 if (load_port == ILLEGAL_PORT) { | 685 if (load_port == ILLEGAL_PORT) { |
| 687 return Dart_NewUnhandledExceptionError( | 686 return Dart_NewUnhandledExceptionError( |
| 688 NewDartUnsupportedError("Service did not return load port.")); | 687 NewDartUnsupportedError("Service did not return load port.")); |
| 689 } | 688 } |
| 690 result = Builtin::SetLoadPort(load_port); | 689 result = Builtin::SetLoadPort(load_port); |
| 691 RETURN_IF_ERROR(result); | 690 RETURN_IF_ERROR(result); |
| 692 } | 691 } |
| 693 | 692 |
| 694 // Set up package root if specified. | 693 // Set up package root if specified. |
| 695 if (package_root != NULL) { | 694 if (package_root != NULL) { |
| 696 ASSERT(package_map == NULL); | |
| 697 ASSERT(packages_file == NULL); | 695 ASSERT(packages_file == NULL); |
| 698 result = NewString(package_root); | 696 result = NewString(package_root); |
| 699 RETURN_IF_ERROR(result); | 697 RETURN_IF_ERROR(result); |
| 700 const int kNumArgs = 1; | 698 const int kNumArgs = 1; |
| 701 Dart_Handle dart_args[kNumArgs]; | 699 Dart_Handle dart_args[kNumArgs]; |
| 702 dart_args[0] = result; | 700 dart_args[0] = result; |
| 703 result = Dart_Invoke(builtin_lib, | 701 result = Dart_Invoke(builtin_lib, |
| 704 NewString("_setPackageRoot"), | 702 NewString("_setPackageRoot"), |
| 705 kNumArgs, | 703 kNumArgs, |
| 706 dart_args); | 704 dart_args); |
| 707 RETURN_IF_ERROR(result); | 705 RETURN_IF_ERROR(result); |
| 708 } else if (package_map != NULL) { | |
| 709 ASSERT(packages_file == NULL); | |
| 710 Dart_Handle func_name = NewString("_addPackageMapEntry"); | |
| 711 RETURN_IF_ERROR(func_name); | |
| 712 | |
| 713 for (int i = 0; package_map[i] != NULL; i +=2) { | |
| 714 const int kNumArgs = 2; | |
| 715 Dart_Handle dart_args[kNumArgs]; | |
| 716 // Get the key. | |
| 717 result = NewString(package_map[i]); | |
| 718 RETURN_IF_ERROR(result); | |
| 719 dart_args[0] = result; | |
| 720 if (package_map[i + 1] == NULL) { | |
| 721 return Dart_NewUnhandledExceptionError( | |
| 722 NewDartArgumentError("Adding package map entry without value.")); | |
| 723 } | |
| 724 // Get the value. | |
| 725 result = NewString(package_map[i + 1]); | |
| 726 RETURN_IF_ERROR(result); | |
| 727 dart_args[1] = result; | |
| 728 // Setup the next package map entry. | |
| 729 result = Dart_Invoke(builtin_lib, | |
| 730 func_name, | |
| 731 kNumArgs, | |
| 732 dart_args); | |
| 733 RETURN_IF_ERROR(result); | |
| 734 } | |
| 735 } else if (packages_file != NULL) { | 706 } else if (packages_file != NULL) { |
| 736 result = NewString(packages_file); | 707 result = NewString(packages_file); |
| 737 RETURN_IF_ERROR(result); | 708 RETURN_IF_ERROR(result); |
| 738 const int kNumArgs = 1; | 709 const int kNumArgs = 1; |
| 739 Dart_Handle dart_args[kNumArgs]; | 710 Dart_Handle dart_args[kNumArgs]; |
| 740 dart_args[0] = result; | 711 dart_args[0] = result; |
| 741 result = Dart_Invoke(builtin_lib, | 712 result = Dart_Invoke(builtin_lib, |
| 742 NewString("_loadPackagesMap"), | 713 NewString("_loadPackagesMap"), |
| 743 kNumArgs, | 714 kNumArgs, |
| 744 dart_args); | 715 dart_args); |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 782 return Dart_Invoke(io_lib, NewString("_setupHooks"), 0, NULL); | 753 return Dart_Invoke(io_lib, NewString("_setupHooks"), 0, NULL); |
| 783 } | 754 } |
| 784 | 755 |
| 785 | 756 |
| 786 Dart_Handle DartUtils::PrepareIsolateLibrary(Dart_Handle isolate_lib) { | 757 Dart_Handle DartUtils::PrepareIsolateLibrary(Dart_Handle isolate_lib) { |
| 787 return Dart_Invoke(isolate_lib, NewString("_setupHooks"), 0, NULL); | 758 return Dart_Invoke(isolate_lib, NewString("_setupHooks"), 0, NULL); |
| 788 } | 759 } |
| 789 | 760 |
| 790 | 761 |
| 791 Dart_Handle DartUtils::PrepareForScriptLoading(const char* package_root, | 762 Dart_Handle DartUtils::PrepareForScriptLoading(const char* package_root, |
| 792 const char** package_map, | |
| 793 const char* packages_file, | 763 const char* packages_file, |
|
rmacnak
2016/01/13 01:38:59
packages_file -> package_config
Ivan Posva
2016/01/13 02:13:15
Done.
| |
| 794 bool is_service_isolate, | 764 bool is_service_isolate, |
| 795 bool trace_loading, | 765 bool trace_loading, |
| 796 Dart_Handle builtin_lib) { | 766 Dart_Handle builtin_lib) { |
| 797 // First ensure all required libraries are available. | 767 // First ensure all required libraries are available. |
| 798 Dart_Handle url = NewString(kCoreLibURL); | 768 Dart_Handle url = NewString(kCoreLibURL); |
| 799 RETURN_IF_ERROR(url); | 769 RETURN_IF_ERROR(url); |
| 800 Dart_Handle core_lib = Dart_LookupLibrary(url); | 770 Dart_Handle core_lib = Dart_LookupLibrary(url); |
| 801 RETURN_IF_ERROR(core_lib); | 771 RETURN_IF_ERROR(core_lib); |
| 802 url = NewString(kAsyncLibURL); | 772 url = NewString(kAsyncLibURL); |
| 803 RETURN_IF_ERROR(url); | 773 RETURN_IF_ERROR(url); |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 817 // We need to ensure that all the scripts loaded so far are finalized | 787 // We need to ensure that all the scripts loaded so far are finalized |
| 818 // as we are about to invoke some Dart code below to setup closures. | 788 // as we are about to invoke some Dart code below to setup closures. |
| 819 Dart_Handle result = Dart_FinalizeLoading(false); | 789 Dart_Handle result = Dart_FinalizeLoading(false); |
| 820 RETURN_IF_ERROR(result); | 790 RETURN_IF_ERROR(result); |
| 821 | 791 |
| 822 result = PrepareBuiltinLibrary(builtin_lib, | 792 result = PrepareBuiltinLibrary(builtin_lib, |
| 823 internal_lib, | 793 internal_lib, |
| 824 is_service_isolate, | 794 is_service_isolate, |
| 825 trace_loading, | 795 trace_loading, |
| 826 package_root, | 796 package_root, |
| 827 package_map, | |
| 828 packages_file); | 797 packages_file); |
|
rmacnak
2016/01/13 01:38:59
packages_file -> package_config
Ivan Posva
2016/01/13 02:13:15
Done.
| |
| 829 RETURN_IF_ERROR(result); | 798 RETURN_IF_ERROR(result); |
| 830 | 799 |
| 831 RETURN_IF_ERROR(PrepareAsyncLibrary(async_lib, isolate_lib)); | 800 RETURN_IF_ERROR(PrepareAsyncLibrary(async_lib, isolate_lib)); |
| 832 RETURN_IF_ERROR(PrepareCoreLibrary( | 801 RETURN_IF_ERROR(PrepareCoreLibrary( |
| 833 core_lib, builtin_lib, is_service_isolate)); | 802 core_lib, builtin_lib, is_service_isolate)); |
| 834 RETURN_IF_ERROR(PrepareIsolateLibrary(isolate_lib)); | 803 RETURN_IF_ERROR(PrepareIsolateLibrary(isolate_lib)); |
| 835 RETURN_IF_ERROR(PrepareIOLibrary(io_lib)); | 804 RETURN_IF_ERROR(PrepareIOLibrary(io_lib)); |
| 836 return result; | 805 return result; |
| 837 } | 806 } |
| 838 | 807 |
| (...skipping 454 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1293 new CObjectString(CObject::NewString(os_error->message())); | 1262 new CObjectString(CObject::NewString(os_error->message())); |
| 1294 CObjectArray* result = new CObjectArray(CObject::NewArray(3)); | 1263 CObjectArray* result = new CObjectArray(CObject::NewArray(3)); |
| 1295 result->SetAt(0, new CObjectInt32(CObject::NewInt32(kOSError))); | 1264 result->SetAt(0, new CObjectInt32(CObject::NewInt32(kOSError))); |
| 1296 result->SetAt(1, new CObjectInt32(CObject::NewInt32(os_error->code()))); | 1265 result->SetAt(1, new CObjectInt32(CObject::NewInt32(os_error->code()))); |
| 1297 result->SetAt(2, error_message); | 1266 result->SetAt(2, error_message); |
| 1298 return result; | 1267 return result; |
| 1299 } | 1268 } |
| 1300 | 1269 |
| 1301 } // namespace bin | 1270 } // namespace bin |
| 1302 } // namespace dart | 1271 } // namespace dart |
| OLD | NEW |