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

Unified Diff: pkg/compiler/lib/src/js_backend/resolution_listener.dart

Issue 2814453005: Merge CommonElements and BackendHelpers! (Closed)
Patch Set: comments and re-merge, take two Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: pkg/compiler/lib/src/js_backend/resolution_listener.dart
diff --git a/pkg/compiler/lib/src/js_backend/resolution_listener.dart b/pkg/compiler/lib/src/js_backend/resolution_listener.dart
index b4ebec5c0e35e8283704298e7ccc5805618e0680..62708445bec35ab5822d14f99cbdf8dcb34e85a4 100644
--- a/pkg/compiler/lib/src/js_backend/resolution_listener.dart
+++ b/pkg/compiler/lib/src/js_backend/resolution_listener.dart
@@ -20,7 +20,6 @@ import '../universe/use.dart' show StaticUse, TypeUse;
import '../universe/world_impact.dart'
show WorldImpact, WorldImpactBuilder, WorldImpactBuilderImpl;
import 'backend.dart';
-import 'backend_helpers.dart';
import 'backend_impact.dart';
import 'backend_usage.dart';
import 'checked_mode_helpers.dart';
@@ -41,7 +40,6 @@ class ResolutionEnqueuerListener extends EnqueuerListener {
final CompilerOptions _options;
final ElementEnvironment _elementEnvironment;
final CommonElements _commonElements;
- final BackendHelpers _helpers;
final BackendImpacts _impacts;
final BackendClasses _backendClasses;
@@ -66,7 +64,6 @@ class ResolutionEnqueuerListener extends EnqueuerListener {
this._options,
this._elementEnvironment,
this._commonElements,
- this._helpers,
this._impacts,
this._backendClasses,
this._nativeData,
@@ -264,7 +261,7 @@ class ResolutionEnqueuerListener extends EnqueuerListener {
InterfaceType type = _elementEnvironment.getThisType(interceptor.cls);
_computeImpactForInstantiatedConstantType(type, impactBuilder);
} else if (constant.isType) {
- FunctionEntity helper = _helpers.createRuntimeType;
+ FunctionEntity helper = _commonElements.createRuntimeType;
impactBuilder.registerStaticUse(new StaticUse.staticInvoke(
// TODO(johnniwinther): Find the right [CallStructure].
helper,
@@ -285,7 +282,7 @@ class ResolutionEnqueuerListener extends EnqueuerListener {
// helper so we register a use of that.
impactBuilder.registerStaticUse(new StaticUse.staticInvoke(
// TODO(johnniwinther): Find the right [CallStructure].
- _helpers.createRuntimeType,
+ _commonElements.createRuntimeType,
null));
}
}
@@ -372,7 +369,7 @@ class ResolutionEnqueuerListener extends EnqueuerListener {
_typeVariableResolutionAnalysis.registerClassWithTypeVariables(cls);
}
// TODO(johnniwinther): Extract an `implementationClassesOf(...)` function
- // for these into [BackendHelpers] or [BackendImpacts].
+ // for these into [CommonElements] or [BackendImpacts].
// Register any helper that will be needed by the backend.
if (cls == _commonElements.intClass ||
cls == _commonElements.doubleClass ||
@@ -387,65 +384,71 @@ class ResolutionEnqueuerListener extends EnqueuerListener {
_registerBackendImpact(impactBuilder, _impacts.mapClass);
// For map literals, the dependency between the implementation class
// and [Map] is not visible, so we have to add it manually.
- _rtiNeedBuilder.registerRtiDependency(_helpers.mapLiteralClass, cls);
- } else if (cls == _helpers.boundClosureClass) {
+ _rtiNeedBuilder.registerRtiDependency(
+ _commonElements.mapLiteralClass, cls);
+ } else if (cls == _commonElements.boundClosureClass) {
_registerBackendImpact(impactBuilder, _impacts.boundClosureClass);
} else if (_nativeData.isNativeOrExtendsNative(cls)) {
_registerBackendImpact(impactBuilder, _impacts.nativeOrExtendsClass);
- } else if (cls == _helpers.mapLiteralClass) {
+ } else if (cls == _commonElements.mapLiteralClass) {
_registerBackendImpact(impactBuilder, _impacts.mapLiteralClass);
}
- if (cls == _helpers.closureClass) {
+ if (cls == _commonElements.closureClass) {
_registerBackendImpact(impactBuilder, _impacts.closureClass);
}
- if (cls == _commonElements.stringClass || cls == _helpers.jsStringClass) {
- _addInterceptors(_helpers.jsStringClass, impactBuilder);
+ if (cls == _commonElements.stringClass ||
+ cls == _commonElements.jsStringClass) {
+ _addInterceptors(_commonElements.jsStringClass, impactBuilder);
} else if (cls == _commonElements.listClass ||
- cls == _helpers.jsArrayClass ||
- cls == _helpers.jsFixedArrayClass ||
- cls == _helpers.jsExtendableArrayClass ||
- cls == _helpers.jsUnmodifiableArrayClass) {
- _addInterceptors(_helpers.jsArrayClass, impactBuilder);
- _addInterceptors(_helpers.jsMutableArrayClass, impactBuilder);
- _addInterceptors(_helpers.jsFixedArrayClass, impactBuilder);
- _addInterceptors(_helpers.jsExtendableArrayClass, impactBuilder);
- _addInterceptors(_helpers.jsUnmodifiableArrayClass, impactBuilder);
+ cls == _commonElements.jsArrayClass ||
+ cls == _commonElements.jsFixedArrayClass ||
+ cls == _commonElements.jsExtendableArrayClass ||
+ cls == _commonElements.jsUnmodifiableArrayClass) {
+ _addInterceptors(_commonElements.jsArrayClass, impactBuilder);
+ _addInterceptors(_commonElements.jsMutableArrayClass, impactBuilder);
+ _addInterceptors(_commonElements.jsFixedArrayClass, impactBuilder);
+ _addInterceptors(_commonElements.jsExtendableArrayClass, impactBuilder);
+ _addInterceptors(_commonElements.jsUnmodifiableArrayClass, impactBuilder);
_registerBackendImpact(impactBuilder, _impacts.listClasses);
- } else if (cls == _commonElements.intClass || cls == _helpers.jsIntClass) {
- _addInterceptors(_helpers.jsIntClass, impactBuilder);
- _addInterceptors(_helpers.jsPositiveIntClass, impactBuilder);
- _addInterceptors(_helpers.jsUInt32Class, impactBuilder);
- _addInterceptors(_helpers.jsUInt31Class, impactBuilder);
- _addInterceptors(_helpers.jsNumberClass, impactBuilder);
+ } else if (cls == _commonElements.intClass ||
+ cls == _commonElements.jsIntClass) {
+ _addInterceptors(_commonElements.jsIntClass, impactBuilder);
+ _addInterceptors(_commonElements.jsPositiveIntClass, impactBuilder);
+ _addInterceptors(_commonElements.jsUInt32Class, impactBuilder);
+ _addInterceptors(_commonElements.jsUInt31Class, impactBuilder);
+ _addInterceptors(_commonElements.jsNumberClass, impactBuilder);
} else if (cls == _commonElements.doubleClass ||
- cls == _helpers.jsDoubleClass) {
- _addInterceptors(_helpers.jsDoubleClass, impactBuilder);
- _addInterceptors(_helpers.jsNumberClass, impactBuilder);
+ cls == _commonElements.jsDoubleClass) {
+ _addInterceptors(_commonElements.jsDoubleClass, impactBuilder);
+ _addInterceptors(_commonElements.jsNumberClass, impactBuilder);
} else if (cls == _commonElements.boolClass ||
- cls == _helpers.jsBoolClass) {
- _addInterceptors(_helpers.jsBoolClass, impactBuilder);
+ cls == _commonElements.jsBoolClass) {
+ _addInterceptors(_commonElements.jsBoolClass, impactBuilder);
} else if (cls == _commonElements.nullClass ||
- cls == _helpers.jsNullClass) {
- _addInterceptors(_helpers.jsNullClass, impactBuilder);
+ cls == _commonElements.jsNullClass) {
+ _addInterceptors(_commonElements.jsNullClass, impactBuilder);
} else if (cls == _commonElements.numClass ||
- cls == _helpers.jsNumberClass) {
- _addInterceptors(_helpers.jsIntClass, impactBuilder);
- _addInterceptors(_helpers.jsPositiveIntClass, impactBuilder);
- _addInterceptors(_helpers.jsUInt32Class, impactBuilder);
- _addInterceptors(_helpers.jsUInt31Class, impactBuilder);
- _addInterceptors(_helpers.jsDoubleClass, impactBuilder);
- _addInterceptors(_helpers.jsNumberClass, impactBuilder);
- } else if (cls == _helpers.jsJavaScriptObjectClass) {
- _addInterceptors(_helpers.jsJavaScriptObjectClass, impactBuilder);
- } else if (cls == _helpers.jsPlainJavaScriptObjectClass) {
- _addInterceptors(_helpers.jsPlainJavaScriptObjectClass, impactBuilder);
- } else if (cls == _helpers.jsUnknownJavaScriptObjectClass) {
- _addInterceptors(_helpers.jsUnknownJavaScriptObjectClass, impactBuilder);
- } else if (cls == _helpers.jsJavaScriptFunctionClass) {
- _addInterceptors(_helpers.jsJavaScriptFunctionClass, impactBuilder);
+ cls == _commonElements.jsNumberClass) {
+ _addInterceptors(_commonElements.jsIntClass, impactBuilder);
+ _addInterceptors(_commonElements.jsPositiveIntClass, impactBuilder);
+ _addInterceptors(_commonElements.jsUInt32Class, impactBuilder);
+ _addInterceptors(_commonElements.jsUInt31Class, impactBuilder);
+ _addInterceptors(_commonElements.jsDoubleClass, impactBuilder);
+ _addInterceptors(_commonElements.jsNumberClass, impactBuilder);
+ } else if (cls == _commonElements.jsJavaScriptObjectClass) {
+ _addInterceptors(_commonElements.jsJavaScriptObjectClass, impactBuilder);
+ } else if (cls == _commonElements.jsPlainJavaScriptObjectClass) {
+ _addInterceptors(
+ _commonElements.jsPlainJavaScriptObjectClass, impactBuilder);
+ } else if (cls == _commonElements.jsUnknownJavaScriptObjectClass) {
+ _addInterceptors(
+ _commonElements.jsUnknownJavaScriptObjectClass, impactBuilder);
+ } else if (cls == _commonElements.jsJavaScriptFunctionClass) {
+ _addInterceptors(
+ _commonElements.jsJavaScriptFunctionClass, impactBuilder);
} else if (_nativeData.isNativeOrExtendsNative(cls)) {
_interceptorData.addInterceptorsForNativeClassMembers(cls);
- } else if (cls == _helpers.jsIndexingBehaviorInterface) {
+ } else if (cls == _commonElements.jsIndexingBehaviorInterface) {
_registerBackendImpact(impactBuilder, _impacts.jsIndexingBehavior);
}
@@ -465,13 +468,13 @@ class ResolutionEnqueuerListener extends EnqueuerListener {
/// Compute the [WorldImpact] for backend helper methods.
WorldImpact computeHelpersImpact() {
- assert(_helpers.interceptorsLibrary != null);
+ assert(_commonElements.interceptorsLibrary != null);
WorldImpactBuilderImpl impactBuilder = new WorldImpactBuilderImpl();
// TODO(ngeoffray): Not enqueuing those two classes currently make
// the compiler potentially crash. However, any reasonable program
// will instantiate those two classes.
- _addInterceptors(_helpers.jsBoolClass, impactBuilder);
- _addInterceptors(_helpers.jsNullClass, impactBuilder);
+ _addInterceptors(_commonElements.jsBoolClass, impactBuilder);
+ _addInterceptors(_commonElements.jsNullClass, impactBuilder);
if (_options.enableTypeAssertions) {
_registerBackendImpact(impactBuilder, _impacts.enableTypeAssertions);
}
@@ -485,11 +488,11 @@ class ResolutionEnqueuerListener extends EnqueuerListener {
}
void _registerCheckedModeHelpers(WorldImpactBuilder impactBuilder) {
- // We register all the _helpers in the resolution queue.
- // TODO(13155): Find a way to register fewer _helpers.
+ // We register all the _commonElements in the resolution queue.
+ // TODO(13155): Find a way to register fewer _commonElements.
List<FunctionEntity> staticUses = <FunctionEntity>[];
for (CheckedModeHelper helper in CheckedModeHelpers.helpers) {
- staticUses.add(helper.getStaticUse(_helpers).element);
+ staticUses.add(helper.getStaticUse(_commonElements).element);
}
_registerBackendImpact(
impactBuilder, new BackendImpact(globalUses: staticUses));
« no previous file with comments | « pkg/compiler/lib/src/js_backend/no_such_method_registry.dart ('k') | pkg/compiler/lib/src/js_backend/runtime_types.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698