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

Unified Diff: dart/sdk/lib/_internal/compiler/implementation/js_emitter/code_emitter_task.dart

Issue 27524003: Generate tear-off closures dynamically. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 years, 2 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: dart/sdk/lib/_internal/compiler/implementation/js_emitter/code_emitter_task.dart
diff --git a/dart/sdk/lib/_internal/compiler/implementation/js_emitter/code_emitter_task.dart b/dart/sdk/lib/_internal/compiler/implementation/js_emitter/code_emitter_task.dart
index 31b35068a12d280c4234bd8b9f5aaa034ec734cd..2d66d908955355e4d12ace496ac5532f39c2fd4b 100644
--- a/dart/sdk/lib/_internal/compiler/implementation/js_emitter/code_emitter_task.dart
+++ b/dart/sdk/lib/_internal/compiler/implementation/js_emitter/code_emitter_task.dart
@@ -1184,16 +1184,16 @@ mainBuffer.add(r'''
containerBuilder.emitStaticFunctionClosures();
- addComment('Method closures', mainBuffer);
+ // addComment('Method closures', mainBuffer);
// Now that we have emitted all classes, we know all the method
// closures that will be needed.
- containerBuilder.methodClosures.forEach((String code, Element closure) {
- // TODO(ahe): Some of these can be deferred.
- String mangledName = namer.getNameOfClass(closure);
- mainBuffer.add('$classesCollector.$mangledName$_=$_'
- '[${namer.globalObjectFor(closure)},$_$code]');
- mainBuffer.add("$N$n");
- });
+ // containerBuilder.methodClosures.forEach((String code, Element closure) {
+ // // TODO(ahe): Some of these can be deferred.
+ // String mangledName = namer.getNameOfClass(closure);
+ // mainBuffer.add('$classesCollector.$mangledName$_=$_'
+ // '[${namer.globalObjectFor(closure)},$_$code]');
+ // mainBuffer.add("$N$n");
+ // });
// After this assignment we will produce invalid JavaScript code if we use
// the classesCollector variable.
@@ -1261,7 +1261,7 @@ mainBuffer.add(r'''
}
}
mainBuffer
- ..write(getReflectionDataParser(classesCollector, namer))
+ ..write(getReflectionDataParser(classesCollector, backend))
..write('([$n');
List<Element> sortedElements =
@@ -1335,6 +1335,7 @@ mainBuffer.add(r'''
typeTestEmitter.emitRuntimeTypeSupport(mainBuffer);
interceptorEmitter.emitGetInterceptorMethods(mainBuffer);
+ interceptorEmitter.emitOneShotInterceptors(mainBuffer);
// Constants in checked mode call into RTI code to set type information
// which may need getInterceptor methods, so we have to make sure that
// [emitGetInterceptorMethods] has been called.
@@ -1342,7 +1343,6 @@ mainBuffer.add(r'''
// Static field initializations require the classes and compile-time
// constants to be set up.
emitStaticNonFinalFieldInitializations(mainBuffer);
- interceptorEmitter.emitOneShotInterceptors(mainBuffer);
interceptorEmitter.emitInterceptedNames(mainBuffer);
interceptorEmitter.emitMapTypeToInterceptor(mainBuffer);
emitLazilyInitializedStaticFields(mainBuffer);
@@ -1504,7 +1504,7 @@ if (typeof $printHelperName === "function") {
'$_${namer.isolateName}.prototype$N$n'
// The classesCollector object ($$).
'$classesCollector$_=$_{};$n')
- ..write(getReflectionDataParser(classesCollector, namer))
+ ..write(getReflectionDataParser(classesCollector, backend))
..write('([$n')
..addBuffer(deferredLibraries)
..write('])$N');

Powered by Google App Engine
This is Rietveld 408576698