I don't understand your question. jsd.functionHook is called for JS
function call and return. eval() looks like a function but it is a
platform call and they don't show up in jsd.functionHook.
Code executed via eval() is almost exactly like code executed by
<script> tag:
1) Current flow is interrupted (page parsing for script tag, JS
function for eval).
2) text is compiled,
3) outer (aka top-level aka file-scope) function runs,
4) Current flow continues.
(This similarity makes all the comments about eval being somehow evil
or special puzzling to me).
The funky thing about eval() in Mozilla's implementation is that the
file name is the outer file name and the line numbers make the
functions appear to overlay the outer source. That makes debugging
eval() impossible with jsd,
jjb