summaryrefslogtreecommitdiff
path: root/libguile/vm-i-system.c
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2009-02-19 13:55:55 +0100
committerAndy Wingo <wingo@pobox.com>2009-02-19 13:55:55 +0100
commit131f7d6c71d0a0fe4f60b49a39efcd4f8ace6b0c (patch)
tree4ffdd807ccdcd05ad49d2da7190751fc30006bb3 /libguile/vm-i-system.c
parent8fa6886d7af7c012c4cd17f793e5038931ffb4a0 (diff)
downloadguile-131f7d6c71d0a0fe4f60b49a39efcd4f8ace6b0c.tar.gz
further ecmascript work
* libguile/vm-i-system.c (drop, return): Declare drop and return as popping one arg from the stack. * module/language/ghil/compile-glil.scm: * module/language/glil/compile-assembly.scm (make-meta): Adjust so that we declare 'drop and 'return calls as popping one arg from the stack. * module/language/ecmascript/compile-ghil.scm (comp, comp-body): Flesh out a bit more. Most significantly, scoping within functions obeys javascript semantics better, modulo bits about with() forms. * module/language/ecmascript/impl.scm: Define some runtime helper routines. * module/language/Makefile.am (SOURCES): Add impl.scm. * module/language/ecmascript/parse.scm (parse-ecmascript): Minor tweaks. * module/language/ecmascript/tokenize.scm (read-identifier): Identifiers now read as symbols, not strings.
Diffstat (limited to 'libguile/vm-i-system.c')
-rw-r--r--libguile/vm-i-system.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/libguile/vm-i-system.c b/libguile/vm-i-system.c
index c99371774..a105c52d9 100644
--- a/libguile/vm-i-system.c
+++ b/libguile/vm-i-system.c
@@ -64,7 +64,7 @@ VM_DEFINE_INSTRUCTION (2, break, "break", 0, 0, 0)
NEXT;
}
-VM_DEFINE_INSTRUCTION (3, drop, "drop", 0, 0, 0)
+VM_DEFINE_INSTRUCTION (3, drop, "drop", 0, 1, 0)
{
DROP ();
NEXT;
@@ -971,7 +971,7 @@ VM_DEFINE_INSTRUCTION (47, goto_cc, "goto/cc", 0, 1, 1)
}
}
-VM_DEFINE_INSTRUCTION (48, return, "return", 0, 0, 1)
+VM_DEFINE_INSTRUCTION (48, return, "return", 0, 1, 1)
{
vm_return:
EXIT_HOOK ();