Closed
Bug 885660
Opened 11 years ago
Closed 11 years ago
JSIL raytracer demo fails to load unless debugger is active
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
FIXED
mozilla25
People
(Reporter: kael, Assigned: jandem)
Details
(Keywords: regression)
Attachments
(3 files)
1.46 MB,
application/zip
|
Details | |
720 bytes,
application/x-javascript
|
Details | |
5.61 KB,
patch
|
djvj
:
review+
lsblakk
:
approval-mozilla-aurora+
lsblakk
:
approval-mozilla-beta+
|
Details | Diff | Splinter Review |
A recent change to the JS engine has caused the JSIL raytracer demo to fail to load unless the built-in debugger is active.
It fails with this error message:
Unhandled exception at http://127.0.0.1:81/Libraries/JSIL.Core.js line 6719:
TypeError: assembly is undefined
If the built in debugger is active the page loads normally and no exceptions (handled or otherwise) are thrown.
The test case still works in IE and older builds of Firefox.
Mozregression window:
Last good nightly: 2013-05-08
First bad nightly: 2013-05-09
Regression range:
http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=b980d32c366f&tochange=ea059733677c
Suspected bug:
Boris Zbarsky — Bug 869040. Fix ion IC for non-overridebuiltins named gets on ListBase proxies to not cache lack of a property when it's just missing on the prototype. r=djvj
Workaround:
javascript.options.ion.content = false fixes the issue.
Assignee: general → nobody
Blocks: 869040
Severity: blocker → normal
status-firefox22:
--- → unaffected
status-firefox23:
--- → ?
status-firefox24:
--- → ?
Component: JavaScript Engine → DOM
Keywords: regression
Comment 2•11 years ago
|
||
Ccing the people who actually know jit stuff...
Assignee: nobody → general
Component: DOM → JavaScript Engine
Comment 3•11 years ago
|
||
Regression window(m-c)
Good:
http://hg.mozilla.org/mozilla-central/rev/dea5219d6b43
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20130508 Firefox/23.0 ID:20130508210518
Bad:
http://hg.mozilla.org/mozilla-central/rev/ea059733677c
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20130508 Firefox/23.0 ID:20130508211818
Pushlog:
http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=dea5219d6b43&tochange=ea059733677c
Regression window(m-c)
Good:
http://hg.mozilla.org/integration/mozilla-inbound/rev/1c05e7a9e51c
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20130508 Firefox/23.0 ID:20130508095549
Bad:
http://hg.mozilla.org/integration/mozilla-inbound/rev/469e647ccbf5
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:23.0) Gecko/20130508 Firefox/23.0 ID:20130508104708
Pushlog:
http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=1c05e7a9e51c&tochange=469e647ccbf5
Updated•11 years ago
|
Assignee | ||
Comment 4•11 years ago
|
||
Bug 868042 regressing this is unlikely, it probably exposed an existing bug. I'll investigate.
Assignee: general → jdemooij
Status: NEW → ASSIGNED
Assignee | ||
Comment 5•11 years ago
|
||
Small shell testcase. Throws an error with default flags. Does not throw with --no-ion. We are bailing out in JSIL.GetTypeInternal and somehow context becomes |undefined|.
Assignee | ||
Comment 6•11 years ago
|
||
What's happening is that we have a snapshot like this:
formal x: undefined (constant)
local y : LArgument (x's slot)
We bailout and overwrite the argument on the stack with UndefinedValue(). When we get to the local, we read the |undefined| Value from the stack instead of the original Value that was stored there. The argument is never really undefined, but due to UCE / phi elimination we think the formal is unused when we bailout and store undefined in the snapshot.
The patch fixes this by storing the formals in a Vector and only writing them to the stack at the end of the bailout.
Attachment #766702 -
Flags: review?(kvijayan)
Comment 7•11 years ago
|
||
Comment on attachment 766702 [details] [diff] [review]
Patch
Review of attachment 766702 [details] [diff] [review]:
-----------------------------------------------------------------
Nice find.
Attachment #766702 -
Flags: review?(kvijayan) → review+
Assignee | ||
Comment 8•11 years ago
|
||
Assignee | ||
Comment 10•11 years ago
|
||
(In reply to Loic from comment #9)
> Which bug regressed that?
I think the Baseline Compiler landing, though for this particular testcase it was only a problem after some other changes landed.
Assignee | ||
Comment 11•11 years ago
|
||
Comment on attachment 766702 [details] [diff] [review]
Patch
[Approval Request Comment]
Bug caused by (feature/regressing bug #): Most likely the new Baseline compiler (introduced in Firefox 23)
User impact if declined: Correctness bugs, probably NULL-deref crashes
Testing completed (on m-c, etc.): On m-i
Risk to taking this patch (and alternatives if risky): Very low
String or IDL/UUID changes made by this patch: None
Attachment #766702 -
Flags: approval-mozilla-beta?
Attachment #766702 -
Flags: approval-mozilla-aurora?
Comment 12•11 years ago
|
||
Status: ASSIGNED → RESOLVED
Closed: 11 years ago
Flags: in-testsuite+
Resolution: --- → FIXED
Target Milestone: --- → mozilla25
Updated•11 years ago
|
Attachment #766702 -
Flags: approval-mozilla-beta?
Attachment #766702 -
Flags: approval-mozilla-beta+
Attachment #766702 -
Flags: approval-mozilla-aurora?
Attachment #766702 -
Flags: approval-mozilla-aurora+
Updated•11 years ago
|
Comment 13•11 years ago
|
||
Comment 14•11 years ago
|
||
Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0
Build ID: 20130917123208
Verified as fixed on Firefox 25 beta 1 - the raytracer demo loads fine without an active debugger.
You need to log in
before you can comment on or make changes to this bug.
Description
•