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

Side by Side Diff: lib/src/codegen/js_codegen.dart

Issue 1055923002: Don't call dinvoke on Object methods (Closed) Base URL: https://github.com/dart-lang/dev_compiler.git@master
Patch Set: modify test Created 5 years, 8 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) 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 1715 matching lines...) Expand 10 before | Expand all | Expand 10 after
1726 return _visitGet(node.prefix, node.identifier); 1726 return _visitGet(node.prefix, node.identifier);
1727 } 1727 }
1728 } 1728 }
1729 1729
1730 @override 1730 @override
1731 visitPropertyAccess(PropertyAccess node) => 1731 visitPropertyAccess(PropertyAccess node) =>
1732 _visitGet(_getTarget(node), node.propertyName); 1732 _visitGet(_getTarget(node), node.propertyName);
1733 1733
1734 /// Shared code for [PrefixedIdentifier] and [PropertyAccess]. 1734 /// Shared code for [PrefixedIdentifier] and [PropertyAccess].
1735 _visitGet(Expression target, SimpleIdentifier name) { 1735 _visitGet(Expression target, SimpleIdentifier name) {
1736 if (rules.isDynamicTarget(target)) { 1736 if (rules.isDynamicGet(target, name.name)) {
1737 return js.call( 1737 return js.call(
1738 'dart.dload(#, #)', [_visit(target), js.string(name.name, "'")]); 1738 'dart.dload(#, #)', [_visit(target), js.string(name.name, "'")]);
1739 } else { 1739 } else {
1740 var e = name.staticElement; 1740 var e = name.staticElement;
1741 return js.call('#.#', [ 1741 return js.call('#.#', [
1742 _visit(target), 1742 _visit(target),
1743 _jsMemberName(name.name, isStatic: e is ExecutableElement && e.isStatic) 1743 _jsMemberName(name.name, isStatic: e is ExecutableElement && e.isStatic)
1744 ]); 1744 ]);
1745 } 1745 }
1746 } 1746 }
(...skipping 637 matching lines...) Expand 10 before | Expand all | Expand 10 after
2384 2384
2385 // TODO(jmesserly): in many cases marking the end will be unncessary. 2385 // TODO(jmesserly): in many cases marking the end will be unncessary.
2386 printer.mark(_location(node.end)); 2386 printer.mark(_location(node.end));
2387 } 2387 }
2388 2388
2389 String _getIdentifier(AstNode node) { 2389 String _getIdentifier(AstNode node) {
2390 if (node is SimpleIdentifier) return node.name; 2390 if (node is SimpleIdentifier) return node.name;
2391 return null; 2391 return null;
2392 } 2392 }
2393 } 2393 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698