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

Side by Side Diff: dart/frog/leg/compiler.dart

Issue 9567041: Implement prefixes in NewExpression. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 8 years, 9 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
« no previous file with comments | « no previous file | dart/frog/leg/resolver.dart » ('j') | dart/frog/leg/resolver.dart » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 Map<int, BailoutInfo> bailouts = null; 9 Map<int, BailoutInfo> bailouts = null;
10 bool allowSpeculativeOptimization = true; 10 bool allowSpeculativeOptimization = true;
(...skipping 25 matching lines...) Expand all
36 } 36 }
37 } 37 }
38 38
39 class Compiler implements DiagnosticListener { 39 class Compiler implements DiagnosticListener {
40 Queue<WorkItem> worklist; 40 Queue<WorkItem> worklist;
41 Universe universe; 41 Universe universe;
42 String assembledCode; 42 String assembledCode;
43 Namer namer; 43 Namer namer;
44 Types types; 44 Types types;
45 final String currentDirectory; 45 final String currentDirectory;
46 final Map<Node, ClosureData> closureDataCache;
ngeoffray 2012/03/07 11:35:25 This should be a field in the builder task. But ha
ahe 2012/03/07 21:56:08 Done.
46 47
47 final Tracer tracer; 48 final Tracer tracer;
48 49
49 CompilerTask measuredTask; 50 CompilerTask measuredTask;
50 Element _currentElement; 51 Element _currentElement;
51 LibraryElement coreLibrary; 52 LibraryElement coreLibrary;
52 LibraryElement coreImplLibrary; 53 LibraryElement coreImplLibrary;
53 LibraryElement jsHelperLibrary; 54 LibraryElement jsHelperLibrary;
54 LibraryElement mainApp; 55 LibraryElement mainApp;
55 ClassElement objectClass; 56 ClassElement objectClass;
(...skipping 26 matching lines...) Expand all
82 static final SourceString NO_SUCH_METHOD = const SourceString('noSuchMethod'); 83 static final SourceString NO_SUCH_METHOD = const SourceString('noSuchMethod');
83 static final SourceString NO_SUCH_METHOD_EXCEPTION = 84 static final SourceString NO_SUCH_METHOD_EXCEPTION =
84 const SourceString('NoSuchMethodException'); 85 const SourceString('NoSuchMethodException');
85 static final SourceString OBJECT = const SourceString('Object'); 86 static final SourceString OBJECT = const SourceString('Object');
86 bool enabledNoSuchMethod = false; 87 bool enabledNoSuchMethod = false;
87 88
88 Compiler.withCurrentDirectory(String this.currentDirectory, 89 Compiler.withCurrentDirectory(String this.currentDirectory,
89 [this.tracer = const Tracer()]) 90 [this.tracer = const Tracer()])
90 : types = new Types(), 91 : types = new Types(),
91 universe = new Universe(), 92 universe = new Universe(),
92 worklist = new Queue<WorkItem>() { 93 worklist = new Queue<WorkItem>(),
94 closureDataCache = new HashMap<Node, ClosureData>() {
93 namer = new Namer(this); 95 namer = new Namer(this);
94 constantHandler = new ConstantHandler(this); 96 constantHandler = new ConstantHandler(this);
95 scanner = new ScannerTask(this); 97 scanner = new ScannerTask(this);
96 dietParser = new DietParserTask(this); 98 dietParser = new DietParserTask(this);
97 parser = new ParserTask(this); 99 parser = new ParserTask(this);
98 validator = new TreeValidatorTask(this); 100 validator = new TreeValidatorTask(this);
99 resolver = new ResolverTask(this); 101 resolver = new ResolverTask(this);
100 checker = new TypeCheckerTask(this); 102 checker = new TypeCheckerTask(this);
101 builder = new SsaBuilderTask(this); 103 builder = new SsaBuilderTask(this);
102 optimizer = new SsaOptimizerTask(this); 104 optimizer = new SsaOptimizerTask(this);
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after
424 426
425 // TODO(ahe): Remove when the VM supports implicit interfaces. 427 // TODO(ahe): Remove when the VM supports implicit interfaces.
426 class LTracer implements Tracer { 428 class LTracer implements Tracer {
427 const LTracer(); 429 const LTracer();
428 final bool enabled = false; 430 final bool enabled = false;
429 void traceGraph(String name, var graph) { 431 void traceGraph(String name, var graph) {
430 } 432 }
431 void close() { 433 void close() {
432 } 434 }
433 } 435 }
OLDNEW
« no previous file with comments | « no previous file | dart/frog/leg/resolver.dart » ('j') | dart/frog/leg/resolver.dart » ('J')

Powered by Google App Engine
This is Rietveld 408576698