code: function(value) {
        // if trying to set wrong value (or ""), reset
        if (!lang.isArray(value)) {
           value = [];
        }
        
        var oldNb = this.ul.childNodes.length;
        var newNb = value.length;
        
        for(var i = 0 ; i < newNb ; i++) {
           if(i < oldNb) {
              this.updateItem(i, value[i]);
           }
           else {
              this.addItem(value[i]);
           }
        }
        
        // remove extra li items if any
        for(var j = newNb; j < oldNb; j++) {
           this._removeItem(newNb); // newNb is always the index of first li to remove (not j !)
        }
     }
docs: Set the value of the list
  @param {Array} value list of values