| 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 |