| // 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. | 
 |  | 
 | // Partial regression test for #40152. | 
 |  | 
 | import 'package:js/js.dart'; | 
 | import 'package:expect/expect.dart'; | 
 |  | 
 | @JS() | 
 | external dynamic eval(String s); | 
 |  | 
 | main() { | 
 |   // Regular JS-interop Array. | 
 |   var a1 = eval('["hello","world"]'); | 
 |  | 
 |   // Array with $ti set to something. | 
 |   // TODO(40175): Update this test if the access is changed. | 
 |   var a2 = eval(r'(function(){var x =["hi","bye"]; x.$ti=[666]; return x})()'); | 
 |  | 
 |   var b1 = List.of(a1.cast<String>()); | 
 |   Expect.listEquals(['hello', 'world'], a1); | 
 |   Expect.listEquals(['hello', 'world'], b1); | 
 |  | 
 |   var b2 = List.of(a2.cast<String>()); | 
 |   Expect.listEquals(['hi', 'bye'], a2); | 
 |   Expect.listEquals(['hi', 'bye'], b2); | 
 | } |