mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 935470 - Update end position after lazily parsing a function. (r=jorendorff)
This commit is contained in:
parent
5b4cbab056
commit
93b4dbe87b
@ -2121,6 +2121,9 @@ Parser<FullParseHandler>::functionArgsAndBody(ParseNode *pn, HandleFunction fun,
|
||||
// Advance this parser over tokens processed by the syntax parser.
|
||||
parser->tokenStream.tell(&position);
|
||||
tokenStream.seek(position, parser->tokenStream);
|
||||
|
||||
// Update the end position of the parse node.
|
||||
pn->pn_pos.end = tokenStream.currentToken().pos.end;
|
||||
}
|
||||
|
||||
if (!addFreeVariablesFromLazyFunction(fun, pc))
|
||||
|
22
js/src/jit-test/tests/debug/Script-getLineOffsets-07.js
Normal file
22
js/src/jit-test/tests/debug/Script-getLineOffsets-07.js
Normal file
@ -0,0 +1,22 @@
|
||||
// Lazy scripts should correctly report line offsets
|
||||
|
||||
var g = newGlobal();
|
||||
var dbg = new Debugger();
|
||||
|
||||
g.eval("// Header comment\n" + // <- line 6 in this file
|
||||
"\n" +
|
||||
"\n" +
|
||||
"function f(n) {\n" + // <- line 9 in this file
|
||||
" var foo = '!';\n" +
|
||||
"}");
|
||||
|
||||
dbg.addDebuggee(g);
|
||||
var scripts = dbg.findScripts();
|
||||
var found = false;
|
||||
for (var i = 0; i < scripts.length; i++) {
|
||||
found = found || scripts[i].startLine == 6;
|
||||
// Nothing should have offsets for the deffun on line 9 if lazy scripts
|
||||
// correctly update the position.
|
||||
assertEq(scripts[i].getLineOffsets(9).length, 0);
|
||||
}
|
||||
assertEq(found, true);
|
Loading…
Reference in New Issue
Block a user