|  | // Copyright (c) 2014, the Dart project authors.  Please see the AUTHORS file | 
|  | // for details. All rights reserved. Use of this source code is governed by a | 
|  | // BSD-style license that can be found in the LICENSE file. | 
|  | // Test constant folding on numbers. | 
|  |  | 
|  | import 'package:async_helper/async_helper.dart'; | 
|  | import '../helpers/compiler_helper.dart'; | 
|  |  | 
|  | const String TEST_1 = """ | 
|  | foo() { | 
|  | var a = 'Hello'; | 
|  | var b = 0; | 
|  | return a.codeUnitAt(b); | 
|  | } | 
|  | """; | 
|  |  | 
|  | // No folding of index type error. | 
|  | const String TEST_2 = """ | 
|  | foo() { | 
|  | var a = 'Hello'; | 
|  | dynamic b = 1.5; | 
|  | return a.codeUnitAt(b); | 
|  | } | 
|  | """; | 
|  |  | 
|  | // No folding of index range error. | 
|  | const String TEST_3 = """ | 
|  | foo() { | 
|  | var a = 'Hello'; | 
|  | dynamic b = 55; | 
|  | return a.codeUnitAt(b); | 
|  | } | 
|  | """; | 
|  |  | 
|  | main() { | 
|  | runTests() async { | 
|  | await compileAndMatch(TEST_1, 'foo', new RegExp(r'return 72')); | 
|  | await compileAndDoNotMatch(TEST_1, 'foo', new RegExp(r'Hello')); | 
|  | await compileAndMatch(TEST_2, 'foo', new RegExp(r'Hello')); | 
|  | await compileAndMatch(TEST_3, 'foo', new RegExp(r'Hello')); | 
|  | } | 
|  |  | 
|  | asyncTest(() async { | 
|  | print('--test from kernel------------------------------------------------'); | 
|  | await runTests(); | 
|  | }); | 
|  | } |