diff --git a/Userland/js.cpp b/Userland/js.cpp index 419f4b7ced..64ae49abfa 100644 --- a/Userland/js.cpp +++ b/Userland/js.cpp @@ -32,12 +32,13 @@ #include //static void build_program_1(JS::Program&); -static void build_program_2(JS::Program&); +//static void build_program_2(JS::Program&); +static void build_program_3(JS::Program&); int main() { auto program = make(); - build_program_2(*program); + build_program_3(*program); program->dump(0); @@ -47,13 +48,7 @@ int main() printf("%s\n", result.to_string().characters()); - interpreter.heap().allocate(); - - dbg() << "Collecting garbage..."; - interpreter.heap().collect_garbage(); - - interpreter.global_object().put("foo", JS::Value(123)); - dbg() << "Collecting garbage after overwriting global_object.foo..."; + dbg() << "Collecting garbage on exit..."; interpreter.heap().collect_garbage(); return 0; } @@ -79,6 +74,7 @@ void build_program_1(JS::Program& program) } #endif +#if 0 void build_program_2(JS::Program& program) { // c = 1; @@ -113,3 +109,22 @@ void build_program_2(JS::Program& program) program.append("foo", move(block)); program.append("foo"); } +#endif + +void build_program_3(JS::Program& program) +{ + // function foo() { + // var x = {}; + // $gc(); + // } + // foo(); + + auto block = make(); + block->append( + make("x"), + make()); + block->append("$gc"); + + program.append("foo", move(block)); + program.append("foo"); +}