FabricJS Curve Problem

by Qanary

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/fabric.js/1.7.9/fabric.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>

<textarea id="wtd_new_text" rows="1" cols="50"></textarea>
<button id="btn_AddText"  onclick="setText()">Add Text</button>
<button id="btn_UpdateText" onclick="updateText()">Update Text</button>
<canvas id="c" width="300" height="300" style="border:1px solid #000000;"></canvas>

JavaScript

var CurvedText = (function() {

        function CurvedText( canvas, options ){
            this.opts = options || {};
            for ( var prop in CurvedText.defaults ) {
                if (prop in this.opts) { continue; }
                this.opts[prop] = CurvedText.defaults[prop];
            }

            this.canvas = canvas;
            this.group = new fabric.Group([], {selectable: this.opts.selectable,name:'arc',radiusVal:this.opts.radius,spacingVal:this.opts.spacing,textFliping:this.opts.reverse,itemName:'text'});
            this.canvas.add( this.group ) ;
            this.canvas.centerObject( this.group );
            this.setText( this.opts.text );
            this.canvas.setActiveObject( this.group );
            this.canvas.getActiveObject().setCoords();

        }

        CurvedText.prototype.setObj = function(obj) 
        {
            this.group=obj;
        };

        CurvedText.prototype.setText = function( newText ) {

            this.opts.top=this.group.top;
            this.opts.left=this.group.left;

            while ( newText.length !== 0 && this.group.size() > newText.length ) {
                this.group.remove( this.group.item( this.group.size()-1 ) );
            }

            for ( var i=0; i<newText.length; i++ ){
                if ( this.group.item(i) === undefined ){
                    var letter = new fabric.Text(newText[i], {
                        selectable: true
                    });
                    this.group.add( letter );
                }
                else{
                    this.group.item(i).text = newText[i];
                }
            }
            this.opts.text = newText;
            this._setFontStyles();
            this._render();
        };

        CurvedText.prototype._setFontStyles = function() {
            for ( var i=0; i<this.group.size(); i++ ){
                if( this.opts.textStyleName )
                {
                    if( this.opts.textStyleName === 'fontFamily' )
     ...