| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 /// Test that the dart2js copy of [KernelVisitor] generates the expected IR as | 5 /// Test that the dart2js copy of [KernelVisitor] generates the expected IR as |
| 6 /// defined by kernel spec-mode test files. | 6 /// defined by kernel spec-mode test files. |
| 7 | 7 |
| 8 import 'dart:io'; | 8 import 'dart:io'; |
| 9 import 'dart:async'; | 9 import 'dart:async'; |
| 10 import 'package:compiler/src/compiler.dart' show Compiler; | 10 import 'package:compiler/src/compiler.dart' show Compiler; |
| (...skipping 23 matching lines...) Expand all Loading... |
| 34 String name = pathlib.basenameWithoutExtension(file.path); | 34 String name = pathlib.basenameWithoutExtension(file.path); |
| 35 bool selected = arguments.contains(name); | 35 bool selected = arguments.contains(name); |
| 36 if (!selected) { | 36 if (!selected) { |
| 37 if (arguments.isNotEmpty) continue; | 37 if (arguments.isNotEmpty) continue; |
| 38 if (SKIP_TESTS.contains(name)) continue; | 38 if (SKIP_TESTS.contains(name)) continue; |
| 39 } | 39 } |
| 40 | 40 |
| 41 test(name, () async { | 41 test(name, () async { |
| 42 var compiler = await newCompiler(); | 42 var compiler = await newCompiler(); |
| 43 await compiler.run(file.absolute.uri); | 43 await compiler.run(file.absolute.uri); |
| 44 LibraryElement library = | 44 var loadedLibraries = |
| 45 await compiler.libraryLoader.loadLibrary(file.absolute.uri); | 45 await compiler.libraryLoader.loadLibrary(file.absolute.uri); |
| 46 compiler.processLoadedLibraries(loadedLibraries); |
| 47 var library = loadedLibraries.rootLibrary; |
| 46 JavaScriptBackend backend = compiler.backend; | 48 JavaScriptBackend backend = compiler.backend; |
| 47 StringBuffer buffer = new StringBuffer(); | 49 StringBuffer buffer = new StringBuffer(); |
| 48 Program program = backend.kernelTask.buildProgram(library); | 50 Program program = backend.kernelTask.buildProgram(library); |
| 49 new MixinFullResolution().transform(program); | 51 new MixinFullResolution().transform(program); |
| 50 new Printer(buffer) | 52 new Printer(buffer) |
| 51 .writeLibraryFile(program.mainMethod.enclosingLibrary); | 53 .writeLibraryFile(program.mainMethod.enclosingLibrary); |
| 52 String actual = buffer.toString(); | 54 String actual = buffer.toString(); |
| 53 String expected = | 55 String expected = |
| 54 new File('${TESTCASE_DIR}/spec-mode/$name.baseline.txt') | 56 new File('${TESTCASE_DIR}/spec-mode/$name.baseline.txt') |
| 55 .readAsStringSync(); | 57 .readAsStringSync(); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 72 } | 74 } |
| 73 | 75 |
| 74 Future<Compiler> newCompiler() async { | 76 Future<Compiler> newCompiler() async { |
| 75 var compiler = compilerFor( | 77 var compiler = compilerFor( |
| 76 options: [Flags.analyzeOnly, Flags.analyzeAll, Flags.useKernel]); | 78 options: [Flags.analyzeOnly, Flags.analyzeAll, Flags.useKernel]); |
| 77 await compiler.setupSdk(); | 79 await compiler.setupSdk(); |
| 78 | 80 |
| 79 // The visitor no longer enqueues elements that are not reachable from the | 81 // The visitor no longer enqueues elements that are not reachable from the |
| 80 // program. The mixin-full resolution transform run by the test expects to | 82 // program. The mixin-full resolution transform run by the test expects to |
| 81 // find dart.core::Iterator. | 83 // find dart.core::Iterator. |
| 82 var core = await compiler.libraryLoader.loadLibrary(Uri.parse('dart:core')); | 84 var loadedLibraries = |
| 85 await compiler.libraryLoader.loadLibrary(Uri.parse('dart:core')); |
| 86 compiler.processLoadedLibraries(loadedLibraries); |
| 87 var core = loadedLibraries.rootLibrary; |
| 83 compiler.startResolution(); | 88 compiler.startResolution(); |
| 84 var cls = core.implementation.localLookup('Iterator'); | 89 var cls = core.implementation.localLookup('Iterator'); |
| 85 cls.ensureResolved(compiler.resolution); | 90 cls.ensureResolved(compiler.resolution); |
| 86 return compiler; | 91 return compiler; |
| 87 } | 92 } |
| OLD | NEW |