mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 933269: tests for getElem on TypedObjects (r=nmatsakis).
This commit is contained in:
parent
36609298e4
commit
58fce5e255
@ -0,0 +1,27 @@
|
|||||||
|
/*
|
||||||
|
* Any copyright is dedicated to the Public Domain.
|
||||||
|
* http://creativecommons.org/licenses/publicdomain/
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!this.hasOwnProperty("TypedObject"))
|
||||||
|
quit();
|
||||||
|
|
||||||
|
var PointType = new TypedObject.ArrayType(TypedObject.uint16, 3);
|
||||||
|
var VecPointType = new TypedObject.ArrayType(PointType, 3);
|
||||||
|
|
||||||
|
function foo() {
|
||||||
|
for (var i = 0; i < 10000; i += 9) {
|
||||||
|
var vec = new VecPointType([
|
||||||
|
[i, i+1, i+2],
|
||||||
|
[i+3, i+4, i+5],
|
||||||
|
[i+6, i+7, i+8]]);
|
||||||
|
var sum = vec[0][0] + vec[0][1] + vec[0][2];
|
||||||
|
assertEq(sum, 3*i + 3);
|
||||||
|
sum = vec[1][0] + vec[1][1] + vec[1][2];
|
||||||
|
assertEq(sum, 3*i + 12);
|
||||||
|
sum = vec[2][0] + vec[2][1] + vec[2][2];
|
||||||
|
assertEq(sum, 3*i + 21);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foo();
|
@ -0,0 +1,45 @@
|
|||||||
|
/*
|
||||||
|
* Any copyright is dedicated to the Public Domain.
|
||||||
|
* http://creativecommons.org/licenses/publicdomain/
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!this.hasOwnProperty("TypedObject"))
|
||||||
|
quit();
|
||||||
|
|
||||||
|
var PointType = new TypedObject.StructType({x: TypedObject.uint16,
|
||||||
|
y: TypedObject.uint16,
|
||||||
|
z: TypedObject.uint16});
|
||||||
|
|
||||||
|
var VecPointType = new TypedObject.ArrayType(PointType, 3);
|
||||||
|
|
||||||
|
var PairVecType = new TypedObject.StructType({fst: VecPointType,
|
||||||
|
snd: VecPointType});
|
||||||
|
|
||||||
|
function foo() {
|
||||||
|
for (var i = 0; i < 5000; i += 9) {
|
||||||
|
var p = new PairVecType({fst: [{x: i, y: i+1, z:i+2},
|
||||||
|
{x: i+3, y: i+4, z:i+5},
|
||||||
|
{x: i+6, y: i+7, z:i+8}],
|
||||||
|
snd: [{x: i+9, y:i+10, z:i+11},
|
||||||
|
{x: i+12, y:i+13, z:i+14},
|
||||||
|
{x: i+15, y:i+16, z:i+17}]
|
||||||
|
});
|
||||||
|
var sum;
|
||||||
|
|
||||||
|
sum = p.fst[0].x + p.fst[0].y + p.fst[0].z;
|
||||||
|
assertEq(sum, 3*i + 3);
|
||||||
|
sum = p.fst[1].x + p.fst[1].y + p.fst[1].z;
|
||||||
|
assertEq(sum, 3*i + 12);
|
||||||
|
sum = p.fst[2].x + p.fst[2].y + p.fst[2].z;
|
||||||
|
assertEq(sum, 3*i + 21);
|
||||||
|
|
||||||
|
sum = p.snd[0].x + p.snd[0].y + p.snd[0].z;
|
||||||
|
assertEq(sum, 3*i + 30);
|
||||||
|
sum = p.snd[1].x + p.snd[1].y + p.snd[1].z;
|
||||||
|
assertEq(sum, 3*i + 39);
|
||||||
|
sum = p.snd[2].x + p.snd[2].y + p.snd[2].z;
|
||||||
|
assertEq(sum, 3*i + 48);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foo();
|
@ -0,0 +1,30 @@
|
|||||||
|
/*
|
||||||
|
* Any copyright is dedicated to the Public Domain.
|
||||||
|
* http://creativecommons.org/licenses/publicdomain/
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!this.hasOwnProperty("TypedObject"))
|
||||||
|
quit();
|
||||||
|
|
||||||
|
var PointType = new TypedObject.StructType({x: TypedObject.uint16,
|
||||||
|
y: TypedObject.uint16,
|
||||||
|
z: TypedObject.uint16});
|
||||||
|
|
||||||
|
var VecPointType = new TypedObject.ArrayType(PointType, 3);
|
||||||
|
|
||||||
|
function foo() {
|
||||||
|
for (var i = 0; i < 10000; i += 9) {
|
||||||
|
var vec = new VecPointType([
|
||||||
|
{x: i, y:i+1, z:i+2},
|
||||||
|
{x: i+3, y:i+4, z:i+5},
|
||||||
|
{x: i+6, y:i+7, z:i+8}]);
|
||||||
|
var sum = vec[0].x + vec[0].y + vec[0].z;
|
||||||
|
assertEq(sum, 3*i + 3);
|
||||||
|
sum = vec[1].x + vec[1].y + vec[1].z;
|
||||||
|
assertEq(sum, 3*i + 12);
|
||||||
|
sum = vec[2].x + vec[2].y + vec[2].z;
|
||||||
|
assertEq(sum, 3*i + 21);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foo();
|
@ -0,0 +1,24 @@
|
|||||||
|
/*
|
||||||
|
* Any copyright is dedicated to the Public Domain.
|
||||||
|
* http://creativecommons.org/licenses/publicdomain/
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!this.hasOwnProperty("TypedObject"))
|
||||||
|
quit();
|
||||||
|
|
||||||
|
var Vec3u16Type = new TypedObject.ArrayType(TypedObject.uint16, 3);
|
||||||
|
var PairVec3u16Type = new TypedObject.StructType({fst: Vec3u16Type,
|
||||||
|
snd: Vec3u16Type});
|
||||||
|
|
||||||
|
function foo_u16() {
|
||||||
|
for (var i = 0; i < 15000; i += 6) {
|
||||||
|
var p = new PairVec3u16Type({fst: [i, i+1, i+2],
|
||||||
|
snd: [i+3,i+4,i+5]});
|
||||||
|
var sum = p.fst[0] + p.fst[1] + p.fst[2];
|
||||||
|
assertEq(sum, 3*i + 3);
|
||||||
|
sum = p.snd[0] + p.snd[1] + p.snd[2];
|
||||||
|
assertEq(sum, 3*i + 12);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foo_u16();
|
@ -0,0 +1,19 @@
|
|||||||
|
/*
|
||||||
|
* Any copyright is dedicated to the Public Domain.
|
||||||
|
* http://creativecommons.org/licenses/publicdomain/
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!this.hasOwnProperty("TypedObject"))
|
||||||
|
quit();
|
||||||
|
|
||||||
|
var Vec3u16Type = new TypedObject.ArrayType(TypedObject.uint16, 3);
|
||||||
|
|
||||||
|
function foo_u16() {
|
||||||
|
for (var i = 0; i < 30000; i += 3) {
|
||||||
|
var vec = new Vec3u16Type([i, i+1, i+2]);
|
||||||
|
var sum = vec[0] + vec[1] + vec[2];
|
||||||
|
assertEq(sum, 3*i + 3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foo_u16();
|
@ -0,0 +1,27 @@
|
|||||||
|
/*
|
||||||
|
* Any copyright is dedicated to the Public Domain.
|
||||||
|
* http://creativecommons.org/licenses/publicdomain/
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!this.hasOwnProperty("TypedObject"))
|
||||||
|
quit();
|
||||||
|
|
||||||
|
var PointType = new TypedObject.ArrayType(TypedObject.uint32, 3);
|
||||||
|
var VecPointType = new TypedObject.ArrayType(PointType, 3);
|
||||||
|
|
||||||
|
function foo() {
|
||||||
|
for (var i = 0; i < 10000; i += 9) {
|
||||||
|
var vec = new VecPointType([
|
||||||
|
[i, i+1, i+2],
|
||||||
|
[i+3, i+4, i+5],
|
||||||
|
[i+6, i+7, i+8]]);
|
||||||
|
var sum = vec[0][0] + vec[0][1] + vec[0][2];
|
||||||
|
assertEq(sum, 3*i + 3);
|
||||||
|
sum = vec[1][0] + vec[1][1] + vec[1][2];
|
||||||
|
assertEq(sum, 3*i + 12);
|
||||||
|
sum = vec[2][0] + vec[2][1] + vec[2][2];
|
||||||
|
assertEq(sum, 3*i + 21);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foo();
|
@ -0,0 +1,45 @@
|
|||||||
|
/*
|
||||||
|
* Any copyright is dedicated to the Public Domain.
|
||||||
|
* http://creativecommons.org/licenses/publicdomain/
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!this.hasOwnProperty("TypedObject"))
|
||||||
|
quit();
|
||||||
|
|
||||||
|
var PointType = new TypedObject.StructType({x: TypedObject.uint32,
|
||||||
|
y: TypedObject.uint32,
|
||||||
|
z: TypedObject.uint32});
|
||||||
|
|
||||||
|
var VecPointType = new TypedObject.ArrayType(PointType, 3);
|
||||||
|
|
||||||
|
var PairVecType = new TypedObject.StructType({fst: VecPointType,
|
||||||
|
snd: VecPointType});
|
||||||
|
|
||||||
|
function foo() {
|
||||||
|
for (var i = 0; i < 5000; i += 9) {
|
||||||
|
var p = new PairVecType({fst: [{x: i, y: i+1, z:i+2},
|
||||||
|
{x: i+3, y: i+4, z:i+5},
|
||||||
|
{x: i+6, y: i+7, z:i+8}],
|
||||||
|
snd: [{x: i+9, y:i+10, z:i+11},
|
||||||
|
{x: i+12, y:i+13, z:i+14},
|
||||||
|
{x: i+15, y:i+16, z:i+17}]
|
||||||
|
});
|
||||||
|
var sum;
|
||||||
|
|
||||||
|
sum = p.fst[0].x + p.fst[0].y + p.fst[0].z;
|
||||||
|
assertEq(sum, 3*i + 3);
|
||||||
|
sum = p.fst[1].x + p.fst[1].y + p.fst[1].z;
|
||||||
|
assertEq(sum, 3*i + 12);
|
||||||
|
sum = p.fst[2].x + p.fst[2].y + p.fst[2].z;
|
||||||
|
assertEq(sum, 3*i + 21);
|
||||||
|
|
||||||
|
sum = p.snd[0].x + p.snd[0].y + p.snd[0].z;
|
||||||
|
assertEq(sum, 3*i + 30);
|
||||||
|
sum = p.snd[1].x + p.snd[1].y + p.snd[1].z;
|
||||||
|
assertEq(sum, 3*i + 39);
|
||||||
|
sum = p.snd[2].x + p.snd[2].y + p.snd[2].z;
|
||||||
|
assertEq(sum, 3*i + 48);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foo();
|
@ -0,0 +1,30 @@
|
|||||||
|
/*
|
||||||
|
* Any copyright is dedicated to the Public Domain.
|
||||||
|
* http://creativecommons.org/licenses/publicdomain/
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!this.hasOwnProperty("TypedObject"))
|
||||||
|
quit();
|
||||||
|
|
||||||
|
var PointType = new TypedObject.StructType({x: TypedObject.uint32,
|
||||||
|
y: TypedObject.uint32,
|
||||||
|
z: TypedObject.uint32});
|
||||||
|
|
||||||
|
var VecPointType = new TypedObject.ArrayType(PointType, 3);
|
||||||
|
|
||||||
|
function foo() {
|
||||||
|
for (var i = 0; i < 10000; i += 9) {
|
||||||
|
var vec = new VecPointType([
|
||||||
|
{x: i, y:i+1, z:i+2},
|
||||||
|
{x: i+3, y:i+4, z:i+5},
|
||||||
|
{x: i+6, y:i+7, z:i+8}]);
|
||||||
|
var sum = vec[0].x + vec[0].y + vec[0].z;
|
||||||
|
assertEq(sum, 3*i + 3);
|
||||||
|
sum = vec[1].x + vec[1].y + vec[1].z;
|
||||||
|
assertEq(sum, 3*i + 12);
|
||||||
|
sum = vec[2].x + vec[2].y + vec[2].z;
|
||||||
|
assertEq(sum, 3*i + 21);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foo();
|
@ -0,0 +1,24 @@
|
|||||||
|
/*
|
||||||
|
* Any copyright is dedicated to the Public Domain.
|
||||||
|
* http://creativecommons.org/licenses/publicdomain/
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!this.hasOwnProperty("TypedObject"))
|
||||||
|
quit();
|
||||||
|
|
||||||
|
var Vec3u32Type = new TypedObject.ArrayType(TypedObject.uint32, 3);
|
||||||
|
var PairVec3u32Type = new TypedObject.StructType({fst: Vec3u32Type,
|
||||||
|
snd: Vec3u32Type});
|
||||||
|
|
||||||
|
function foo_u32() {
|
||||||
|
for (var i = 0; i < 15000; i += 6) {
|
||||||
|
var p = new PairVec3u32Type({fst: [i, i+1, i+2],
|
||||||
|
snd: [i+3,i+4,i+5]});
|
||||||
|
var sum = p.fst[0] + p.fst[1] + p.fst[2];
|
||||||
|
assertEq(sum, 3*i + 3);
|
||||||
|
sum = p.snd[0] + p.snd[1] + p.snd[2];
|
||||||
|
assertEq(sum, 3*i + 12);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foo_u32();
|
@ -0,0 +1,19 @@
|
|||||||
|
/*
|
||||||
|
* Any copyright is dedicated to the Public Domain.
|
||||||
|
* http://creativecommons.org/licenses/publicdomain/
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!this.hasOwnProperty("TypedObject"))
|
||||||
|
quit();
|
||||||
|
|
||||||
|
var Vec3u32Type = new TypedObject.ArrayType(TypedObject.uint32, 3);
|
||||||
|
|
||||||
|
function foo_u32() {
|
||||||
|
for (var i = 0; i < 30000; i += 3) {
|
||||||
|
var vec = new Vec3u32Type([i, i+1, i+2]);
|
||||||
|
var sum = vec[0] + vec[1] + vec[2];
|
||||||
|
assertEq(sum, 3*i + 3);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foo_u32();
|
Loading…
Reference in New Issue
Block a user