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

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

Issue 1295873002: Fix names of map files in the startup emitter. (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 | « no previous file | 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 'dart:convert' show JsonEncoder; 7 import 'dart:convert' show JsonEncoder;
8 8
9 import '../../common.dart'; 9 import '../../common.dart';
10 10
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 // The full code that is written to each hunk part-file. 79 // The full code that is written to each hunk part-file.
80 final Map<Fragment, CodeOutput> outputBuffers = <Fragment, CodeOutput>{}; 80 final Map<Fragment, CodeOutput> outputBuffers = <Fragment, CodeOutput>{};
81 81
82 82
83 JavaScriptBackend get backend => compiler.backend; 83 JavaScriptBackend get backend => compiler.backend;
84 84
85 /// For deferred loading we communicate the initializers via this global var. 85 /// For deferred loading we communicate the initializers via this global var.
86 static const String deferredInitializersGlobal = 86 static const String deferredInitializersGlobal =
87 r"$__dart_deferred_initializers__"; 87 r"$__dart_deferred_initializers__";
88 88
89 static const String partExtension = "part";
89 static const String deferredExtension = "part.js"; 90 static const String deferredExtension = "part.js";
90 91
91 static const String typeNameProperty = r"builtin$cls"; 92 static const String typeNameProperty = r"builtin$cls";
92 93
93 ModelEmitter(Compiler compiler, Namer namer, this.nativeEmitter, 94 ModelEmitter(Compiler compiler, Namer namer, this.nativeEmitter,
94 this.shouldGenerateSourceMap) 95 this.shouldGenerateSourceMap)
95 : this.compiler = compiler, 96 : this.compiler = compiler,
96 this.namer = namer { 97 this.namer = namer {
97 this.constantEmitter = new ConstantEmitter( 98 this.constantEmitter = new ConstantEmitter(
98 compiler, namer, this.generateConstantReference, 99 compiler, namer, this.generateConstantReference,
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
272 273
273 if (shouldGenerateSourceMap) { 274 if (shouldGenerateSourceMap) {
274 mainOutput.add( 275 mainOutput.add(
275 generateSourceMapTag(compiler.sourceMapUri, compiler.outputUri)); 276 generateSourceMapTag(compiler.sourceMapUri, compiler.outputUri));
276 } 277 }
277 278
278 mainOutput.close(); 279 mainOutput.close();
279 280
280 if (shouldGenerateSourceMap) { 281 if (shouldGenerateSourceMap) {
281 outputSourceMap(mainOutput, lineColumnCollector, '', 282 outputSourceMap(mainOutput, lineColumnCollector, '',
282 compiler.sourceMapUri, compiler.outputUri); 283 compiler.sourceMapUri, compiler.outputUri);
283 } 284 }
284 } 285 }
285 286
286 // Writes the given [fragment]'s [code] into a file. 287 // Writes the given [fragment]'s [code] into a file.
287 // 288 //
288 // Returns the deferred fragment's hash. 289 // Returns the deferred fragment's hash.
289 // 290 //
290 // Updates the shared [outputBuffers] field with the output. 291 // Updates the shared [outputBuffers] field with the output.
291 String writeDeferredFragment(DeferredFragment fragment, js.Expression code) { 292 String writeDeferredFragment(DeferredFragment fragment, js.Expression code) {
292 List<CodeOutputListener> outputListeners = <CodeOutputListener>[]; 293 List<CodeOutputListener> outputListeners = <CodeOutputListener>[];
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
329 String hash = hasher.getHash(); 330 String hash = hasher.getHash();
330 331
331 // Now we copy the deferredInitializer.current into its correct hash. 332 // Now we copy the deferredInitializer.current into its correct hash.
332 output.add('\n${deferredInitializersGlobal}["$hash"] = ' 333 output.add('\n${deferredInitializersGlobal}["$hash"] = '
333 '${deferredInitializersGlobal}.current'); 334 '${deferredInitializersGlobal}.current');
334 335
335 if (shouldGenerateSourceMap) { 336 if (shouldGenerateSourceMap) {
336 Uri mapUri, partUri; 337 Uri mapUri, partUri;
337 Uri sourceMapUri = compiler.sourceMapUri; 338 Uri sourceMapUri = compiler.sourceMapUri;
338 Uri outputUri = compiler.outputUri; 339 Uri outputUri = compiler.outputUri;
340 String partName = "$hunkPrefix.$partExtension";
341 String hunkFileName = "$hunkPrefix.$deferredExtension";
339 342
340 if (sourceMapUri != null) { 343 if (sourceMapUri != null) {
341 String mapFileName = 344 String mapFileName = hunkFileName + ".map";
342 hunkPrefix + deferredExtension + ".map";
343 List<String> mapSegments = sourceMapUri.pathSegments.toList(); 345 List<String> mapSegments = sourceMapUri.pathSegments.toList();
344 mapSegments[mapSegments.length - 1] = mapFileName; 346 mapSegments[mapSegments.length - 1] = mapFileName;
345 mapUri = compiler.sourceMapUri.replace(pathSegments: mapSegments); 347 mapUri = compiler.sourceMapUri.replace(pathSegments: mapSegments);
346 } 348 }
347 349
348 if (outputUri != null) { 350 if (outputUri != null) {
349 String hunkFileName = hunkPrefix + deferredExtension;
350 List<String> partSegments = outputUri.pathSegments.toList(); 351 List<String> partSegments = outputUri.pathSegments.toList();
351 partSegments[partSegments.length - 1] = hunkFileName; 352 partSegments[partSegments.length - 1] = hunkFileName;
352 partUri = compiler.outputUri.replace(pathSegments: partSegments); 353 partUri = compiler.outputUri.replace(pathSegments: partSegments);
353 } 354 }
354 355
355 output.add(generateSourceMapTag(mapUri, partUri)); 356 output.add(generateSourceMapTag(mapUri, partUri));
356 output.close(); 357 output.close();
357 outputSourceMap(output, lineColumnCollector, hunkPrefix, mapUri, partUri); 358 outputSourceMap(output, lineColumnCollector, partName, mapUri, partUri);
358 } else { 359 } else {
359 output.close(); 360 output.close();
360 } 361 }
361 362
362 return hash; 363 return hash;
363 } 364 }
364 365
365 String generateSourceMapTag(Uri sourceMapUri, Uri fileUri) { 366 String generateSourceMapTag(Uri sourceMapUri, Uri fileUri) {
366 if (sourceMapUri != null && fileUri != null) { 367 if (sourceMapUri != null && fileUri != null) {
367 String sourceMapFileName = relativize(fileUri, sourceMapUri, false); 368 String sourceMapFileName = relativize(fileUri, sourceMapUri, false);
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
400 // Json does not support comments, so we embed the explanation in the 401 // Json does not support comments, so we embed the explanation in the
401 // data. 402 // data.
402 mapping["_comment"] = "This mapping shows which compiled `.js` files are " 403 mapping["_comment"] = "This mapping shows which compiled `.js` files are "
403 "needed for a given deferred library import."; 404 "needed for a given deferred library import.";
404 mapping.addAll(compiler.deferredLoadTask.computeDeferredMap()); 405 mapping.addAll(compiler.deferredLoadTask.computeDeferredMap());
405 compiler.outputProvider(compiler.deferredMapUri.path, 'deferred_map') 406 compiler.outputProvider(compiler.deferredMapUri.path, 'deferred_map')
406 ..add(const JsonEncoder.withIndent(" ").convert(mapping)) 407 ..add(const JsonEncoder.withIndent(" ").convert(mapping))
407 ..close(); 408 ..close();
408 } 409 }
409 } 410 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698