| Index: pkg/compiler/lib/src/kernel/native_basic_data.dart
|
| diff --git a/pkg/compiler/lib/src/kernel/native_basic_data.dart b/pkg/compiler/lib/src/kernel/native_basic_data.dart
|
| index c8463018189df9fa5b95e24d66be6e2baf067ef3..ec07f7a6a79757de5cb44b6b06b76ff07d843d25 100644
|
| --- a/pkg/compiler/lib/src/kernel/native_basic_data.dart
|
| +++ b/pkg/compiler/lib/src/kernel/native_basic_data.dart
|
| @@ -129,18 +129,33 @@ class KernelAnnotationProcessor implements AnnotationProcessor {
|
| {'cls': cls.name, 'member': member.name});
|
| }
|
|
|
| - if (function is ConstructorEntity &&
|
| - function.isFactoryConstructor &&
|
| - isAnonymous) {
|
| - if (function.parameterStructure.requiredParameters > 0) {
|
| + checkFunctionParameters(function);
|
| + });
|
| + elementEnvironment.forEachConstructor(cls,
|
| + (ConstructorEntity constructor) {
|
| + String memberName = getJsInteropName(
|
| + library, elementEnvironment.getMemberMetadata(constructor));
|
| + if (memberName != null) {
|
| + _nativeBasicDataBuilder.markAsJsInteropMember(
|
| + constructor, memberName);
|
| + }
|
| +
|
| + if (!constructor.isExternal) {
|
| + reporter.reportErrorMessage(
|
| + constructor,
|
| + MessageKind.JS_INTEROP_CLASS_NON_EXTERNAL_MEMBER,
|
| + {'cls': cls.name, 'member': constructor.name});
|
| + }
|
| + if (constructor.isFactoryConstructor && isAnonymous) {
|
| + if (constructor.parameterStructure.requiredParameters > 0) {
|
| reporter.reportErrorMessage(
|
| - function,
|
| + constructor,
|
| MessageKind
|
| .JS_OBJECT_LITERAL_CONSTRUCTOR_WITH_POSITIONAL_ARGUMENTS,
|
| {'cls': cls.name});
|
| }
|
| } else {
|
| - checkFunctionParameters(function);
|
| + checkFunctionParameters(constructor);
|
| }
|
| });
|
| }
|
|
|