Closed Bug 826031 Opened 12 years ago Closed 11 years ago

IonMonkey: Differential Testing: Getting different output w/without --ion-eager with .some

Categories

(Core :: JavaScript Engine, defect)

x86_64
All
defect
Not set
major

Tracking

()

RESOLVED DUPLICATE of bug 825379

People

(Reporter: gkw, Assigned: Waldo)

References

Details

(Keywords: regression, testcase)

w = this
try {
    [0, 0].some(function() {
        w.eval("function f(){yield}")
    })
    f()
    print("FOO")
} catch (e) {}

on js opt shell on m-c changeset a812ef63de87 without --ion-eager shows:

FOO

but with --ion-eager shows nothing.

autoBisect shows this is probably related to the following changeset:

The first bad revision is:
changeset:   116356:ab307f02af0c
user:        Jeff Walden
date:        Sat Sep 15 11:19:54 2012 -0700
summary:     Bug 792108 - Implement JSCLASS_EMULATES_UNDEFINED to allow objects of a given class to act like the value |undefined| in certain contexts.  Also add a TI flag for such objects, permitting us to assume that no objects use the flag until one is observed, also speeding up object-is-truthy tests when no falsy object is observed.  r=jandem, r=bz
Jeff, is the changeset in comment 0 a likely one?
Blocks: 792108
Flags: needinfo?(jwalden+bmo)
Hmm; maybe.  I dunno.  I need to look more.  Also, this reproduces on Linux64 as well, so flipping OS to All.

Here's a slightly-reformatted version that doesn't spew the whole global if you run it.  :-)

var global = this;
try {
    [0, 0].some(function() {
        global.eval("function f() { yield; }");
    });
    f();
    print("FOO");
} catch (e) {}
Assignee: general → jwalden+bmo
Flags: needinfo?(jwalden+bmo)
OS: Mac OS X → All
Severity: critical → major
See bug 825379, JSContext::findVersion misbehaving with Ion frames.
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → DUPLICATE
No longer blocks: 792108
You need to log in before you can comment on or make changes to this bug.