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

Side by Side Diff: pkg/dart2js_incremental/lib/library_updater.dart

Issue 882713008: Move computation of method flags into model. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: use unused api Created 5 years, 10 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library dart2js_incremental.library_updater; 5 library dart2js_incremental.library_updater;
6 6
7 import 'dart:async' show 7 import 'dart:async' show
8 Future; 8 Future;
9 9
10 import 'dart:convert' show 10 import 'dart:convert' show
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 60
61 import 'package:compiler/src/js_emitter/js_emitter.dart' show 61 import 'package:compiler/src/js_emitter/js_emitter.dart' show
62 ClassBuilder, 62 ClassBuilder,
63 ClassEmitter, 63 ClassEmitter,
64 CodeEmitterTask, 64 CodeEmitterTask,
65 ContainerBuilder, 65 ContainerBuilder,
66 MemberInfo, 66 MemberInfo,
67 computeMixinClass; 67 computeMixinClass;
68 68
69 import 'package:compiler/src/js_emitter/model.dart' show 69 import 'package:compiler/src/js_emitter/model.dart' show
70 Class; 70 Class,
71 Member;
71 import 'package:compiler/src/js_emitter/program_builder.dart' show 72 import 'package:compiler/src/js_emitter/program_builder.dart' show
72 ProgramBuilder; 73 ProgramBuilder;
73 74
74 import 'package:_internal/compiler/js_lib/shared/embedded_names.dart' 75 import 'package:_internal/compiler/js_lib/shared/embedded_names.dart'
75 as embeddedNames; 76 as embeddedNames;
76 77
77 import 'package:compiler/src/js_backend/js_backend.dart' show 78 import 'package:compiler/src/js_backend/js_backend.dart' show
78 JavaScriptBackend, 79 JavaScriptBackend,
79 Namer; 80 Namer;
80 81
(...skipping 843 matching lines...) Expand 10 before | Expand all | Expand 10 after
924 (new Function( 925 (new Function(
925 "$collectedClasses", "$desc", 926 "$collectedClasses", "$desc",
926 this.defineClass(#name, #computeFields) +"\n;return " + #name))( 927 this.defineClass(#name, #computeFields) +"\n;return " + #name))(
927 {#name: #descriptor})''', 928 {#name: #descriptor})''',
928 {'name': js.string(name), 929 {'name': js.string(name),
929 'computeFields': js.stringArray(computeFields(cls)), 930 'computeFields': js.stringArray(computeFields(cls)),
930 'descriptor': descriptor}); 931 'descriptor': descriptor});
931 } 932 }
932 933
933 jsAst.Node computeMethodUpdateJs(Element element) { 934 jsAst.Node computeMethodUpdateJs(Element element) {
934 MemberInfo info = containerBuilder.analyzeMemberMethod(element); 935 Member member = new ProgramBuilder(compiler, namer, emitter)
935 if (info == null) { 936 .buildMethodHackForIncrementalCompilation(element);
937 if (member == null) {
936 compiler.internalError(element, '${element.runtimeType}'); 938 compiler.internalError(element, '${element.runtimeType}');
937 } 939 }
938 ClassBuilder builder = new ClassBuilder(element, namer); 940 ClassBuilder builder = new ClassBuilder(element, namer);
939 containerBuilder.addMemberMethodFromInfo(info, builder); 941 containerBuilder.addMemberMethod(member, builder);
940 jsAst.Node partialDescriptor = 942 jsAst.Node partialDescriptor =
941 builder.toObjectInitializer(emitClassDescriptor: false); 943 builder.toObjectInitializer(emitClassDescriptor: false);
942 944
943 String name = info.name; 945 String name = member.name;
944 jsAst.Node function = info.code; 946 jsAst.Node function = member.code;
945 bool isStatic = !element.isInstanceMember; 947 bool isStatic = !element.isInstanceMember;
946 948
947 /// Either a global object (non-instance members) or a prototype (instance 949 /// Either a global object (non-instance members) or a prototype (instance
948 /// members). 950 /// members).
949 jsAst.Node holder; 951 jsAst.Node holder;
950 952
951 if (element.isInstanceMember) { 953 if (element.isInstanceMember) {
952 holder = emitter.prototypeAccess(element.enclosingClass); 954 holder = emitter.prototypeAccess(element.enclosingClass);
953 } else { 955 } else {
954 holder = js('#', namer.globalObjectFor(element)); 956 holder = js('#', namer.globalObjectFor(element));
(...skipping 523 matching lines...) Expand 10 before | Expand all | Expand 10 after
1478 .buildClassWithFieldsForTry(classElement); 1480 .buildClassWithFieldsForTry(classElement);
1479 // TODO(ahe): Rewrite for new emitter. 1481 // TODO(ahe): Rewrite for new emitter.
1480 ClassBuilder builder = new ClassBuilder(classElement, namer); 1482 ClassBuilder builder = new ClassBuilder(classElement, namer);
1481 classEmitter.emitFields(cls, builder); 1483 classEmitter.emitFields(cls, builder);
1482 return builder.fields; 1484 return builder.fields;
1483 } 1485 }
1484 } 1486 }
1485 1487
1486 // TODO(ahe): Remove this method. 1488 // TODO(ahe): Remove this method.
1487 NO_WARN(x) => x; 1489 NO_WARN(x) => x;
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/use_unused_api.dart ('k') | tests/compiler/dart2js/analyze_unused_dart2js_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698