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

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

Issue 1607073002: Fixes #412 (Closed) Base URL: https://github.com/dart-lang/dev_compiler.git@master
Patch Set: Rebase Created 4 years, 11 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
« no previous file with comments | « lib/runtime/dart/html.js ('k') | test/codegen/expect/collection/src/unmodifiable_wrappers.txt » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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, SplayTreeSet; 7 import 'dart:collection' show HashSet, HashMap, SplayTreeSet;
8 8
9 import 'package:analyzer/analyzer.dart' hide ConstantEvaluator; 9 import 'package:analyzer/analyzer.dart' hide ConstantEvaluator;
10 import 'package:analyzer/src/generated/ast.dart' hide ConstantEvaluator; 10 import 'package:analyzer/src/generated/ast.dart' hide ConstantEvaluator;
(...skipping 1758 matching lines...) Expand 10 before | Expand all | Expand 10 after
1769 } 1769 }
1770 if (jsArgs != null) { 1770 if (jsArgs != null) {
1771 var genericName = _emitTopLevelName(element, suffix: '\$'); 1771 var genericName = _emitTopLevelName(element, suffix: '\$');
1772 return js.call('#(#)', [genericName, jsArgs]); 1772 return js.call('#(#)', [genericName, jsArgs]);
1773 } 1773 }
1774 } 1774 }
1775 1775
1776 return _emitTopLevelName(element); 1776 return _emitTopLevelName(element);
1777 } 1777 }
1778 1778
1779 JS.Expression _emitTopLevelName(Element e, {String suffix : ''}) { 1779 JS.Expression _emitTopLevelName(Element e, {String suffix: ''}) {
1780 var libName = _libraryName(e.library); 1780 var libName = _libraryName(e.library);
1781 var nameExpr = _propertyName((_getJSExportName(e) ?? e.name) + suffix); 1781 var nameExpr = _propertyName((_getJSExportName(e) ?? e.name) + suffix);
1782 1782
1783 // Always qualify: 1783 // Always qualify:
1784 // * mutable top-level fields 1784 // * mutable top-level fields
1785 // * elements from other libraries 1785 // * elements from other libraries
1786 bool mutableTopLevel = e is TopLevelVariableElement && 1786 bool mutableTopLevel = e is TopLevelVariableElement &&
1787 !e.isConst && 1787 !e.isConst &&
1788 !_isFinalJSDecl(e.computeNode()); 1788 !_isFinalJSDecl(e.computeNode());
1789 bool fromAnotherLibrary = e.library != currentLibrary; 1789 bool fromAnotherLibrary = e.library != currentLibrary;
(...skipping 1844 matching lines...) Expand 10 before | Expand all | Expand 10 after
3634 3634
3635 /// A special kind of element created by the compiler, signifying a temporary 3635 /// A special kind of element created by the compiler, signifying a temporary
3636 /// variable. These objects use instance equality, and should be shared 3636 /// variable. These objects use instance equality, and should be shared
3637 /// everywhere in the tree where they are treated as the same variable. 3637 /// everywhere in the tree where they are treated as the same variable.
3638 class TemporaryVariableElement extends LocalVariableElementImpl { 3638 class TemporaryVariableElement extends LocalVariableElementImpl {
3639 TemporaryVariableElement.forNode(Identifier name) : super.forNode(name); 3639 TemporaryVariableElement.forNode(Identifier name) : super.forNode(name);
3640 3640
3641 int get hashCode => identityHashCode(this); 3641 int get hashCode => identityHashCode(this);
3642 bool operator ==(Object other) => identical(this, other); 3642 bool operator ==(Object other) => identical(this, other);
3643 } 3643 }
OLDNEW
« no previous file with comments | « lib/runtime/dart/html.js ('k') | test/codegen/expect/collection/src/unmodifiable_wrappers.txt » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698