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

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

Issue 963063003: DDC fixes on DDC (Closed) Base URL: https://github.com/dart-lang/dev_compiler.git@master
Patch Set: Created 5 years, 9 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/config.dart ('k') | lib/src/js/printer.dart » ('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 ddc.src.codegen.js_codegen; 5 library ddc.src.codegen.js_codegen;
6 6
7 import 'dart:io' show Directory, File; 7 import 'dart:io' show Directory, File;
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 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
308 return _addTypeParameters(node.typeParameters, name, _statement(body)); 308 return _addTypeParameters(node.typeParameters, name, _statement(body));
309 } 309 }
310 310
311 /// Generates the implicit default constructor for class C of the form 311 /// Generates the implicit default constructor for class C of the form
312 /// `C() : super() {}`. 312 /// `C() : super() {}`.
313 JS.Method _emitImplicitConstructor( 313 JS.Method _emitImplicitConstructor(
314 ClassDeclaration node, String name, List<FieldDeclaration> fields) { 314 ClassDeclaration node, String name, List<FieldDeclaration> fields) {
315 // If we don't have a method body, skip this. 315 // If we don't have a method body, skip this.
316 if (fields.isEmpty) return null; 316 if (fields.isEmpty) return null;
317 317
318 var body = _initializeFields(fields); 318 dynamic body = _initializeFields(fields);
319 var superCall = _superConstructorCall(node); 319 var superCall = _superConstructorCall(node);
320 if (superCall != null) body = [[body, superCall]]; 320 if (superCall != null) body = [[body, superCall]];
321 return new JS.Method( 321 return new JS.Method(
322 new JS.PropertyName(name), js.call('function() { #; }', body)); 322 new JS.PropertyName(name), js.call('function() { #; }', body));
323 } 323 }
324 324
325 JS.Method _emitConstructor(ConstructorDeclaration node, String className, 325 JS.Method _emitConstructor(ConstructorDeclaration node, String className,
326 List<FieldDeclaration> fields) { 326 List<FieldDeclaration> fields) {
327 if (_externalOrNative(node)) return null; 327 if (_externalOrNative(node)) return null;
328 328
(...skipping 1384 matching lines...) Expand 10 before | Expand all | Expand 10 after
1713 /// Choose a canonical name from the library element. 1713 /// Choose a canonical name from the library element.
1714 /// This never uses the library's name (the identifier in the `library` 1714 /// This never uses the library's name (the identifier in the `library`
1715 /// declaration) as it doesn't have any meaningful rules enforced. 1715 /// declaration) as it doesn't have any meaningful rules enforced.
1716 String jsLibraryName(LibraryElement library) => canonicalLibraryName(library); 1716 String jsLibraryName(LibraryElement library) => canonicalLibraryName(library);
1717 1717
1718 /// Path to file that will be generated for [info]. 1718 /// Path to file that will be generated for [info].
1719 // TODO(jmesserly): library directory should be relative to its package 1719 // TODO(jmesserly): library directory should be relative to its package
1720 // root. For example, "package:dev_compiler/src/codegen/js_codegen.dart" would b e: 1720 // root. For example, "package:dev_compiler/src/codegen/js_codegen.dart" would b e:
1721 // "ddc/src/codegen/js_codegen.js" under the output directory. 1721 // "ddc/src/codegen/js_codegen.js" under the output directory.
1722 String jsOutputPath(LibraryInfo info) => '${info.name}/${info.name}.js'; 1722 String jsOutputPath(LibraryInfo info) => '${info.name}/${info.name}.js';
OLDNEW
« no previous file with comments | « lib/config.dart ('k') | lib/src/js/printer.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698