X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler.lisp;h=a77d4519c1b9d7890fda5728af09503aec21545a;hb=c1243ebc6aaa93fe370ddedbe4bbe1642f0b13e9;hp=d8e9b6df2529be2ec7475cf6c6b7ad2711476c40;hpb=0965c7f2cbc0491cd56054ac7e7f096edce0a391;p=jscl.git diff --git a/src/compiler.lisp b/src/compiler.lisp index d8e9b6d..a77d451 100644 --- a/src/compiler.lisp +++ b/src/compiler.lisp @@ -1224,10 +1224,10 @@ (define-builtin js-eval (string) (if *multiple-value-p* - (js!selfcall - "var v = globalEval(xstring(" string "));" - "return values.apply(this, forcemv(v));" ) - `(code "globalEval(xstring(" ,string "))"))) + (js!selfcall* + `(var (v (call |globalEval| (call |xstring| ,string)))) + `(return (call (get |values| "apply") this (call |forcemv| v)))) + `(call |globalEval| (call |xstring| ,string)))) (define-builtin %throw (string) (js!selfcall* `(throw ,string))) @@ -1286,7 +1286,7 @@ `(return r))) (define-builtin get-internal-real-time () - "(new Date()).getTime()") + `(call (get (new (call Date)) "getTime"))) (define-builtin values-array (array) (if *multiple-value-p* @@ -1301,7 +1301,8 @@ ;;; Javascript FFI -(define-builtin new () "{}") +(define-builtin new () + '(object)) (define-raw-builtin oget* (object key &rest keys) (js!selfcall