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

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

Issue 920763002: Install 'get call' on Closure class. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: 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.js_emitter.program_builder; 5 library dart2js.js_emitter.program_builder;
6 6
7 import 'js_emitter.dart' show computeMixinClass; 7 import 'js_emitter.dart' show computeMixinClass;
8 import 'model.dart'; 8 import 'model.dart';
9 9
10 import '../common.dart'; 10 import '../common.dart';
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
316 void visitMember(ClassElement enclosing, Element member) { 316 void visitMember(ClassElement enclosing, Element member) {
317 assert(invariant(element, member.isDeclaration)); 317 assert(invariant(element, member.isDeclaration));
318 assert(invariant(element, element == enclosing)); 318 assert(invariant(element, element == enclosing));
319 319
320 if (Elements.isNonAbstractInstanceMember(member)) { 320 if (Elements.isNonAbstractInstanceMember(member)) {
321 js.Expression code = backend.generatedCode[member]; 321 js.Expression code = backend.generatedCode[member];
322 // TODO(herhut): Remove once _buildMethod can no longer return null. 322 // TODO(herhut): Remove once _buildMethod can no longer return null.
323 Method method = _buildMethod(member); 323 Method method = _buildMethod(member);
324 if (method != null) methods.add(method); 324 if (method != null) methods.add(method);
325 } 325 }
326 if (member.isGetter || member.isField) { 326 if ((member.isGetter || member.isField) &&
327 !(member.enclosingClass == backend.closureClass &&
328 member.name == Compiler.CALL_OPERATOR_NAME)) {
327 Set<Selector> selectors = 329 Set<Selector> selectors =
328 _compiler.codegenWorld.invokedNames[member.name]; 330 _compiler.codegenWorld.invokedNames[member.name];
329 if (selectors != null && !selectors.isEmpty) { 331 if (selectors != null && !selectors.isEmpty) {
330 332
331 Map<String, js.Expression> callStubsForMember = 333 Map<String, js.Expression> callStubsForMember =
332 classStubGenerator.generateCallStubsForGetter(member, selectors); 334 classStubGenerator.generateCallStubsForGetter(member, selectors);
333 callStubsForMember.forEach((String name, js.Expression code) { 335 callStubsForMember.forEach((String name, js.Expression code) {
334 callStubs.add(_buildStubMethod(name, code, element: member)); 336 callStubs.add(_buildStubMethod(name, code, element: member));
335 }); 337 });
336 } 338 }
(...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after
653 _registry.registerConstant(outputUnit, constantValue); 655 _registry.registerConstant(outputUnit, constantValue);
654 assert(!_constants.containsKey(constantValue)); 656 assert(!_constants.containsKey(constantValue));
655 String name = namer.constantName(constantValue); 657 String name = namer.constantName(constantValue);
656 String constantObject = namer.globalObjectForConstant(constantValue); 658 String constantObject = namer.globalObjectForConstant(constantValue);
657 Holder holder = _registry.registerHolder(constantObject); 659 Holder holder = _registry.registerHolder(constantObject);
658 Constant constant = new Constant(name, holder, constantValue); 660 Constant constant = new Constant(name, holder, constantValue);
659 _constants[constantValue] = constant; 661 _constants[constantValue] = constant;
660 } 662 }
661 } 663 }
662 } 664 }
OLDNEW
« no previous file with comments | « pkg/compiler/lib/src/js_emitter/old_emitter/class_emitter.dart ('k') | pkg/compiler/lib/src/resolution/class_members.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698