Closed Bug 620643 Opened 15 years ago Closed 15 years ago

JM: "Assertion failure: obj" with typed array

Categories

(Core :: JavaScript Engine, defect)

x86
macOS
defect
Not set
critical

Tracking

()

RESOLVED FIXED
Tracking Status
blocking2.0 --- betaN+

People

(Reporter: jruderman, Assigned: bhackett1024)

Details

(Keywords: assertion, testcase, Whiteboard: fixed-in-tracemonkey)

Attachments

(2 files)

Attached file stack trace
./js -m var a = new Int32Array(); +(a[0]={}); Assertion failure: obj, at js/src/jsval.h:487
Autobisect incorrectly blames rev 7b2fa4fb0e8f, a merge in August from TM to JM. Getting the correct regressing changeset would be difficult.
A more insane testcase triggers: Assertion failure: v.toGCThing(), at js/src/jsgcinlines.h:535
blocking2.0: --- → ?
Assignee: general → bhackett1024
Attached patch patchSplinter Review
The problem is that stubs::SetElem calls setProperty but reuses the value it clobbers for the result of the SETELEM, rather than the original rvalue. The rvalue is an object, setProperty changes it to undefined, JIT code thinks the result is still an object so ends up with a mangled Value. I went through StubCalls.cpp and this is the only place this was done.
Attachment #499298 - Flags: review?(dmandelin)
Comment on attachment 499298 [details] [diff] [review] patch Thanks for the explanatory note. Could you also change the name 'retval' to 'rval' since it isn't actually the retval now (and of course wasn't truly before)?
Attachment #499298 - Flags: review?(dmandelin) → review+
Whiteboard: fixed-in-tracemonkey
blocking2.0: ? → betaN+
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
A testcase for this bug was automatically identified at js/src/jit-test/tests/jaeger/bug620643.js.
Flags: in-testsuite+
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: