3 Nov
2011
3 Nov
'11
02:32
Le programme JS suivant a un comportement bizarre sous V8. J'aurais cru que "foo" est une variable dont on peut changer la valeur, après tout V8 ne donne pas d'erreur lorsqu'on fait "foo=123;" et pourtant print(foo) juste après donne la définition de fonction foo! Est-ce que ça respecte ES5? Marc var foo = 999; function run(thunk) { thunk(); } function main() { print(foo); run(function foo() { print(foo); foo=123; print(foo); }); } main(); /* V8 prints: 999 function foo() { print(foo); foo=123; print(foo); } function foo() { print(foo); foo=123; print(foo); } */