Bug 25921

Summary: REGRESSION: Using setTimeout.call or setTimeout.apply only works the first time is used
Product: WebKit Reporter: Raul Hudea <rhudea>
Component: JavaScriptCoreAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: ap, mrowe, oliver, steve, zwarich
Priority: P1 Keywords: HasReduction, InRadar, Regression
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Attachments:
Description Flags
Simple test case none

Description Raul Hudea 2009-05-21 02:12:30 PDT
I'll add a test case
Comment 1 Raul Hudea 2009-05-21 02:13:58 PDT
Created attachment 30533 [details]
Simple test case
Comment 2 Mark Rowe (bdash) 2009-05-21 03:47:09 PDT
Seems like one of Oliver's recent optimisations may have introduced this.
Comment 3 Mark Rowe (bdash) 2009-05-21 03:47:26 PDT
<rdar://problem/6910264>
Comment 4 Mark Rowe (bdash) 2009-05-21 09:14:26 PDT
*** Bug 23670 has been marked as a duplicate of this bug. ***
Comment 5 Cameron Zwarich (cpst) 2009-05-21 14:02:45 PDT
This occurs in the 4.0 beta, so it's not Oliver's recent changes.
Comment 6 Oliver Hunt 2009-05-21 14:10:30 PDT
It also impacts the interpreter -- i think it may be a bug in op_resolve_global, but that doesn't explain why it only seems to effect .call and .apply
Comment 7 Oliver Hunt 2009-05-21 14:26:21 PDT
op_resolve_global is apparently broked.
Comment 8 Oliver Hunt 2009-05-21 15:03:58 PDT
Got it, we're caching a property on the global objects prototype chain as if it were directly on the global object
Comment 9 Oliver Hunt 2009-05-21 17:29:10 PDT
Committing to http://svn.webkit.org/repository/webkit/trunk ...
	M	JavaScriptCore/ChangeLog
	M	JavaScriptCore/interpreter/Interpreter.cpp
	M	JavaScriptCore/jit/JITStubs.cpp
	M	LayoutTests/ChangeLog
	A	LayoutTests/fast/js/global-function-resolve-expected.txt
	A	LayoutTests/fast/js/global-function-resolve.html
	A	LayoutTests/fast/js/resources/global-function-resolve.js
Committed r44016