diff --git a/extra/javascriptcore/javascriptcore-tests.factor b/extra/javascriptcore/javascriptcore-tests.factor index f04ada89f2..53ae12d2b0 100644 --- a/extra/javascriptcore/javascriptcore-tests.factor +++ b/extra/javascriptcore/javascriptcore-tests.factor @@ -3,8 +3,8 @@ USING: accessors javascriptcore kernel tools.test ; IN: javascriptcore.tests -[ "2" ] [ "1+1" eval-js ] unit-test +[ "2" ] [ "1+1" eval-js-standalone ] unit-test -[ "1+shoes" eval-js ] +[ "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 index eabb97df61..65b6fe5fff 100644 --- a/extra/javascriptcore/javascriptcore.factor +++ b/extra/javascriptcore/javascriptcore.factor @@ -35,14 +35,13 @@ SYMBOL: js-context drop f ] if* ; -: eval-js ( string -- result-string ) - '[ - [ - dup _ JSStringCreateWithUTF8CString f f 0 JSValueRef - [ JSEvaluateScript ] keep *void* - dup [ nip JSValueRef>string javascriptcore-error ] [ drop JSValueRef>string ] if - ] with-global-context - ] with-javascriptcore ; +: eval-js ( context string -- result-string ) + dupd JSStringCreateWithUTF8CString f f 0 JSValueRef + [ JSEvaluateScript ] keep *void* + dup [ nip JSValueRef>string javascriptcore-error ] [ drop JSValueRef>string ] if ; -: eval-js-path ( path -- result-string ) utf8 file-contents eval-js ; +: eval-js-standalone ( string -- result-string ) + '[ [ _ eval-js ] with-global-context ] with-javascriptcore ; + +: eval-js-path-standalone ( path -- result-string ) utf8 file-contents eval-js-standalone ;