// Copyright (c) 2015, 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 that optimized JSArray removeLast() calls generate the same error as // dynamically dispatched calls. import 'package:expect/expect.dart'; @pragma('dart2js:noInline') @pragma('dart2js:assumeDynamic') confuse(x) => x; Error? getError(action()) { try { action(); Expect.fail('must throw'); } on Error catch (e) { return e; } } main() { fault1() { return confuse([]).removeLast(); } fault2() { var a = []; while (confuse(false)) a.add(1); // This one should be optimized since [a] is a growable JSArray. return a.removeLast(); } var e1 = getError(fault1); var e2 = getError(fault2); Expect.equals('$e1', '$e2'); }