Buggy code:
@ FacesRenderer ( componentFamily = Dygraph . COMPONENT_FAMILY , rendererType = DygraphRenderer . RENDERER_TYPE ) @ ResourceDependencies ( { @ ResourceDependency ( name = "jsf.js" , target = "head" , library = "javax.faces" ) , @ ResourceDependency ( library = "webjars" , name = ( Version . DYGRAPH_RESOURCES ) + "//dygraph-combined.js" , target = "head" ) , @ ResourceDependency ( library = "webjars" , name = ( Version . DYGRAPH_RESOURCES ) + "//dygraph-interaction-model.js" , target = "head" ) , @ ResourceDependency ( library = "webjars" , name = ( Version . UNDERSCORE_RESOURCES ) + "//underscore-min.js" , target = "head" ) , @ ResourceDependency ( library = "webjars" , name = ( Version . MOMENT_RESOURCES ) + "//moment.js" , target = "head" ) , @ ResourceDependency ( library = "dyfaces" , name = "js//dyfaces.js" ) } ) @ ListenerFor ( systemEventClass = PostAddToViewEvent . class ) public class DygraphRenderer extends Renderer implements ComponentSystemEventListener { public static final String RENDERER_TYPE = "org.dyfaces.component.graph.renderer" ; private static final Gson gson = new Gson ( ) ; private static final GsonBuilder builder = new GsonBuilder ( ) ; private static final Gson gsonExopse = new GsonBuilder ( ) . excludeFieldsWithoutExposeAnnotation ( ) . create ( ) ; @ Override public void decode ( FacesContext context , UIComponent component ) { } @ Override public void encodeBegin ( FacesContext context , UIComponent component ) throws IOException { } @ Override public void encodeEnd ( FacesContext context , UIComponent component ) throws IOException { } private void dygraphMarkup ( FacesContext context , UIComponent component ) throws IOException { } private void bindDyCallbacks ( FacesContext context , String graphJSVar , Dygraph dygraph ) throws IOException { } private Map < String , Object > bindGridOptions ( FacesContext context , String graphJSVar , Dygraph dygraph ) { } private void setGridOptions ( GridOptions gridOptions , Map < String , Object > map ) { } private Map < String , Object > bindAnnotationConfiurations ( FacesContext context , String graphJSVar , Dygraph dygraph ) { } private Map < String , Object > bindSeriesColorOptions ( FacesContext context , String graphJSVar , Dygraph dygraph ) { } private void addDyAnnotations ( FacesContext context , String graphJSVar , Dygraph dygraph ) throws IOException { } private StringBuilder getDyGraphData ( Dygraph dygraph , Map < String , Object > datamodelAttributes ) { } private String getDygraphAttribures ( Dygraph dygraph , Map < String , Object > datamodelAttributes ) { } private String getDygraphCallbacks ( Dygraph dygraph ) { } private void syncDygraphs ( String sync , FacesContext context , String dygraph ) throws IOException { } private void initTooltip ( FacesContext context , String dygraph ) throws IOException { } @ Override public void processEvent ( ComponentSystemEvent event ) throws AbortProcessingException { } private void addScript ( FacesContext context , ComponentSystemEvent event ) { } public String getScript ( FacesContext context , Dygraph dygraph , String event , String graphJSVar ) { ClientBehaviorContext behaviorContext = ClientBehaviorContext . createClientBehaviorContext ( context , dygraph , event , graphJSVar , null ) ; String eventJs = dygraph . getClientBehaviors ( ) . get ( event ) . get ( 0 ) . getScript ( behaviorContext ) ; <START_BUG> return eventJs ; <END_BUG> } }

Fix:
return eventJs . replaceAll ( "\"" , "'" ) ;