Closed
Bug 821931
Opened 12 years ago
Closed 12 years ago
Differential Testing: Different error message involving --enable-more-deterministic
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
FIXED
People
(Reporter: gkw, Unassigned)
References
Details
(Keywords: regression, testcase, Whiteboard: [fuzzblocker])
try {
a = []
} catch (e) {}
try {
a.length()
} catch (e) {
print(e)
}
shows the following in js opt shell on m-c changeset edd45de440ba without -a:
TypeError: undefined is not a function
but shows the following with -a:
TypeError: 0 is not a function
autoBisect shows this is probably related to the following changeset:
The first bad revision is:
changeset: 109238:a85c0f30cdfa
user: Jan de Mooij
date: Thu Oct 04 13:26:16 2012 +0200
summary: Bug 797185 - Disable DVG stack search when building with --enable-more-deterministic. r=decoder
![]() |
Reporter | |
Comment 1•12 years ago
|
||
This seems to only happen with --enable-more-deterministic.
Summary: Differential Testing: Getting different output w/without -a involving .length → Differential Testing: Getting different output w/without -a involving .length and --enable-more-deterministic
Updated•12 years ago
|
Summary: Differential Testing: Getting different output w/without -a involving .length and --enable-more-deterministic → Differential Testing: Different error message w/without -a involving .length and --enable-more-deterministic
![]() |
Reporter | |
Comment 2•12 years ago
|
||
jandem, do you think bug 797185 might be responsible for this?
Flags: needinfo?(jdemooij)
![]() |
Reporter | |
Comment 3•12 years ago
|
||
Another testcase that does not involve .length:
Object.defineProperty(this, "v", {
get: function() {
return this.eval()
}
})
eval = 7
for each(w in [0, 0, 0]) {
try {
v
} catch (e) {
print(e)
}
}
./js w1743-cj-in.js
TypeError: undefined is not a function
TypeError: undefined is not a function
TypeError: 7 is not a function
./js --ion-eager w1743-cj-in.js
TypeError: undefined is not a function
TypeError: undefined is not a function
TypeError: undefined is not a function
(it has the same regressing changeset as in comment 0)
This clouds numerous compareJIT bugs with multiple dupes. It will be nice for this to be fixed.
Summary: Differential Testing: Different error message w/without -a involving .length and --enable-more-deterministic → Differential Testing: Different error message involving --enable-more-deterministic
Whiteboard: [fuzzblocker]
Comment 4•12 years ago
|
||
(In reply to Gary Kwong [:gkw] from comment #2)
> jandem, do you think bug 797185 might be responsible for this?
That bug makes the decompiler always take a fallback path, to help differential testing, but apparently that's not enough to get consistent error messages...
Does the testcase in comment 3 also require "-a"? Maybe I will have some time to look into this next week, however I'm not sure if this is worth fixing considering our plans to remove JM...
Flags: needinfo?(jdemooij)
![]() |
Reporter | |
Comment 5•12 years ago
|
||
> Does the testcase in comment 3 also require "-a"? Maybe I will have some
> time to look into this next week, however I'm not sure if this is worth
> fixing considering our plans to remove JM...
I retested the testcase in comment 0, and to reproduce it you need the "--no-ti -a" flags.
To reproduce the testcase in comment 3, you need only "--ion-eager", and "-a" is not needed.
Comment 6•12 years ago
|
||
Here's an updated version of comment 0's testcase. It still shows a difference between --ion-eager and normal.
function f(){
var a = []
try {
a.length()
} catch (e) {
print(e)
}
}
f();
f();
normal: TypeError: 0 is not a function
--ion-eager: TypeError: undefined is not a function
Comment 7•12 years ago
|
||
It looks like this is caused by the property cache.. Let me check if we can remove the property cache without hurting benchmarks (bug 704356).
Comment 8•12 years ago
|
||
(In reply to Jan de Mooij [:jandem] from comment #7)
> It looks like this is caused by the property cache.. Let me check if we can
> remove the property cache without hurting benchmarks (bug 704356).
Property cache is gone.
Status: NEW → RESOLVED
Closed: 12 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•