The evaluator inserts line number #0 to the script, see lps/components/debugger/platform/swf8/eval.lzs:
lz_script : "#file interactive-eval-"+ seq +
"\n#line 0\n" + expr } );

The <AFTER_LINE_DIRECTIVE> add -1 to the line info:
<AFTER_LINE_DIRECTIVE> SKIP: {
  <~[]>
  {
    input_stream.adjustBeginLineColumn(beginLine - 1, 1);
    input_stream.backup(1);
  } : DEFAULT
}

That makes: 0 - 1 = -1  :-(


On 1/10/2011 5:08 PM, P T Withington wrote:
Approved.

I thought we had the evaluator hand in a fake file/line something like 
"debug-eval" and an ever incrementing counter.  Who is passing in a negative 
line number, that seems bogus.

On 2011-01-08, at 16:18, André Bargull wrote:

Change bargull-20110108-Zpd by barg...@bargull02 on 2011-01-08 22:13:00
in /home/anba/src/svn/openlaszlo/trunk
for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: Don't emit negative line-info when substituting statements

Bugs Fixed: LPP-8758 (Cannot use "subclassof" operator in debugger) (partial)

Technical Reviewer: ptw
QA Reviewer: (pending)

Details:
Don't emit negative line-number info, the parser only allows positive 
line-numbers.


Tests:
Eval'ing 'Object subclassof Object' works in swf8

Files:
M WEB-INF/lps/server/src/org/openlaszlo/sc/Compiler.java

Changeset: http://svn.openlaszlo.org/openlaszlo/patches/bargull-20110108-Zpd.tar



Reply via email to