It's difficult to ensure correct semantics for typeinfo flags in the dom bindings, as we can't easily propagate the typeinfo flags. To make it easier to propagate we want to make flags be specifically for the exceptional cases.
Created attachment 41202 [details] Reverse the meaning of HasDefaultGetPropertySlot
Comment on attachment 41202 [details] Reverse the meaning of HasDefaultGetPropertySlot r=me w/ChangeLog
Created attachment 41237 [details] HasDefaultMark to OverridesMarkChildren
Comment on attachment 41237 [details] HasDefaultMark to OverridesMarkChildren > - return Structure::create(prototype, TypeInfo(ObjectType)); > + return Structure::create(prototype, TypeInfo(ObjectType, JSC::OverridesGetOwnPropertySlot | JSC::HasNonDefaultMark)); Extra space here, and "JSC::" is not needed. I guess the assertion we have will catch if we got this wrong anywhere at runtime. Please be sure to run all the regression tests before landing since that will be caught at runtime, not compile time. r=me
Landed default mark patch in r49649
Created attachment 41304 [details] HasDefaultGetPropertyNames -> OverridesGetPropertyNames
Landed r 49694
Created attachment 41491 [details] Move OverridesMarkChildren flag from DatePrototype to its parent class The following simple JS fails on ARM JIT (JSValue32): --- [new Date()] gc() --- It looks like JSWrapperObject::markChildren was called for DateInstance in JSArray, but the m_internalValue was already on anonymous slots. The attached patch fixes this issue by moving OverridesMarkChildren flag from DatePrototype to DateInstance. BTW, is there any delivered class which should still use JSWrapperObject::markChildren?
(In reply to comment #8) > Created an attachment (id=41491) [details] Sending JavaScriptCore/ChangeLog Sending JavaScriptCore/runtime/DateInstance.h Sending JavaScriptCore/runtime/DatePrototype.h Transmitting file data ... Committed revision 49845.