| // Copyright (c) 2020, 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. |
| |
| @pragma('dart2js:noInline') |
| /*member: foo1:function() { |
| return 72; |
| }*/ |
| foo1() { |
| var a = 'Hello'; |
| var b = 0; |
| return a.codeUnitAt(b); |
| // Constant folds to 'return 72;' |
| } |
| |
| @pragma('dart2js:noInline') |
| /*spec|canary.member: foo2:function() { |
| return B.JSString_methods.codeUnitAt$1("Hello", A._asInt(1.5)); |
| }*/ |
| /*prod.member: foo2:function() { |
| return B.JSString_methods.codeUnitAt$1("Hello", 1.5); |
| }*/ |
| foo2() { |
| var a = 'Hello'; |
| dynamic b = 1.5; |
| return a.codeUnitAt(b); |
| // No folding of index type error. |
| } |
| |
| @pragma('dart2js:noInline') |
| /*member: foo3:function() { |
| return B.JSString_methods._codeUnitAt$1("Hello", 55); |
| }*/ |
| foo3() { |
| var a = 'Hello'; |
| dynamic b = 55; |
| return a.codeUnitAt(b); |
| // No folding of index range error. |
| } |
| |
| /*member: main:ignore*/ |
| main() { |
| foo1(); |
| foo2(); |
| foo3(); |
| } |