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

Side by Side Diff: pkg/compiler/lib/src/js_emitter/startup_emitter/model_emitter.dart

Issue 1256323006: dart2js: Use deferredFragments getter. (Closed) Base URL: git@github.com:dart-lang/sdk.git@master
Patch Set: Created 5 years, 4 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
« no previous file with comments | « pkg/compiler/lib/src/js_emitter/lazy_emitter/model_emitter.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 library dart2js.js_emitter.startup_emitter.model_emitter; 5 library dart2js.js_emitter.startup_emitter.model_emitter;
6 6
7 import '../../constants/values.dart' show ConstantValue, FunctionConstantValue; 7 import '../../constants/values.dart' show ConstantValue, FunctionConstantValue;
8 import '../../dart2jslib.dart' show Compiler; 8 import '../../dart2jslib.dart' show Compiler;
9 import '../../elements/elements.dart' show ClassElement, FunctionElement; 9 import '../../elements/elements.dart' show ClassElement, FunctionElement;
10 import '../../js/js.dart' as js; 10 import '../../js/js.dart' as js;
(...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 if (isConstantInlinedOrAlreadyEmitted(value)) { 121 if (isConstantInlinedOrAlreadyEmitted(value)) {
122 return constantEmitter.generate(value); 122 return constantEmitter.generate(value);
123 } 123 }
124 return js.js('#.#', [namer.globalObjectForConstant(value), 124 return js.js('#.#', [namer.globalObjectForConstant(value),
125 namer.constantName(value)]); 125 namer.constantName(value)]);
126 } 126 }
127 127
128 int emitProgram(Program program) { 128 int emitProgram(Program program) {
129 List<Fragment> fragments = program.fragments; 129 List<Fragment> fragments = program.fragments;
130 MainFragment mainFragment = fragments.first; 130 MainFragment mainFragment = fragments.first;
131 Iterable<Fragment> deferredFragments = program.deferredFragments;
131 132
132 int totalSize = 0; 133 int totalSize = 0;
133 134
134 FragmentEmitter fragmentEmitter = 135 FragmentEmitter fragmentEmitter =
135 new FragmentEmitter(compiler, namer, backend, constantEmitter, this); 136 new FragmentEmitter(compiler, namer, backend, constantEmitter, this);
136 137
137 // We have to emit the deferred fragments first, since we need their 138 // We have to emit the deferred fragments first, since we need their
138 // deferred hash (which depends on the output) when emitting the main 139 // deferred hash (which depends on the output) when emitting the main
139 // fragment. 140 // fragment.
140 List<js.Expression> fragmentsCode = fragments.skip(1).map( 141 List<js.Expression> fragmentsCode = deferredFragments.map(
141 (DeferredFragment deferredFragment) { 142 (DeferredFragment deferredFragment) {
142 js.Expression types = 143 js.Expression types =
143 program.metadataTypesForOutputUnit(deferredFragment.outputUnit); 144 program.metadataTypesForOutputUnit(deferredFragment.outputUnit);
144 return fragmentEmitter.emitDeferredFragment( 145 return fragmentEmitter.emitDeferredFragment(
145 deferredFragment, types, program.holders); 146 deferredFragment, types, program.holders);
146 }).toList(); 147 }).toList();
147 148
148 js.Statement mainAst = fragmentEmitter.emitMainFragment(program); 149 js.Statement mainAst = fragmentEmitter.emitMainFragment(program);
149 150
150 js.TokenCounter counter = new js.TokenCounter(); 151 js.TokenCounter counter = new js.TokenCounter();
(...skipping 20 matching lines...) Expand all
171 return totalSize; 172 return totalSize;
172 } 173 }
173 174
174 String buildGeneratedBy(compiler) { 175 String buildGeneratedBy(compiler) {
175 var suffix = ''; 176 var suffix = '';
176 if (compiler.hasBuildId) suffix = ' version: ${compiler.buildId}'; 177 if (compiler.hasBuildId) suffix = ' version: ${compiler.buildId}';
177 return '// Generated by dart2js (fast startup), ' 178 return '// Generated by dart2js (fast startup), '
178 'the Dart to JavaScript compiler$suffix.\n'; 179 'the Dart to JavaScript compiler$suffix.\n';
179 } 180 }
180 } 181 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/js_emitter/lazy_emitter/model_emitter.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698