Just a guess, but I believe StyleSheet is abstract, and if you want to craft a stylesheet, you'd probably use CSSStyleSheet instead.

dave

On Jun 5, 2009, at 3:28 AM, Suk Zhong wrote:

Hi All:
We're trying to extend WebKit dom js binding.We have some questions.

   in DOMWindow.idl having the following code:
   attribute StyleSheetConstructor StyleSheet;
attribute [JSCCustomGetter] XMLHttpRequestConstructor XMLHttpRequest;

and we find class JSXMLHttpRequestConstructor has function getConstructData, while JSStyleSheetConstructor doesn't have function getConstructData.

if test the following js script:"var a = new XMLHttpRequest;", it's ok;but "var a = new StyleSheet;", it'll throw an exception.

and we trac this problem to Interpreter::privateExecute() and JSValuePtr::getConstructData function

inline ConstructType JSValuePtr::getConstructData(ConstructData& constructData)
   {
return JSImmediate::isImmediate(asValue()) ? ConstructTypeNone : asCell()->getConstructData(constructData);
   }
and we know this function returns ConstructTypeNone for JSStyleSheetConstructor object, ConstructTypeHost for JSXMLHttpRequestConstructor object;

JSStyleSheetConstructor object and JSXMLHttpRequestConstructor object are returned by the same template function getDOMConstructor.

   our questions are:

   1.why it has this return?
   2.which codes make the two object have different immediate value?
   3.some people can explain the whole role of class JSImmediate?
4.our trac maybe be not correct,who can explain why newing StyleSheet has exception and newing XMLHttpRequest is OK?

Thanks and Best Regards

Suk
_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

_______________________________________________
webkit-dev mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev

Reply via email to