summaryrefslogtreecommitdiffstats
path: root/js/src/tests/non262/TypedArray/toLocaleString-detached.js
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-07 19:33:14 +0000
commit36d22d82aa202bb199967e9512281e9a53db42c9 (patch)
tree105e8c98ddea1c1e4784a60a5a6410fa416be2de /js/src/tests/non262/TypedArray/toLocaleString-detached.js
parentInitial commit. (diff)
downloadfirefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.tar.xz
firefox-esr-36d22d82aa202bb199967e9512281e9a53db42c9.zip
Adding upstream version 115.7.0esr.upstream/115.7.0esrupstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--js/src/tests/non262/TypedArray/toLocaleString-detached.js38
1 files changed, 38 insertions, 0 deletions
diff --git a/js/src/tests/non262/TypedArray/toLocaleString-detached.js b/js/src/tests/non262/TypedArray/toLocaleString-detached.js
new file mode 100644
index 0000000000..fe95ae689c
--- /dev/null
+++ b/js/src/tests/non262/TypedArray/toLocaleString-detached.js
@@ -0,0 +1,38 @@
+if (typeof detachArrayBuffer === "function") {
+ const originalNumberToLocaleString = Number.prototype.toLocaleString;
+
+ // Throws if array buffer is detached.
+ for (let constructor of typedArrayConstructors) {
+ let typedArray = new constructor(42);
+ detachArrayBuffer(typedArray.buffer);
+ assertThrowsInstanceOf(() => typedArray.toLocaleString(), TypeError);
+ }
+
+ // Throws a TypeError if detached in Number.prototype.toLocaleString.
+ for (let constructor of typedArrayConstructors) {
+ Number.prototype.toLocaleString = function() {
+ "use strict";
+ if (!detached) {
+ detachArrayBuffer(typedArray.buffer);
+ detached = true;
+ }
+ return this;
+ };
+
+ // No error for single element arrays.
+ let detached = false;
+ let typedArray = new constructor(1);
+ assertEq(typedArray.toLocaleString(), "0");
+ assertEq(detached, true);
+
+ // TypeError if more than one element is present.
+ detached = false;
+ typedArray = new constructor(2);
+ assertThrowsInstanceOf(() => typedArray.toLocaleString(), TypeError);
+ assertEq(detached, true);
+ }
+ Number.prototype.toLocaleString = originalNumberToLocaleString;
+}
+
+if (typeof reportCompare === "function")
+ reportCompare(true, true);