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

Side by Side Diff: pkg/compiler/lib/src/js_emitter/full_emitter/container_builder.dart

Issue 2918543003: Handle static invocation (Closed)
Patch Set: Created 3 years, 6 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
OLDNEW
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, 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.js_emitter.full_emitter.container_builder; 5 library dart2js.js_emitter.full_emitter.container_builder;
6 6
7 import '../../constants/values.dart'; 7 import '../../constants/values.dart';
8 import '../../elements/elements.dart' 8 import '../../elements/elements.dart'
9 show Element, Elements, MetadataAnnotation, MethodElement; 9 show Element, MetadataAnnotation, MethodElement;
10 import '../../elements/entities.dart'; 10 import '../../elements/entities.dart';
11 import '../../elements/entity_utils.dart' as utils;
11 import '../../elements/names.dart'; 12 import '../../elements/names.dart';
12 import '../../js/js.dart' as jsAst; 13 import '../../js/js.dart' as jsAst;
13 import '../../js/js.dart' show js; 14 import '../../js/js.dart' show js;
14 import '../js_emitter.dart' hide Emitter, EmitterFactory; 15 import '../js_emitter.dart' hide Emitter, EmitterFactory;
15 import '../model.dart'; 16 import '../model.dart';
16 import 'emitter.dart'; 17 import 'emitter.dart';
17 18
18 /// This class should morph into something that makes it easy to build 19 /// This class should morph into something that makes it easy to build
19 /// JavaScript representations of libraries, class-sides, and instance-sides. 20 /// JavaScript representations of libraries, class-sides, and instance-sides.
20 /// Initially, it is just a placeholder for code that is moved from 21 /// Initially, it is just a placeholder for code that is moved from
(...skipping 142 matching lines...) Expand 10 before | Expand all | Expand 10 after
163 }); 164 });
164 } 165 }
165 Name memberName = new Name(member.name, member.library); 166 Name memberName = new Name(member.name, member.library);
166 if (canBeReflected) { 167 if (canBeReflected) {
167 jsAst.LiteralString reflectionName; 168 jsAst.LiteralString reflectionName;
168 if (member.isConstructor) { 169 if (member.isConstructor) {
169 // TODO(herhut): This registers name as a mangled name. Do we need this 170 // TODO(herhut): This registers name as a mangled name. Do we need this
170 // given that we use a different name below? 171 // given that we use a different name below?
171 emitter.getReflectionName(member, name); 172 emitter.getReflectionName(member, name);
172 reflectionName = new jsAst.LiteralString( 173 reflectionName = new jsAst.LiteralString(
173 '"new ${Elements.reconstructConstructorName(member)}"'); 174 '"new ${utils.reconstructConstructorName(member)}"');
174 } else { 175 } else {
175 reflectionName = js.string(namer.privateName(memberName)); 176 reflectionName = js.string(namer.privateName(memberName));
176 } 177 }
177 expressions 178 expressions
178 ..add(reflectionName) 179 ..add(reflectionName)
179 ..addAll(task.metadataCollector.computeMetadata(member)); 180 ..addAll(task.metadataCollector.computeMetadata(member));
180 } else if (isClosure && canBeApplied) { 181 } else if (isClosure && canBeApplied) {
181 expressions.add(js.string(namer.privateName(memberName))); 182 expressions.add(js.string(namer.privateName(memberName)));
182 } 183 }
183 184
184 jsAst.ArrayInitializer arrayInit = 185 jsAst.ArrayInitializer arrayInit =
185 new jsAst.ArrayInitializer(expressions.toList()); 186 new jsAst.ArrayInitializer(expressions.toList());
186 compiler.dumpInfoTask 187 compiler.dumpInfoTask
187 .registerElementAst(member, builder.addProperty(name, arrayInit)); 188 .registerElementAst(member, builder.addProperty(name, arrayInit));
188 } 189 }
189 190
190 void addMemberField(Field field, ClassBuilder builder) { 191 void addMemberField(Field field, ClassBuilder builder) {
191 // For now, do nothing. 192 // For now, do nothing.
192 } 193 }
193 } 194 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/js_emitter/code_emitter_task.dart ('k') | pkg/compiler/lib/src/js_emitter/full_emitter/emitter.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698