Closed Bug 780405 Opened 9 years ago Closed 9 years ago

"Assertion failure: strictModeState != StrictMode::UNKNOWN,"

Categories

(Core :: JavaScript Engine, defect)

x86
All
defect
Not set
critical

Tracking

()

RESOLVED FIXED
mozilla17

People

(Reporter: gkw, Assigned: Benjamin)

References

Details

(Keywords: assertion, regression, testcase)

Attachments

(2 files)

Attached file stack
function n(b = ((function() {}), function() {
    (a for (r in [function() {}]))
})) {}

asserts js debug shell on m-c changeset 0f66a7ecf8de without any CLI arguments at Assertion failure: strictModeState != StrictMode::UNKNOWN,

autoBisect shows this is probably related to the following changeset:

The first bad revision is:
changeset:   100567:418ad69cfe52
user:        Benjamin Peterson
date:        Mon Jul 09 23:43:06 2012 -0700
summary:     Bug 769072: retroactively apply strict mode to defaults. r=njn
Jason, I'm giving this to you since njn is gone.
Assignee: general → bpeterson
Attachment #649041 - Flags: review?(jorendorff)
Comment on attachment 649041 [details] [diff] [review]
set funbox->kids in LeaveFunction

Review of attachment 649041 [details] [diff] [review]:
-----------------------------------------------------------------

Oh, I see. It's because generatorExpr() wasn't setting ->kids?

The comment on LeaveFunction() says it isn't called for functions created using the Function constructor. Test that too?

This is an improvement, so r=me, but feel free to revise it anyway and request review again.
Attachment #649041 - Flags: review?(jorendorff) → review+
(In reply to Jason Orendorff [:jorendorff] from comment #2)
> Comment on attachment 649041 [details] [diff] [review]
> set funbox->kids in LeaveFunction
> 
> Review of attachment 649041 [details] [diff] [review]:
> -----------------------------------------------------------------
> 
> Oh, I see. It's because generatorExpr() wasn't setting ->kids?

Yes, so when we went to set strict mode to STRICT on it, its children were unreachable.

> 
> The comment on LeaveFunction() says it isn't called for functions created
> using the Function constructor. Test that too?

You can't have Function() lexically nested in defaults the way you can genexps.

> 
> This is an improvement, so r=me, but feel free to revise it anyway and
> request review again.

What's the revision you're looking for?
(In reply to Benjamin Peterson from comment #3)
> > The comment on LeaveFunction() says it isn't called for functions created
> > using the Function constructor. Test that too?
> 
> You can't have Function() lexically nested in defaults the way you can
> genexps.

OK.

> What's the revision you're looking for?

None, carry on.
https://hg.mozilla.org/mozilla-central/rev/84739a192aa9
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla17
Automatically extracted testcase for this bug was committed:

https://hg.mozilla.org/mozilla-central/rev/efaf8960a929
Flags: in-testsuite+
You need to log in before you can comment on or make changes to this bug.