Question SyntaxError: les instructions 'with' ne sont pas valides en mode strict


J'obtiens cette erreur dans la console safari lorsque j'essaie de faire quelque chose à partir d'un point d'arrêt. Rapport de bogue ici: https://bugs.webkit.org/show_bug.cgi?id=83267

Est-ce que quelqu'un a une solution de contournement? Pour des raisons que je suppose sont liées à ce javascript a cessé de fonctionner sur mon site en safari.

edit: le rapport de bogue contient également des étapes de repro.

une autre édition: je n'utilise pas de déclaration "avec". Ceci est un bug de la console safari.


17
2017-08-31 16:04


origine


Réponses:


le with(obj) {} instruction est obsolète et, en tant que telle, n'est pas valide en mode strict.

Pour résoudre ce problème, désactivez le mode strict ou arrêtez d'utiliser des instructions!


6
2017-08-31 16:07



Mode strict dans les interdictions ECMAScript 5, par exemple. with déclaration. Vous avez deux choix:

  • désactiver le mode strict (supprimer "strict mode"; ligne du fichier / fonction), ou
  • (préféré) éviter d'utiliser with déclarations - ils sont nuisibles et totalement illisibles.

Plus sur le mode strict de John Resig: ECMAScript 5 Mode strict, JSON et autres.

Vous pouvez lire dans l'article, ce mode strict:

  • vous rend incapable de delete variable (comme dans delete foo;),
  • limite l'utilisation de eval,
  • ajoute des limitations aux fonctions (par exemple, accéder à caller et callee),
  • enlève with déclarations,

2
2017-08-31 16:12