| Index: sdk/lib/_internal/compiler/implementation/js_backend/backend.dart
|
| diff --git a/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart b/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart
|
| index dfd5a92a974849f20cdaecc6a8e44d7428143636..0f01f9c86572926652e2c1bf78a4637cc4c23fd5 100644
|
| --- a/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart
|
| +++ b/sdk/lib/_internal/compiler/implementation/js_backend/backend.dart
|
| @@ -323,6 +323,12 @@ class JavaScriptBackend extends Backend {
|
| */
|
| final Set<ClassElement> specialOperatorEqClasses = new Set<ClassElement>();
|
|
|
| + /**
|
| + * A set of members that are called from subclasses via super.
|
| + */
|
| + final Set<FunctionElement> aliasedSuperMembers =
|
| + new Setlet<FunctionElement>();
|
| +
|
| List<CompilerTask> get tasks {
|
| return <CompilerTask>[builder, optimizer, generator, emitter];
|
| }
|
| @@ -528,6 +534,20 @@ class JavaScriptBackend extends Backend {
|
| return name;
|
| }
|
|
|
| + /**
|
| + * Record that [method] is called from a subclass via `super`.
|
| + */
|
| + void registerAliasedSuperMember(FunctionElement method) {
|
| + aliasedSuperMembers.add(method);
|
| + }
|
| +
|
| + /**
|
| + * Returns `true` is [member] is called from a subclass via `super`.
|
| + */
|
| + bool isAliasedSuperMember(FunctionElement member) {
|
| + return aliasedSuperMembers.contains(member);
|
| + }
|
| +
|
| bool isInterceptedMethod(Element element) {
|
| if (!element.isInstanceMember) return false;
|
| if (element.isGenerativeConstructorBody) {
|
|
|