diff --git a/runtime.js b/runtime.js index f3c67db..381f7eb 100644 --- a/runtime.js +++ b/runtime.js @@ -185,6 +185,28 @@ var Primitives = (function() { return typeof(firstArg) === 'string'; }, + 'symbol->string': function(arity, returnLabel) { + var firstArg = MACHINE.env[MACHINE.env.length-1]; + return firstArg; + }, + + 'box': function(arity, returnLabel) { + var firstArg = MACHINE.env[MACHINE.env.length-1]; + return [firstArg]; + }, + + 'set-box!': function(arity, returnLabel) { + var firstArg = MACHINE.env[MACHINE.env.length-1]; + var secondArg = MACHINE.env[MACHINE.env.length-2]; + firstArg[0] = secondArg; + return; + }, + + 'void': function(arity, returnLabel) { + return; + }, + + 'call/cc': new Closure(callCCEntry, 1, [], diff --git a/test-browser-evaluate.rkt b/test-browser-evaluate.rkt index ea555ae..89b317d 100644 --- a/test-browser-evaluate.rkt +++ b/test-browser-evaluate.rkt @@ -144,5 +144,5 @@ -#;(test (read (open-input-file "tests/conform/program0.sch")) +(test (read (open-input-file "tests/conform/program0.sch")) (port->string (open-input-file "tests/conform/expected0.txt"))) \ No newline at end of file