OLD | NEW |
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 'dart:convert' show JsonEncoder; | 7 import 'dart:convert' show JsonEncoder; |
8 | 8 |
9 import '../../common.dart'; | 9 import '../../common.dart'; |
10 | 10 |
(...skipping 13 matching lines...) Expand all Loading... |
24 | 24 |
25 import '../../io/source_map_builder.dart' show | 25 import '../../io/source_map_builder.dart' show |
26 SourceMapBuilder; | 26 SourceMapBuilder; |
27 | 27 |
28 import '../../js/js.dart' as js; | 28 import '../../js/js.dart' as js; |
29 import '../../js_backend/js_backend.dart' show | 29 import '../../js_backend/js_backend.dart' show |
30 JavaScriptBackend, | 30 JavaScriptBackend, |
31 Namer, | 31 Namer, |
32 ConstantEmitter; | 32 ConstantEmitter; |
33 | 33 |
| 34 import '../../diagnostics/diagnostic_listener.dart' show |
| 35 DiagnosticReporter; |
| 36 |
34 import '../../diagnostics/spannable.dart' show | 37 import '../../diagnostics/spannable.dart' show |
35 NO_LOCATION_SPANNABLE; | 38 NO_LOCATION_SPANNABLE; |
36 | 39 |
37 import '../../util/uri_extras.dart' show | 40 import '../../util/uri_extras.dart' show |
38 relativize; | 41 relativize; |
39 | 42 |
40 import '../headers.dart'; | 43 import '../headers.dart'; |
41 import '../js_emitter.dart' show NativeEmitter; | 44 import '../js_emitter.dart' show NativeEmitter; |
42 | 45 |
43 import 'package:js_runtime/shared/embedded_names.dart' show | 46 import 'package:js_runtime/shared/embedded_names.dart' show |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
93 | 96 |
94 ModelEmitter(Compiler compiler, Namer namer, this.nativeEmitter, | 97 ModelEmitter(Compiler compiler, Namer namer, this.nativeEmitter, |
95 this.shouldGenerateSourceMap) | 98 this.shouldGenerateSourceMap) |
96 : this.compiler = compiler, | 99 : this.compiler = compiler, |
97 this.namer = namer { | 100 this.namer = namer { |
98 this.constantEmitter = new ConstantEmitter( | 101 this.constantEmitter = new ConstantEmitter( |
99 compiler, namer, this.generateConstantReference, | 102 compiler, namer, this.generateConstantReference, |
100 constantListGenerator); | 103 constantListGenerator); |
101 } | 104 } |
102 | 105 |
| 106 DiagnosticReporter get reporter => compiler.reporter; |
| 107 |
103 js.Expression constantListGenerator(js.Expression array) { | 108 js.Expression constantListGenerator(js.Expression array) { |
104 // TODO(floitsch): remove hard-coded name. | 109 // TODO(floitsch): remove hard-coded name. |
105 return js.js('makeConstList(#)', [array]); | 110 return js.js('makeConstList(#)', [array]); |
106 } | 111 } |
107 | 112 |
108 js.Expression generateEmbeddedGlobalAccess(String global) { | 113 js.Expression generateEmbeddedGlobalAccess(String global) { |
109 return js.js(generateEmbeddedGlobalAccessString(global)); | 114 return js.js(generateEmbeddedGlobalAccessString(global)); |
110 } | 115 } |
111 | 116 |
112 String generateEmbeddedGlobalAccessString(String global) { | 117 String generateEmbeddedGlobalAccessString(String global) { |
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
204 // tokens in the main-fragment. | 209 // tokens in the main-fragment. |
205 deferredHashTokens.forEach((DeferredFragment key, | 210 deferredHashTokens.forEach((DeferredFragment key, |
206 _DeferredFragmentHash token) { | 211 _DeferredFragmentHash token) { |
207 token.setHash(hunkHashes[key]); | 212 token.setHash(hunkHashes[key]); |
208 }); | 213 }); |
209 | 214 |
210 writeMainFragment(mainFragment, mainCode); | 215 writeMainFragment(mainFragment, mainCode); |
211 | 216 |
212 if (backend.requiresPreamble && | 217 if (backend.requiresPreamble && |
213 !backend.htmlLibraryIsLoaded) { | 218 !backend.htmlLibraryIsLoaded) { |
214 compiler.reportHintMessage( | 219 reporter.reportHintMessage( |
215 NO_LOCATION_SPANNABLE, MessageKind.PREAMBLE); | 220 NO_LOCATION_SPANNABLE, MessageKind.PREAMBLE); |
216 } | 221 } |
217 | 222 |
218 if (compiler.deferredMapUri != null) { | 223 if (compiler.deferredMapUri != null) { |
219 writeDeferredMap(); | 224 writeDeferredMap(); |
220 } | 225 } |
221 | 226 |
222 // Return the total program size. | 227 // Return the total program size. |
223 return outputBuffers.values.fold(0, (a, b) => a + b.length); | 228 return outputBuffers.values.fold(0, (a, b) => a + b.length); |
224 } | 229 } |
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
402 // Json does not support comments, so we embed the explanation in the | 407 // Json does not support comments, so we embed the explanation in the |
403 // data. | 408 // data. |
404 mapping["_comment"] = "This mapping shows which compiled `.js` files are " | 409 mapping["_comment"] = "This mapping shows which compiled `.js` files are " |
405 "needed for a given deferred library import."; | 410 "needed for a given deferred library import."; |
406 mapping.addAll(compiler.deferredLoadTask.computeDeferredMap()); | 411 mapping.addAll(compiler.deferredLoadTask.computeDeferredMap()); |
407 compiler.outputProvider(compiler.deferredMapUri.path, 'deferred_map') | 412 compiler.outputProvider(compiler.deferredMapUri.path, 'deferred_map') |
408 ..add(const JsonEncoder.withIndent(" ").convert(mapping)) | 413 ..add(const JsonEncoder.withIndent(" ").convert(mapping)) |
409 ..close(); | 414 ..close(); |
410 } | 415 } |
411 } | 416 } |
OLD | NEW |