Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(235)

Unified Diff: sdk/lib/_internal/compiler/implementation/ssa/builder.dart

Issue 201613006: Introduces the new syntax for deferred loading (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 b42ae6af9dff58125321df4620d161b83b7f5af6..94c5d98fb3f04d9204ef75ac9b057f475b879a90 100644
--- a/sdk/lib/_internal/compiler/implementation/ssa/builder.dart
+++ b/sdk/lib/_internal/compiler/implementation/ssa/builder.dart
@@ -3568,6 +3568,17 @@ class SsaBuilder extends ResolvedVisitor {
stack.add(graph.addConstantNull(compiler));
} else if (name == 'JS_INTERCEPTOR_CONSTANT') {
handleJsInterceptorConstant(node);
+ } else if (name == 'loadLibrary') {
+ // TODO(sigurdm): Also make it possible to closurize loadLibrary.
+ FunctionElement deferredLoader = elements[node];
+ Element loadFunction = compiler.loadLibraryFunction;
+ PrefixElement prefixElement = deferredLoader.enclosingElement;
+ String loadId =
+ compiler.deferredLoadTask.importDeferName[prefixElement.import];
+ var inputs = [graph.addConstantString(new ast.DartString.literal(loadId),
+ compiler)];
+ push(new HInvokeStatic(loadFunction, inputs, backend.nonNullType,
+ targetCanThrow: false));
} else {
throw "Unknown foreign: ${selector}";
}

Powered by Google App Engine
This is Rietveld 408576698