| Index: pkg/compiler/lib/src/js_backend/backend.dart
|
| diff --git a/pkg/compiler/lib/src/js_backend/backend.dart b/pkg/compiler/lib/src/js_backend/backend.dart
|
| index 531cba0cf0401d4903c94982823a02132021f492..f90b9ce88926a1282bd2fd93ba0296424c4b1718 100644
|
| --- a/pkg/compiler/lib/src/js_backend/backend.dart
|
| +++ b/pkg/compiler/lib/src/js_backend/backend.dart
|
| @@ -10,7 +10,7 @@ import 'package:js_runtime/shared/embedded_names.dart' as embeddedNames;
|
|
|
| import '../common.dart';
|
| import '../common/backend_api.dart'
|
| - show BackendClasses, ForeignResolver, NativeRegistry;
|
| + show BackendClasses, ForeignResolver, NativeRegistry, ImpactTransformer;
|
| import '../common/codegen.dart' show CodegenImpact, CodegenWorkItem;
|
| import '../common/names.dart' show Uris;
|
| import '../common/resolution.dart'
|
| @@ -31,7 +31,6 @@ import '../enqueue.dart'
|
| show
|
| DirectEnqueuerStrategy,
|
| Enqueuer,
|
| - EnqueuerListener,
|
| EnqueueTask,
|
| ResolutionEnqueuer,
|
| ResolutionWorkItemBuilder,
|
| @@ -422,7 +421,9 @@ class JavaScriptBackend {
|
| final JavaScriptConstantTask constantCompilerTask;
|
|
|
| /// Backend transformation methods for the world impacts.
|
| - JavaScriptImpactTransformer impactTransformer;
|
| + ImpactTransformer impactTransformer;
|
| +
|
| + CodegenImpactTransformer _codegenImpactTransformer;
|
|
|
| PatchResolverTask patchResolverTask;
|
|
|
| @@ -546,7 +547,18 @@ class JavaScriptBackend {
|
|
|
| noSuchMethodRegistry = new NoSuchMethodRegistry(this);
|
| kernelTask = new KernelTask(compiler);
|
| - impactTransformer = new JavaScriptImpactTransformer(this);
|
| + impactTransformer = new JavaScriptImpactTransformer(
|
| + compiler.options,
|
| + compiler.resolution,
|
| + compiler.elementEnvironment,
|
| + commonElements,
|
| + impacts,
|
| + nativeClassData,
|
| + nativeResolutionEnqueuer,
|
| + backendUsageBuilder,
|
| + mirrorsData,
|
| + customElementsResolutionAnalysis,
|
| + rtiNeedBuilder);
|
| patchResolverTask = new PatchResolverTask(compiler);
|
| functionCompiler =
|
| new SsaFunctionCompiler(this, sourceInformationStrategy, useKernel);
|
| @@ -1015,7 +1027,7 @@ class JavaScriptBackend {
|
| // variables. For instance variables, we may need to generate
|
| // the checked setter.
|
| if (Elements.isStaticOrTopLevel(element)) {
|
| - return impactTransformer
|
| + return _codegenImpactTransformer
|
| .transformCodegenImpact(work.registry.worldImpact);
|
| }
|
| } else {
|
| @@ -1043,8 +1055,8 @@ class JavaScriptBackend {
|
| sourceInformationStrategy.buildSourceMappedMarker());
|
| }
|
| generatedCode[element] = function;
|
| - WorldImpact worldImpact =
|
| - impactTransformer.transformCodegenImpact(work.registry.worldImpact);
|
| + WorldImpact worldImpact = _codegenImpactTransformer
|
| + .transformCodegenImpact(work.registry.worldImpact);
|
| compiler.dumpInfoTask.registerImpact(element, worldImpact);
|
| return worldImpact;
|
| }
|
| @@ -1236,10 +1248,24 @@ class JavaScriptBackend {
|
| _closedWorld = closedWorld;
|
| _namer = determineNamer(closedWorld, codegenWorldBuilder);
|
| tracer = new Tracer(closedWorld, namer, compiler);
|
| - emitter.createEmitter(_namer, closedWorld);
|
| + emitter.createEmitter(namer, closedWorld);
|
| _rtiEncoder =
|
| - _namer.rtiEncoder = new _RuntimeTypesEncoder(_namer, emitter, helpers);
|
| -
|
| + _namer.rtiEncoder = new _RuntimeTypesEncoder(namer, emitter, helpers);
|
| + _codegenImpactTransformer = new CodegenImpactTransformer(
|
| + this,
|
| + compiler.options,
|
| + compiler.elementEnvironment,
|
| + helpers,
|
| + impacts,
|
| + checkedModeHelpers,
|
| + nativeData,
|
| + rtiNeed,
|
| + nativeCodegenEnqueuer,
|
| + namer,
|
| + mirrorsData,
|
| + oneShotInterceptorData,
|
| + lookupMapAnalysis,
|
| + customElementsCodegenAnalysis);
|
| lookupMapAnalysis.onCodegenStart(lookupMapLibraryAccess);
|
| return const WorldImpact();
|
| }
|
|
|