Closed
Bug 1266242
Opened 10 years ago
Closed 10 years ago
Differential Testing: Different output message involving .splice
Categories
(Core :: JavaScript Engine: JIT, defect)
Tracking
()
RESOLVED
DUPLICATE
of bug 1268626
| Tracking | Status | |
|---|---|---|
| firefox47 | --- | affected |
| firefox48 | --- | affected |
| firefox-esr45 | --- | unaffected |
People
(Reporter: gkw, Unassigned)
Details
(Keywords: testcase)
x = [];
for (var i = 0; i < 4; i++) {
x.splice(5, ({
valueOf: function() {
x.pop();
}
}), 0);
}
x.sort(function() {});
print(uneval(x));
$ ./js-dbg-64-dm-clang-darwin-ae7413abfa4d --fuzzing-safe --no-threads --ion-eager testcase.js
[0, (void 0), , ,]
$ ./js-dbg-64-dm-clang-darwin-ae7413abfa4d --fuzzing-safe --no-threads --no-baseline --no-ion testcase.js
[0, , , ,]
Tested this on m-c rev ae7413abfa4d.
My configure flags are:
CC="clang -Qunused-arguments" CXX="clang++ -Qunused-arguments" AR=ar AUTOCONF=/usr/local/Cellar/autoconf213/2.13/bin/autoconf213 sh /Users/skywalker/trees/mozilla-central/js/src/configure --target=x86_64-apple-darwin14.5.0 --disable-jemalloc --enable-debug --enable-more-deterministic --with-ccache --enable-gczeal --enable-debug-symbols --disable-tests
python -u ~/funfuzz/js/compileShell.py -b "--enable-debug --enable-more-deterministic" -r ae7413abfa4d
autoBisect shows this is probably related to the following changeset:
The first bad revision is:
changeset: https://hg.mozilla.org/mozilla-central/rev/1c4b0a89fd5b
user: Morgan Phillips
date: Sun Jan 24 19:32:22 2016 -0600
summary: Bug 715181 - Self-host Array.sort; r=till
Flags: needinfo?(winter2718)
Comment 1•10 years ago
|
||
It's a good bet that this one's on me, taking the bug until I find otherwise.
Flags: needinfo?(winter2718)
Updated•10 years ago
|
Assignee: nobody → winter2718
Comment 2•10 years ago
|
||
So, this seems to actually be a problem with |if (x in array) {}| for holes. Here is a new test case which highlights the issue:
x = [];
for (var i = 0; i < 4; i++) {
x.splice(5, ({
valueOf: function() {
x.pop();
}
}), 0);
}
function denseLen(x) {
let xLen = 0;
for (let i = 0; i < x.length; i++)
if (i in x)
xLen++;
return xLen;
}
assertEq(denseLen(x), 1);
Updated•10 years ago
|
Assignee: winter2718 → nobody
Comment 3•10 years ago
|
||
Unassigning myself. Gary, could we do another bisection for the testcase I provided above?
Flags: needinfo?(gary)
| Reporter | ||
Comment 4•10 years ago
|
||
Unfortunately this seems to be happening since early Nov 2014, m-c rev dc4b163f7db7. Setting needinfo? from Jason as a start.
Flags: needinfo?(gary) → needinfo?(jorendorff)
Comment 5•10 years ago
|
||
Ion-only. Bouncing to Jan.
Flags: needinfo?(jorendorff) → needinfo?(jdemooij)
Comment 6•10 years ago
|
||
Duplicate of bug 1268626, the bug is in array_splice. I'll get that landed.
I confirmed the patch there fixes the test in comment 2.
Group: javascript-core-security
Status: NEW → RESOLVED
Closed: 10 years ago
Flags: needinfo?(jdemooij)
Resolution: --- → DUPLICATE
| Reporter | ||
Updated•10 years ago
|
Summary: Differential Testing: Different output message involving .sort → Differential Testing: Different output message involving .splice
Updated•9 years ago
|
Group: javascript-core-security
You need to log in
before you can comment on or make changes to this bug.
Description
•