WSL should have more tests of type checking failures
[WebKit-https.git] / JSTests / es6 / Proxy_internal_get_calls_Array.prototype_iteration_methods.js
1 function test() {
2
3 // Array.prototype methods -> Get -> [[Get]]
4 var methods = ['copyWithin', 'every', 'fill', 'filter', 'find', 'findIndex', 'forEach',
5   'indexOf', 'join', 'lastIndexOf', 'map', 'reduce', 'reduceRight', 'some'];
6 var get;
7 var p = new Proxy({length: 2, 0: '', 1: ''}, { get: function(o, k) { get.push(k); return o[k]; }});
8 for(var i = 0; i < methods.length; i+=1) {
9   get = [];
10   Array.prototype[methods[i]].call(p, Function());
11   if (get + '' !== (
12     methods[i] === 'fill' ? "length" :
13     methods[i] === 'every' ? "length,0" :
14     methods[i] === 'lastIndexOf' || methods[i] === 'reduceRight' ? "length,1,0" :
15     "length,0,1"
16   )) {
17     return false;
18   }
19 }
20 return true;
21       
22 }
23
24 if (!test())
25     throw new Error("Test failed");
26