| Index: sdk/lib/_internal/compiler/implementation/ssa/builder.dart
|
| diff --git a/sdk/lib/_internal/compiler/implementation/ssa/builder.dart b/sdk/lib/_internal/compiler/implementation/ssa/builder.dart
|
| index 91b0977e722bdb92b70739138ee4b321fb4c70bb..0e43ef7ecdcd2097232ccbac5545d3c703e8d34e 100644
|
| --- a/sdk/lib/_internal/compiler/implementation/ssa/builder.dart
|
| +++ b/sdk/lib/_internal/compiler/implementation/ssa/builder.dart
|
| @@ -1172,8 +1172,9 @@ class SsaBuilder extends ResolvedVisitor {
|
| bool meetsHardConstraints() {
|
| // Don't inline from one output unit to another. If something is deferred
|
| // it is to save space in the loading code.
|
| - if (!compiler.deferredLoadTask
|
| - .inSameOutputUnit(element,compiler.currentElement)) {
|
| + var getOutputUnit = compiler.deferredLoadTask.outputUnitForElement;
|
| + if (getOutputUnit(element) !=
|
| + getOutputUnit(compiler.currentElement)) {
|
| return false;
|
| }
|
| if (compiler.disableInlining) return false;
|
| @@ -2928,24 +2929,6 @@ class SsaBuilder extends ResolvedVisitor {
|
| pushInvokeDynamic(send, selector, [receiver]);
|
| }
|
|
|
| - /// Inserts a call to checkDeferredIsLoaded if the send has a prefix that
|
| - /// resolves to a deferred library.
|
| - void generateIsDeferredLoadedCheckIfNeeded(ast.Send node) {
|
| - DeferredLoadTask deferredTask = compiler.deferredLoadTask;
|
| - PrefixElement prefixElement =
|
| - deferredTask.deferredPrefixElement(node, elements);
|
| - if (prefixElement != null) {
|
| - String loadId =
|
| - deferredTask.importDeferName[prefixElement.deferredImport];
|
| - HInstruction loadIdConstant = addConstantString(loadId);
|
| - String uri = prefixElement.deferredImport.uri.dartString.slowToString();
|
| - HInstruction uriConstant = addConstantString(uri);
|
| - Element helper = backend.getCheckDeferredIsLoaded();
|
| - pushInvokeStatic(node, helper, [loadIdConstant, uriConstant]);
|
| - pop();
|
| - }
|
| - }
|
| -
|
| void generateGetter(ast.Send send, Element element) {
|
| if (element != null && element.isForeign(compiler)) {
|
| visitForeignGetter(send);
|
| @@ -3938,8 +3921,6 @@ class SsaBuilder extends ResolvedVisitor {
|
|
|
| handleNewSend(ast.NewExpression node) {
|
| ast.Send send = node.send;
|
| - generateIsDeferredLoadedCheckIfNeeded(send);
|
| -
|
| bool isFixedList = false;
|
| bool isFixedListConstructorCall =
|
| Elements.isFixedListConstructorCall(elements[send], send, compiler);
|
| @@ -4191,7 +4172,6 @@ class SsaBuilder extends ResolvedVisitor {
|
| return;
|
| }
|
| invariant(element, !element.isGenerativeConstructor());
|
| - generateIsDeferredLoadedCheckIfNeeded(node);
|
| if (element.isFunction()) {
|
| var inputs = <HInstruction>[];
|
| // TODO(5347): Try to avoid the need for calling [implementation] before
|
| @@ -4267,7 +4247,6 @@ class SsaBuilder extends ResolvedVisitor {
|
| }
|
|
|
| visitGetterSend(ast.Send node) {
|
| - generateIsDeferredLoadedCheckIfNeeded(node);
|
| generateGetter(node, elements[node]);
|
| }
|
|
|
| @@ -4536,7 +4515,6 @@ class SsaBuilder extends ResolvedVisitor {
|
| }
|
|
|
| visitSendSet(ast.SendSet node) {
|
| - generateIsDeferredLoadedCheckIfNeeded(node);
|
| Element element = elements[node];
|
| if (!Elements.isUnresolved(element) && element.impliesType()) {
|
| ast.Identifier selector = node.selector;
|
|
|