Closed Bug 465132 Opened 16 years ago Closed 16 years ago

TM: Mathematical constants aren't

Categories

(Core :: JavaScript Engine, defect, P2)

x86
macOS
defect

Tracking

()

VERIFIED FIXED

People

(Reporter: jruderman, Assigned: graydon)

Details

(Keywords: testcase, verified1.9.1)

js> for(i=0;i<9;++i) print("" + (++Math.PI)) 4.141592653589793 4.141592653589793 4.141592653589793 5.141592653589793 6.141592653589793 7.141592653589793 8.141592653589793 9.141592653589793 10.141592653589793
Confirmed. I don't think this is a blocker for b2.
It's a release blocker though -- readonly is important for certain DOM integrity properties. /be
Flags: blocking1.9.1?
Flags: blocking1.9.1? → blocking1.9.1+
It's worse than just "surprising behavior" or "bad integrity"; it causes the interpreter's and tracer's view of what's in a slot to diverge. As far as I can tell anyway (which is still rather murky), this is what's causing the crash in bug 465443. At bare minimum we should cleanly abort recording when we see a const, and revisit this later (perhaps when the ES-* process actually defines const sensibly?)
Assignee: general → graydon
Oh, duh .. here we have "Math.PI", not even a declared "const". So it's not exactly the same bug. We should still (IMO) just bail off the trace when we see a write to anything JSPROP_READONLY. Or simulate the write along the lines of what the interp does, eventually.
Priority: -- → P2
Fixed via patch to bug 465443, pushed to tracemonkey in revision ed2062a1593c.
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
As it was part of the fix for bug 465443, this landed on 1.9.1: http://hg.mozilla.org/releases/mozilla-1.9.1/rev/dd786c2ce1ed
Keywords: fixed1.9.1
Checking in js1_5/Regress/regress-465132.js http://hg.mozilla.org/mozilla-central/rev/2fb5559e56e2
Flags: in-testsuite+
Flags: in-litmus-
v 1.9.1, 1.9.2
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.