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.constants.expressions.evaluate_test; | 5 library dart2js.constants.expressions.evaluate_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:expect/expect.dart'; | 9 import 'package:expect/expect.dart'; |
10 import 'package:compiler/src/common/backend_api.dart'; | 10 import 'package:compiler/src/common/backend_api.dart'; |
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
269 data.constants.forEach((ConstantData constantData) { | 269 data.constants.forEach((ConstantData constantData) { |
270 String name = 'c${constants.length}'; | 270 String name = 'c${constants.length}'; |
271 sb.write('const $name = ${constantData.code};\n'); | 271 sb.write('const $name = ${constantData.code};\n'); |
272 constants[name] = constantData; | 272 constants[name] = constantData; |
273 }); | 273 }); |
274 sb.write('main() {}\n'); | 274 sb.write('main() {}\n'); |
275 String source = sb.toString(); | 275 String source = sb.toString(); |
276 CompilationResult result = await runCompiler( | 276 CompilationResult result = await runCompiler( |
277 memorySourceFiles: {'main.dart': source}, options: ['--analyze-all']); | 277 memorySourceFiles: {'main.dart': source}, options: ['--analyze-all']); |
278 Compiler compiler = result.compiler; | 278 Compiler compiler = result.compiler; |
279 var library = compiler.mainApp; | 279 var library = compiler.frontendStrategy.elementEnvironment.mainLibrary; |
280 constants.forEach((String name, ConstantData data) { | 280 constants.forEach((String name, ConstantData data) { |
281 FieldElement field = library.localLookup(name); | 281 FieldElement field = library.localLookup(name); |
282 ConstantExpression constant = field.constant; | 282 ConstantExpression constant = field.constant; |
283 data.expectedValues.forEach((Map<String, String> env, String expectedText) { | 283 data.expectedValues.forEach((Map<String, String> env, String expectedText) { |
284 EvaluationEnvironment environment = new MemoryEnvironment(compiler, env); | 284 EvaluationEnvironment environment = new MemoryEnvironment(compiler, env); |
285 ConstantValue value = | 285 ConstantValue value = |
286 constant.evaluate(environment, DART_CONSTANT_SYSTEM); | 286 constant.evaluate(environment, DART_CONSTANT_SYSTEM); |
287 String valueText = value.toStructuredText(); | 287 String valueText = value.toStructuredText(); |
288 Expect.equals( | 288 Expect.equals( |
289 expectedText, | 289 expectedText, |
290 valueText, | 290 valueText, |
291 "Unexpected value '${valueText}' for constant " | 291 "Unexpected value '${valueText}' for constant " |
292 "`${constant.toDartText()}`, expected '${expectedText}'."); | 292 "`${constant.toDartText()}`, expected '${expectedText}'."); |
293 }); | 293 }); |
294 }); | 294 }); |
295 } | 295 } |
OLD | NEW |