J'ai donc ce morceau complètement légitime de code qui utilise ES6 paramètre par défaut:Eval en safari jette une erreur sur le code de bonne ES6
const foo = 5;
function test(bar = foo) { return bar };
test();
Il fonctionne correctement lorsqu'il est exécuté dans la console de Safari.
Cependant le même morceau de code, lorsqu'il est utilisé dans une fonction eval, comme suit:
eval('const foo = 5; function test(bar = foo) { return bar }; test();');
jette l'erreur suivante:
ReferenceError: Can't find variable: foo
je suis tombé sur cette quand on travaille avec WebPack sourcemaps (eval-source-map
) qui génèrent du code enveloppé dans eval comme ceci, et il casse le paquet généré.
Je me demandais pourquoi cette incohérence?
testé dans Safari v 10.1.2
Semble fonctionner dans Safari 11, donc ce pourrait être juste un bogue. – pvg
Ressemble à un bug lié aux mots clés 'const' /' let'. Apparaît pour travailler avec 'var' dans Safari 10. –
@PatrickKunka Oui cela fonctionne avec Var, semble peut-être problème avec des variables de portée de bloc – Kicu