Closed Bug 367686 Opened 13 years ago Closed 9 years ago

uneval([#1=({}), {__proto__: #1#}]) results in "too much recursion" error

Categories

(Core :: JavaScript Engine, defect)

PowerPC
macOS
defect
Not set

Tracking

()

RESOLVED FIXED

People

(Reporter: jruderman, Unassigned)

Details

(Keywords: testcase)

js> uneval([#1=({}), {__proto__: #1#}])
typein:1: InternalError: too much recursion

I found this bug with a new fuzzer that creates crazy object literals (with lots of sharps) and throws them at eval and uneval.
Likely related to bug 379568.
I don't seem to get this error with the latest js shell:

gary-kwongs-mac-mini:lithium gkwong$ ./js-opt 
js> uneval([#1=({}), {__proto__: #1#}])
typein:1: TypeError: Array.prototype.toSource called on incompatible Object
js> 

=======

gary-kwongs-mac-mini:lithium gkwong$ ./js-debug 
js> uneval([#1=({}), {__proto__: #1#}])
typein:1: TypeError: Array.prototype.toSource called on incompatible Object
js>
Does it make sense for the testcase to trigger the exception "TypeError: Array.prototype.toSource called on incompatible Object"?  I don't think it does...
With latest nightly:

js> uneval([#1=({}), {__proto__: #1#}])
"[{}, {}]"
Status: NEW → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.