jasy.script.clean package

Submodules

jasy.script.clean.DeadCode module

This module is used to detect dead code branches and remove them. This is escecially useful after injecting values from the outside which might lead to simple truish equations which can be easily resolved.

This module is directly used by Class after Permutations have been applied (code branches) but can be used more widely, too.

This acts somewhat like the optimizers you find under “optimizer”, but is dependency relevant (Permutations might remove whole blocks of alternative code branches). It makes no sense to optimize this just before compilation. It must be done pretty early during the processing of classes.

The module currently support the following statements:

  • if
  • hook (?:)
  • switch

and can detect good code based on:

  • true
  • false
  • equal: ==
  • strict equal: ===
  • not equal: !=
  • strict not equal: !==
  • not: !
  • and: &&
  • or: ||

It supports the types “string” and “number” during comparisions. It uses a simple equality operator in Python which behaves like strict equal in JavaScript. This also means that number 42 is not equal to string “42” during the dead code analysis.

It can figure out combined expressions as well like:

  • 4 == 4 && !false
jasy.script.clean.DeadCode.cleanup(node)[source]

Reprocesses JavaScript to remove dead paths.

jasy.script.clean.Permutate module

jasy.script.clean.Permutate.patch(node, permutation)[source]

Replaces all occourences with incoming values.

jasy.script.clean.Unused module

exception jasy.script.clean.Unused.Error(name, line)[source]

Bases: Exception

jasy.script.clean.Unused.cleanup(node)[source]

Module contents