"Assertion failure: js_CheckForStringIndex(ida->vector[n]) == ida->vector[n]," with e4x

RESOLVED FIXED

Status

()

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

People

(Reporter: gkw, Unassigned)

Tracking

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

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

Firefox Tracking Flags

(Not tracked)

Details

(Whiteboard: js-triage-needed)

Attachments

(1 attachment, 1 obsolete attachment)

(Reporter)

Description

5 years ago
Created attachment 616340 [details]
stack

g = evalcx("");
f = function () {};
Object.defineProperty(f, QName(1), {
    enumerable: 2
});
g.h = f;
for (v of g) {}

asserts js debug shell on m-c changeset cc3e893fbe1c without any CLI arguments at Assertion failure: js_CheckForStringIndex(ida->vector[n]) == ida->vector[n],

This looks somewhat different from bug 569024 and bug 695647.
(Reporter)

Comment 1

5 years ago
autoBisect shows this is probably related to the following changeset:

The first bad revision is:
changeset:   86351:90ecec15f74b
user:        Jason Orendorff
date:        Tue Feb 07 12:57:16 2012 -0600
summary:     Bug 699565 - Part 1 - for-of loop basics. r=Waldo.
Blocks: 699565
(Reporter)

Comment 2

5 years ago
Reproduced on 32-bit Mac js shells.
Keywords: regression
OS: Linux → All
Hardware: x86_64 → All
(Reporter)

Comment 3

5 years ago
Seems fixed by bug 751331.

autoBisect shows this is probably related to the following changeset:

The first good revision is:
changeset:   93320:86d28b6fa4fc
user:        Brian Hackett
date:        Sun May 06 13:45:19 2012 -0700
summary:     Disallow non-canonical jsids, bug 751331. r=luke
Status: NEW → RESOLVED
Last Resolved: 5 years ago
Flags: in-testsuite?
Resolution: --- → FIXED
(Reporter)

Comment 4

5 years ago
Created attachment 646340 [details] [diff] [review]
add testcase

Luke, could you pls take a quick glance at this?

Anthony, in js/src/jit-test, I ran:

python jit_test.py <path to js shell> bug746791.js

(there is no need to input the relative path to the testcase, just the testcase name will do)

and got:

[   2|   0|   0|   2]    100% =======================================>|    0.1s
PASSED ALL


Without the |jit-test| comment line (or with an incorrect error expected) at the top, I got:

/Users/skywalker/trees/mozilla-inbound/js/src/jit-test/tests/basic/bug746791.js:8: TypeError: g is not iterable
Exit code: 3
[   0|   1|   0|   1]     50% ===================>                    |    0.1s/Users/skywalker/trees/mozilla-inbound/js/src/jit-test/tests/basic/bug746791.js:8: TypeError: g is not iterable
Exit code: 3
[   0|   2|   0|   2]    100% =======================================>|    0.2s
FAILURES:
    -m /Users/skywalker/trees/mozilla-inbound/js/src/jit-test/tests/basic/bug746791.js
    -m -n /Users/skywalker/trees/mozilla-inbound/js/src/jit-test/tests/basic/bug746791.js
TIMEOUTS:
Attachment #646340 - Flags: review?(luke)

Comment 5

5 years ago
This test has a QName; e4x is about to be turned off and we are removing/nerfing tests, iiuc, so perhaps we shouldn't add this test.
(Reporter)

Comment 6

5 years ago
(In reply to Luke Wagner [:luke] from comment #5)
> This test has a QName; e4x is about to be turned off and we are
> removing/nerfing tests, iiuc, so perhaps we shouldn't add this test.

Good point, I was just trying to find a test as an example for Anthony.
Flags: in-testsuite? → in-testsuite-
Summary: "Assertion failure: js_CheckForStringIndex(ida->vector[n]) == ida->vector[n]," → "Assertion failure: js_CheckForStringIndex(ida->vector[n]) == ida->vector[n]," with e4x
(Reporter)

Updated

5 years ago
Attachment #646340 - Attachment is obsolete: true
Attachment #646340 - Flags: review?(luke)
You need to log in before you can comment on or make changes to this bug.