1

Bonjour,

Je suis débutant en JavaScript et j'ai récupéré un prototype d'application que j'améliore, mais je n'arrive pas à la faire tourner sur Chrome.
Le problème vient des Yield introduits dans js 1.7, qui ne semblent pas être supportés pas Chrome :
getOutNodesIte : function(n) {
	var nb = this.outdeg(n);
	var pos = 0;
	for (var i = 0; i < nb; ++i) {
		while (!this._nData[n]._adjt[pos])
			++pos; 
		yield this._nData[n]._adjn[pos];++pos;
	}
},

J'ai essayé de remplacer yield par un Iterator, mais Chrome ne semble pas connaître la classe, et m'écrit une erreur dans la console.
<script language="Javascript1.7">
	var lang = { name: 'JavaScript', birthYear: 1995 };  
	var it = new Iterator(lang);  
		for (var pair in it)  
			alert("it : " + pair); // prints each [key, value] pair in turn  
</script>

Est-ce que Chrome gère vraiment JS 1.7 et comment l'activer?
Et est-ce que je peux adapter mon code pour qu'il soit portable sur les versions récentes de FF, Chrome et Opera?

Merci d'avance

2

Je ne sais pas ce qu'il en est du support de JS 1.7 par Chrome, mais ça reste de toutes façons risqué d'utiliser ces features si tu cherches à faire une application compatible. Pourquoi tu ne remplaces pas tout simplement ton yield par une construction manuel de tableau que tu retournes ensuite ?
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

3

Je vais avoir quelque dizaines de milliers de noeuds ; je préfèrais renvoyer un itérateur, même si je dois construire le tableau.
On utilise la lib Prototype dans le projet, du coup on ne peut plus utiliser foreach sur les tableaux,
et je sens venir les personnes qui feront un getOutNodesIte à chaque tour de boucle. :-/
Dans tous les cas, l'application ne pourra, au mieux, tourner que sur les navigateurs qui supportent HTML5, Canvas et WebGL, donc ça réduit pas mal le champ...
Si le code marchait pour la dernière version de chaque navigateur, excepté IE, ce serait bon pour nos besoins.