[webkit-dev] why js script" var a = new XMLHttpRequest; ", it's ok; but "var a = new StyleSheet; ", it'll throw an exception?
David Hyatt
hyatt at apple.com
Fri Jun 5 07:00:47 PDT 2009
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
> webkit-dev at lists.webkit.org
> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
More information about the webkit-dev
mailing list