| 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_native_api.h" | 8 #include "include/dart_native_api.h" | 
| 9 | 9 | 
| 10 #include "platform/assert.h" | 10 #include "platform/assert.h" | 
| (...skipping 579 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 590 } | 590 } | 
| 591 | 591 | 
| 592 | 592 | 
| 593 Dart_Handle DartUtils::PrepareForScriptLoading(const char* package_root, | 593 Dart_Handle DartUtils::PrepareForScriptLoading(const char* package_root, | 
| 594                                                Dart_Handle builtin_lib) { | 594                                                Dart_Handle builtin_lib) { | 
| 595   // First ensure all required libraries are available. | 595   // First ensure all required libraries are available. | 
| 596   Dart_Handle url = NewString(kAsyncLibURL); | 596   Dart_Handle url = NewString(kAsyncLibURL); | 
| 597   DART_CHECK_VALID(url); | 597   DART_CHECK_VALID(url); | 
| 598   Dart_Handle async_lib = Dart_LookupLibrary(url); | 598   Dart_Handle async_lib = Dart_LookupLibrary(url); | 
| 599   DART_CHECK_VALID(async_lib); | 599   DART_CHECK_VALID(async_lib); | 
|  | 600   url = NewString(kIsolateLibURL); | 
|  | 601   DART_CHECK_VALID(url); | 
|  | 602   Dart_Handle isolate_lib = Dart_LookupLibrary(url); | 
|  | 603   DART_CHECK_VALID(isolate_lib); | 
|  | 604   url = NewString(kInternalLibURL); | 
|  | 605   DART_CHECK_VALID(url); | 
|  | 606   Dart_Handle internal_lib = Dart_LookupLibrary(url); | 
|  | 607   DART_CHECK_VALID(internal_lib); | 
|  | 608 | 
| 600   Dart_Handle io_lib = Builtin::LoadAndCheckLibrary(Builtin::kIOLibrary); | 609   Dart_Handle io_lib = Builtin::LoadAndCheckLibrary(Builtin::kIOLibrary); | 
|  | 610   DART_CHECK_VALID(io_lib); | 
| 601 | 611 | 
| 602   // We need to ensure that all the scripts loaded so far are finalized | 612   // We need to ensure that all the scripts loaded so far are finalized | 
| 603   // as we are about to invoke some Dart code below to setup closures. | 613   // as we are about to invoke some Dart code below to setup closures. | 
| 604   Dart_Handle result = Dart_FinalizeLoading(false); | 614   Dart_Handle result = Dart_FinalizeLoading(false); | 
| 605   DART_CHECK_VALID(result); | 615   DART_CHECK_VALID(result); | 
| 606 | 616 | 
| 607   // Setup the internal library's 'internalPrint' function. | 617   // Setup the internal library's 'internalPrint' function. | 
| 608   Dart_Handle print = Dart_Invoke( | 618   Dart_Handle print = Dart_Invoke( | 
| 609       builtin_lib, NewString("_getPrintClosure"), 0, NULL); | 619       builtin_lib, NewString("_getPrintClosure"), 0, NULL); | 
| 610   url = NewString(kInternalLibURL); |  | 
| 611   DART_CHECK_VALID(url); |  | 
| 612   Dart_Handle internal_lib = Dart_LookupLibrary(url); |  | 
| 613   DART_CHECK_VALID(internal_lib); |  | 
| 614   result = Dart_SetField(internal_lib, | 620   result = Dart_SetField(internal_lib, | 
| 615                          NewString("_printClosure"), | 621                          NewString("_printClosure"), | 
| 616                          print); | 622                          print); | 
| 617   DART_CHECK_VALID(result); | 623   DART_CHECK_VALID(result); | 
| 618 | 624 | 
| 619   // Setup the 'timer' factory. | 625   DART_CHECK_VALID(Dart_Invoke(isolate_lib, NewString("_setupHooks"), 0, NULL)); | 
| 620   Dart_Handle timer_closure = | 626   DART_CHECK_VALID(Dart_Invoke(io_lib, NewString("_setupHooks"), 0, NULL)); | 
| 621       Dart_Invoke(io_lib, NewString("_getTimerFactoryClosure"), 0, NULL); | 627 | 
| 622   Dart_Handle args[1]; |  | 
| 623   args[0] = timer_closure; |  | 
| 624   DART_CHECK_VALID(Dart_Invoke( |  | 
| 625       async_lib, NewString("_setTimerFactoryClosure"), 1, args)); |  | 
| 626 | 628 | 
| 627   // Setup the 'scheduleImmediate' closure. | 629   // Setup the 'scheduleImmediate' closure. | 
| 628   url = NewString(kIsolateLibURL); |  | 
| 629   DART_CHECK_VALID(url); |  | 
| 630   Dart_Handle isolate_lib = Dart_LookupLibrary(url); |  | 
| 631   DART_CHECK_VALID(isolate_lib); |  | 
| 632   Dart_Handle schedule_immediate_closure = | 630   Dart_Handle schedule_immediate_closure = | 
| 633       Dart_Invoke(isolate_lib, NewString("_getIsolateScheduleImmediateClosure"), | 631       Dart_Invoke(isolate_lib, NewString("_getIsolateScheduleImmediateClosure"), | 
| 634                   0, NULL); | 632                   0, NULL); | 
|  | 633   Dart_Handle args[1]; | 
| 635   args[0] = schedule_immediate_closure; | 634   args[0] = schedule_immediate_closure; | 
| 636   DART_CHECK_VALID(Dart_Invoke( | 635   DART_CHECK_VALID(Dart_Invoke( | 
| 637       async_lib, NewString("_setScheduleImmediateClosure"), 1, args)); | 636       async_lib, NewString("_setScheduleImmediateClosure"), 1, args)); | 
| 638 | 637 | 
| 639   // Setup the corelib 'Uri.base' getter. | 638   // Setup the corelib 'Uri.base' getter. | 
| 640   url = NewString(kCoreLibURL); | 639   url = NewString(kCoreLibURL); | 
| 641   DART_CHECK_VALID(url); | 640   DART_CHECK_VALID(url); | 
| 642   Dart_Handle corelib = Dart_LookupLibrary(url); | 641   Dart_Handle corelib = Dart_LookupLibrary(url); | 
| 643   DART_CHECK_VALID(corelib); | 642   DART_CHECK_VALID(corelib); | 
| 644   Dart_Handle uri_base = Dart_Invoke( | 643   Dart_Handle uri_base = Dart_Invoke( | 
| (...skipping 466 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1111       new CObjectString(CObject::NewString(os_error->message())); | 1110       new CObjectString(CObject::NewString(os_error->message())); | 
| 1112   CObjectArray* result = new CObjectArray(CObject::NewArray(3)); | 1111   CObjectArray* result = new CObjectArray(CObject::NewArray(3)); | 
| 1113   result->SetAt(0, new CObjectInt32(CObject::NewInt32(kOSError))); | 1112   result->SetAt(0, new CObjectInt32(CObject::NewInt32(kOSError))); | 
| 1114   result->SetAt(1, new CObjectInt32(CObject::NewInt32(os_error->code()))); | 1113   result->SetAt(1, new CObjectInt32(CObject::NewInt32(os_error->code()))); | 
| 1115   result->SetAt(2, error_message); | 1114   result->SetAt(2, error_message); | 
| 1116   return result; | 1115   return result; | 
| 1117 } | 1116 } | 
| 1118 | 1117 | 
| 1119 }  // namespace bin | 1118 }  // namespace bin | 
| 1120 }  // namespace dart | 1119 }  // namespace dart | 
| OLD | NEW | 
|---|