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

RESOLVED FIXED in mozilla17

Status

()

Core
JavaScript Engine
--
critical
RESOLVED FIXED
5 years ago
4 years ago

People

(Reporter: gkw, Assigned: Benjamin)

Tracking

(Blocks: 1 bug, {assertion, regression, testcase})

Trunk
mozilla17
x86
All
assertion, regression, testcase
Points:
---
Dependency tree / graph
Bug Flags:
in-testsuite +

Firefox Tracking Flags

(Not tracked)

Details

Attachments

(2 attachments)

(Reporter)

Description

5 years ago
Created attachment 649018 [details]
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
(Assignee)

Comment 1

5 years ago
Created attachment 649041 [details] [diff] [review]
set funbox->kids in LeaveFunction

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+
(Assignee)

Comment 3

5 years ago
(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.
(Assignee)

Comment 5

5 years ago
https://hg.mozilla.org/integration/mozilla-inbound/rev/84739a192aa9

Comment 6

5 years ago
https://hg.mozilla.org/mozilla-central/rev/84739a192aa9
Status: NEW → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla17
(Reporter)

Updated

5 years ago
Depends on: 790424
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.