Is "currentRenderList.finish();" necessary?

Thank you very much, but I didn’t see why I traversed to clear the reference? And also keep the current frame in useless objects occupying memory after that? Imagine if I didn’t run renderer.render() every frame? Has this part of the memory been wasted in vain soon? Besides, the efficiency is definitely far lower than the direct renderItems.length=0; I am thinking whether there is a better solution, I have a little idea, I hope you can give suggestions, I can only use code to express mine Ideas:

function WebGLRenderList(properties) {
	const renderItems = [];

	const opaque = [];
	const transparent = [];

	const defaultProgram = { id: -1 };
	
	// There is no need for init() here, because we have solved our own troubles in every frame

	function getNextRenderItem(object, geometry, material, groupOrder, z, group) {
		return {
			id: object.id,
			object: object,
			geometry: geometry,
			material: material,
			program: properties.get(material).program || defaultProgram,
			groupOrder: groupOrder,
			renderOrder: object.renderOrder,
			z: z,
			group: group,
		};
	}

	function push(object, geometry, material, groupOrder, z, group) {
		const renderItem = getNextRenderItem(
			object,
			geometry,
			material,
			groupOrder,
			z,
			group
		);

		(material.transparent === true ? transparent : opaque).push(renderItem);
	}

	function unshift(object, geometry, material, groupOrder, z, group) {
		const renderItem = getNextRenderItem(
			object,
			geometry,
			material,
			groupOrder,
			z,
			group
		);

		(material.transparent === true ? transparent : opaque).unshift(renderItem);
	}

	function sort(customOpaqueSort, customTransparentSort) {
		if (opaque.length > 1) opaque.sort(customOpaqueSort || painterSortStable);
		if (transparent.length > 1)
			transparent.sort(customTransparentSort || reversePainterSortStable);
	}
	
	// `currentRenderList.finish();` is executed at the end of the `render()`, before `currentRenderList = null;`.

	function finish() {
		renderItems.length = 0;
		opaque.length = 0;
		transparent.length = 0;
	}

	return {
		opaque: opaque,
		transparent: transparent,

		init: init,
		push: push,
		unshift: unshift,
		finish: finish,

		sort: sort,
	};
}