ECMAScript 6, Promise, gestion des dates, etc.
La nouvelle version de la bibliothèque JavaScript de Yahoo! est disponible : YUI 3.15.0.
Elle consiste en partie à une remise à niveau pour supporter les modules de ECMAScript 6. L'implémentation de Y.soon du module Timers à été mise à jour, le module Promise et d'autres également.
App Framework
ModelSync.local a été amélioré pour utiliser un système de stockage différent et plus lisible. Notons cependant que ce système est incompatible avec l'ancien mais l'API reste la même, donc vous n'avez pas besoin de changer votre code sauf si vous souhaitez conserver les données déjà présentes dans localstorage aujourd'hui.
Attribute
La méthode reset() n'échoue plus lorsqu'on réinitialise un attribut appelé 'length'.
Calendar et Date
Le comportement du calendrier est modifié pour utiliser visibility:inherit au lieu de visibility:visible pour assurer la compatibilité avec des superpositions.
Une autre correction concerne les cellules visibles du mois prochain et leur aspect sélectionnable.
Quant au module des dates, des changements antérieurs ont été retiré en l'attente de nouveaux tests plus solides.
Charts
La propriété _maxSize n'était pas systématiquement mise à jour avec les histogrammes de séries.
De plus, l'attribut labelFormat a été ajouté à CategoryAxisBase et CategoryAxis.
Le DOM et le Drag and Drop
Dans IE9, préciser la valeur null pour un input ne résulte plus en node.value ==="null". Du côté de setStyle(), vous pouvez maintenant préciser une opacité égale à 1.
Ensuite, le problème concernant le déclenchement de drop:hit est résolu.
Promise
Il y a des nouvelles méthodes de créations : Promise.resolve et Promise.reject. Un cas d'utilisation typique est le rejet dès le début lorsqu'une une fonction qui retourne un objet Promise obtient quelque chose d'incorrecte en entrée :
Code javascript : | Sélectionner tout |
1 2 3 4 5 6 | function doSomething(aNumber) { if (typeof aNumber !== 'number') { return Promise.reject(new TypeError('Expected a number')); } return somethingElse().then(...); } |
Il y a des méthodes pour combiner les objets. : Promise.all et Promise.race dont la première peut manipuler un tableau.
Quant à elle, Promise.reject gère maintenant les objets Promise comme des valeurs :
Code javascript : | Sélectionner tout |
1 2 3 4 5 6 7 | var promise1 = Promise.resolve('foo'); // a promise for the value foo var promise2 = new Promise(function (resolve) { resolve(promise1); }); promise2.then(function (value) { // value is foo }); |
Finalement, la méthode promise.getStatus() est dépréciée.
Autres changements
Cette version contient d'autres changements qui touchent par exemple aux événements, au module IO, à la performance du Loader, etc.
Téléchargement.
L'article officiel.
La documentation et les modifications.