]> gitweb.factorcode.org Git - factor.git/commitdiff
Move javascriptcore to unmaintained. Fixes #130
authorSlava Pestov <slava@factorcode.org>
Mon, 19 Sep 2011 07:12:14 +0000 (00:12 -0700)
committerSlava Pestov <slava@factorcode.org>
Mon, 19 Sep 2011 07:12:36 +0000 (00:12 -0700)
26 files changed:
extra/javascriptcore/authors.txt [deleted file]
extra/javascriptcore/core-foundation/authors.txt [deleted file]
extra/javascriptcore/core-foundation/core-foundation.factor [deleted file]
extra/javascriptcore/core-foundation/platforms.txt [deleted file]
extra/javascriptcore/ffi/authors.txt [deleted file]
extra/javascriptcore/ffi/ffi.factor [deleted file]
extra/javascriptcore/ffi/hack/authors.txt [deleted file]
extra/javascriptcore/ffi/hack/hack.factor [deleted file]
extra/javascriptcore/ffi/hack/platforms.txt [deleted file]
extra/javascriptcore/ffi/platforms.txt [deleted file]
extra/javascriptcore/javascriptcore-tests.factor [deleted file]
extra/javascriptcore/javascriptcore.factor [deleted file]
extra/javascriptcore/platforms.txt [deleted file]
unmaintained/javascriptcore/authors.txt [new file with mode: 0644]
unmaintained/javascriptcore/core-foundation/authors.txt [new file with mode: 0644]
unmaintained/javascriptcore/core-foundation/core-foundation.factor [new file with mode: 0644]
unmaintained/javascriptcore/core-foundation/platforms.txt [new file with mode: 0644]
unmaintained/javascriptcore/ffi/authors.txt [new file with mode: 0644]
unmaintained/javascriptcore/ffi/ffi.factor [new file with mode: 0644]
unmaintained/javascriptcore/ffi/hack/authors.txt [new file with mode: 0644]
unmaintained/javascriptcore/ffi/hack/hack.factor [new file with mode: 0644]
unmaintained/javascriptcore/ffi/hack/platforms.txt [new file with mode: 0644]
unmaintained/javascriptcore/ffi/platforms.txt [new file with mode: 0644]
unmaintained/javascriptcore/javascriptcore-tests.factor [new file with mode: 0644]
unmaintained/javascriptcore/javascriptcore.factor [new file with mode: 0644]
unmaintained/javascriptcore/platforms.txt [new file with mode: 0644]

