mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Backed out changeset 70d9f3f8aaf1 (bug 1078975) for jsreftest failures.
CLOSED TREE
This commit is contained in:
parent
b86c3f7069
commit
823c49001d
@ -1,70 +0,0 @@
|
||||
/*
|
||||
* Any copyright is dedicated to the Public Domain.
|
||||
* https://creativecommons.org/publicdomain/zero/1.0/
|
||||
*/
|
||||
|
||||
var BUGNUMBER = 1078975;
|
||||
var summary = "Implement %TypedArray%.prototype.{find, findIndex}";
|
||||
print(BUGNUMBER + ": " + summary);
|
||||
|
||||
const constructors = [
|
||||
Int8Array,
|
||||
Uint8Array,
|
||||
Uint8ClampedArray,
|
||||
Int16Array,
|
||||
Uint16Array,
|
||||
Int32Array,
|
||||
Uint32Array,
|
||||
Float32Array,
|
||||
Float64Array
|
||||
];
|
||||
|
||||
const methods = ["find", "findIndex"];
|
||||
|
||||
constructors.forEach(constructor => {
|
||||
methods.forEach(method => {
|
||||
var arr = new constructor([0, 1, 2, 3, 4, 5]);
|
||||
// test that this.length is never called
|
||||
Object.defineProperty(arr, "length", {
|
||||
get() {
|
||||
throw new Error("length accessor called");
|
||||
}
|
||||
});
|
||||
assertEq(arr[method].length, 1);
|
||||
assertEq(arr[method](v => v === 3), 3);
|
||||
assertEq(arr[method](v => v === 6), method === "find" ? undefined : -1);
|
||||
|
||||
var thisValues = [undefined, null, true, 1, "foo", [], {}];
|
||||
if (typeof Symbol == "function")
|
||||
thisValues.push(Symbol());
|
||||
|
||||
thisValues.forEach(thisArg =>
|
||||
assertThrowsInstanceOf(() => arr[method].call(thisArg, () => true), TypeError)
|
||||
);
|
||||
|
||||
assertThrowsInstanceOf(() => arr[method](), TypeError);
|
||||
assertThrowsInstanceOf(() => arr[method](1), TypeError);
|
||||
|
||||
// ToDo neutering
|
||||
arr = new constructor([1, 2, 3]);
|
||||
assertEq(arr[method](v => v === 2), method === "find" ? 2 : 1);
|
||||
neuter(arr.buffer, "change-data");
|
||||
assertEq(arr[method](v => v === 2), method === "find" ? undefined : -1);
|
||||
});
|
||||
});
|
||||
|
||||
[Float32Array, Float64Array].forEach(constructor => {
|
||||
var arr = new constructor([-0, 0, 1, 5, NaN, 6]);
|
||||
assertEq(arr.find(v => Number.isNaN(v)), NaN);
|
||||
assertEq(arr.findIndex(v => Number.isNaN(v)), 4);
|
||||
|
||||
assertEq(arr.find(v => Object.is(v, 0)), 0);
|
||||
assertEq(arr.findIndex(v => Object.is(v, 0)), 1);
|
||||
|
||||
assertEq(arr.find(v => Object.is(v, -0)), -0);
|
||||
assertEq(arr.findIndex(v => Object.is(v, -0)), 0);
|
||||
})
|
||||
|
||||
|
||||
if (typeof reportCompare === "function")
|
||||
reportCompare(true, true);
|
Loading…
Reference in New Issue
Block a user