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

Side by Side Diff: sdk/lib/_internal/compiler/implementation/enqueue.dart

Issue 11416257: Revert "Add @JSName annotation for native fields and methods." (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 8 years 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) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, 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 part of dart2js; 5 part of dart2js;
6 6
7 class EnqueueTask extends CompilerTask { 7 class EnqueueTask extends CompilerTask {
8 final Enqueuer codegen; 8 final Enqueuer codegen;
9 final Enqueuer resolution; 9 final Enqueuer resolution;
10 10
(...skipping 153 matching lines...) Expand 10 before | Expand all | Expand 10 after
164 * Documentation wanted -- johnniwinther 164 * Documentation wanted -- johnniwinther
165 */ 165 */
166 void processInstantiatedClassMember(ClassElement cls, Element member) { 166 void processInstantiatedClassMember(ClassElement cls, Element member) {
167 assert(invariant(member, member.isDeclaration)); 167 assert(invariant(member, member.isDeclaration));
168 if (universe.generatedCode.containsKey(member)) return; 168 if (universe.generatedCode.containsKey(member)) return;
169 if (resolvedElements[member] != null) return; 169 if (resolvedElements[member] != null) return;
170 if (!member.isInstanceMember()) return; 170 if (!member.isInstanceMember()) return;
171 if (member.isField()) { 171 if (member.isField()) {
172 // Native fields need to go into instanceMembersByName as they are virtual 172 // Native fields need to go into instanceMembersByName as they are virtual
173 // instantiation points and escape points. 173 // instantiation points and escape points.
174 // Test the enclosing class, since the metadata has not been parsed yet.
175 if (!member.enclosingElement.isNative()) return; 174 if (!member.enclosingElement.isNative()) return;
176 } 175 }
177 176
178 String memberName = member.name.slowToString(); 177 String memberName = member.name.slowToString();
179 Link<Element> members = instanceMembersByName.putIfAbsent( 178 Link<Element> members = instanceMembersByName.putIfAbsent(
180 memberName, () => const Link<Element>()); 179 memberName, () => const Link<Element>());
181 instanceMembersByName[memberName] = members.prepend(member); 180 instanceMembersByName[memberName] = members.prepend(member);
182 181
183 if (member.kind == ElementKind.FUNCTION) { 182 if (member.kind == ElementKind.FUNCTION) {
184 if (member.name == Compiler.NO_SUCH_METHOD) { 183 if (member.name == Compiler.NO_SUCH_METHOD) {
(...skipping 19 matching lines...) Expand all
204 // the set contains any selector we have to assume that it matches. 203 // the set contains any selector we have to assume that it matches.
205 if (universe.hasInvocation(member, compiler)) { 204 if (universe.hasInvocation(member, compiler)) {
206 return addToWorkList(member); 205 return addToWorkList(member);
207 } 206 }
208 } else if (member.kind == ElementKind.SETTER) { 207 } else if (member.kind == ElementKind.SETTER) {
209 if (universe.hasInvokedSetter(member, compiler)) { 208 if (universe.hasInvokedSetter(member, compiler)) {
210 return addToWorkList(member); 209 return addToWorkList(member);
211 } 210 }
212 } else if (member.kind == ElementKind.FIELD && 211 } else if (member.kind == ElementKind.FIELD &&
213 member.enclosingElement.isNative()) { 212 member.enclosingElement.isNative()) {
214 nativeEnqueuer.registerField(member);
215 if (universe.hasInvokedGetter(member, compiler) || 213 if (universe.hasInvokedGetter(member, compiler) ||
216 universe.hasInvocation(member, compiler)) { 214 universe.hasInvocation(member, compiler)) {
217 nativeEnqueuer.registerFieldLoad(member); 215 nativeEnqueuer.registerFieldLoad(member);
218 } 216 }
219 if (universe.hasInvokedSetter(member, compiler)) { 217 if (universe.hasInvokedSetter(member, compiler)) {
220 nativeEnqueuer.registerFieldStore(member); 218 nativeEnqueuer.registerFieldStore(member);
221 } 219 }
222 } 220 }
223 } 221 }
224 222
(...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after
402 400
403 String toString() => 'Enqueuer($name)'; 401 String toString() => 'Enqueuer($name)';
404 402
405 void logSummary(log(message)) { 403 void logSummary(log(message)) {
406 log(isResolutionQueue 404 log(isResolutionQueue
407 ? 'Resolved ${resolvedElements.length} elements.' 405 ? 'Resolved ${resolvedElements.length} elements.'
408 : 'Compiled ${universe.generatedCode.length} methods.'); 406 : 'Compiled ${universe.generatedCode.length} methods.');
409 nativeEnqueuer.logSummary(log); 407 nativeEnqueuer.logSummary(log);
410 } 408 }
411 } 409 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698