diff options
author | Andy Wingo <wingo@pobox.com> | 2009-02-20 18:16:34 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2009-02-21 00:33:04 +0100 |
commit | b358fe65021a40fa80238d8f426f810d150acb08 (patch) | |
tree | 6b462a65cd923197225c4b9299ce9de5a5178168 /module/language/ecmascript/impl.scm | |
parent | 45c10edb74fa3348238a81205408de5853521428 (diff) | |
download | guile-b358fe65021a40fa80238d8f426f810d150acb08.tar.gz |
implement more operations
* module/language/ecmascript/base.scm: Implement some more robust
property getters that convert strings to symbols. Implement
has-property?.
* module/language/ecmascript/compile-ghil.scm (comp): Implement lots more
mathematical operators. We now do all expressions; on to statements.
* module/language/ecmascript/impl.scm: Define some math helpers. They
probably need to call ->number on some things.
* module/language/ecmascript/parse.scm (parse-ecmascript): Fix a typo.
Diffstat (limited to 'module/language/ecmascript/impl.scm')
-rw-r--r-- | module/language/ecmascript/impl.scm | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/module/language/ecmascript/impl.scm b/module/language/ecmascript/impl.scm index fd6ed8865..9db92e3e4 100644 --- a/module/language/ecmascript/impl.scm +++ b/module/language/ecmascript/impl.scm @@ -24,12 +24,18 @@ #:use-module (language ecmascript base) #:use-module (language ecmascript function) #:use-module (language ecmascript array) - #:export (get-this typeof) #:re-export (*undefined* *this* call/this* - pget pput pdel + pget pput pdel has-property? new-object new - new-array)) + new-array) + #:export (get-this + typeof + bitwise-not logical-not + shift + mod + band bxor bior)) + (define (get-this) (fluid-ref *this*)) @@ -43,3 +49,15 @@ ((procedure? x) "function") ((is-a? x <js-object>) "object") (else "scm"))) + +(define bitwise-not lognot) +(define (logical-not x) + (not (->boolean (->primitive x)))) + +(define shift ash) + +(define band logand) +(define bxor logxor) +(define bior logior) + +(define mod modulo) |