You need to
before you can comment on or make changes to this bug.
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 an attachment (id=41202) [details]
Reverse the meaning of HasDefaultGetPropertySlot
(From update of attachment 41202 [details])
Created an attachment (id=41237) [details]
HasDefaultMark to OverridesMarkChildren
(From update of attachment 41237 [details])
> - 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.
Landed default mark patch in r49649
Created an attachment (id=41304) [details]
HasDefaultGetPropertyNames -> OverridesGetPropertyNames
Landed r 49694
Created an attachment (id=41491) [details]
Move OverridesMarkChildren flag from DatePrototype to its parent class
The following simple JS fails on ARM JIT (JSValue32):
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] [details]
Transmitting file data ...
Committed revision 49845.