blob: 7e15f38c420227b2edd1487c0b9607313d63a9cc [file] [log] [blame]
description(
"This test checks the behavior of the Array.prototype.fill()"
);
shouldBe("Array.prototype.fill.length", "1");
shouldBe("Array.prototype.fill.name", "'fill'");
shouldBe("[0, 0, 0, 0, 0].fill()", "[undefined, undefined, undefined, undefined, undefined]");
shouldBe("[0, 0, 0, 0, 0].fill(3)", "[3, 3, 3, 3, 3]");
shouldBe("[0, 0, 0, 0, 0].fill(3, 1)", "[0, 3, 3, 3, 3]");
shouldBe("[0, 0, 0, 0, 0].fill(3, 1, 3)", "[0, 3, 3, 0, 0]");
shouldBe("[0, 0, 0, 0, 0].fill(3, 1, 1000)", "[0, 3, 3, 3, 3]");
shouldBe("[0, 0, 0, 0, 0].fill(3, -2, 1000)", "[0, 0, 0, 3, 3]");
shouldBe("[0, 0, 0, 0, 0].fill(3, -2, 4)", "[0, 0, 0, 3, 0]");
shouldBe("[0, 0, 0, 0, 0].fill(3, -2, -1)", "[0, 0, 0, 3, 0]");
shouldBe("[0, 0, 0, 0, 0].fill(3, -2, -3)", "[0, 0, 0, 0, 0]");
shouldBe("[0, 0, 0, 0, 0].fill(3, undefined, 4)", "[3, 3, 3, 3, 0]");
shouldBe("[ , , , , 0].fill(3, 1, 3)", "[, 3, 3, , 0]");
debug("Array-like object with invalid lengths");
var throwError = function throwError() {
throw new Error("should not reach here");
};
shouldBe("var obj = Object.freeze({ 0: 1, length: 0 }); Array.prototype.fill.call(obj, throwError); JSON.stringify(obj)", "'{\"0\":1,\"length\":0}'");
shouldBe("var obj = Object.freeze({ 0: 1, length: -0 }); Array.prototype.fill.call(obj, throwError); JSON.stringify(obj)", "'{\"0\":1,\"length\":0}'");
shouldBe("var obj = Object.freeze({ 0: 1, length: -3 }); Array.prototype.fill.call(obj, throwError); JSON.stringify(obj)", "'{\"0\":1,\"length\":-3}'");
successfullyParsed = true;