| Index: runtime/lib/mirrors.cc
|
| diff --git a/runtime/lib/mirrors.cc b/runtime/lib/mirrors.cc
|
| index 24e6d71fffad0e43d5f0d72eb7cf1afda73262c3..05453f8b1a78ce9a7c0f7bf018944af36cc77acb 100644
|
| --- a/runtime/lib/mirrors.cc
|
| +++ b/runtime/lib/mirrors.cc
|
| @@ -1726,8 +1726,7 @@ DEFINE_NATIVE_ENTRY(ClassMirror_invokeConstructor, 5) {
|
| }
|
|
|
| const intptr_t num_explicit_args = explicit_args.Length();
|
| - const intptr_t num_implicit_args =
|
| - redirected_constructor.IsGenerativeConstructor() ? 2 : 1;
|
| + const intptr_t num_implicit_args = 1;
|
| const Array& args =
|
| Array::Handle(Array::New(num_implicit_args + num_explicit_args));
|
|
|
| @@ -1758,9 +1757,9 @@ DEFINE_NATIVE_ENTRY(ClassMirror_invokeConstructor, 5) {
|
|
|
| Instance& new_object = Instance::Handle();
|
| if (redirected_constructor.IsGenerativeConstructor()) {
|
| - // Constructors get the uninitialized object and a constructor phase. Note
|
| - // we have delayed allocation until after the function type and argument
|
| - // matching checks.
|
| + // Constructors get the uninitialized object.
|
| + // Note we have delayed allocation until after the function
|
| + // type and argument matching checks.
|
| new_object = Instance::New(redirected_klass);
|
| if (!type_arguments.IsNull()) {
|
| // The type arguments will be null if the class has no type parameters, in
|
| @@ -1769,7 +1768,6 @@ DEFINE_NATIVE_ENTRY(ClassMirror_invokeConstructor, 5) {
|
| new_object.SetTypeArguments(type_arguments);
|
| }
|
| args.SetAt(0, new_object);
|
| - args.SetAt(1, Smi::Handle(Smi::New(Function::kCtorPhaseAll)));
|
| } else {
|
| // Factories get type arguments.
|
| args.SetAt(0, type_arguments);
|
|
|