Closed Bug 640880 Opened 14 years ago Closed 13 years ago

JavaScript reports undefined variable

Categories

(Core :: JavaScript Engine, defect)

defect
Not set
normal

Tracking

()

RESOLVED DUPLICATE of bug 676343
Tracking Status
blocking-fx --- -

People

(Reporter: felix, Unassigned)

References

()

Details

(Keywords: regression, testcase, Whiteboard: [bugday-2011-05-27])

Attachments

(1 file, 1 obsolete file)

(deleted), application/x-javascript
Details
User-Agent: Mozilla/5.0 (Windows NT 6.0; rv:2.0b13pre) Gecko/20110310 Firefox/4.0b13pre Build Identifier: Mozilla/5.0 (Windows NT 6.0; rv:2.0b13pre) Gecko/20110310 Firefox/4.0b13pre Opening the mentioned URL will load large amounts of JavaScript and runs a test-suite, generated by a compiler that targets JavaScript. Conkeror, FF 3.0, Opera 11 and Chrome run it without problems, but recent versions of FF report an iundefined variable. I get this alert box, which is presented by code that catches the JS error and prints some additional source-language specific information: Error: k3252 is not defined Call trace: (t413 #<procedure>) (%show #<procedure> #<output port "document">) (t491 (#<promise>)) (%show #<output port "document">) (t473 #<promise>) (display #<promise> #<output port "document">) (%check-port #<output port "document"> output display) (t413 #<promise>) (%show #<promise> #<output port "document">) (t491 ()) (%show ) #<output port "document">) (display ==> ) (t413 ==> ) (%show ==> #<output port "document">) (apply #<procedure> (#<promise>)) (force #<promise>) (apply #<procedure> (6)) (values 6) (t473 6) (display 6 #<output port "document">) (%check-port #<output port "document"> output display) (t413 6) (%show 6 #<output port "document">) (newline ) (%show #<output port "document">) (%make-promise #<procedure>) (force #<promise>) (call-with-values #<procedure> #<procedure>) (force #<promise>) (call-with-values #<procedure> #<procedure>) (apply #<procedure> (3)) (values 3) <--- Reproducible: Always Steps to Reproduce: 1. Open given URL. Actual Results: The JS engine reports an undefined variable: "Error: k3252 is not defined" Expected Results: The test-suite should run to completion.
Version: unspecified → Trunk
Assignee: nobody → general
Component: General → JavaScript Engine
Product: Firefox → Core
QA Contact: general → general
This error appears in Build identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.15) Gecko/20110303 Firefox/3.6.15 AND Build identifier: Mozilla/5.0 (Windows NT 5.1; rv:2.0b13pre) Gecko/20110313 Firefox/4.0b13pre. Google Chrome 9 works fine.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Is it possible to get a more minimal testcase? Also, a specific regression range would be good: you can use http://harthur.github.com/mozregression/ to help narrow things down to a particular nightly build.
Reducing the size of the testcase is difficult. Actually, I assume the deep function-nesting is causing the problem. The code that triggers the problem seems to be 0004-r4rstest.js, which is loaded dynamically by the code in test.html.
Regression window(m-c nightly): Works: http://hg.mozilla.org/mozilla-central/rev/da613c9fae8c Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2a1pre) Gecko/20090513 Namoroka/3.6a1pre ID:20090513044918 Fails(an error alert pops up): http://hg.mozilla.org/mozilla-central/rev/a1fc27041e53 Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2a1pre) Gecko/20090514 Namoroka/3.6a1pre ID:20090514043824 Pushlog: http://hg.mozilla.org/mozilla-central/pushloghtml?fromchange=da613c9fae8c&tochange=a1fc27041e53 Regression window(tm nightly): Works: http://hg.mozilla.org/tracemonkey/rev/ef840521653f Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2a1pre) Gecko/20090510 Namoroka/3.6a1pre ID:20090510031736 Fails(an error alert pops up): http://hg.mozilla.org/tracemonkey/rev/010768e6119c Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2a1pre) Gecko/20090514 Namoroka/3.6a1pre ID:20090514031914 Pushlog: http://hg.mozilla.org/tracemonkey/pushloghtml?fromchange=ed70badf19d7&tochange=010768e6119c
In local build(from tm repository) build from 010768e6119c : fails build from 22ef5690efbf : works build from 0827b97fb89b : works build from 3416e3d9c616 : works build from 9caa852c758c : works build from ed70badf19d7 : works Triggerd by: 010768e6119c Brendan Eich — Bug 492914 - TM: trace aborts due to flat closure analysis bug (r=mrbkap).
blocking-fx: --- → ?
blocking-fx: ? → -
Whiteboard: [bugday-2011-05-27]
Attached file Shell testcase (obsolete) (deleted) —
Here's a reduced shell testcase. $ ./js test.js test.js:229: ReferenceError: k3252 is not defined Looks like this is indeed caused by the deep function nesting...
Keywords: regression
Blocks: 492914
Attached file Reduced testcase (deleted) —
Small bug in my experimental reducer, removed about 100 more lines.
Attachment #535878 - Attachment is obsolete: true
Duping forward.
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: