| Index: pkg/compiler/lib/src/js_emitter/full_emitter/container_builder.dart
|
| diff --git a/pkg/compiler/lib/src/js_emitter/full_emitter/container_builder.dart b/pkg/compiler/lib/src/js_emitter/full_emitter/container_builder.dart
|
| index ebd7d1a1d2ad9df200e6962dcb69a28746240474..ac95afc4e8600624d07c58cf575fde30bd03698b 100644
|
| --- a/pkg/compiler/lib/src/js_emitter/full_emitter/container_builder.dart
|
| +++ b/pkg/compiler/lib/src/js_emitter/full_emitter/container_builder.dart
|
| @@ -67,8 +67,11 @@ class ContainerBuilder extends CodeEmitterHelper {
|
| // ...
|
| // O. First parameter name (if needed for reflection or Function.apply).
|
| // ...
|
| - // P. Unmangled name (if reflectable).
|
| - // P+1. First metadata (if reflectable).
|
| + // P. Whether the first argument is field initialization parameter
|
| + // (if reflectable and a constructor)
|
| + // ...
|
| + // Q. Unmangled name (if reflectable).
|
| + // Q+1. First metadata (if reflectable).
|
| // ...
|
| // TODO(ahe): Consider one of the parameter counts can be replaced by the
|
| // length property of the JavaScript function object.
|
| @@ -151,7 +154,10 @@ class ContainerBuilder extends CodeEmitterHelper {
|
| }
|
| if (canBeReflected) {
|
| jsAst.LiteralString reflectionName;
|
| + List<jsAst.LiteralBool> argumentsInstantiatingFields = new List();
|
| if (member.isConstructor) {
|
| + member.functionSignature.forEachParameter((element) =>
|
| + argumentsInstantiatingFields.add(js.boolean(element is InitializingFormalElement)));
|
| // TODO(herhut): This registers name as a mangled name. Do we need this
|
| // given that we use a different name below?
|
| emitter.getReflectionName(member, name);
|
| @@ -161,8 +167,11 @@ class ContainerBuilder extends CodeEmitterHelper {
|
| } else {
|
| reflectionName =
|
| js.string(namer.privateName(member.memberName));
|
| + member.functionSignature.forEachParameter((element) =>
|
| + argumentsInstantiatingFields.add(js.boolean(false)));
|
| }
|
| expressions
|
| + ..addAll(argumentsInstantiatingFields)
|
| ..add(reflectionName)
|
| ..addAll(task.metadataCollector.computeMetadata(member));
|
| } else if (isClosure && canBeApplied) {
|
|
|