| Index: pkg/compiler/lib/src/kernel/element_map_impl.dart
|
| diff --git a/pkg/compiler/lib/src/kernel/element_map_impl.dart b/pkg/compiler/lib/src/kernel/element_map_impl.dart
|
| index cd79f0ee020facdc6aea9e6d5fa3058adc1cb75c..6370945f177c2b139c0b455e5afc69a9d5e2d249 100644
|
| --- a/pkg/compiler/lib/src/kernel/element_map_impl.dart
|
| +++ b/pkg/compiler/lib/src/kernel/element_map_impl.dart
|
| @@ -118,6 +118,9 @@ abstract class KernelToElementMapBase extends KernelToElementMapBaseMixin {
|
| @override
|
| CommonElements get commonElements => _commonElements;
|
|
|
| + /// NativeBasicData is need for computation of the default super class.
|
| + NativeBasicData get nativeBasicData;
|
| +
|
| FunctionEntity get _mainFunction {
|
| return _env.mainMethod != null ? _getMethod(_env.mainMethod) : null;
|
| }
|
| @@ -307,7 +310,14 @@ abstract class KernelToElementMapBase extends KernelToElementMapBaseMixin {
|
| return supertype;
|
| }
|
|
|
| - data.supertype = processSupertype(node.supertype);
|
| + InterfaceType supertype = processSupertype(node.supertype);
|
| + if (supertype == _commonElements.objectType) {
|
| + ClassEntity defaultSuperclass =
|
| + _commonElements.getDefaultSuperclass(cls, nativeBasicData);
|
| + data.supertype = _elementEnvironment.getRawType(defaultSuperclass);
|
| + } else {
|
| + data.supertype = supertype;
|
| + }
|
| LinkBuilder<InterfaceType> linkBuilder =
|
| new LinkBuilder<InterfaceType>();
|
| if (node.mixedInType != null) {
|
| @@ -1028,9 +1038,10 @@ class KernelToElementMapForImpactImpl extends KernelToElementMapBase
|
| ElementCreatorMixin,
|
| KElementCreatorMixin {
|
| native.BehaviorBuilder _nativeBehaviorBuilder;
|
| + FrontendStrategy _frontendStrategy;
|
|
|
| - KernelToElementMapForImpactImpl(
|
| - DiagnosticReporter reporter, Environment environment)
|
| + KernelToElementMapForImpactImpl(DiagnosticReporter reporter,
|
| + Environment environment, this._frontendStrategy)
|
| : super(reporter, environment);
|
|
|
| @override
|
| @@ -1042,6 +1053,9 @@ class KernelToElementMapForImpactImpl extends KernelToElementMapBase
|
| return true;
|
| }
|
|
|
| + @override
|
| + NativeBasicData get nativeBasicData => _frontendStrategy.nativeBasicData;
|
| +
|
| /// Adds libraries in [program] to the set of libraries.
|
| ///
|
| /// The main method of the first program is used as the main method for the
|
| @@ -1796,6 +1810,8 @@ class JsKernelToElementMap extends KernelToElementMapBase
|
| ElementCreatorMixin
|
| implements
|
| KernelToWorldBuilder {
|
| + NativeBasicData nativeBasicData;
|
| +
|
| JsKernelToElementMap(DiagnosticReporter reporter, Environment environment,
|
| KernelToElementMapForImpactImpl _elementMap)
|
| : super(reporter, environment) {
|
|
|