1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/js/src/jit-test/tests/parallel/ic-getelement.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,64 @@ 1.4 +load(libdir + "parallelarray-helpers.js"); 1.5 + 1.6 +function f(a) { 1.7 + assertArraySeqParResultsEq( 1.8 + range(0, minItemsTestingThreshold), 1.9 + "map", 1.10 + function(i) { return a[i]; }); 1.11 +} 1.12 + 1.13 +function g(a, x) { 1.14 + assertArraySeqParResultsEq( 1.15 + range(0, minItemsTestingThreshold), 1.16 + "map", 1.17 + function(i) { return a[x]; }); 1.18 +} 1.19 + 1.20 +function testICDenseElement() { 1.21 + var a1 = []; 1.22 + var a2 = []; 1.23 + var a3 = []; 1.24 + var a4 = []; 1.25 + var len = minItemsTestingThreshold; 1.26 + for (var i = 0; i < len; i++) { 1.27 + a1[i] = Math.random() * 100 | 0; 1.28 + a2[i] = Math.random() * 100 | 0; 1.29 + a3[i] = Math.random() * 100 | 0; 1.30 + a4[i] = Math.random() * 100 | 0; 1.31 + } 1.32 + f(a1); f({}); f(a2); f(a3); f(a4); f(a3); f(a1); 1.33 +} 1.34 + 1.35 +function testICTypedArrayElement() { 1.36 + var specs = [Int8Array, 1.37 + Uint8Array, 1.38 + Int16Array, 1.39 + Uint16Array, 1.40 + Int32Array, 1.41 + Uint32Array, 1.42 + Float32Array, 1.43 + Float64Array, 1.44 + Uint8ClampedArray]; 1.45 + var len = minItemsTestingThreshold; 1.46 + f({}); 1.47 + for (var i = 0; i < specs.length; i++) { 1.48 + var ta = new specs[i](len); 1.49 + for (var j = 0; j < len; j++) 1.50 + ta[j] = Math.random() * 100; 1.51 + f(ta); 1.52 + } 1.53 +} 1.54 + 1.55 +function testICSlotElement() { 1.56 + var o1 = { foo: 0 }; 1.57 + var o2 = { foo: 0, bar: '' }; 1.58 + var o3 = { foo: 0, bar: '', baz: function () { } }; 1.59 + var o4 = { foo: { } }; 1.60 + g(o1, "foo"); g(o2, "foo"); g(o3, "foo"); g(o2, "foo"); g(o1, "foo"); g(o4, "foo"); 1.61 +} 1.62 + 1.63 +if (getBuildConfiguration().parallelJS) { 1.64 + testICDenseElement(); 1.65 + testICTypedArrayElement(); 1.66 + testICSlotElement(); 1.67 +}