From 663a5e97ca58f0cfd21810f6aad87496c46e5150 Mon Sep 17 00:00:00 2001 From: Timothy Flynn Date: Thu, 31 Oct 2024 12:29:31 -0400 Subject: [PATCH] LibJS: Add an Array::create_from overload to accept a plain array This is just a wrapper to easily construct an Array from a span. This avoids creating a Vector of values that are possiby Objects. One such case is in ArrayIteratorPrototype::next. --- Userland/Libraries/LibJS/Runtime/Array.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/Userland/Libraries/LibJS/Runtime/Array.h b/Userland/Libraries/LibJS/Runtime/Array.h index 75204547a07..8ba454912ea 100644 --- a/Userland/Libraries/LibJS/Runtime/Array.h +++ b/Userland/Libraries/LibJS/Runtime/Array.h @@ -28,6 +28,12 @@ public: static NonnullGCPtr create_from(Realm&, Vector const&); static NonnullGCPtr create_from(Realm&, ReadonlySpan const&); + template + static NonnullGCPtr create_from(Realm& realm, Value const (&values)[N]) + { + return create_from(realm, ReadonlySpan { values, N }); + } + // Non-standard but equivalent to CreateArrayFromList. template static NonnullGCPtr create_from(Realm& realm, ReadonlySpan elements, Function map_fn)