summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimothy Flynn <trflynn89@pm.me>2022-12-07 08:01:34 -0500
committerLinus Groh <mail@linusgroh.de>2022-12-07 16:43:19 +0000
commit8f1f794bbdae2e3fb71414bfbb6c05a58cba2858 (patch)
tree7200e7dd73502f61bcf5f5a91c69e92dbc9daa76
parent1dd865551497096befb147bd1ccaffcdaaf37260 (diff)
downloadserenity-8f1f794bbdae2e3fb71414bfbb6c05a58cba2858.zip
LibJS: Change an error message used by %TypedArray%.prototype.with
ErrorType::InvalidIndex does not encapsulate the reasons why an index may be invalid. For example: let array = new Uint8Array([1, 2, 3, 4, 5]); array.with(10, 0); Will currently yield: [RangeError] Index must be a positive integer Which is misleading because 10 *is* a positive integer.
-rw-r--r--Userland/Libraries/LibJS/Runtime/ErrorTypes.h1
-rw-r--r--Userland/Libraries/LibJS/Runtime/TypedArrayPrototype.cpp2
2 files changed, 2 insertions, 1 deletions
diff --git a/Userland/Libraries/LibJS/Runtime/ErrorTypes.h b/Userland/Libraries/LibJS/Runtime/ErrorTypes.h
index 4d57ab2c84..a34395d0c6 100644
--- a/Userland/Libraries/LibJS/Runtime/ErrorTypes.h
+++ b/Userland/Libraries/LibJS/Runtime/ErrorTypes.h
@@ -296,6 +296,7 @@
M(TypedArrayInvalidBufferLength, "Invalid buffer length for {}: must be a multiple of {}, got {}") \
M(TypedArrayInvalidByteOffset, "Invalid byte offset for {}: must be a multiple of {}, got {}") \
M(TypedArrayInvalidCopy, "Copy between arrays of different content types ({} and {}) is prohibited") \
+ M(TypedArrayInvalidIntegerIndex, "Invalid integer index: {}") \
M(TypedArrayInvalidTargetOffset, "Invalid target offset: must be {}") \
M(TypedArrayOutOfRangeByteOffset, "Typed array byte offset {} is out of range for buffer with length {}") \
M(TypedArrayOutOfRangeByteOffsetOrLength, "Typed array range {}:{} is out of range for buffer with length {}") \
diff --git a/Userland/Libraries/LibJS/Runtime/TypedArrayPrototype.cpp b/Userland/Libraries/LibJS/Runtime/TypedArrayPrototype.cpp
index eea9610e4a..a7307920c0 100644
--- a/Userland/Libraries/LibJS/Runtime/TypedArrayPrototype.cpp
+++ b/Userland/Libraries/LibJS/Runtime/TypedArrayPrototype.cpp
@@ -1680,7 +1680,7 @@ JS_DEFINE_NATIVE_FUNCTION(TypedArrayPrototype::with)
// 9. If ! IsValidIntegerIndex(O, ๐”ฝ(actualIndex)) is false, throw a RangeError exception.
if (!is_valid_integer_index(*typed_array, CanonicalIndex(CanonicalIndex::Type::Index, actual_index)))
- return vm.throw_completion<RangeError>(ErrorType::InvalidIndex);
+ return vm.throw_completion<RangeError>(ErrorType::TypedArrayInvalidIntegerIndex, actual_index);
// 10. Let A be ? TypedArrayCreateSameType(O, ยซ ๐”ฝ(len) ยป).
MarkedVector<Value> arguments(vm.heap());