| Index: sdk/lib/_internal/compiler/implementation/ssa/builder.dart
|
| ===================================================================
|
| --- sdk/lib/_internal/compiler/implementation/ssa/builder.dart (revision 19209)
|
| +++ sdk/lib/_internal/compiler/implementation/ssa/builder.dart (working copy)
|
| @@ -1124,6 +1124,7 @@
|
| }
|
|
|
| inlinedFrom(Element element, f()) {
|
| + assert(element is FunctionElement || element is VariableElement);
|
| return compiler.withCurrentElement(element, () {
|
| sourceElementStack.add(element);
|
| var result = f();
|
| @@ -1163,10 +1164,10 @@
|
| element: constructor);
|
| }
|
|
|
| - sourceElementStack.add(constructor.enclosingElement);
|
| - buildFieldInitializers(constructor.enclosingElement.implementation,
|
| - fieldValues);
|
| - sourceElementStack.removeLast();
|
| + inlinedFrom(constructor, () {
|
| + buildFieldInitializers(constructor.enclosingElement.implementation,
|
| + fieldValues);
|
| + });
|
|
|
| int index = 0;
|
| FunctionSignature params = constructor.computeSignature(compiler);
|
| @@ -1252,9 +1253,9 @@
|
| SendSet init = link.head;
|
| Link<Node> arguments = init.arguments;
|
| assert(!arguments.isEmpty && arguments.tail.isEmpty);
|
| - sourceElementStack.add(constructor);
|
| - visit(arguments.head);
|
| - sourceElementStack.removeLast();
|
| + inlinedFrom(constructor, () {
|
| + visit(arguments.head);
|
| + });
|
| fieldValues[elements[init]] = pop();
|
| }
|
| }
|
|
|