Script evaluation refactoring

use: localEval to have a synchronous return and eval for a (async)
callback.
change to conditionalDisable plugin to remove eventListeners.
#351