diff --git a/Userland/Libraries/LibJS/Bytecode/Op.cpp b/Userland/Libraries/LibJS/Bytecode/Op.cpp index 8202bc1f8f..795ae98e0e 100644 --- a/Userland/Libraries/LibJS/Bytecode/Op.cpp +++ b/Userland/Libraries/LibJS/Bytecode/Op.cpp @@ -127,11 +127,12 @@ ThrowCompletionOr NewBigInt::execute_impl(Bytecode::Interpreter& interpret ThrowCompletionOr NewArray::execute_impl(Bytecode::Interpreter& interpreter) const { - Vector elements; - elements.ensure_capacity(m_element_count); - for (size_t i = 0; i < m_element_count; i++) - elements.append(interpreter.reg(m_elements[i])); - interpreter.accumulator() = Array::create_from(interpreter.global_object(), elements); + auto* array = MUST(Array::create(interpreter.global_object(), 0)); + for (size_t i = 0; i < m_element_count; i++) { + auto& value = interpreter.reg(m_elements[i]); + array->indexed_properties().put(i, value, default_attributes); + } + interpreter.accumulator() = array; return {}; }