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

Unified Diff: bin/builtin_natives.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_in.cc ('k') | bin/builtin_nolib.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: bin/builtin_natives.cc
===================================================================
--- bin/builtin_natives.cc (revision 1771)
+++ bin/builtin_natives.cc (working copy)
@@ -10,15 +10,7 @@
#include "bin/builtin.h"
#include "bin/dartutils.h"
-// The string on the next line will be filled in with the contents of the
-// builtin.dart file.
-// This string forms the content of builtin functionality which is injected
-// into standalone dart to provide some test/debug functionality.
-static const char Builtin_source_[] = {
- {{DART_SOURCE}}
-};
-
// List all native functions implemented in standalone dart that is used
// to inject additional functionality e.g: Logger, file I/O, socket I/O etc.
#define BUILTIN_NATIVE_LIST(V) \
@@ -40,6 +32,7 @@
V(File_WriteList, 4) \
V(File_Position, 1) \
V(File_SetPosition, 2) \
+ V(File_Truncate, 2) \
V(File_Length, 1) \
V(File_Flush, 1) \
V(File_Create, 1) \
@@ -73,8 +66,8 @@
};
-static Dart_NativeFunction native_lookup(Dart_Handle name,
- int argument_count) {
+Dart_NativeFunction Builtin::NativeLookup(Dart_Handle name,
+ int argument_count) {
const char* function_name = NULL;
Dart_Handle result = Dart_StringToCString(name, &function_name);
DART_CHECK_VALID(result);
@@ -96,59 +89,39 @@
}
-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_Handle result = Dart_LibraryImportLibrary(core_lib, builtin_lib);
- DART_CHECK_VALID(result);
+// Implementation of native functions which are used for some
+// test/debug functionality in standalone dart mode.
- url = Dart_NewString(DartUtils::kCoreImplLibURL);
- Dart_Handle coreimpl_lib = Dart_LookupLibrary(url);
- DART_CHECK_VALID(coreimpl_lib);
- result = Dart_LibraryImportLibrary(coreimpl_lib, builtin_lib);
- DART_CHECK_VALID(result);
+void Builtin::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);
}
-Dart_Handle Builtin_Source() {
- Dart_Handle str = Dart_NewString(Builtin_source_);
- return str;
+void FUNCTION_NAME(Logger_PrintString)(Dart_NativeArguments args) {
+ Dart_EnterScope();
+ Builtin::PrintString(stdout, Dart_GetNativeArgument(args, 0));
+ Dart_ExitScope();
}
-
-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_Handle result = Dart_SetNativeResolver(builtin_lib, native_lookup);
- DART_CHECK_VALID(result);
+void FUNCTION_NAME(Exit)(Dart_NativeArguments args) {
+ Dart_EnterScope();
+ int64_t status = DartUtils::GetIntegerValue(Dart_GetNativeArgument(args, 0));
+ Dart_ExitScope();
+ exit(status);
}
-void Builtin_ImportLibrary(Dart_Handle library) {
+void Builtin::SetNativeResolver() {
Dart_Handle url = Dart_NewString(DartUtils::kBuiltinLibURL);
Dart_Handle builtin_lib = Dart_LookupLibrary(url);
- if (Dart_IsError(builtin_lib)) {
- Dart_Handle source = Dart_NewString(Builtin_source_);
- builtin_lib = Dart_LoadLibrary(url, source);
- if (!Dart_IsError(builtin_lib)) {
- Builtin_SetupLibrary(builtin_lib);
- }
- }
- // Import the builtin library into current library.
DART_CHECK_VALID(builtin_lib);
- Dart_Handle result = Dart_LibraryImportLibrary(library, builtin_lib);
- DART_CHECK_VALID(result);
-}
-
-
-void Builtin_SetNativeResolver() {
- Dart_Handle url = Dart_NewString(DartUtils::kBuiltinLibURL);
- Dart_Handle builtin_lib = Dart_LookupLibrary(url);
- DART_CHECK_VALID(builtin_lib);
// Setup the native resolver for built in library functions.
- Dart_Handle result = Dart_SetNativeResolver(builtin_lib, native_lookup);
+ Dart_Handle result = Dart_SetNativeResolver(builtin_lib, NativeLookup);
DART_CHECK_VALID(result);
}
« no previous file with comments | « bin/builtin_in.cc ('k') | bin/builtin_nolib.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698