| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 } |
| OLD | NEW |