| 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 library dart2js.kernel.impact_test; | 5 library dart2js.kernel.impact_test; |
| 6 | 6 |
| 7 import 'dart:async'; | 7 import 'dart:async'; |
| 8 import 'package:async_helper/async_helper.dart'; | 8 import 'package:async_helper/async_helper.dart'; |
| 9 import 'package:compiler/src/common.dart'; | 9 import 'package:compiler/src/common.dart'; |
| 10 import 'package:compiler/src/commandline_options.dart'; | 10 import 'package:compiler/src/commandline_options.dart'; |
| 11 import 'package:compiler/src/common/resolution.dart'; | 11 import 'package:compiler/src/common/resolution.dart'; |
| 12 import 'package:compiler/src/compiler.dart'; | 12 import 'package:compiler/src/compiler.dart'; |
| 13 import 'package:compiler/src/elements/elements.dart'; | 13 import 'package:compiler/src/elements/elements.dart'; |
| 14 import 'package:compiler/src/ssa/kernel_impact.dart'; | 14 import 'package:compiler/src/ssa/kernel_impact.dart'; |
| 15 import 'package:compiler/src/serialization/equivalence.dart'; | 15 import 'package:compiler/src/serialization/equivalence.dart'; |
| 16 import '../memory_compiler.dart'; | 16 import '../memory_compiler.dart'; |
| 17 import '../serialization/test_helper.dart'; | 17 import '../serialization/test_helper.dart'; |
| 18 | 18 |
| 19 const Map<String, String> SOURCE = const <String, String>{ | 19 const Map<String, String> SOURCE = const <String, String>{ |
| 20 'main.dart': ''' | 20 'main.dart': ''' |
| 21 import 'helper.dart'; |
| 22 |
| 21 main() { | 23 main() { |
| 22 testEmpty(); | 24 testEmpty(); |
| 23 testNull(); | 25 testNull(); |
| 24 testTrue(); | 26 testTrue(); |
| 25 testFalse(); | 27 testFalse(); |
| 26 testInt(); | 28 testInt(); |
| 27 testDouble(); | 29 testDouble(); |
| 28 testString(); | 30 testString(); |
| 29 testSymbol(); | 31 testSymbol(); |
| 30 testEmptyListLiteral(); | 32 testEmptyListLiteral(); |
| (...skipping 20 matching lines...) Expand all Loading... |
| 51 testTopLevelField(); | 53 testTopLevelField(); |
| 52 testTopLevelFieldTyped(); | 54 testTopLevelFieldTyped(); |
| 53 testDynamicInvoke(null); | 55 testDynamicInvoke(null); |
| 54 testDynamicGet(null); | 56 testDynamicGet(null); |
| 55 testDynamicSet(null); | 57 testDynamicSet(null); |
| 56 testLocalWithInitializer(); | 58 testLocalWithInitializer(); |
| 57 testInvokeIndex(null); | 59 testInvokeIndex(null); |
| 58 testInvokeIndexSet(null); | 60 testInvokeIndexSet(null); |
| 59 testAssert(); | 61 testAssert(); |
| 60 testAssertWithMessage(); | 62 testAssertWithMessage(); |
| 63 testFactoryInvoke(); |
| 64 testFactoryInvokeGeneric(); |
| 65 testFactoryInvokeGenericRaw(); |
| 66 testFactoryInvokeGenericDynamic(); |
| 61 } | 67 } |
| 62 | 68 |
| 63 testEmpty() {} | 69 testEmpty() {} |
| 64 testNull() => null; | 70 testNull() => null; |
| 65 testTrue() => true; | 71 testTrue() => true; |
| 66 testFalse() => false; | 72 testFalse() => false; |
| 67 testInt() => 42; | 73 testInt() => 42; |
| 68 testDouble() => 37.5; | 74 testDouble() => 37.5; |
| 69 testString() => 'foo'; | 75 testString() => 'foo'; |
| 70 testSymbol() => #main; | 76 testSymbol() => #main; |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 147 var l = 42; | 153 var l = 42; |
| 148 } | 154 } |
| 149 testInvokeIndex(o) => o[42]; | 155 testInvokeIndex(o) => o[42]; |
| 150 testInvokeIndexSet(o) => o[42] = null; | 156 testInvokeIndexSet(o) => o[42] = null; |
| 151 testAssert() { | 157 testAssert() { |
| 152 assert(true); | 158 assert(true); |
| 153 } | 159 } |
| 154 testAssertWithMessage() { | 160 testAssertWithMessage() { |
| 155 assert(true, 'ok'); | 161 assert(true, 'ok'); |
| 156 } | 162 } |
| 157 ''' | 163 testFactoryInvoke() { |
| 164 new Class.fact(); |
| 165 } |
| 166 testFactoryInvokeGeneric() { |
| 167 new GenericClass<int, String>.fact(); |
| 168 } |
| 169 testFactoryInvokeGenericRaw() { |
| 170 new GenericClass.fact(); |
| 171 } |
| 172 testFactoryInvokeGenericDynamic() { |
| 173 new GenericClass<dynamic, dynamic>.fact(); |
| 174 } |
| 175 ''', |
| 176 'helper.dart': ''' |
| 177 class Class { |
| 178 factory Class.fact() => null; |
| 179 } |
| 180 class GenericClass<X, Y> { |
| 181 factory GenericClass.fact() => null; |
| 182 } |
| 183 ''', |
| 158 }; | 184 }; |
| 159 | 185 |
| 160 main(List<String> args) { | 186 main(List<String> args) { |
| 161 asyncTest(() async { | 187 asyncTest(() async { |
| 162 enableDebugMode(); | 188 enableDebugMode(); |
| 163 Uri entryPoint = Uri.parse('memory:main.dart'); | 189 Uri entryPoint = Uri.parse('memory:main.dart'); |
| 164 Compiler compiler = compilerFor( | 190 Compiler compiler = compilerFor( |
| 165 entryPoint: entryPoint, | 191 entryPoint: entryPoint, |
| 166 memorySourceFiles: SOURCE, | 192 memorySourceFiles: SOURCE, |
| 167 options: | 193 options: |
| (...skipping 13 matching lines...) Expand all Loading... |
| 181 } | 207 } |
| 182 }); | 208 }); |
| 183 } | 209 } |
| 184 | 210 |
| 185 void checkElement(Compiler compiler, AstElement element) { | 211 void checkElement(Compiler compiler, AstElement element) { |
| 186 ResolutionImpact astImpact = compiler.resolution.getResolutionImpact(element); | 212 ResolutionImpact astImpact = compiler.resolution.getResolutionImpact(element); |
| 187 ResolutionImpact kernelImpact = build(compiler, element.resolvedAst); | 213 ResolutionImpact kernelImpact = build(compiler, element.resolvedAst); |
| 188 testResolutionImpactEquivalence( | 214 testResolutionImpactEquivalence( |
| 189 astImpact, kernelImpact, const CheckStrategy()); | 215 astImpact, kernelImpact, const CheckStrategy()); |
| 190 } | 216 } |
| OLD | NEW |