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

Side by Side Diff: pkg/compiler/lib/src/js_emitter/full_emitter/emitter.dart

Issue 1617083002: Base JavaScript code position computation on JavaScript tracer. (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Updated cf. comments. Created 4 years, 11 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
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, 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.full_emitter; 5 library dart2js.js_emitter.full_emitter;
6 6
7 import 'dart:convert'; 7 import 'dart:convert';
8 import 'dart:collection' show HashMap; 8 import 'dart:collection' show HashMap;
9 9
10 import 'package:js_runtime/shared/embedded_names.dart' as embeddedNames; 10 import 'package:js_runtime/shared/embedded_names.dart' as embeddedNames;
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 GetterName, 67 GetterName,
68 JavaScriptBackend, 68 JavaScriptBackend,
69 JavaScriptConstantCompiler, 69 JavaScriptConstantCompiler,
70 Namer, 70 Namer,
71 RuntimeTypes, 71 RuntimeTypes,
72 SetterName, 72 SetterName,
73 Substitution, 73 Substitution,
74 TypeCheck, 74 TypeCheck,
75 TypeChecks, 75 TypeChecks,
76 TypeVariableHandler; 76 TypeVariableHandler;
77 import '../../js/js_debug.dart';
77 import '../../universe/call_structure.dart' show 78 import '../../universe/call_structure.dart' show
78 CallStructure; 79 CallStructure;
79 import '../../universe/selector.dart' show 80 import '../../universe/selector.dart' show
80 Selector; 81 Selector;
81 import '../../util/characters.dart' show 82 import '../../util/characters.dart' show
82 $$, 83 $$,
83 $A, 84 $A,
84 $HASH, 85 $HASH,
85 $PERIOD, 86 $PERIOD,
86 $Z, 87 $Z,
(...skipping 1515 matching lines...) Expand 10 before | Expand all | Expand 10 after
1602 lineColumnCollector = new LineColumnCollector(); 1603 lineColumnCollector = new LineColumnCollector();
1603 codeOutputListeners = <CodeOutputListener>[lineColumnCollector]; 1604 codeOutputListeners = <CodeOutputListener>[lineColumnCollector];
1604 } 1605 }
1605 1606
1606 CodeOutput mainOutput = 1607 CodeOutput mainOutput =
1607 new StreamCodeOutput(compiler.outputProvider('', 'js'), 1608 new StreamCodeOutput(compiler.outputProvider('', 'js'),
1608 codeOutputListeners); 1609 codeOutputListeners);
1609 outputBuffers[mainOutputUnit] = mainOutput; 1610 outputBuffers[mainOutputUnit] = mainOutput;
1610 1611
1611 1612
1612 mainOutput.addBuffer(jsAst.prettyPrint(program, 1613 mainOutput.addBuffer(jsAst.createCodeBuffer(
1613 compiler, 1614 program, compiler, monitor: compiler.dumpInfoTask));
1614 monitor: compiler.dumpInfoTask));
1615 1615
1616 if (compiler.deferredMapUri != null) { 1616 if (compiler.deferredMapUri != null) {
1617 outputDeferredMap(); 1617 outputDeferredMap();
1618 } 1618 }
1619 1619
1620 if (generateSourceMap) { 1620 if (generateSourceMap) {
1621 mainOutput.add( 1621 mainOutput.add(
1622 generateSourceMapTag(compiler.sourceMapUri, compiler.outputUri)); 1622 generateSourceMapTag(compiler.sourceMapUri, compiler.outputUri));
1623 } 1623 }
1624 1624
(...skipping 423 matching lines...) Expand 10 before | Expand all | Expand 10 after
2048 } 2048 }
2049 2049
2050 String partPrefix = 2050 String partPrefix =
2051 backend.deferredPartFileName(outputUnit.name, addExtension: false); 2051 backend.deferredPartFileName(outputUnit.name, addExtension: false);
2052 CodeOutput output = new StreamCodeOutput( 2052 CodeOutput output = new StreamCodeOutput(
2053 compiler.outputProvider(partPrefix, 'part.js'), 2053 compiler.outputProvider(partPrefix, 'part.js'),
2054 outputListeners); 2054 outputListeners);
2055 2055
2056 outputBuffers[outputUnit] = output; 2056 outputBuffers[outputUnit] = output;
2057 2057
2058 output.addBuffer(jsAst.prettyPrint(outputAsts[outputUnit], 2058 output.addBuffer(jsAst.createCodeBuffer(
2059 compiler, 2059 outputAsts[outputUnit], compiler, monitor: compiler.dumpInfoTask));
2060 monitor: compiler.dumpInfoTask));
2061 2060
2062 // Make a unique hash of the code (before the sourcemaps are added) 2061 // Make a unique hash of the code (before the sourcemaps are added)
2063 // This will be used to retrieve the initializing function from the global 2062 // This will be used to retrieve the initializing function from the global
2064 // variable. 2063 // variable.
2065 String hash = hasher.getHash(); 2064 String hash = hasher.getHash();
2066 2065
2067 output.add('$N${deferredInitializers}["$hash"]$_=$_' 2066 output.add('$N${deferredInitializers}["$hash"]$_=$_'
2068 '${deferredInitializers}.current$N'); 2067 '${deferredInitializers}.current$N');
2069 2068
2070 if (generateSourceMap) { 2069 if (generateSourceMap) {
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
2143 for (Element element in compiler.enqueuer.codegen.newlyEnqueuedElements) { 2142 for (Element element in compiler.enqueuer.codegen.newlyEnqueuedElements) {
2144 if (element.isInstanceMember) { 2143 if (element.isInstanceMember) {
2145 cachedClassBuilders.remove(element.enclosingClass); 2144 cachedClassBuilders.remove(element.enclosingClass);
2146 2145
2147 nativeEmitter.cachedBuilders.remove(element.enclosingClass); 2146 nativeEmitter.cachedBuilders.remove(element.enclosingClass);
2148 2147
2149 } 2148 }
2150 } 2149 }
2151 } 2150 }
2152 } 2151 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/js_backend/namer_names.dart ('k') | pkg/compiler/lib/src/js_emitter/lazy_emitter/model_emitter.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698