Closed Bug 472454 Opened 16 years ago Closed 16 years ago

TM: Crash [@ js_CheckRedeclaration]

Categories

(Core :: JavaScript Engine, defect, P2)

x86
macOS
defect

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: gkw, Unassigned)

Details

(Keywords: assertion, crash, testcase)

Crash Data

this.__defineSetter__("x", Math.pow);
window = x;
for (var a = 0; a < 2; ++a) {
  let (y = false) { do {for each (let x in [false, '']) {} } while([x = window].map(function(){})); }  
}

crashes opt near null at js_CheckRedeclaration and asserts dbg at:

Assertion failure: !JSVAL_IS_PRIMITIVE(lval), at ../jsinterp.cpp:6216

Seems to be TM-only.
Flags: blocking1.9.1?
Flags: blocking1.9.1? → blocking1.9.1+
Priority: -- → P2
Cannot reproduce. Is this in shell or browser? Build id / revid? Tracemonkey revs from your reporting date (and many dates nearby -- a month ago, the present) don't seem to display it, in shell.
(In reply to comment #1)
> Cannot reproduce. Is this in shell or browser? Build id / revid? Tracemonkey
> revs from your reporting date (and many dates nearby -- a month ago, the
> present) don't seem to display it, in shell.

I now get a hang in both debug and opt trunk js shell, with and without -j. I'm not sure if this is working as expected.
I think hanging is the expected behavior:

[x = window].map(function(){})

is an array, which is truthy for the do..while loop (because an array is an object).
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → WORKSFORME
Flags: in-testsuite?
Crash Signature: [@ js_CheckRedeclaration]
You need to log in before you can comment on or make changes to this bug.