diff --git a/extra/javascriptcore/authors.txt b/extra/javascriptcore/authors.txt
deleted file mode 100644 (file)
index 7c1b2f2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Doug Coleman
diff --git a/extra/javascriptcore/core-foundation/authors.txt b/extra/javascriptcore/core-foundation/authors.txt
deleted file mode 100644 (file)
index 7c1b2f2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Doug Coleman
diff --git a/extra/javascriptcore/core-foundation/core-foundation.factor b/extra/javascriptcore/core-foundation/core-foundation.factor
deleted file mode 100644 (file)
index 9dfc93b..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-! Copyright (C) 2010 Doug Coleman.
-! See http://factorcode.org/license.txt for BSD license.
-USING: alien.syntax core-foundation core-foundation.strings
-javascriptcore.ffi ;
-IN: javascriptcore.core-foundation
-
-FUNCTION: JSStringRef JSStringCreateWithCFString ( CFStringRef string ) ;
-
-FUNCTION: CFStringRef JSStringCopyCFString ( CFAllocatorRef alloc, JSStringRef string ) ;
-
-
diff --git a/extra/javascriptcore/core-foundation/platforms.txt b/extra/javascriptcore/core-foundation/platforms.txt
deleted file mode 100644 (file)
index 6e806f4..0000000
+++ /dev/null
@@ -1 +0,0 @@
-macosx
diff --git a/extra/javascriptcore/ffi/authors.txt b/extra/javascriptcore/ffi/authors.txt
deleted file mode 100644 (file)
index 7c1b2f2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Doug Coleman
diff --git a/extra/javascriptcore/ffi/ffi.factor b/extra/javascriptcore/ffi/ffi.factor
deleted file mode 100644 (file)
index 377a0d4..0000000
+++ /dev/null
@@ -1,269 +0,0 @@
-! Copyright (C) 2010 Doug Coleman.
-! See http://factorcode.org/license.txt for BSD license.
-USING: alien alien.c-types alien.libraries alien.syntax
-classes.struct combinators io.encodings.utf16n
-io.encodings.utf8 kernel system ;
-IN: javascriptcore.ffi
-
-<<
-"javascriptcore" {
-    { [ os macosx? ] [
-        "/System/Library/Frameworks/JavaScriptCore.framework/Versions/Current/JavaScriptCore" cdecl add-library
-    ] }
-    ! { [ os windows? ]  [ "javascriptcore.dll" ] }
-    ! { [ os unix? ]  [ "libsqlite3.so" ] }
-    [ drop ]
-} cond
->>
-
-LIBRARY: javascriptcore
-
-TYPEDEF: void* JSContextGroupRef
-TYPEDEF: void* JSContextRef
-TYPEDEF: void* JSGlobalContextRef
-TYPEDEF: void* JSStringRef
-TYPEDEF: void* JSClassRef
-TYPEDEF: void* JSPropertyNameArrayRef
-TYPEDEF: void* JSPropertyNameAccumulatorRef
-TYPEDEF: void* JSValueRef
-TYPEDEF: void* JSObjectRef
-TYPEDEF: void* JSObjectInitializeCallback
-TYPEDEF: void* JSObjectFinalizeCallback
-TYPEDEF: void* JSObjectHasPropertyCallback
-TYPEDEF: void* JSObjectGetPropertyCallback
-TYPEDEF: void* JSObjectSetPropertyCallback
-TYPEDEF: void* JSObjectDeletePropertyCallback
-TYPEDEF: void* JSObjectGetPropertyNamesCallback
-TYPEDEF: void* JSObjectCallAsFunctionCallback
-TYPEDEF: void* JSObjectCallAsConstructorCallback
-TYPEDEF: void* JSObjectHasInstanceCallback
-TYPEDEF: void* JSObjectConvertToTypeCallback
-TYPEDEF: uint unsigned
-TYPEDEF: ushort JSChar
-
-ENUM: JSPropertyAttributes
-    { kJSPropertyAttributeNone       0 }
-    { kJSPropertyAttributeReadOnly   2 }
-    { kJSPropertyAttributeDontEnum   4 }
-    { kJSPropertyAttributeDontDelete 8 } ;
-
-ENUM: JSClassAttributes
-    { kJSClassAttributeNone 0 }
-    { kJSClassAttributeNoAutomaticPrototype 2 } ;
-
-ENUM: JSType
-    kJSTypeUndefined,
-    kJSTypeNull,
-    kJSTypeBoolean,
-    kJSTypeNumber,
-    kJSTypeString,
-    kJSTypeObject ;
-
-STRUCT: JSStaticValue
-    { name c-string }
-    { getProperty JSObjectGetPropertyCallback }
-    { setProperty JSObjectSetPropertyCallback }
-    { attributes JSPropertyAttributes } ;
-
-STRUCT: JSStaticFunction
-    { name c-string }
-    { callAsFunction JSObjectCallAsFunctionCallback } ;
-
-STRUCT: JSClassDefinition
-    { version int }
-    { attributes JSClassAttributes }
-    { className c-string }
-    { parentClass JSClassRef }
-    { staticValues JSStaticValue* }
-    { staticFunctions JSStaticFunction* }
-    { initialize JSObjectInitializeCallback }
-    { finalize JSObjectFinalizeCallback }
-    { hasProperty JSObjectHasPropertyCallback }
-    { getProperty JSObjectGetPropertyCallback }
-    { setProperty JSObjectSetPropertyCallback }
-    { deleteProperty JSObjectDeletePropertyCallback }
-    { getPropertyNames JSObjectGetPropertyNamesCallback }
-    { callAsFunction JSObjectCallAsFunctionCallback }
-    { callAsConstructor JSObjectCallAsConstructorCallback }
-    { hasInstance JSObjectHasInstanceCallback }
-    { convertToType JSObjectConvertToTypeCallback } ;
-
-ALIAS: kJSClassDefinitionEmpty JSClassDefinition
-
-FUNCTION: JSValueRef JSEvaluateScript (
-    JSContextRef ctx,
-    JSStringRef script,
-    JSObjectRef thisObject,
-    JSStringRef sourceURL,
-    int startingLineNumber,
-    JSValueRef* exception ) ;
-
-FUNCTION: bool JSCheckScriptSyntax (
-    JSContextRef ctx,
-    JSStringRef script,
-    JSStringRef sourceURL,
-    int startingLineNumber,
-    JSValueRef* exception ) ;
-
-FUNCTION: void JSGarbageCollect
-    ( JSContextRef ctx ) ;
-
-FUNCTION: JSContextGroupRef JSContextGroupCreate
-    ( ) ;
-
-FUNCTION: JSContextGroupRef JSContextGroupRetain
-    ( JSContextGroupRef group ) ;
-
-FUNCTION: void JSContextGroupRelease
-    ( JSContextGroupRef group ) ;
-
-FUNCTION: JSGlobalContextRef JSGlobalContextCreate
-    ( JSClassRef globalObjectClass ) ; 
-
-FUNCTION: JSGlobalContextRef JSGlobalContextCreateInGroup (
-    JSContextGroupRef group,
-    JSClassRef globalObjectClass ) ;
-
-FUNCTION: JSGlobalContextRef JSGlobalContextRetain
-    ( JSGlobalContextRef ctx ) ;
-
-FUNCTION: void JSGlobalContextRelease
-    ( JSGlobalContextRef ctx ) ;
-
-FUNCTION: JSObjectRef JSContextGetGlobalObject
-    ( JSContextRef ctx ) ;
-
-FUNCTION: JSContextGroupRef JSContextGetGroup
-    ( JSContextRef ctx ) ;
-
-FUNCTION: JSClassRef JSClassCreate
-    ( JSClassDefinition* definition ) ;
-
-FUNCTION: JSClassRef JSClassRetain
-    ( JSClassRef jsClass ) ;
-
-FUNCTION: void JSClassRelease
-    ( JSClassRef jsClass ) ;
-
-FUNCTION: JSObjectRef JSObjectMake
-    ( JSContextRef ctx,
-      JSClassRef jsClass, void* data ) ;
-
-FUNCTION: JSObjectRef JSObjectMakeFunctionWithCallback ( JSContextRef ctx, JSStringRef name, JSObjectCallAsFunctionCallback callAsFunction ) ;
-
-FUNCTION: JSObjectRef JSObjectMakeConstructor ( JSContextRef ctx, JSClassRef jsClass, JSObjectCallAsConstructorCallback callAsConstructor ) ;
-
-FUNCTION: JSObjectRef JSObjectMakeArray ( JSContextRef ctx, size_t argumentCount, JSValueRef arguments[], JSValueRef* exception ) ;
-
-FUNCTION: JSObjectRef JSObjectMakeDate ( JSContextRef ctx, size_t argumentCount, JSValueRef arguments[], JSValueRef* exception ) ;
-
-FUNCTION: JSObjectRef JSObjectMakeError ( JSContextRef ctx, size_t argumentCount, JSValueRef arguments[], JSValueRef* exception ) ;
-
-FUNCTION: JSObjectRef JSObjectMakeRegExp ( JSContextRef ctx, size_t argumentCount, JSValueRef arguments[], JSValueRef* exception ) ;
-
-FUNCTION: JSObjectRef JSObjectMakeFunction ( JSContextRef ctx, JSStringRef name, unsigned parameterCount, JSStringRef parameterNames[], JSStringRef body, JSStringRef sourceURL, int startingLineNumber, JSValueRef* exception ) ;
-
-FUNCTION: JSValueRef JSObjectGetPrototype ( JSContextRef ctx, JSObjectRef object ) ;
-
-FUNCTION: void JSObjectSetPrototype ( JSContextRef ctx, JSObjectRef object, JSValueRef value ) ;
-
-FUNCTION: bool JSObjectHasProperty ( JSContextRef ctx, JSObjectRef object, JSStringRef propertyName ) ;
-
-FUNCTION: JSValueRef JSObjectGetProperty ( JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef* exception ) ;
-
-FUNCTION: void JSObjectSetProperty ( JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef value, JSPropertyAttributes attributes, JSValueRef* exception ) ;
-
-FUNCTION: bool JSObjectDeleteProperty ( JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef* exception ) ;
-
-FUNCTION: JSValueRef JSObjectGetPropertyAtIndex ( JSContextRef ctx, JSObjectRef object, unsigned propertyIndex, JSValueRef* exception ) ;
-
-FUNCTION: void JSObjectSetPropertyAtIndex ( JSContextRef ctx, JSObjectRef object, unsigned propertyIndex, JSValueRef value, JSValueRef* exception ) ;
-
-FUNCTION: void* JSObjectGetPrivate ( JSObjectRef object ) ;
-
-FUNCTION: bool JSObjectSetPrivate ( JSObjectRef object, void* data ) ;
-
-FUNCTION: bool JSObjectIsFunction ( JSContextRef ctx, JSObjectRef object ) ;
-
-FUNCTION: JSValueRef JSObjectCallAsFunction ( JSContextRef ctx, JSObjectRef object, JSObjectRef thisObject, size_t argumentCount, JSValueRef arguments[], JSValueRef* exception ) ;
-
-FUNCTION: bool JSObjectIsConstructor ( JSContextRef ctx, JSObjectRef object ) ;
-
-FUNCTION: JSObjectRef JSObjectCallAsConstructor ( JSContextRef ctx, JSObjectRef object, size_t argumentCount, JSValueRef arguments[], JSValueRef* exception ) ;
-
-FUNCTION: JSPropertyNameArrayRef JSObjectCopyPropertyNames ( JSContextRef ctx, JSObjectRef object ) ;
-
-FUNCTION: JSPropertyNameArrayRef JSPropertyNameArrayRetain ( JSPropertyNameArrayRef array ) ;
-
-FUNCTION: void JSPropertyNameArrayRelease ( JSPropertyNameArrayRef array ) ;
-
-FUNCTION: size_t JSPropertyNameArrayGetCount ( JSPropertyNameArrayRef array ) ;
-
-FUNCTION: JSStringRef JSPropertyNameArrayGetNameAtIndex ( JSPropertyNameArrayRef array, size_t index ) ;
-
-FUNCTION: void JSPropertyNameAccumulatorAddName ( JSPropertyNameAccumulatorRef accumulator, JSStringRef propertyName ) ;
-
-FUNCTION: JSStringRef JSStringCreateWithCharacters ( JSChar* chars, size_t numChars ) ;
-
-FUNCTION: JSStringRef JSStringCreateWithUTF8CString ( c-string string ) ;
-
-FUNCTION: JSStringRef JSStringRetain ( JSStringRef string ) ;
-
-FUNCTION: void JSStringRelease ( JSStringRef string ) ;
-
-FUNCTION: size_t JSStringGetLength ( JSStringRef string ) ;
-
-FUNCTION: JSChar* JSStringGetCharactersPtr ( JSStringRef string ) ;
-
-FUNCTION: size_t JSStringGetMaximumUTF8CStringSize ( JSStringRef string ) ;
-
-FUNCTION: size_t JSStringGetUTF8CString ( JSStringRef string, char* buffer, size_t bufferSize ) ;
-
-FUNCTION: bool JSStringIsEqual ( JSStringRef a, JSStringRef b ) ;
-
-FUNCTION: bool JSStringIsEqualToUTF8CString ( JSStringRef a, char* b ) ;
-
-FUNCTION: JSType JSValueGetType ( JSContextRef ctx, JSValueRef value ) ;
-
-FUNCTION: bool JSValueIsUndefined ( JSContextRef ctx, JSValueRef value ) ;
-
-FUNCTION: bool JSValueIsNull ( JSContextRef ctx, JSValueRef value ) ;
-
-FUNCTION: bool JSValueIsBoolean ( JSContextRef ctx, JSValueRef value ) ;
-
-FUNCTION: bool JSValueIsNumber ( JSContextRef ctx, JSValueRef value ) ;
-
-FUNCTION: bool JSValueIsString ( JSContextRef ctx, JSValueRef value ) ;
-
-FUNCTION: bool JSValueIsObject ( JSContextRef ctx, JSValueRef value ) ;
-
-FUNCTION: bool JSValueIsObjectOfClass ( JSContextRef ctx, JSValueRef value, JSClassRef jsClass ) ;
-
-FUNCTION: bool JSValueIsEqual ( JSContextRef ctx, JSValueRef a, JSValueRef b, JSValueRef* exception ) ;
-
-FUNCTION: bool JSValueIsStrictEqual ( JSContextRef ctx, JSValueRef a, JSValueRef b ) ;
-
-FUNCTION: bool JSValueIsInstanceOfConstructor ( JSContextRef ctx, JSValueRef value, JSObjectRef constructor, JSValueRef* exception ) ;
-
-FUNCTION: JSValueRef JSValueMakeUndefined ( JSContextRef ctx ) ;
-
-FUNCTION: JSValueRef JSValueMakeNull ( JSContextRef ctx ) ;
-
-FUNCTION: JSValueRef JSValueMakeBoolean ( JSContextRef ctx, bool boolean ) ;
-
-FUNCTION: JSValueRef JSValueMakeNumber ( JSContextRef ctx, double number ) ;
-
-FUNCTION: JSValueRef JSValueMakeString ( JSContextRef ctx, JSStringRef string ) ;
-
-FUNCTION: bool JSValueToBoolean ( JSContextRef ctx, JSValueRef value ) ;
-
-FUNCTION: double JSValueToNumber ( JSContextRef ctx, JSValueRef value, JSValueRef* exception ) ;
-
-FUNCTION: JSStringRef JSValueToStringCopy ( JSContextRef ctx, JSValueRef value, JSValueRef* exception ) ;
-
-FUNCTION: JSObjectRef JSValueToObject ( JSContextRef ctx, JSValueRef value, JSValueRef* exception ) ;
-
-FUNCTION: void JSValueProtect ( JSContextRef ctx, JSValueRef value ) ;
-
-FUNCTION: void JSValueUnprotect ( JSContextRef ctx, JSValueRef value ) ;
-
diff --git a/extra/javascriptcore/ffi/hack/authors.txt b/extra/javascriptcore/ffi/hack/authors.txt
deleted file mode 100644 (file)
index 7c1b2f2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Doug Coleman
diff --git a/extra/javascriptcore/ffi/hack/hack.factor b/extra/javascriptcore/ffi/hack/hack.factor
deleted file mode 100644 (file)
index 1656cb1..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-! Copyright (C) 2010 Doug Coleman.
-! See http://factorcode.org/license.txt for BSD license.
-USING: alien alien.accessors alien.c-types 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/ffi/hack/platforms.txt b/extra/javascriptcore/ffi/hack/platforms.txt
deleted file mode 100644 (file)
index 6e806f4..0000000
+++ /dev/null
@@ -1 +0,0 @@
-macosx
diff --git a/extra/javascriptcore/ffi/platforms.txt b/extra/javascriptcore/ffi/platforms.txt
deleted file mode 100644 (file)
index 6e806f4..0000000
+++ /dev/null
@@ -1 +0,0 @@
-macosx
diff --git a/extra/javascriptcore/javascriptcore-tests.factor b/extra/javascriptcore/javascriptcore-tests.factor
deleted file mode 100644 (file)
index 53ae12d..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-! Copyright (C) 2010 Doug Coleman.
-! See http://factorcode.org/license.txt for BSD license.
-USING: accessors javascriptcore kernel tools.test ;
-IN: javascriptcore.tests
-
-[ "2" ] [ "1+1" eval-js-standalone ] unit-test
-
-[ "1+shoes" eval-js-standalone ]
-[ error>> "ReferenceError: Can't find variable: shoes" = ] must-fail-with
-
diff --git a/extra/javascriptcore/javascriptcore.factor b/extra/javascriptcore/javascriptcore.factor
deleted file mode 100644 (file)
index e3465a3..0000000
+++ /dev/null
@@ -1,48 +0,0 @@
-! Copyright (C) 2010 Doug Coleman.
-! See http://factorcode.org/license.txt for BSD license.
-USING: alien.c-types alien.data byte-arrays continuations fry
-io.encodings.string io.encodings.utf8 io.files
-javascriptcore.ffi javascriptcore.ffi.hack kernel namespaces
-sequences ;
-IN: javascriptcore
-
-ERROR: javascriptcore-error error ;
-
-SYMBOL: js-context
-
-: with-global-context ( quot -- )
-    [
-        [ f JSGlobalContextCreate dup js-context set ] dip
-        [ nip '[ @ ] ]
-        [ drop '[ _ JSGlobalContextRelease ] ] 2bi
-        [ ] cleanup
-    ] with-scope ; inline
-
-: with-javascriptcore ( quot -- )
-    set-callstack-bounds
-    with-global-context ; inline
-
-: JSString>string ( JSString -- string )
-    dup JSStringGetMaximumUTF8CStringSize [ <byte-array> ] keep
-    [ JSStringGetUTF8CString drop ] [ drop ] 2bi
-    utf8 decode [ 0 = ] trim-tail ;
-
-: JSValueRef>string ( ctx JSValueRef/f -- string/f )
-    [
-        f JSValueToStringCopy
-        [ JSString>string ] [ JSStringRelease ] bi
-    ] [
-        drop f
-    ] if* ;
-
-: eval-js ( string -- result-string )
-    [ js-context get dup ] dip
-    JSStringCreateWithUTF8CString f f 0
-    { { void* initial: f } } [ JSEvaluateScript ] with-out-parameters
-    dup [ nip JSValueRef>string javascriptcore-error ] [ drop JSValueRef>string ] if ;
-
-: eval-js-standalone ( string -- result-string )
-    '[ _ eval-js ] with-javascriptcore ;
-
-: eval-js-path-standalone ( path -- result-string ) utf8 file-contents eval-js-standalone ;
-
diff --git a/extra/javascriptcore/platforms.txt b/extra/javascriptcore/platforms.txt
deleted file mode 100644 (file)
index 6e806f4..0000000
+++ /dev/null
@@ -1 +0,0 @@
-macosx
diff --git a/unmaintained/javascriptcore/authors.txt b/unmaintained/javascriptcore/authors.txt
new file mode 100644 (file)
index 0000000..7c1b2f2
--- /dev/null
@@ -0,0 +1 @@
+Doug Coleman
diff --git a/unmaintained/javascriptcore/core-foundation/authors.txt b/unmaintained/javascriptcore/core-foundation/authors.txt
new file mode 100644 (file)
index 0000000..7c1b2f2
--- /dev/null
@@ -0,0 +1 @@
+Doug Coleman
diff --git a/unmaintained/javascriptcore/core-foundation/core-foundation.factor b/unmaintained/javascriptcore/core-foundation/core-foundation.factor
new file mode 100644 (file)
index 0000000..9dfc93b
--- /dev/null
@@ -0,0 +1,11 @@
+! Copyright (C) 2010 Doug Coleman.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien.syntax core-foundation core-foundation.strings
+javascriptcore.ffi ;
+IN: javascriptcore.core-foundation
+
+FUNCTION: JSStringRef JSStringCreateWithCFString ( CFStringRef string ) ;
+
+FUNCTION: CFStringRef JSStringCopyCFString ( CFAllocatorRef alloc, JSStringRef string ) ;
+
+
diff --git a/unmaintained/javascriptcore/core-foundation/platforms.txt b/unmaintained/javascriptcore/core-foundation/platforms.txt
new file mode 100644 (file)
index 0000000..6e806f4
--- /dev/null
@@ -0,0 +1 @@
+macosx
diff --git a/unmaintained/javascriptcore/ffi/authors.txt b/unmaintained/javascriptcore/ffi/authors.txt
new file mode 100644 (file)
index 0000000..7c1b2f2
--- /dev/null
@@ -0,0 +1 @@
+Doug Coleman
diff --git a/unmaintained/javascriptcore/ffi/ffi.factor b/unmaintained/javascriptcore/ffi/ffi.factor
new file mode 100644 (file)
index 0000000..377a0d4
--- /dev/null
@@ -0,0 +1,269 @@
+! Copyright (C) 2010 Doug Coleman.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.c-types alien.libraries alien.syntax
+classes.struct combinators io.encodings.utf16n
+io.encodings.utf8 kernel system ;
+IN: javascriptcore.ffi
+
+<<
+"javascriptcore" {
+    { [ os macosx? ] [
+        "/System/Library/Frameworks/JavaScriptCore.framework/Versions/Current/JavaScriptCore" cdecl add-library
+    ] }
+    ! { [ os windows? ]  [ "javascriptcore.dll" ] }
+    ! { [ os unix? ]  [ "libsqlite3.so" ] }
+    [ drop ]
+} cond
+>>
+
+LIBRARY: javascriptcore
+
+TYPEDEF: void* JSContextGroupRef
+TYPEDEF: void* JSContextRef
+TYPEDEF: void* JSGlobalContextRef
+TYPEDEF: void* JSStringRef
+TYPEDEF: void* JSClassRef
+TYPEDEF: void* JSPropertyNameArrayRef
+TYPEDEF: void* JSPropertyNameAccumulatorRef
+TYPEDEF: void* JSValueRef
+TYPEDEF: void* JSObjectRef
+TYPEDEF: void* JSObjectInitializeCallback
+TYPEDEF: void* JSObjectFinalizeCallback
+TYPEDEF: void* JSObjectHasPropertyCallback
+TYPEDEF: void* JSObjectGetPropertyCallback
+TYPEDEF: void* JSObjectSetPropertyCallback
+TYPEDEF: void* JSObjectDeletePropertyCallback
+TYPEDEF: void* JSObjectGetPropertyNamesCallback
+TYPEDEF: void* JSObjectCallAsFunctionCallback
+TYPEDEF: void* JSObjectCallAsConstructorCallback
+TYPEDEF: void* JSObjectHasInstanceCallback
+TYPEDEF: void* JSObjectConvertToTypeCallback
+TYPEDEF: uint unsigned
+TYPEDEF: ushort JSChar
+
+ENUM: JSPropertyAttributes
+    { kJSPropertyAttributeNone       0 }
+    { kJSPropertyAttributeReadOnly   2 }
+    { kJSPropertyAttributeDontEnum   4 }
+    { kJSPropertyAttributeDontDelete 8 } ;
+
+ENUM: JSClassAttributes
+    { kJSClassAttributeNone 0 }
+    { kJSClassAttributeNoAutomaticPrototype 2 } ;
+
+ENUM: JSType
+    kJSTypeUndefined,
+    kJSTypeNull,
+    kJSTypeBoolean,
+    kJSTypeNumber,
+    kJSTypeString,
+    kJSTypeObject ;
+
+STRUCT: JSStaticValue
+    { name c-string }
+    { getProperty JSObjectGetPropertyCallback }
+    { setProperty JSObjectSetPropertyCallback }
+    { attributes JSPropertyAttributes } ;
+
+STRUCT: JSStaticFunction
+    { name c-string }
+    { callAsFunction JSObjectCallAsFunctionCallback } ;
+
+STRUCT: JSClassDefinition
+    { version int }
+    { attributes JSClassAttributes }
+    { className c-string }
+    { parentClass JSClassRef }
+    { staticValues JSStaticValue* }
+    { staticFunctions JSStaticFunction* }
+    { initialize JSObjectInitializeCallback }
+    { finalize JSObjectFinalizeCallback }
+    { hasProperty JSObjectHasPropertyCallback }
+    { getProperty JSObjectGetPropertyCallback }
+    { setProperty JSObjectSetPropertyCallback }
+    { deleteProperty JSObjectDeletePropertyCallback }
+    { getPropertyNames JSObjectGetPropertyNamesCallback }
+    { callAsFunction JSObjectCallAsFunctionCallback }
+    { callAsConstructor JSObjectCallAsConstructorCallback }
+    { hasInstance JSObjectHasInstanceCallback }
+    { convertToType JSObjectConvertToTypeCallback } ;
+
+ALIAS: kJSClassDefinitionEmpty JSClassDefinition
+
+FUNCTION: JSValueRef JSEvaluateScript (
+    JSContextRef ctx,
+    JSStringRef script,
+    JSObjectRef thisObject,
+    JSStringRef sourceURL,
+    int startingLineNumber,
+    JSValueRef* exception ) ;
+
+FUNCTION: bool JSCheckScriptSyntax (
+    JSContextRef ctx,
+    JSStringRef script,
+    JSStringRef sourceURL,
+    int startingLineNumber,
+    JSValueRef* exception ) ;
+
+FUNCTION: void JSGarbageCollect
+    ( JSContextRef ctx ) ;
+
+FUNCTION: JSContextGroupRef JSContextGroupCreate
+    ( ) ;
+
+FUNCTION: JSContextGroupRef JSContextGroupRetain
+    ( JSContextGroupRef group ) ;
+
+FUNCTION: void JSContextGroupRelease
+    ( JSContextGroupRef group ) ;
+
+FUNCTION: JSGlobalContextRef JSGlobalContextCreate
+    ( JSClassRef globalObjectClass ) ; 
+
+FUNCTION: JSGlobalContextRef JSGlobalContextCreateInGroup (
+    JSContextGroupRef group,
+    JSClassRef globalObjectClass ) ;
+
+FUNCTION: JSGlobalContextRef JSGlobalContextRetain
+    ( JSGlobalContextRef ctx ) ;
+
+FUNCTION: void JSGlobalContextRelease
+    ( JSGlobalContextRef ctx ) ;
+
+FUNCTION: JSObjectRef JSContextGetGlobalObject
+    ( JSContextRef ctx ) ;
+
+FUNCTION: JSContextGroupRef JSContextGetGroup
+    ( JSContextRef ctx ) ;
+
+FUNCTION: JSClassRef JSClassCreate
+    ( JSClassDefinition* definition ) ;
+
+FUNCTION: JSClassRef JSClassRetain
+    ( JSClassRef jsClass ) ;
+
+FUNCTION: void JSClassRelease
+    ( JSClassRef jsClass ) ;
+
+FUNCTION: JSObjectRef JSObjectMake
+    ( JSContextRef ctx,
+      JSClassRef jsClass, void* data ) ;
+
+FUNCTION: JSObjectRef JSObjectMakeFunctionWithCallback ( JSContextRef ctx, JSStringRef name, JSObjectCallAsFunctionCallback callAsFunction ) ;
+
+FUNCTION: JSObjectRef JSObjectMakeConstructor ( JSContextRef ctx, JSClassRef jsClass, JSObjectCallAsConstructorCallback callAsConstructor ) ;
+
+FUNCTION: JSObjectRef JSObjectMakeArray ( JSContextRef ctx, size_t argumentCount, JSValueRef arguments[], JSValueRef* exception ) ;
+
+FUNCTION: JSObjectRef JSObjectMakeDate ( JSContextRef ctx, size_t argumentCount, JSValueRef arguments[], JSValueRef* exception ) ;
+
+FUNCTION: JSObjectRef JSObjectMakeError ( JSContextRef ctx, size_t argumentCount, JSValueRef arguments[], JSValueRef* exception ) ;
+
+FUNCTION: JSObjectRef JSObjectMakeRegExp ( JSContextRef ctx, size_t argumentCount, JSValueRef arguments[], JSValueRef* exception ) ;
+
+FUNCTION: JSObjectRef JSObjectMakeFunction ( JSContextRef ctx, JSStringRef name, unsigned parameterCount, JSStringRef parameterNames[], JSStringRef body, JSStringRef sourceURL, int startingLineNumber, JSValueRef* exception ) ;
+
+FUNCTION: JSValueRef JSObjectGetPrototype ( JSContextRef ctx, JSObjectRef object ) ;
+
+FUNCTION: void JSObjectSetPrototype ( JSContextRef ctx, JSObjectRef object, JSValueRef value ) ;
+
+FUNCTION: bool JSObjectHasProperty ( JSContextRef ctx, JSObjectRef object, JSStringRef propertyName ) ;
+
+FUNCTION: JSValueRef JSObjectGetProperty ( JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef* exception ) ;
+
+FUNCTION: void JSObjectSetProperty ( JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef value, JSPropertyAttributes attributes, JSValueRef* exception ) ;
+
+FUNCTION: bool JSObjectDeleteProperty ( JSContextRef ctx, JSObjectRef object, JSStringRef propertyName, JSValueRef* exception ) ;
+
+FUNCTION: JSValueRef JSObjectGetPropertyAtIndex ( JSContextRef ctx, JSObjectRef object, unsigned propertyIndex, JSValueRef* exception ) ;
+
+FUNCTION: void JSObjectSetPropertyAtIndex ( JSContextRef ctx, JSObjectRef object, unsigned propertyIndex, JSValueRef value, JSValueRef* exception ) ;
+
+FUNCTION: void* JSObjectGetPrivate ( JSObjectRef object ) ;
+
+FUNCTION: bool JSObjectSetPrivate ( JSObjectRef object, void* data ) ;
+
+FUNCTION: bool JSObjectIsFunction ( JSContextRef ctx, JSObjectRef object ) ;
+
+FUNCTION: JSValueRef JSObjectCallAsFunction ( JSContextRef ctx, JSObjectRef object, JSObjectRef thisObject, size_t argumentCount, JSValueRef arguments[], JSValueRef* exception ) ;
+
+FUNCTION: bool JSObjectIsConstructor ( JSContextRef ctx, JSObjectRef object ) ;
+
+FUNCTION: JSObjectRef JSObjectCallAsConstructor ( JSContextRef ctx, JSObjectRef object, size_t argumentCount, JSValueRef arguments[], JSValueRef* exception ) ;
+
+FUNCTION: JSPropertyNameArrayRef JSObjectCopyPropertyNames ( JSContextRef ctx, JSObjectRef object ) ;
+
+FUNCTION: JSPropertyNameArrayRef JSPropertyNameArrayRetain ( JSPropertyNameArrayRef array ) ;
+
+FUNCTION: void JSPropertyNameArrayRelease ( JSPropertyNameArrayRef array ) ;
+
+FUNCTION: size_t JSPropertyNameArrayGetCount ( JSPropertyNameArrayRef array ) ;
+
+FUNCTION: JSStringRef JSPropertyNameArrayGetNameAtIndex ( JSPropertyNameArrayRef array, size_t index ) ;
+
+FUNCTION: void JSPropertyNameAccumulatorAddName ( JSPropertyNameAccumulatorRef accumulator, JSStringRef propertyName ) ;
+
+FUNCTION: JSStringRef JSStringCreateWithCharacters ( JSChar* chars, size_t numChars ) ;
+
+FUNCTION: JSStringRef JSStringCreateWithUTF8CString ( c-string string ) ;
+
+FUNCTION: JSStringRef JSStringRetain ( JSStringRef string ) ;
+
+FUNCTION: void JSStringRelease ( JSStringRef string ) ;
+
+FUNCTION: size_t JSStringGetLength ( JSStringRef string ) ;
+
+FUNCTION: JSChar* JSStringGetCharactersPtr ( JSStringRef string ) ;
+
+FUNCTION: size_t JSStringGetMaximumUTF8CStringSize ( JSStringRef string ) ;
+
+FUNCTION: size_t JSStringGetUTF8CString ( JSStringRef string, char* buffer, size_t bufferSize ) ;
+
+FUNCTION: bool JSStringIsEqual ( JSStringRef a, JSStringRef b ) ;
+
+FUNCTION: bool JSStringIsEqualToUTF8CString ( JSStringRef a, char* b ) ;
+
+FUNCTION: JSType JSValueGetType ( JSContextRef ctx, JSValueRef value ) ;
+
+FUNCTION: bool JSValueIsUndefined ( JSContextRef ctx, JSValueRef value ) ;
+
+FUNCTION: bool JSValueIsNull ( JSContextRef ctx, JSValueRef value ) ;
+
+FUNCTION: bool JSValueIsBoolean ( JSContextRef ctx, JSValueRef value ) ;
+
+FUNCTION: bool JSValueIsNumber ( JSContextRef ctx, JSValueRef value ) ;
+
+FUNCTION: bool JSValueIsString ( JSContextRef ctx, JSValueRef value ) ;
+
+FUNCTION: bool JSValueIsObject ( JSContextRef ctx, JSValueRef value ) ;
+
+FUNCTION: bool JSValueIsObjectOfClass ( JSContextRef ctx, JSValueRef value, JSClassRef jsClass ) ;
+
+FUNCTION: bool JSValueIsEqual ( JSContextRef ctx, JSValueRef a, JSValueRef b, JSValueRef* exception ) ;
+
+FUNCTION: bool JSValueIsStrictEqual ( JSContextRef ctx, JSValueRef a, JSValueRef b ) ;
+
+FUNCTION: bool JSValueIsInstanceOfConstructor ( JSContextRef ctx, JSValueRef value, JSObjectRef constructor, JSValueRef* exception ) ;
+
+FUNCTION: JSValueRef JSValueMakeUndefined ( JSContextRef ctx ) ;
+
+FUNCTION: JSValueRef JSValueMakeNull ( JSContextRef ctx ) ;
+
+FUNCTION: JSValueRef JSValueMakeBoolean ( JSContextRef ctx, bool boolean ) ;
+
+FUNCTION: JSValueRef JSValueMakeNumber ( JSContextRef ctx, double number ) ;
+
+FUNCTION: JSValueRef JSValueMakeString ( JSContextRef ctx, JSStringRef string ) ;
+
+FUNCTION: bool JSValueToBoolean ( JSContextRef ctx, JSValueRef value ) ;
+
+FUNCTION: double JSValueToNumber ( JSContextRef ctx, JSValueRef value, JSValueRef* exception ) ;
+
+FUNCTION: JSStringRef JSValueToStringCopy ( JSContextRef ctx, JSValueRef value, JSValueRef* exception ) ;
+
+FUNCTION: JSObjectRef JSValueToObject ( JSContextRef ctx, JSValueRef value, JSValueRef* exception ) ;
+
+FUNCTION: void JSValueProtect ( JSContextRef ctx, JSValueRef value ) ;
+
+FUNCTION: void JSValueUnprotect ( JSContextRef ctx, JSValueRef value ) ;
+
diff --git a/unmaintained/javascriptcore/ffi/hack/authors.txt b/unmaintained/javascriptcore/ffi/hack/authors.txt
new file mode 100644 (file)
index 0000000..7c1b2f2
--- /dev/null
@@ -0,0 +1 @@
+Doug Coleman
diff --git a/unmaintained/javascriptcore/ffi/hack/hack.factor b/unmaintained/javascriptcore/ffi/hack/hack.factor
new file mode 100644 (file)
index 0000000..1656cb1
--- /dev/null
@@ -0,0 +1,29 @@
+! Copyright (C) 2010 Doug Coleman.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.accessors alien.c-types 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/unmaintained/javascriptcore/ffi/hack/platforms.txt b/unmaintained/javascriptcore/ffi/hack/platforms.txt
new file mode 100644 (file)
index 0000000..6e806f4
--- /dev/null
@@ -0,0 +1 @@
+macosx
diff --git a/unmaintained/javascriptcore/ffi/platforms.txt b/unmaintained/javascriptcore/ffi/platforms.txt
new file mode 100644 (file)
index 0000000..6e806f4
--- /dev/null
@@ -0,0 +1 @@
+macosx
diff --git a/unmaintained/javascriptcore/javascriptcore-tests.factor b/unmaintained/javascriptcore/javascriptcore-tests.factor
new file mode 100644 (file)
index 0000000..53ae12d
--- /dev/null
@@ -0,0 +1,10 @@
+! Copyright (C) 2010 Doug Coleman.
+! See http://factorcode.org/license.txt for BSD license.
+USING: accessors javascriptcore kernel tools.test ;
+IN: javascriptcore.tests
+
+[ "2" ] [ "1+1" eval-js-standalone ] unit-test
+
+[ "1+shoes" eval-js-standalone ]
+[ error>> "ReferenceError: Can't find variable: shoes" = ] must-fail-with
+
diff --git a/unmaintained/javascriptcore/javascriptcore.factor b/unmaintained/javascriptcore/javascriptcore.factor
new file mode 100644 (file)
index 0000000..e3465a3
--- /dev/null
@@ -0,0 +1,48 @@
+! Copyright (C) 2010 Doug Coleman.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien.c-types alien.data byte-arrays continuations fry
+io.encodings.string io.encodings.utf8 io.files
+javascriptcore.ffi javascriptcore.ffi.hack kernel namespaces
+sequences ;
+IN: javascriptcore
+
+ERROR: javascriptcore-error error ;
+
+SYMBOL: js-context
+
+: with-global-context ( quot -- )
+    [
+        [ f JSGlobalContextCreate dup js-context set ] dip
+        [ nip '[ @ ] ]
+        [ drop '[ _ JSGlobalContextRelease ] ] 2bi
+        [ ] cleanup
+    ] with-scope ; inline
+
+: with-javascriptcore ( quot -- )
+    set-callstack-bounds
+    with-global-context ; inline
+
+: JSString>string ( JSString -- string )
+    dup JSStringGetMaximumUTF8CStringSize [ <byte-array> ] keep
+    [ JSStringGetUTF8CString drop ] [ drop ] 2bi
+    utf8 decode [ 0 = ] trim-tail ;
+
+: JSValueRef>string ( ctx JSValueRef/f -- string/f )
+    [
+        f JSValueToStringCopy
+        [ JSString>string ] [ JSStringRelease ] bi
+    ] [
+        drop f
+    ] if* ;
+
+: eval-js ( string -- result-string )
+    [ js-context get dup ] dip
+    JSStringCreateWithUTF8CString f f 0
+    { { void* initial: f } } [ JSEvaluateScript ] with-out-parameters
+    dup [ nip JSValueRef>string javascriptcore-error ] [ drop JSValueRef>string ] if ;
+
+: eval-js-standalone ( string -- result-string )
+    '[ _ eval-js ] with-javascriptcore ;
+
+: eval-js-path-standalone ( path -- result-string ) utf8 file-contents eval-js-standalone ;
+
diff --git a/unmaintained/javascriptcore/platforms.txt b/unmaintained/javascriptcore/platforms.txt
new file mode 100644 (file)
index 0000000..6e806f4
--- /dev/null
@@ -0,0 +1 @@
+macosx