Chromium Code Reviews| Index: tests/language/optimized_constant_array_string_access.dart |
| =================================================================== |
| --- tests/language/optimized_constant_array_string_access.dart (revision 0) |
| +++ tests/language/optimized_constant_array_string_access.dart (revision 0) |
| @@ -0,0 +1,47 @@ |
| +// Copyright (c) 2012, 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 optimized constant string and constant array access. |
| + |
| +int testConstantStringAndIndexCharCodeAt() { |
| + int test(b) { |
| + if (b) return "hest".charCodeAt(400); |
| + return "hest".charCodeAt(2); |
| + } |
| + |
| + try { |
| + test(true); |
| + } catch(e) { } |
|
srdjan
2012/11/01 20:32:18
You may want to use Expect.throws instead.
Florian Schneider
2012/11/01 22:58:56
Done.
|
| + for (int i = 0; i < 10000; i++) test(false); |
| + try { |
| + return test(true); |
|
srdjan
2012/11/01 20:32:18
ditto and below
Florian Schneider
2012/11/01 22:58:56
Done.
|
| + } catch (e) { |
| + return -12345; |
| + } |
| +} |
| + |
| + |
| +int testConstantArrayAndIndexAt() { |
| + int test(b) { |
| + var a = const [1,2,3,4]; |
| + if (b) return a[400]; |
| + return a[2]; |
| + } |
| + |
| + try { |
| + test(true); |
| + } catch(e) { } |
| + for (int i = 0; i < 10000; i++) test(false); |
| + try { |
| + return test(true); |
| + } catch (e) { |
| + return -12345; |
| + } |
| +} |
| + |
| + |
| +main() { |
| + Expect.equals(-12345, testConstantStringAndIndexCharCodeAt()); |
| + Expect.equals(-12345, testConstantArrayAndIndexAt()); |
| +} |