Closed
Bug 281487
Opened 21 years ago
Closed 21 years ago
on JSOP_ARGDEC with debug: Assertion failure: map->vector && i < map->length
Categories
(Core :: JavaScript Engine, defect, P1)
Tracking
()
VERIFIED
FIXED
mozilla1.8beta2
People
(Reporter: vogge, Assigned: brendan)
Details
(Keywords: js1.5, Whiteboard: [have patch])
Attachments
(1 file)
|
2.02 KB,
patch
|
shaver
:
review+
|
Details | Diff | Splinter Review |
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0
Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20041107 Firefox/1.0
If you start the jsshell and enter:
tracing(true);
var a = function (i,j,k) {
x = j--;
};
a(1,2,3);
you get an assertion on JSOP_ARGDEC:
js> tracing(true);
1: 00008: popv
inputs: tracing(true) @ 1
stack:
js> var a = function (i,j,k) {
x = j--;
};
2: 00000: defvar "a"
stack:
2: 00003: bindname "a"
output: a @ 1
stack: ({a:undefined})
2: 00006: anonfunobj (function (i, j, k) {x = j--;})
output:
function (i, j, k) {
x = j--;
}
@ 2
stack: ({a:undefined}) (function (i, j, k) {x = j--;})
2: 00009: setname "a"
inputs: a,
function (i, j, k) {
x = j--;
}
@ 2
output: a @ 1
stack: (function (i, j, k) {x = j--;})
2: 00012: pop
inputs: a @ 1
stack:
js> a(1,2,3);
5: 00000: name "a"
output: a @ 1
stack: (function (i, j, k) {x = j--;})
5: 00003: pushobj
output: [object global] @ 2
stack: (function (i, j, k) {x = j--;}) ({a:(function (i, j, k) {x = j--;})})
5: 00004: one
output: 1 @ 3
stack: (function (i, j, k) {x = j--;}) ({a:(function (i, j, k) {x = j--;})}) 1
5: 00005: uint16 2
output: 2 @ 4
stack: (function (i, j, k) {x = j--;}) ({a:(function (i, j, k) {x = j--;})}) 1
2
5: 00008: uint16 3
output: 3 @ 5
stack: (function (i, j, k) {x = j--;}) ({a:(function (i, j, k) {x = j--;})}) 1
2 3
5: 00011: call 3
@ 5
3: 00000: bindname "x"
output: x @ 1
stack: ({a:(function (i, j, k) {x = j--;})})
3: 00003: argdec 1
Assertion failure: map->vector && i < map->length, at jsatom.c:871
Reproducible: Always
Steps to Reproduce:
1. start jsshell.exe
2. activate tracing
3. call a function that decreases an argument
Actual Results:
Assertion with a popup-box to send the errorinformation to ms ;-))
Expected Results:
continue without assertion
It seems to happen when decompiling in jsinterp.c(5261):
str = js_DecompileValueGenerator(cx, n, sp[n], NULL);
and then js_GetAtom in jsatom.c
| Assignee | ||
Comment 1•21 years ago
|
||
More tracing badness?
/be
Assignee: general → brendan
Status: UNCONFIRMED → NEW
Ever confirmed: true
Keywords: js1.5
Priority: -- → P1
Target Milestone: --- → mozilla1.8beta2
| Assignee | ||
Comment 2•21 years ago
|
||
js_DecompileValueGenerator failed to adapt long ago when JSOP_GETARG, etc.,
were added to jsopcode.tbl.
/be
Attachment #174115 -
Flags: review?(shaver)
| Assignee | ||
Updated•21 years ago
|
Status: NEW → ASSIGNED
Whiteboard: [have patch]
Comment 3•21 years ago
|
||
Comment on attachment 174115 [details] [diff] [review]
fix
God, I love the decompiler. r=shaver
Attachment #174115 -
Flags: review?(shaver) → review+
| Assignee | ||
Comment 4•21 years ago
|
||
Fixed.
/be
Status: ASSIGNED → RESOLVED
Closed: 21 years ago
Resolution: --- → FIXED
Comment 5•20 years ago
|
||
Checking in regress-281487.js;
/cvsroot/mozilla/js/tests/js1_5/Regress/regress-281487.js,v <-- regress-281487.js
initial revision: 1.1
done
Flags: testcase+
Comment 6•20 years ago
|
||
verified fixed 1.8.x and trunk. Note comment in test
<quote>This test requires a DEBUG build and will cause a false failure to be reported by jsDriver.pl since the tracing output will contain the string FAILED. This test only fails if it causes a crash.</quote>
Status: RESOLVED → VERIFIED
You need to log in
before you can comment on or make changes to this bug.
Description
•