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

Unified Diff: bin/builtin.cc

Issue 8673002: - Refactor the isolate callback mechanism to also include creation of the (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/runtime/
Patch Set: '' Created 9 years, 1 month 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 | « bin/builtin.h ('k') | bin/builtin_in.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: bin/builtin.cc
===================================================================
--- bin/builtin.cc (revision 1955)
+++ bin/builtin.cc (working copy)
@@ -9,29 +9,44 @@
#include "bin/builtin.h"
#include "bin/dartutils.h"
-// Implementation of native functions which are used for some
-// test/debug functionality in standalone dart mode.
+static void SetupCorelibImports(Dart_Handle builtin_lib) {
+ // Lookup the core libraries and import the builtin library into them.
+ Dart_Handle url = Dart_NewString(DartUtils::kCoreLibURL);
+ Dart_Handle core_lib = Dart_LookupLibrary(url);
+ DART_CHECK_VALID(core_lib);
+ DART_CHECK_VALID(Dart_LibraryImportLibrary(core_lib, builtin_lib));
-void PrintString(FILE* out, Dart_Handle str) {
- const char* cstring = NULL;
- Dart_Handle result = Dart_StringToCString(str, &cstring);
- if (Dart_IsError(result)) {
- cstring = Dart_GetError(result);
- }
- fprintf(out, "%s\n", cstring);
- fflush(out);
+ url = Dart_NewString(DartUtils::kCoreImplLibURL);
+ Dart_Handle coreimpl_lib = Dart_LookupLibrary(url);
+ DART_CHECK_VALID(coreimpl_lib);
+ DART_CHECK_VALID(Dart_LibraryImportLibrary(coreimpl_lib, builtin_lib));
}
-void FUNCTION_NAME(Logger_PrintString)(Dart_NativeArguments args) {
- Dart_EnterScope();
- PrintString(stdout, Dart_GetNativeArgument(args, 0));
- Dart_ExitScope();
+Dart_Handle Builtin::Source() {
+ Dart_Handle source = Dart_NewString(Builtin::Builtin_source_);
+ return source;
}
-void FUNCTION_NAME(Exit)(Dart_NativeArguments args) {
- Dart_EnterScope();
- int64_t status = DartUtils::GetIntegerValue(Dart_GetNativeArgument(args, 0));
- Dart_ExitScope();
- exit(status);
+
+void Builtin::SetupLibrary(Dart_Handle builtin_lib) {
+ // Setup core lib, builtin import structure.
+ SetupCorelibImports(builtin_lib);
+ // Setup the native resolver for built in library functions.
+ DART_CHECK_VALID(Dart_SetNativeResolver(builtin_lib, NativeLookup));
}
+
+
+void Builtin::ImportLibrary(Dart_Handle library) {
+ Dart_Handle url = Dart_NewString(DartUtils::kBuiltinLibURL);
+ Dart_Handle builtin_lib = Dart_LookupLibrary(url);
+ if (Dart_IsError(builtin_lib)) {
+ builtin_lib = Dart_LoadLibrary(url, Source());
+ if (!Dart_IsError(builtin_lib)) {
+ SetupLibrary(builtin_lib);
+ }
+ }
+ // Import the builtin library into current library.
+ DART_CHECK_VALID(builtin_lib);
+ DART_CHECK_VALID(Dart_LibraryImportLibrary(library, builtin_lib));
+}
« no previous file with comments | « bin/builtin.h ('k') | bin/builtin_in.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698