blob: 9b640606357704681693c01985d3697f84148a12 [file] [log] [blame]
// 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) {}