| // 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. |
| |
| // Test effect of NativeBehavior on list tracing. |
| |
| /// ignore: IMPORT_INTERNAL_LIBRARY |
| import 'dart:_foreign_helper' show JS; |
| |
| /*member: main:[null]*/ |
| main() { |
| test1(); |
| test2(); |
| test3(); |
| test4(); |
| } |
| |
| /*member: test1:[null]*/ |
| test1() { |
| var list = [42]; |
| JS('', '#', list); // '#' is by default a no-op. |
| witness1(list); |
| } |
| |
| /*member: witness1:[null]*/ |
| witness1( |
| /*Container([exact=JSExtendableArray], element: [exact=JSUInt31], length: 1)*/ x) {} |
| |
| /*member: test2:[null]*/ |
| test2() { |
| var list = [42]; |
| JS('effects:all;depends:all', '#', list); |
| witness2(list); |
| } |
| |
| /*member: witness2:[null]*/ |
| witness2( |
| /*Container([exact=JSExtendableArray], element: [null|subclass=Object], length: null)*/ x) {} |
| |
| /*member: test3:[null]*/ |
| test3() { |
| var list = [42]; |
| JS('', '#.slice(0)', list); |
| witness3(list); |
| } |
| |
| /*member: witness3:[null]*/ |
| witness3( |
| /*Container([exact=JSExtendableArray], element: [null|subclass=Object], length: null)*/ x) {} |
| |
| /*member: test4:[null]*/ |
| test4() { |
| var list = [42]; |
| JS('effects:none;depends:all', '#.slice(0)', list); |
| witness4(list); |
| } |
| |
| /*member: witness4:[null]*/ |
| witness4( |
| /*Container([exact=JSExtendableArray], element: [exact=JSUInt31], length: 1)*/ x) {} |