IROH.JS : un outil d'analyse dynamique de code pour JavaScript

Par:
fredericmazue

lun, 18/09/2017 - 14:06

L'analyse statique du code permet de détecter les erreurs de codage, mais cela n'assure pas pour autant que votre code se comporte comme vous l'aviez espéré. Si ce n'est pas le cas, l'analyse dynamique de code peut vous aider.

IROH.JS est un outil d'analyse dynamique de code pour JavaScript. Sans changer le déroulement du programme, il patche votre code afin d'enregistrer tout ce qui se passe au sein de celui-ci. Il garde une trace de la pile d'appel pour vous permettre de visualiser comment votre code se comporte.

En outre il permet de tout modifier à la volée au cours d'une exécution : type, paramètres, valeurs de retour, objets alloués, variables, expressions, appels de fonctions, etc.

IRON.JS est en version bêta pour le moment. Ses développeurs veulent s'efforcer de fournir un support complet de EcmaScript 5 dans un premier temps, même si un sous-ensemble de fonctionnalité EcmaScript 6 est déjà supporté. IRON.JS peut être utilisé avec node.js puisqu'il est capable d'intercepter les appels require.

Voici par exemple comment IROH.JS vous permet de visualiser le flux d'exécution de l'appel d'une fonction factorielle.

Le code :

function factorial(n) {
  if (n === 0) return 1;
  return n * factorial(n - 1);
};

factorial(3); 

Le flux d'exécution :

call factorial ( [3] )
  call factorial ( [2] )
    call factorial ( [1] )
      call factorial ( [0] )
        if
        if end
      call factorial end -> [1]
    call factorial end -> [1]
  call factorial end -> [2]
call factorial end -> [6]

IROH.JS est open source, disponible sur GitHub.