diff --git a/assemble.rkt b/assemble.rkt index 060ed34..910fa2b 100644 --- a/assemble.rkt +++ b/assemble.rkt @@ -171,7 +171,7 @@ EOF [(PopEnvironment? stmt) empty] [(PushControlFrame? stmt) - empty] + (list (PushControlFrame-label stmt))] [(PopControlFrame? stmt) empty]) (loop (rest stmts))))])))) diff --git a/runtime.js b/runtime.js index 4995bc5..396214b 100644 --- a/runtime.js +++ b/runtime.js @@ -99,6 +99,14 @@ var Primitives = (function() { 'null?': function(arity, returnLabel) { var firstArg = MACHINE.env[MACHINE.env.length-1]; return firstArg === NULL; + }, + 'add1': function(arity, returnLabel) { + var firstArg = MACHINE.env[MACHINE.env.length-1]; + return firstArg + 1; + }, + 'sub1': function(arity, returnLabel) { + var firstArg = MACHINE.env[MACHINE.env.length-1]; + return firstArg - 1; } }; })();