1425bb815Sopenharmony_ci// Copyright JS Foundation and other contributors, http://js.foundation
2425bb815Sopenharmony_ci//
3425bb815Sopenharmony_ci// Licensed under the Apache License, Version 2.0 (the "License");
4425bb815Sopenharmony_ci// you may not use this file except in compliance with the License.
5425bb815Sopenharmony_ci// You may obtain a copy of the License at
6425bb815Sopenharmony_ci//
7425bb815Sopenharmony_ci//     http://www.apache.org/licenses/LICENSE-2.0
8425bb815Sopenharmony_ci//
9425bb815Sopenharmony_ci// Unless required by applicable law or agreed to in writing, software
10425bb815Sopenharmony_ci// distributed under the License is distributed on an "AS IS" BASIS
11425bb815Sopenharmony_ci// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12425bb815Sopenharmony_ci// See the License for the specific language governing permissions and
13425bb815Sopenharmony_ci// limitations under the License.
14425bb815Sopenharmony_ci
15425bb815Sopenharmony_ciassert(Array.isArray([]) === true);
16425bb815Sopenharmony_ciassert(Array.isArray([1]) === true);
17425bb815Sopenharmony_ciassert(Array.isArray(new Array()) === true);
18425bb815Sopenharmony_ciassert(Array.isArray(new Array('a', 'b', 'c', 'd')) === true);
19425bb815Sopenharmony_ciassert(Array.isArray(new Array(3)) === true);
20425bb815Sopenharmony_ciassert(Array.isArray(Array.prototype) === true);
21425bb815Sopenharmony_ciassert(Array.isArray(new Proxy([], {})) === true);
22425bb815Sopenharmony_ci
23425bb815Sopenharmony_ciassert(Array.isArray() === false);
24425bb815Sopenharmony_ciassert(Array.isArray({}) === false);
25425bb815Sopenharmony_ciassert(Array.isArray(null) === false);
26425bb815Sopenharmony_ciassert(Array.isArray(undefined) === false);
27425bb815Sopenharmony_ciassert(Array.isArray(17) === false);
28425bb815Sopenharmony_ciassert(Array.isArray('Array') === false);
29425bb815Sopenharmony_ciassert(Array.isArray(true) === false);
30425bb815Sopenharmony_ciassert(Array.isArray(false) === false);
31425bb815Sopenharmony_ciassert(Array.isArray(new Uint8Array(32)) === false);
32425bb815Sopenharmony_ciassert(Array.isArray({ __proto__: Array.prototype }) === false);
33425bb815Sopenharmony_ci
34425bb815Sopenharmony_civar revocable = Proxy.revocable ({}, {});
35425bb815Sopenharmony_civar proxy = revocable.proxy;
36425bb815Sopenharmony_cirevocable.revoke();
37425bb815Sopenharmony_ci
38425bb815Sopenharmony_citry {
39425bb815Sopenharmony_ci  Array.isArray(proxy);
40425bb815Sopenharmony_ci  assert(false);
41425bb815Sopenharmony_ci} catch (e) {
42425bb815Sopenharmony_ci  assert(e instanceof TypeError);
43425bb815Sopenharmony_ci}
44425bb815Sopenharmony_ci
45425bb815Sopenharmony_civar revocable = Proxy.revocable ([], {});
46425bb815Sopenharmony_civar proxy = revocable.proxy;
47425bb815Sopenharmony_ci
48425bb815Sopenharmony_ciassert(Array.isArray(proxy) === true);
49