Closed
Bug 173906
Opened 22 years ago
Closed 22 years ago
Dynamic scope not working correctly with optimzation level >= 1
Categories
(Rhino Graveyard :: Compiler, defect)
Tracking
(Not tracked)
VERIFIED
FIXED
1.5R4
People
(Reporter: hannesw, Assigned: norrisboyd)
Details
Attachments
(2 files)
User-Agent: Mozilla/5.0 (Macintosh; U; PPC Mac OS X; de-AT; rv:1.1) Gecko/20020826 Build Identifier: When optimization is set to 1 or higher, per-thread dynamic scopes stop working as soon as more than one nested function is executed. This means that as soon as I have one function calling another, variables will be looked up in the shared scope only instead of the per-thread scope. I'm seeing this using both Rhino 1.5_R3 and the latest CVS version, running on JDK 1.3.1 on Mac OS X. The bug is reproducable with a slightly modified version of examples/DynamicScopes.java. (I'm also attaching the modified source file.) --- DynamicScopes.java.orig Fri Oct 11 11:03:13 2002 +++ DynamicScopes.java Fri Oct 11 11:04:27 2002 @@ -63,6 +63,7 @@ throws JavaScriptException { Context cx = Context.enter(); + cx.setOptimizationLevel(1); try { cx.setCompileFunctionsWithDynamicScope(false); runScripts(cx); @@ -84,7 +85,8 @@ // Now we can evaluate a script and functions will be compiled to // use dynamic scope if the Context is so initialized. String source = "var x = 'sharedScope';" + - "function f() { return x; }"; + "function f() { return f2(); }" + + "function f2() { return x; }"; cx.evaluateString(scope, source, "MySource", 1, null); // Now we spawn some threads that execute a script that calls the Reproducible: Always Steps to Reproduce: 1. Run the modified version of DynamicScopes.java Actual Results: sharedScope sharedScope sharedScope sharedScope sharedScope sharedScope Expected Results: sharedScope sharedScope sharedScope thread1 thread0 thread2
Reporter | ||
Comment 1•22 years ago
|
||
Comment 3•22 years ago
|
||
The patch fixes the reported problem but as currently there are no tests for dynamic scope mode I need at leat a confirmation that the patch works as expected from a real-life Rhino usage.
Reporter | ||
Comment 4•22 years ago
|
||
Thanks Igor, I just checked it out with some pretty complex Java/JavaScript combination and everything works fine now (same results with optimization turned on and off).
Comment 6•22 years ago
|
||
Based on Hannes' findings in Comment #4, marking FIXED
Status: NEW → RESOLVED
Closed: 22 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•