Closed Bug 844364 Opened 12 years ago Closed 12 years ago

IonMonkey: "Assertion failure: !frame.isEvalFrame(),"

Categories

(Core :: JavaScript Engine, defect)

x86_64
macOS
defect
Not set
critical

Tracking

()

RESOLVED FIXED
mozilla22

People

(Reporter: gkw, Unassigned)

References

Details

(Keywords: assertion, regression, testcase, Whiteboard: [jsbugmon:update])

Attachments

(2 files)

Attached file stack
function f() { eval("this") } f() f() asserts js debug shell on m-c changeset 08a034e1d43a without any CLI arguments at Assertion failure: !frame.isEvalFrame(),
autoBisect shows this is probably related to the following changeset: The first bad revision is: changeset: 122546:0ded3af9b2d7 user: Brian Hackett date: Thu Feb 21 06:56:54 2013 -0700 summary: Bug 743394 - Ion compile JSOP_EVAL, r=jandem. Brian, is bug 743394 a likely regressor?
Flags: needinfo?(bhackett1024)
Whiteboard: [jsbugmon:update]
Attached patch patchSplinter Review
Fix for this and bug 844459, which is related. This is a bogus assert, bug 844459 is due to an inverted test that could cause an eval to see a primitive this values.
Attachment #717542 - Flags: review?(jdemooij)
Flags: needinfo?(bhackett1024)
Comment on attachment 717542 [details] [diff] [review] patch Review of attachment 717542 [details] [diff] [review]: ----------------------------------------------------------------- ::: js/src/ion/IonBuilder.cpp @@ +4484,5 @@ > if (!info().fun()) > return abort("Direct eval in global code"); > > types::StackTypeSet *thisTypes = oracle->thisTypeSet(script()); > + if (thisTypes) { Nit: either JS_ASSERT(thisTypes); and remove the |if|, or add an "else" with "return abort(..);"
Attachment #717542 - Flags: review?(jdemooij) → review+
Status: NEW → RESOLVED
Closed: 12 years ago
Flags: in-testsuite+
Resolution: --- → FIXED
Target Milestone: --- → mozilla22
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: