1// Copyright JS Foundation and other contributors, http://js.foundation 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15assert(Array.isArray([]) === true); 16assert(Array.isArray([1]) === true); 17assert(Array.isArray(new Array()) === true); 18assert(Array.isArray(new Array('a', 'b', 'c', 'd')) === true); 19assert(Array.isArray(new Array(3)) === true); 20assert(Array.isArray(Array.prototype) === true); 21assert(Array.isArray(new Proxy([], {})) === true); 22 23assert(Array.isArray() === false); 24assert(Array.isArray({}) === false); 25assert(Array.isArray(null) === false); 26assert(Array.isArray(undefined) === false); 27assert(Array.isArray(17) === false); 28assert(Array.isArray('Array') === false); 29assert(Array.isArray(true) === false); 30assert(Array.isArray(false) === false); 31assert(Array.isArray(new Uint8Array(32)) === false); 32assert(Array.isArray({ __proto__: Array.prototype }) === false); 33 34var revocable = Proxy.revocable ({}, {}); 35var proxy = revocable.proxy; 36revocable.revoke(); 37 38try { 39 Array.isArray(proxy); 40 assert(false); 41} catch (e) { 42 assert(e instanceof TypeError); 43} 44 45var revocable = Proxy.revocable ([], {}); 46var proxy = revocable.proxy; 47 48assert(Array.isArray(proxy) === true); 49