| 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 dart2js.serialization_test; | 5 library dart2js.serialization_test; |
| 6 | 6 |
| 7 import 'dart:io'; | 7 import 'dart:io'; |
| 8 import 'memory_compiler.dart'; | 8 import 'memory_compiler.dart'; |
| 9 import 'package:async_helper/async_helper.dart'; | 9 import 'package:async_helper/async_helper.dart'; |
| 10 import 'package:compiler/src/constants/constructors.dart'; | 10 import 'package:compiler/src/constants/constructors.dart'; |
| 11 import 'package:compiler/src/constants/expressions.dart'; | 11 import 'package:compiler/src/constants/expressions.dart'; |
| 12 import 'package:compiler/src/dart_types.dart'; | 12 import 'package:compiler/src/dart_types.dart'; |
| 13 import 'package:compiler/src/compiler.dart'; | 13 import 'package:compiler/src/compiler.dart'; |
| 14 import 'package:compiler/src/diagnostics/invariant.dart'; | 14 import 'package:compiler/src/diagnostics/invariant.dart'; |
| 15 import 'package:compiler/src/elements/elements.dart'; | 15 import 'package:compiler/src/elements/elements.dart'; |
| 16 import 'package:compiler/src/elements/visitor.dart'; | 16 import 'package:compiler/src/elements/visitor.dart'; |
| 17 import 'package:compiler/src/ordered_typeset.dart'; | 17 import 'package:compiler/src/ordered_typeset.dart'; |
| 18 import 'package:compiler/src/serialization/element_serialization.dart'; | 18 import 'package:compiler/src/serialization/serialization.dart'; |
| 19 import 'package:compiler/src/serialization/json_serializer.dart'; | 19 import 'package:compiler/src/serialization/json_serializer.dart'; |
| 20 import 'package:compiler/src/serialization/serialization.dart'; | 20 import 'package:compiler/src/tree/tree.dart'; |
| 21 | 21 |
| 22 main(List<String> arguments) { | 22 main(List<String> arguments) { |
| 23 // Ensure that we can print out constant expressions. | 23 // Ensure that we can print out constant expressions. |
| 24 DEBUG_MODE = true; | 24 DEBUG_MODE = true; |
| 25 | 25 |
| 26 Uri entryPoint; | 26 Uri entryPoint; |
| 27 String outPath; | 27 String outPath; |
| 28 bool prettyPrint = false; | 28 bool prettyPrint = false; |
| 29 for (String arg in arguments) { | 29 for (String arg in arguments) { |
| 30 if (arg.startsWith('--')) { | 30 if (arg.startsWith('--')) { |
| (...skipping 434 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 465 } | 465 } |
| 466 | 466 |
| 467 @override | 467 @override |
| 468 void visitLibraryElement(LibraryElement element1, LibraryElement element2) { | 468 void visitLibraryElement(LibraryElement element1, LibraryElement element2) { |
| 469 checkElementIdentities(null, null, null, element1, element2); | 469 checkElementIdentities(null, null, null, element1, element2); |
| 470 check(element1, element2, 'name', element1.name, element2.name); | 470 check(element1, element2, 'name', element1.name, element2.name); |
| 471 check(element1, element2, 'libraryName', | 471 check(element1, element2, 'libraryName', |
| 472 element1.libraryName, element2.libraryName); | 472 element1.libraryName, element2.libraryName); |
| 473 visitMembers(element1, element2); | 473 visitMembers(element1, element2); |
| 474 visit(element1.entryCompilationUnit, element2.entryCompilationUnit); | 474 visit(element1.entryCompilationUnit, element2.entryCompilationUnit); |
| 475 | |
| 476 checkElementLists( | 475 checkElementLists( |
| 477 element1, element2, 'compilationUnits', | 476 element1, element2, 'compilationUnits', |
| 478 LibrarySerializer.getCompilationUnits(element1), | 477 element1.compilationUnits.toList(), |
| 479 LibrarySerializer.getCompilationUnits(element2)); | 478 element2.compilationUnits.toList()); |
| 480 | 479 |
| 481 checkElementListIdentities( | 480 checkElementListIdentities( |
| 482 element1, element2, 'imports', | 481 element1, element2, 'imports', element1.imports, element2.imports); |
| 483 LibrarySerializer.getImports(element1), | |
| 484 LibrarySerializer.getImports(element2)); | |
| 485 checkElementListIdentities( | 482 checkElementListIdentities( |
| 486 element1, element2, 'exports', element1.exports, element2.exports); | 483 element1, element2, 'exports', element1.exports, element2.exports); |
| 487 | 484 |
| 485 List<Element> imports1 = <Element>[]; |
| 486 List<Element> imports2 = <Element>[]; |
| 487 element1.forEachImport((Element import) { |
| 488 if (import.isAmbiguous) return; |
| 489 imports1.add(import); |
| 490 }); |
| 491 element2.forEachImport((Element import) { |
| 492 if (import.isAmbiguous) return; |
| 493 imports2.add(import); |
| 494 }); |
| 488 checkElementListIdentities( | 495 checkElementListIdentities( |
| 489 element1, element2, 'importScope', | 496 element1, element2, 'importScope', imports1, imports2); |
| 490 LibrarySerializer.getImportedElements(element1), | |
| 491 LibrarySerializer.getImportedElements(element2)); | |
| 492 | 497 |
| 498 List<Element> exports1 = <Element>[]; |
| 499 List<Element> exports2 = <Element>[]; |
| 500 element1.forEachExport((Element export) { |
| 501 if (export.isAmbiguous) return; |
| 502 exports1.add(export); |
| 503 }); |
| 504 element2.forEachExport((Element export) { |
| 505 if (export.isAmbiguous) return; |
| 506 exports2.add(export); |
| 507 }); |
| 493 checkElementListIdentities( | 508 checkElementListIdentities( |
| 494 element1, element2, 'exportScope', | 509 element1, element2, 'exportScope', exports1, exports2); |
| 495 LibrarySerializer.getExportedElements(element1), | |
| 496 LibrarySerializer.getExportedElements(element2)); | |
| 497 } | 510 } |
| 498 | 511 |
| 499 @override | 512 @override |
| 500 void visitCompilationUnitElement(CompilationUnitElement element1, | 513 void visitCompilationUnitElement(CompilationUnitElement element1, |
| 501 CompilationUnitElement element2) { | 514 CompilationUnitElement element2) { |
| 502 check(element1, element2, | 515 check(element1, element2, |
| 503 'name', | 516 'name', |
| 504 element1.name, element2.name); | 517 element1.name, element2.name); |
| 505 checkElementIdentities( | 518 checkElementIdentities( |
| 506 element1, element2, 'library', | 519 element1, element2, 'library', |
| (...skipping 568 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1075 exp1, exp2, 'expression', | 1088 exp1, exp2, 'expression', |
| 1076 exp1.expression, exp2.expression); | 1089 exp1.expression, exp2.expression); |
| 1077 } | 1090 } |
| 1078 | 1091 |
| 1079 @override | 1092 @override |
| 1080 visitDeferred(DeferredConstantExpression exp1, | 1093 visitDeferred(DeferredConstantExpression exp1, |
| 1081 DeferredConstantExpression exp2) { | 1094 DeferredConstantExpression exp2) { |
| 1082 // TODO: implement visitDeferred | 1095 // TODO: implement visitDeferred |
| 1083 } | 1096 } |
| 1084 } | 1097 } |
| OLD | NEW |