_getNodeRef( cache, index, object ) {

    		if ( cache.refs[ index ] <= 1 ) return object;

    		const ref = object.clone();

    		// Propagates mappings to the cloned object, prevents mappings on the
    		// original object from being lost.
    		const updateMappings = ( original, clone ) => {

    			const mappings = this.associations.get( original );
    			if ( mappings != null ) {

    				this.associations.set( clone, mappings );

    			}

    			for ( const [ i, child ] of original.children.entries() ) {

    				updateMappings( child, clone.children[ i ] );

    			}

    		};

    		updateMappings( object, ref );

    		ref.name += '_instance_' + ( cache.uses[ index ] ++ );

    		return ref;

    	}
Returns a reference to a shared resource, cloning it if necessary.