Chromium Code Reviews| OLD | NEW | 
|---|---|
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 dev_compiler.src.codegen.js_codegen; | 5 library dev_compiler.src.codegen.js_codegen; | 
| 6 | 6 | 
| 7 import 'dart:collection' show HashSet, HashMap; | 7 import 'dart:collection' show HashSet, HashMap; | 
| 8 import 'dart:io' show Directory, File; | 8 import 'dart:io' show Directory, File; | 
| 9 | 9 | 
| 10 import 'package:analyzer/analyzer.dart' hide ConstantEvaluator; | 10 import 'package:analyzer/analyzer.dart' hide ConstantEvaluator; | 
| (...skipping 1848 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1859 return _emitGet(node.prefix, node.identifier); | 1859 return _emitGet(node.prefix, node.identifier); | 
| 1860 } | 1860 } | 
| 1861 } | 1861 } | 
| 1862 | 1862 | 
| 1863 @override | 1863 @override | 
| 1864 visitPropertyAccess(PropertyAccess node) => | 1864 visitPropertyAccess(PropertyAccess node) => | 
| 1865 _emitGet(_getTarget(node), node.propertyName); | 1865 _emitGet(_getTarget(node), node.propertyName); | 
| 1866 | 1866 | 
| 1867 /// Shared code for [PrefixedIdentifier] and [PropertyAccess]. | 1867 /// Shared code for [PrefixedIdentifier] and [PropertyAccess]. | 
| 1868 _emitGet(Expression target, SimpleIdentifier name) { | 1868 _emitGet(Expression target, SimpleIdentifier name) { | 
| 1869 if (rules.isDynamicTarget(target)) { | 1869 if (rules.isDynamicGet(target, name)) { | 
| 
 
Jennifer Messerly
2015/04/07 19:05:49
ideally we'd only need to check one of these. Or a
 
vsm
2015/04/07 19:48:46
This particular one doesn't bother me.  A get is a
 
Jennifer Messerly
2015/04/07 21:49:23
yeah, that's a good point. I just would expect tha
 
vsm
2015/04/07 22:40:41
I went ahead and did this and did some correspondi
 
 | |
| 1870 return js.call( | 1870 return js.call( | 
| 1871 'dart.dload(#, #)', [_visit(target), js.string(name.name, "'")]); | 1871 'dart.dload(#, #)', [_visit(target), js.string(name.name, "'")]); | 
| 1872 } else { | 1872 } else { | 
| 1873 var e = name.staticElement; | 1873 var e = name.staticElement; | 
| 1874 var ret = js.call('#.#', [ | 1874 var ret = js.call('#.#', [ | 
| 1875 _visit(target), | 1875 _visit(target), | 
| 1876 _emitMemberName(name.name, | 1876 _emitMemberName(name.name, | 
| 1877 isStatic: e is ExecutableElement && e.isStatic, target: target) | 1877 isStatic: e is ExecutableElement && e.isStatic, target: target) | 
| 1878 ]); | 1878 ]); | 
| 1879 return ret; | 1879 return ret; | 
| (...skipping 625 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 2505 | 2505 | 
| 2506 // TODO(jmesserly): in many cases marking the end will be unncessary. | 2506 // TODO(jmesserly): in many cases marking the end will be unncessary. | 
| 2507 printer.mark(_location(node.end)); | 2507 printer.mark(_location(node.end)); | 
| 2508 } | 2508 } | 
| 2509 | 2509 | 
| 2510 String _getIdentifier(AstNode node) { | 2510 String _getIdentifier(AstNode node) { | 
| 2511 if (node is SimpleIdentifier) return node.name; | 2511 if (node is SimpleIdentifier) return node.name; | 
| 2512 return null; | 2512 return null; | 
| 2513 } | 2513 } | 
| 2514 } | 2514 } | 
| OLD | NEW |