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

Side by Side Diff: dart/lib/compiler/implementation/compiler.dart

Issue 9866006: Add library mapping. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Rebased Created 8 years, 8 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) 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 class WorkItem { 5 class WorkItem {
6 final Element element; 6 final Element element;
7 TreeElements resolutionTree; 7 TreeElements resolutionTree;
8 Function run; 8 Function run;
9 bool allowSpeculativeOptimization = true; 9 bool allowSpeculativeOptimization = true;
10 List<HTypeGuard> guards = const <HTypeGuard>[]; 10 List<HTypeGuard> guards = const <HTypeGuard>[];
(...skipping 18 matching lines...) Expand all
29 return compiler.codegen(this); 29 return compiler.codegen(this);
30 } 30 }
31 } 31 }
32 32
33 class Compiler implements DiagnosticListener { 33 class Compiler implements DiagnosticListener {
34 Queue<WorkItem> worklist; 34 Queue<WorkItem> worklist;
35 Universe universe; 35 Universe universe;
36 String assembledCode; 36 String assembledCode;
37 Namer namer; 37 Namer namer;
38 Types types; 38 Types types;
39 final String currentDirectory;
40 39
41 final Tracer tracer; 40 final Tracer tracer;
42 41
43 CompilerTask measuredTask; 42 CompilerTask measuredTask;
44 Element _currentElement; 43 Element _currentElement;
45 LibraryElement coreLibrary; 44 LibraryElement coreLibrary;
46 LibraryElement coreImplLibrary; 45 LibraryElement coreImplLibrary;
47 LibraryElement isolateLibrary; 46 LibraryElement isolateLibrary;
48 LibraryElement jsHelperLibrary; 47 LibraryElement jsHelperLibrary;
49 LibraryElement mainApp; 48 LibraryElement mainApp;
(...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 static final SourceString NO_SUCH_METHOD_EXCEPTION = 88 static final SourceString NO_SUCH_METHOD_EXCEPTION =
90 const SourceString('NoSuchMethodException'); 89 const SourceString('NoSuchMethodException');
91 static final SourceString START_ROOT_ISOLATE = 90 static final SourceString START_ROOT_ISOLATE =
92 const SourceString('startRootIsolate'); 91 const SourceString('startRootIsolate');
93 bool enabledNoSuchMethod = false; 92 bool enabledNoSuchMethod = false;
94 93
95 bool workListIsClosed = false; 94 bool workListIsClosed = false;
96 95
97 Stopwatch codegenProgress; 96 Stopwatch codegenProgress;
98 97
99 Compiler.withCurrentDirectory(String this.currentDirectory, 98 Compiler([this.tracer = const Tracer()])
100 [this.tracer = const Tracer()])
101 : types = new Types(), 99 : types = new Types(),
102 universe = new Universe(), 100 universe = new Universe(),
103 worklist = new Queue<WorkItem>(), 101 worklist = new Queue<WorkItem>(),
104 codegenProgress = new Stopwatch.start() { 102 codegenProgress = new Stopwatch.start() {
105 namer = new Namer(this); 103 namer = new Namer(this);
106 constantHandler = new ConstantHandler(this); 104 constantHandler = new ConstantHandler(this);
107 scanner = new ScannerTask(this); 105 scanner = new ScannerTask(this);
108 dietParser = new DietParserTask(this); 106 dietParser = new DietParserTask(this);
109 parser = new ParserTask(this); 107 parser = new ParserTask(this);
110 validator = new TreeValidatorTask(this); 108 validator = new TreeValidatorTask(this);
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
222 doubleClass = coreLibrary.find(const SourceString('double')); 220 doubleClass = coreLibrary.find(const SourceString('double'));
223 stringClass = coreLibrary.find(const SourceString('String')); 221 stringClass = coreLibrary.find(const SourceString('String'));
224 functionClass = coreLibrary.find(const SourceString('Function')); 222 functionClass = coreLibrary.find(const SourceString('Function'));
225 listClass = coreLibrary.find(const SourceString('List')); 223 listClass = coreLibrary.find(const SourceString('List'));
226 closureClass = jsHelperLibrary.find(const SourceString('Closure')); 224 closureClass = jsHelperLibrary.find(const SourceString('Closure'));
227 dynamicClass = jsHelperLibrary.find(const SourceString('Dynamic')); 225 dynamicClass = jsHelperLibrary.find(const SourceString('Dynamic'));
228 nullClass = jsHelperLibrary.find(const SourceString('Null')); 226 nullClass = jsHelperLibrary.find(const SourceString('Null'));
229 } 227 }
230 228
231 void scanBuiltinLibraries() { 229 void scanBuiltinLibraries() {
232 coreImplLibrary = scanBuiltinLibrary('coreimpl.dart'); 230 coreImplLibrary = scanBuiltinLibrary('coreimpl');
233 jsHelperLibrary = scanBuiltinLibrary('js_helper.dart'); 231 jsHelperLibrary = scanBuiltinLibrary('_js_helper');
234 coreLibrary = scanBuiltinLibrary('core.dart'); 232 coreLibrary = scanBuiltinLibrary('core');
235 233
236 // Since coreLibrary import the libraries "coreimpl", and 234 // Since coreLibrary import the libraries "coreimpl", and
237 // "js_helper", coreLibrary is null when they are being built. So 235 // "js_helper", coreLibrary is null when they are being built. So
238 // we add the implicit import of coreLibrary now. This can be 236 // we add the implicit import of coreLibrary now. This can be
239 // cleaned up when we have proper support for "dart:core" and 237 // cleaned up when we have proper support for "dart:core" and
240 // don't need to access it through the field "coreLibrary". 238 // don't need to access it through the field "coreLibrary".
241 // TODO(ahe): Clean this up as described above. 239 // TODO(ahe): Clean this up as described above.
242 scanner.importLibrary(coreImplLibrary, coreLibrary, null); 240 scanner.importLibrary(coreImplLibrary, coreLibrary, null);
243 scanner.importLibrary(jsHelperLibrary, coreLibrary, null); 241 scanner.importLibrary(jsHelperLibrary, coreLibrary, null);
244 addForeignFunctions(jsHelperLibrary); 242 addForeignFunctions(jsHelperLibrary);
(...skipping 298 matching lines...) Expand 10 before | Expand all | Expand 10 after
543 } 541 }
544 } 542 }
545 543
546 class SourceSpan { 544 class SourceSpan {
547 final Uri uri; 545 final Uri uri;
548 final int begin; 546 final int begin;
549 final int end; 547 final int end;
550 548
551 const SourceSpan(this.uri, this.begin, this.end); 549 const SourceSpan(this.uri, this.begin, this.end);
552 } 550 }
OLDNEW
« no previous file with comments | « dart/lib/compiler/implementation/apiimpl.dart ('k') | dart/lib/compiler/implementation/dart2js.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698