[RESOLVIDO] Array do Managed Bean pro JavaScript

Bom dia, eu tenho um p:calendar e preciso restringir algumas datas especificas através do atributo beforeShowDay do p:calendar.

O problema esta em mandar o valor do Managed Bean pro JavaScript
Tentei assim ja:

//#{bean.disabledDays} retorna String[]. Ex: "3-3-2018", "3-4-2018"
var disabledDays = "#{bean.disabledDays}";


var disabledDays = [
			    	<ui:remove var="days" value="#{bean.disabledDays}" varStatus="loop">
			    		"#{days}"#{loop.last ? '' : ','}
			    	</ui:remove>
			    ];

Em que momento invoca este método? É uma chamada ajax?

Documentação: Client side callback to execute before displaying a
date, used to customize date display. Use beforeShowDay javascript callback to customize the look of each date.

//teste é nome da function js
<p:calendar beforeShowDay="teste" required="true" locale="pt" ></p:calendar>

<h:outputScript>	
			//<![CDATA[
			function teste(date) {
			  var disabledDays = [
			    	<ui:remove var="days" value="#{bean.disabledDays}" varStatus="loop">
			    		"#{days}"#{loop.last ? '' : ','}
			    	</ui:remove>
			    ];
				//Aqui funciona perfeitamente caso eu deixe o valor de disabledDays estático
			    var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();
			    for (i = 0; i < disabledDays.length; i++) {
			        if($.inArray((m+1) + '-' + d + '-' + y,disabledDays) != -1) {
			            return [false];
			        }
			    }
			    return [true];
			}

Resolvi assim:

function teste(date) {
				var disabledDays = [
				<ui:repeat var="days"  value="#{bean.disabledDays}" varStatus="loop">
				"#{days}"#{loop.last ? "" : ","}
				</ui:repeat>
				];
				//<![CDATA[
			    var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();
			    for (i = 0; i < disabledDays.length; i++) {
			        if($.inArray((m+1) + '-' + d + '-' + y,disabledDays) != -1) {
			            return [false];
			        }
			    }
			    return [true];
				//]]>
			}