diff --git a/extra/javascriptcore/authors.txt b/extra/javascriptcore/authors.txt new file mode 100644 index 0000000000..7c1b2f2279 --- /dev/null +++ b/extra/javascriptcore/authors.txt @@ -0,0 +1 @@ +Doug Coleman diff --git a/extra/javascriptcore/ffi/hack/authors.txt b/extra/javascriptcore/ffi/hack/authors.txt new file mode 100644 index 0000000000..7c1b2f2279 --- /dev/null +++ b/extra/javascriptcore/ffi/hack/authors.txt @@ -0,0 +1 @@ +Doug Coleman diff --git a/extra/javascriptcore/ffi/hack/hack.factor b/extra/javascriptcore/ffi/hack/hack.factor new file mode 100644 index 0000000000..1866a24e22 --- /dev/null +++ b/extra/javascriptcore/ffi/hack/hack.factor @@ -0,0 +1,29 @@ +! Copyright (C) 2010 Doug Coleman. +! See http://factorcode.org/license.txt for BSD license. +USING: alien alien.accessors alien.syntax kernel kernel.private +math system ; +IN: javascriptcore.ffi.hack + +HOOK: set-callstack-bounds os ( -- ) + +HOOK: macosx-callstack-start-offset cpu ( -- address ) +HOOK: macosx-callstack-size-offset cpu ( -- address ) + +M: ppc macosx-callstack-start-offset HEX: 188 ; +M: ppc macosx-callstack-size-offset HEX: 18c ; + +M: x86.32 macosx-callstack-start-offset HEX: c48 ; +M: x86.32 macosx-callstack-size-offset HEX: c4c ; + +M: x86.64 macosx-callstack-start-offset HEX: 1860 ; +M: x86.64 macosx-callstack-size-offset HEX: 1868 ; + +M: object set-callstack-bounds ; + +FUNCTION: void* pthread_self ( ) ; + +M: macosx set-callstack-bounds + callstack-bounds over [ alien-address ] bi@ - + pthread_self + [ macosx-callstack-size-offset set-alien-unsigned-cell ] + [ macosx-callstack-start-offset set-alien-cell ] bi ; diff --git a/extra/javascriptcore/javascriptcore.factor b/extra/javascriptcore/javascriptcore.factor new file mode 100644 index 0000000000..773a559d2d --- /dev/null +++ b/extra/javascriptcore/javascriptcore.factor @@ -0,0 +1,8 @@ +! Copyright (C) 2010 Doug Coleman. +! See http://factorcode.org/license.txt for BSD license. +USING: javascriptcore.ffi.hack kernel ; +IN: javascriptcore + +: with-javascriptcore ( quot -- ) + set-callstack-bounds + call ; inline