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

Side by Side Diff: runtime/vm/bootstrap.cc

Issue 9422019: isolates refactor: this change introduces 'dart:isolate' as a library. This is a (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: '' Created 8 years, 10 months 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, 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 "vm/bootstrap.h" 5 #include "vm/bootstrap.h"
6 6
7 #include "include/dart_api.h" 7 #include "include/dart_api.h"
8 8
9 #include "vm/compiler.h" 9 #include "vm/compiler.h"
10 #include "vm/dart_api_impl.h" 10 #include "vm/dart_api_impl.h"
(...skipping 20 matching lines...) Expand all
31 Heap::kOld)); 31 Heap::kOld));
32 const String& src = String::Handle(String::New(corelib_impl_source_, 32 const String& src = String::Handle(String::New(corelib_impl_source_,
33 Heap::kOld)); 33 Heap::kOld));
34 34
35 const Script& result = 35 const Script& result =
36 Script::Handle(Script::New(url, src, RawScript::kSource)); 36 Script::Handle(Script::New(url, src, RawScript::kSource));
37 return result.raw(); 37 return result.raw();
38 } 38 }
39 39
40 40
41 static RawObject* InitLibrary(const char* url_str, const char* source_str) {
42 const String& url = String::Handle(String::NewSymbol(url_str));
43 const String& source = String::Handle(String::New(source_str, Heap::kOld));
44 const Library& lib = Library::Handle(Library::New(url));
45 lib.Register();
46 const Script& script =
47 Script::Handle(Script::New(url, source, RawScript::kSource));
48 const Error& error = Error::Handle(Bootstrap::Compile(lib, script));
49 if (!error.IsNull()) {
50 return error.raw();
51 } else {
52 return lib.raw();
53 }
54 }
55
56
57 RawError* Bootstrap::InitAdditionalLibraries() {
Ivan Posva 2012/02/25 00:14:38 As we are planning to completely revamp the way li
Siggi Cherem (dart-lang) 2012/02/25 02:10:38 Done.
58 Object& result = Object::Handle();
59
60 result = InitLibrary("dart:isolate", isolate_source_);
61 if (result.IsError()) {
62 Error& error = Error::Handle();
63 error ^= result.raw();
64 return error.raw();
65 } else {
66 Library& lib = Library::Handle();
67 lib ^= result.raw();
68 Isolate::Current()->object_store()->set_isolate_library(lib);
69 }
70
71 return Error::null();
72 }
73
74
41 RawError* Bootstrap::Compile(const Library& library, const Script& script) { 75 RawError* Bootstrap::Compile(const Library& library, const Script& script) {
42 if (FLAG_print_bootstrap) { 76 if (FLAG_print_bootstrap) {
43 OS::Print("Bootstrap source '%s':\n%s\n", 77 OS::Print("Bootstrap source '%s':\n%s\n",
44 String::Handle(script.url()).ToCString(), 78 String::Handle(script.url()).ToCString(),
45 String::Handle(script.source()).ToCString()); 79 String::Handle(script.source()).ToCString());
46 } 80 }
47 library.SetLoadInProgress(); 81 library.SetLoadInProgress();
48 const Error& error = Error::Handle(Compiler::Compile(library, script)); 82 const Error& error = Error::Handle(Compiler::Compile(library, script));
49 if (error.IsNull()) { 83 if (error.IsNull()) {
50 library.SetLoaded(); 84 library.SetLoaded();
85 } else {
86 library.SetLoadError();
51 } 87 }
52 return error.raw(); 88 return error.raw();
53 } 89 }
54 90
55 } // namespace dart 91 } // namespace dart
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698