From 36d22d82aa202bb199967e9512281e9a53db42c9 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sun, 7 Apr 2024 21:33:14 +0200 Subject: Adding upstream version 115.7.0esr. Signed-off-by: Daniel Baumann --- js/src/jit-test/tests/debug/Frame-onStep-17.js | 35 ++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 js/src/jit-test/tests/debug/Frame-onStep-17.js (limited to 'js/src/jit-test/tests/debug/Frame-onStep-17.js') diff --git a/js/src/jit-test/tests/debug/Frame-onStep-17.js b/js/src/jit-test/tests/debug/Frame-onStep-17.js new file mode 100644 index 0000000000..a73bd2187c --- /dev/null +++ b/js/src/jit-test/tests/debug/Frame-onStep-17.js @@ -0,0 +1,35 @@ +// Test how stepping interacts with for-in/of statements. + +var g = newGlobal({newCompartment: true}); +var dbg = new Debugger; +var gw = dbg.addDebuggee(g); +var log; +var previous; + +dbg.onDebuggerStatement = function (frame) { + let debugLine = frame.script.getOffsetLocation(frame.offset).lineNumber; + log = ''; + previous = ''; + frame.onStep = function() { + let foundLine = this.script.getOffsetLocation(this.offset).lineNumber; + if (this.script.getLineOffsets(foundLine).indexOf(this.offset) >= 0) { + let thisline = (foundLine - debugLine).toString(16); + if (thisline !== previous) { + log += thisline; + previous = thisline; + } + } + }; +}; + +function testOne(decl, loopKind) { + let body = "var array = [2, 4, 6];\ndebugger;\nfor (" + decl + " iter " + + loopKind + " array) {\n print(iter);\n}\n"; + g.eval(body); + assertEq(log, "12121214"); +} + +for (let decl of ["", "var", "let"]) { + testOne(decl, "in"); + testOne(decl, "of"); +} -- cgit v1.2.3