I think I can see a bug here – the compile guard on the definition of VoidPtrPair in JITStubs.h isn't right.

#if PLATFORM(MAC)

should be changed to

#if !COMPILER(MSVC)

(and the else case should #error if compiled on x86-64, if it not 64- bit safe).

The MSVC version of this structure works around a quirk in the windows ABI in a way that is not 64-bit safe, and you shouldn't need this on Linux. The result of this will be resolve_func returning a junk JSValuePtr for the function object.

G.


On Mar 19, 2009, at 1:11 PM, Maciej Stachowiak wrote:


On Mar 19, 2009, at 11:58 AM, Mike Hommey wrote:

On Thu, Mar 19, 2009 at 10:20:03AM -0700, Darin Adler wrote:
On Mar 19, 2009, at 10:12 AM, Mike Hommey wrote:

Except alert() isn't defined under jsc. Are there any other non-js
(native) functions available in jsc, since it seems to be the problem ?

Sure, there are tons and tons of native functions; almost every function
on every built-in JavaScript object.

Or you can use print() on the global object, which is similar to alert
().

Exception: TypeError: Result of expression 'print' [[object global]] is
not a function.

Works for me:

> print
function print() {
   [native code]
}

Anyways, it seems, at first hand, to be failing on native functions on
DOM objects, not on standard JS objects :-/

For example, Array.toString works, but window.setTimeout doesn't. Both
go through the cti_op_call_NotJSFunction method.


That does sound strange.

Do JavaScriptCore and WebCore/WebKit get built as separate DLLs on Linux/Gtk? If so, it could be due to a bug where we don't properly handle jumps of longer than 32-bit distance in all cases. Perhaps Gavin has a guess.

Regards,
Maciej

_______________________________________________
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