Reviewers: kpreid_google,
Description:
Chrome makes stacktrace info available in structured for through the
debugging API, including nested positions for nested eval positions,
except for
https://code.google.com/p/v8/issues/detail?id=4268 . Before
this CL we were not extracting nested eval position info. Now we do,
while working around that bug.
FF makes stacktrace info available as a string, including nested eval
position info. Before this CL, we were scraping this string
imperfectly with RegExps, but missing the eval position info. Now we
scrape that as well.
Before this CL, we were using Causeway's JSON format for representing
stack trace structure. But Causeway's format did not anticipate nested
eval positions. This CL defines and uses an extended Causeway format
that includes room for this info.
Enhace the rendering of a Causeway stack into a v8-like stack trace
string to also render the nested eval positions of the extended
Causeway format.
Adds a confineLater to go with compileExprLater,
by analogy to confine and compileExpr.
Revise explicit.html to show these enhanced stacktraces, while also
showing more cases of eval strings that are and are not annotated with
source position info.
Please review this at
https://codereview.appspot.com/256790043/
Affected files (+365, -218 lines):
M src/com/google/caja/ses/compileExprLater.js
M src/com/google/caja/ses/debug.js
M src/com/google/caja/ses/explicit.html
M src/com/google/caja/ses/useHTMLLogger.js